Как протестировать контракт на Truffle с несколькими узлами?

Я пользователь трюфеля. Я хотел бы создать один контракт и протестировать его. При тестировании я хотел бы настроить три узла, связать их, получить доступ к контракту и протестировать его. Это возможно? Или я делаю странные вещи? Пожалуйста, скажите мне, если это возможно.

  • узел 1 rpcport: 8101,
  • узел2 rpcport:8102,
  • узел 3 rpcport: 8103,

Я настроил. Я использовал admin.addPeerкоманду, свяжи их.

Затем, чтобы развернуть этот контракт на node1, я выполнил truffle migrateкоманду.

Затем, чтобы создать приложение, которое я создал с помощью Truffle на узле 1, я выполнил truffle buildкоманду.

И я хотел бы создать приложение на узле 2, узле 3, а затем получить доступ к тому же контракту. ← Как поступить?

Интересно, а использование нескольких узлов служит какой-либо цели? плюсов не вижу,

Ответы (1)

Кажется, я вижу, что ты ищешь.

Можно ли с уверенностью сказать, что вы просто хотите протестировать немного более реалистичную сеть с более чем одним участвующим узлом и более чем одним участвующим клиентом?

Если это так, вы должны быть в состоянии разделить проблемы.

Частная цепочка Вы можете настроить частную цепочку с тремя узлами. Если цепочка работает должным образом, контракт, который вы развертываете на одном узле, будет добыт майнером (любым узлом или узлами, которые добывают эту цепочку) и в конечном итоге будет развернут на всех узлах, когда он будет добыт. То же самое для транзакций и событий, если таковые имеются. Каждый узел в сети Ethereum имеет одинаковое представление о данных консенсуса. Просто невозможно не развернуть контракт на всех узлах.

Процесс сборки Front End Truffle (2.x) объединяет загрузочный код с вашим приложением и помещает объединенный файл в ./buildпапку. Это не связано с тем, как этот код загружается в браузер.

Внешний интерфейс обычно обслуживается из постоянного местоположения, поэтому использование рабочей станции сборки в качестве веб-сервера является допустимым вариантом. Вы хотите оставить RPC на порту по умолчанию 8545 или, по крайней мере, на всех клиентах, поскольку один и тот же внешний интерфейс должен работать везде. Я бы придерживался значения по умолчанию, чтобы однажды он работал в тестовой или основной сети для людей, использующих настройки по умолчанию. Можно с уверенностью сказать, что вашему внешнему интерфейсу требуется узел Ethereum с RPC на порту по умолчанию.

Надеюсь, поможет.

RPC и rpcport — это одно и то же?
rpcявляется удаленным вызовом процедуры. Он имеет ряд свойств, таких как включение/отключение, адрес для прослушивания и порт для прослушивания ( rpcport).