Как добавить узел эфириума в уже существующий блокчейн, не зная файла генезиса?

Я новый блокчейн Цель: я хочу добавить новый узел в уже работающий блокчейн.

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

Проблема: у меня нет gensis.json для создания такого же блока gensis на новом узле.

Попытка: я пытался настроить блок gensis, но значение живого блока gensis блокчейна отличается от недавно установленного в локальной системе. Проверено подключением к консоли geth и выполнением следующей команды в консоли.

admin.nodeInfo

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

admin.addPeer("endoevaluefromec2instance")

когда я перечисляю одноранговые узлы в экземпляре ec2, он показывает счетчик 0.

0

Примечание: я могу подключиться к блокчейну с помощью модуля web3, поэтому я не думаю, что есть проблема с подключением. Вопрос:

  1. Как я могу создать файл gensis.json из уже запущенного экземпляра etherum?
  2. Есть ли другой способ добавить узел к уже запущенному экземпляру или добыть транзакцию?
  3. Как я могу сделать резервную копию уже запущенной цепочки блоков и восстановить ее в системе?

person Shivam Kumar    schedule 12.11.2020    source источник
comment
У вас есть доступ к другим узлам, как к файловым каталогам?   -  person Ming    schedule 08.12.2020
comment
@Ming, спасибо за ответ, на самом деле мне нужно создать узел и добавить его в сеть, чтобы у меня было несколько запущенных узлов. У меня есть доступ к уже работающему узлу etherum.   -  person Shivam Kumar    schedule 08.12.2020


Ответы (1)


Поскольку у вас есть доступ к существующему узлу и вы предполагаете, что они запускают аналогичный клиент, вы можете фактически скопировать папку chaindata на новый узел, а затем указать datadir нового узла.

Ex:

Если ваша папка geth datadir находится в /root/.ethereum, скопируйте весь chaindata из существующего узла в новый узел. Если ваш новый узел не имеет каталога файлов geth, вы можете скопировать каталог ../geth вместо ../geth/chaindata.

Затем запустите клиент geth с аргументом --datadir, подобным этому

$ geth --datadir /root/.ethereum/

Тогда вы сможете admin.addPeer, и синхронизация должна выполняться правильно.

person Ming    schedule 09.12.2020