методы web3 не реализованы

Я запускаю узел geth в тестовой сети и пытаюсь запустить метод web3.js из кода моего сервера узла.

Вот мой код

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

Однако я получаю ошибку метода net_peerCount, не реализованную.

На самом деле, я получаю сообщение о том, что подобный метод не реализован, когда пытаюсь получить доступ к любым методам сети или eth.

Любая помощь приветствуется!

Ответы (3)

Я заработал, выполнив команду, которую я нашел в документах https://github.com/ethereum/go-ethereum/wiki/JavaScript-Console#adminstartrpc .

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

с моей гет-консоли!

Спасибо за предложения :)

Не могли бы вы немного рассказать об этой команде, возможно, включить цитату из документации? Тогда вы должны пометить его как ответ.

Старайтесь не смешивать случаи при использовании переменной web3. Когда вы указываете адрес, надеюсь, вы физически не использовали 0.0.0.0. Вот пример для локального узла:

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

Для справки обратитесь к справочному документу Javascript-API в каталоге документации.

Мне нужно было добавить rpcdomain при запуске geth, чтобы получить доступ. Чтобы разрешить доступ со всех доменов, вы можете использовать: geth --rpc --rpccorsdomain="*"

Этот ответ на Reddit помог мне.

Запустите geth с помощью:

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

«Личный» API по умолчанию не отображается с помощью этой --rpcопции. Как только вы сделаете вышеперечисленное, он выставит все перечисленные, включая личные, которые позволят вам сделать personal_unlockAccountи personal_newAccount(что, как я предполагаю, вам нужно).