métodos web3 no implementados

Estoy ejecutando un nodo geth en la red de prueba e intento ejecutar el método web3.js desde el código de mi servidor de nodo.

Aquí está mi código

var Web3 = require("web3");
var web3 = new Web3(new Web3.providers.HttpProvider('http://0.0.0.0:8545'));
console.log(web3.net.peerCount);

Sin embargo, obtengo un error en el método net_peerCount no implementado.

De hecho, recibo un error de método similar no implementado cuando intento acceder a cualquier método net o eth.

¡Cualquier ayuda apreciada!

Respuestas (3)

Lo hice funcionar ejecutando el comando que encontré en los documentos https://github.com/ethereum/go-ethereum/wiki/JavaScript-Console#adminstartrpc

admin.startRPC("127.0.0.1", 8545, "*", "web3,db,net,eth")

desde mi consola geth!

Gracias por las sugerencias :)

¿Podría elaborar un poco sobre ese comando, tal vez incluir una cita de los documentos? Entonces debes marcarlo como respondido.

Trate de no mezclar casos cuando use la variable web3. Cuando especifique la dirección, espero que no haya usado físicamente 0.0.0.0. Para un nodo local, aquí hay un ejemplo:

var web3=require('web3');
web3.setProvider(new web3.providers.HttpProvider('http://localhost:8545'));

Como referencia, consulte el documento de ayuda de Javascript-API en el directorio doc.

Necesitaba agregar un dominio rpc al iniciar geth para obtener acceso. Para permitir el acceso desde todos los dominios, puede usar: geth --rpc --rpccorsdomain="*"

Esta respuesta en reddit me ayudó.

Ejecutar geth con:

geth --rpc --rpcapi "web3,net,personal,eth"

La API "personal" no está expuesta de forma predeterminada con la --rpcopción. Una vez que haga lo anterior, expone todos los enumerados, incluidos los personales, que le permitirán hacer personal_unlockAccounty personal_newAccount(que supongo que está buscando).