Tengo un nodo geth en ejecución y al usar geth account new
el comando creé una nueva cuenta:
$ geth account list
Cuenta #0: {47978a69f410d0f...} ...
Sin embargo, cuando uso la llamada json rpc para enumerar mis cuentas ether, se obtiene un resultado nulo:
$ curl -X POST --data
'{"jsonrpc":"2.0","método":"eth_accounts","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","id":1,"resultado":[]}
¿Porqué es eso? ¿Alguna pista? ¡Gracias por adelantado!
Lancé geth con el siguiente comando:
$geth --rpc --rpcapi "db,eth,net,web3" --rpcport "8545" --testnet
--etherbase "0x47978a6...."
¿Es posible que geth trabajando en testnet se confunda en las llamadas json rpc? ¿Debo especificar de alguna manera en estas llamadas para usar testnet y no mainnet?
No necesita usar el params
campo en su llamada. Al hacer esto, está ejecutando este comando: eth.accounts[]
que devuelve un valor nulo. Si desea obtener una lista de todas las cuentas, debe ejecutar eth.accounts
. Entonces, su comando RPC debería ser:
curl -X POST -d '{"method":"eth_accounts","id":1}' 127.0.0.1:8545
PD: Supongo que ya habilitó RPC en el puerto 8545. A través de la consola, puede usar admin.startRPC()
para iniciar RPC.
Habilite la API web3 RPC al iniciar geth :
geth --rpc --rpcapi "web3" --rpcport "8545"
o si desea que se ejecuten todas las API:
geth --rpc --rpcapi "db,eth,net,web3" --rpcport "8545"
Definitivamente, el problema está relacionado con el nodo que se ejecuta en testnet y la cuenta que es válida solo en mainnet.
Creé una nueva cuenta en testnet y la consulta json-rpc funcionó perfectamente:
$geth --lista de cuentas de testnet
$geth --testnet cuenta nueva Dirección: {3b877e80b5c0...}
$geth --testnet cuenta lista Cuenta #0: {3b877e80b5c0...
$ curl -X POST -d '{"método":"eth_accounts","id":0}' 127.0.0.1:8545 {"jsonrpc":"2.0","id":0,"resultado":[" 0x3b877e80...
¡Gracias por tu ayuda!
niksmac
id:0
o elimineid
el parámetro.Juan Ignacio Pérez Sacristán
$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":0}' http://127.0.0.1:8545 {"jsonrpc":"2.0","id":0,"result":[]}
$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[]}' http://127.0.0.1:8545 {"jsonrpc":"2.0","error":{"code":-32700,"message":"missing request id"}}´
Juan Ignacio Pérez Sacristán
niksmac
eth.accounts[]
es el índice de las billeteras que está consultando, en su caso0
, el coinbase.