Не удалось запустить admin.addPeer()

Я установил эфириум (go-eth) в папку с именем «блокчейн». В этой папке «блокчейн» у меня есть еще 2 папки: «node2» и «node3».

Шаг 1:

Я использовал следующий файл genesis.json и сохранил один и тот же файл json в обеих папках:

{
"nonce": "0x0000000000000042",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x0",
"gasLimit": "0x8000000",
"difficulty": "0x400",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": {

 }
}

сохранил файл с именем «genesis.json»

Шаг 2:

Для инициализации блока генезиса я выполнил следующие команды из двух разных командных строк:

терминал 1 (узел 2):

geth init "C:\Rahul1306\blockchain\node2\genesis.json" networkid 100

терминал 2 (узел 3):

geth init "C:\Rahul1306\blockchain\node3\genesis.json" networkid 100

Блок Genesis инициализируется, и мне выделяется пространство для обоих узлов.

Шаг 3

Теперь я запускаю следующие команды, чтобы получить «chaindata» и другие файлы в соответствующих узлах:

терминал 1 (узел 2)

geth --identity "node2" --ipcdisable --rpc --rpcport "8001" --rpccorsdomain "*" --datadir "C:\Rahul1306\blockchain\node2" --port "30304" --nodiscover --ipcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" --rpcapi "db,eth,net,web3,personal,admin" --autodag -verbosity 6 --networkid 100 --nat "any" console

терминал 2 (узел 3)

geth --identity "node3" --ipcdisable --rpc --rpcport "8002" --rpccorsdomain "*" --datadir "C:\Rahul1306\blockchain\node3" --port "30305" --nodiscover --ipcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" --rpcapi "db,eth,net,web3,personal,admin" --autodag -verbosity 6 --networkid 100 --nat "any" console

Все необходимые файлы добавлены в обе папки

Шаг 4

Я использую следующую команду в обоих терминалах, чтобы получить их адрес enode:

admin.nodeInfo

Я получаю следующие адреса:

узел2:

enode://b94f327b518b68f33304078352f7b74cd6290c7601f42ec5cc5f4f50813de2
489171769124f93a4047f1e55a49aee6e5a45869b40bb0b18e395acd0bb40b625e@[::]:30305

узел3:

enode://b94f327b518b68f33304078352f7b74cd6290c7601f42ec5cc5f4f50813de2
489171769124f93a4047f1e55a49aee6e5a45869b40bb0b18e395acd0bb40b625e@[::]:30305

Шаг 5

Теперь, чтобы подключить эти узлы/присоединить их к частной сети, я использую следующую команду:

Здесь я пытаюсь добавить node3 в качестве партнера node2. Итак, следующая команда выполняется на терминале 1, то есть на терминале node2. Обратите внимание, я изменил «[::]» на адрес локального хоста, то есть «127.0.0.1».

admin.addPeer("enode://b94f327b518b68f33304078352f7b74cd6290c7601f42ec5cc5f4f50813de2
489171769124f93a4047f1e55a49aee6e5a45869b40bb0b18e395acd0bb40b625e@127.0.0.1:30305?di
scport=0")

Теперь вот где возникает проблема. Я должен получить логическое значение «истина». Обе консоли geth работают, я выполняю эту команду и получаю следующую ошибку:

(anonymous): Line 1:15 Unexpected token ILLEGAL (and 2 more errors)

Я не могу понять, где я ошибся. Итак, мне нужно иметь возможность добавить два вышеупомянутых узла в качестве одноранговых узлов в частной сети блокчейнов. Пожалуйста помоги!

Хорошей практикой является принятие ответа как правильного, если он помог вам решить проблему. В этом весь смысл SE, ни один из ответов на ваши вопросы не отмечен как правильный. К вашему сведению, если вы не знаете об этом.

Ответы (1)

Шаг 2:

Используйте --datadirпри инициализации файла генезиса. И команда должна быть --networkidнеnetworkid

Шаг 3:

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

Шаг 4:

Ваша информация об эноде неверна. В соответствии с вашими командами на шаге 3 оба узла должны иметь разные URI enode, а узел 2 должен иметь порт 30304. Либо вы опубликовали неверный вывод, либо создали только один узел.

Шаг 5:

Вам не нужен ?discport=0URI в конце enode.