Я установил эфириум (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)
Я не могу понять, где я ошибся. Итак, мне нужно иметь возможность добавить два вышеупомянутых узла в качестве одноранговых узлов в частной сети блокчейнов. Пожалуйста помоги!
Шаг 2:
Используйте --datadir
при инициализации файла генезиса. И команда должна быть --networkid
неnetworkid
Шаг 3:
Опубликуйте свой вывод для команд, чтобы мы могли проверить, успешно ли вы запустили частную цепочку блоков с пользовательским блоком генезиса.
Шаг 4:
Ваша информация об эноде неверна. В соответствии с вашими командами на шаге 3 оба узла должны иметь разные URI enode, а узел 2 должен иметь порт 30304. Либо вы опубликовали неверный вывод, либо создали только один узел.
Шаг 5:
Вам не нужен ?discport=0
URI в конце enode.
никсмак