Запуск тестовой сети в кластере

Я запустил тестовую сеть блокчейна в кластере с разными узлами, и у меня есть несколько вопросов о том, как она работает. Если я запускаю более одного клиента geth (узла в цепочке блоков) в одном узле кластера:

  • В чем разница между этим и запуском их на разных узлах кластера?
  • Должны ли все они майнить, чтобы получить последний блок, добавленный в блокчейн? Если один из клиентов geth, работающих в узле кластера, занимается майнингом, другие клиенты geth, работающие в том же узле, также получают последний блок? (Я не очень хорошо понимаю взаимодействие между различными ролями узла, который может быть в блокчейне, например узел майнера или полный узел).
  • Есть ли разница в отправке транзакции между двумя клиентами в узле кластера и двумя клиентами в двух разных узлах?

Напримервведите описание изображения здесь

Ответы (1)

  • Запуск узлов на разных машинах потенциально может дать вам более реалистичную симуляцию основной сети, поскольку у вас будет дополнительная задержка. Но для небольшого кластера это будет почти незаметно. Кроме того, запуск узлов на разных машинах упростит оценку потребностей компьютера в мощности/потребностях в хранении для одного узла. И в целях безопасности проще взломать вашу сеть, если все узлы находятся на одном компьютере.

  • Нет, вам не нужно, чтобы все узлы выполняли майнинг для ретрансляции транзакций. Ретрансляция транзакций — это самая основная роль, которую может иметь узел, и все узлы делают это, по крайней мере.

  • Нет разницы. В конце концов транзакция будет передана всем узлам сети. Если вас беспокоит задержка, вы можете ретранслировать транзакции в разных местах сети. Но мы говорим здесь только о сотнях миллисекунд.

Спасибо за ответ. И, глядя на изображение, знаете ли вы, что произойдет, если я запущу, например, скрипт в узле 1, который отправит tx из GC1, а другой — из GC3, который находится в узле 2? Влияет ли это на задержку?