Я запускаю узел 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.
Любая помощь приветствуется!
Я заработал, выполнив команду, которую я нашел в документах 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 в каталоге документации.
Этот ответ на Reddit помог мне.
Запустите geth с помощью:
geth --rpc --rpcapi "web3,net,personal,eth"
«Личный» API по умолчанию не отображается с помощью этой --rpc
опции. Как только вы сделаете вышеперечисленное, он выставит все перечисленные, включая личные, которые позволят вам сделать personal_unlockAccount
и personal_newAccount
(что, как я предполагаю, вам нужно).
Тьяден Хесс