Regtest: la dirección sigue en cero después de enviar algunos bitcoins

Estoy tratando de enviar algunos btc a una dirección en modo Regtest:

la dirección donde quiero enviar es:mjeoXvBnD4DtZumeSJEjNJfLb4RrhpbH1H

$  bitcoin-cli -regtest -rpcuser=bitcoinrpc -rpcpassword=Alice -rpcport=16591 sendtoaddress mjeoXvBnD4DtZumeSJEjNJfLb4RrhpbH1H 5.00
9caca4f88c6bf727f6e8599fc1012867561ff7ef34412ef1fc70457fadf08e0b

Genero un nuevo bloque:

$  bitcoin-cli -regtest -rpcuser=bitcoinrpc -rpcpassword=Alice -rpcport=16591 generate 1
[
    "5851b3adfd810480e53fbb5dab1ce4967a50f072a5a7abe054f114839ea3501e"
]

Luego, compruebo la cantidad de btc dentro de la dirección:

$  bitcoin-cli -regtest -rpcuser=bitcoinrpc -rpcpassword=Alice -rpcport=16591 getreceivedbyaddress mjeoXvBnD4DtZumeSJEjNJfLb4RrhpbH1H 
0.00000000

Sin embargo, la transacción está bien listada en listtransactions:

$  bitcoin-cli -regtest -rpcuser=bitcoinrpc -rpcpassword=Alice -rpcport=16591 listtransactions
...
    {
        "account" : "",
        "address" : "mjeoXvBnD4DtZumeSJEjNJfLb4RrhpbH1H",
        "category" : "send",
        "amount" : -5.00000000,
        "vout" : 1,
        "fee" : -0.00001860,
        "confirmations" : 1,
        "blockhash" : "5851b3adfd810480e53fbb5dab1ce4967a50f072a5a7abe054f114839ea3501e",
        "blockindex" : 1,
        "blocktime" : 1452096896,
        "txid" : "9caca4f88c6bf727f6e8599fc1012867561ff7ef34412ef1fc70457fadf08e0b",
        "walletconflicts" : [
        ],
        "time" : 1452096887,
        "timereceived" : 1452096887
    },
...

¿Hay algún problema con mi dirección?

Lo he generado gracias a pybitcointools , haciendo:

magickey = '111' # regtest mode

priv = random_key()

addr = privkey_to_address(priv, magickey)

Muchas gracias por adelantado

Respuestas (2)

getreceivedbyaddresssolo puede mostrar el saldo de las direcciones en la cuenta: almacena solo UTXO para estos. Las direcciones generadas con Pybitcointools no se almacenan en la cuenta (al contrario de las direcciones generadas con getnewaddress).

Para obtener el saldo de cualquier dirección, se necesita un explorador de bloques, que escanee TODOS los UTXO de la cadena de bloques (como blockexporer.com o blockchain.info).

Y para Regtest, es más complicado ya que se necesita un servidor local como https://github.com/bitcoin-abe/bitcoin-abe .

Conclusión: finalmente cambié al modo Testnet, por conveniencia.

Por defecto, getreceivedbyaddressno incluye transacciones no confirmadas. El segundo parámetro es para el número mínimo de confirmaciones.

Por lo tanto getreceivedbyaddress 0, haga o haga setgenerate true 6, y el recibido por debe ser correcto.

No está sin confirmar: puedes ver en listtransactions: ` "...confirmations" : 1,... . But I finally solved the riddle. I didn't get properly what getreceivedbyaddress` estaba haciendo de hecho.
Me alegro de que lo hayas descubierto :)