Я читал другие подобные вопросы здесь, но никто не решил мою проблему. У меня есть окно терминала, на котором я запустил
geth --networkid=4 --rpc --rpcport 8545 --datadir=$HOME/.rinkeby --syncmode=light --ethstats='yournode:Respect my authoritah!@stats.rinkeby.io' --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303?discport=30304
на основе раздела «подключи себя» цепочки тестов Rinkeby .
У меня также есть приложение узла, которое имеет
var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
и который я запускаю после запуска geth.
Терминал запускает geth без проблем и выводов INFO [07-12|15:40:40] HTTP endpoint opened: http://127.0.0.1:8545
. Я не понимаю, почему у моего приложения node возникают проблемы с подключением к нему.
Ошибка в том ReferenceError: web3 is not defined
.
Я запустил geth как
geth --networkid=4 --datadir=$HOME/.rinkeby --syncmode=light --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303?discport=30304 --rpc --rpcapi=eth,web3, сеть, личная, ssh, db, консоль отладки
И есть этот тестовый файл index.js
var Web3 = require('web3');
var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
console.log(web3.eth.blockNumber);
И он выведет текущий блок при выполненииnode index.js
0
и это не меняется. Разве это не должно загружать блокчейн rinkeby и возвращать мне увеличивающиеся номера блоков?geth --networkid=4 --datadir=$HOME/.rinkeby --syncmode=light --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303?discport=30304 --rpc --rpcapi=eth,web3,net,personal,ssh,db,debug console
(разница " .rinkeby
" vs " rinkeby
"). Блок был равен нулю, потому что он не обнаруживал файл rinkeby.json (genesis). Ваш ответ правильный, но для последовательности я бы изменил его, потому что он изложен в учебниках rinkeby. Спасибо!
Ричард Хоррокс
web3
установлена библиотека в вашей системе? (например, с помощью узла?)Джо
--rpcapi="web3"
команда geth?Макансадо
Макансадо
geth --networkid=4 --rpc --rpcapi="web3" --rpcport 8545 --datadir=$HOME/.rinkeby --syncmode=light --ethstats='yournode:Respect my authoritah!@stats.rinkeby.io' --bootnodes=enode://a24ac7c5484ef4ed0c5eb2d36620ba4e4aa13b8c84684e1b4aab0cebea2ae45cb4d375b77eab56516d34bfbd3c1a833fc51296ff084b770b94fb9028c4d25ccf@52.169.42.101:30303?discport=30304
и выдал ту же ошибку.интернет-наркоман
Бадр Беллай
Макансадо
--rpcaddr "127.0.0.1"
jsut перед--rpcport
и добавленWeb3(new Web3.providers.HttpProvider("127.0.0.1:8545"))
. Все равно выдает ошибку.Гавей
var Web3 = require('ethereum_web3.js');
и проверьте, правильно ли вы все установили, я не знаю, ваш это случай или нет, но здесь я увидел это «Включить web3.min.js в ваш html-файл (не требуется для пакета метеора)», Проверь это.