Что такое использование RLPx ethereum и как они используют его в экосистеме ethereum?

Я понимаю, что RLPx - это протокол, основанный на Kademlia DHT, но в одном я не уверен - зачем нужен этот протокол или проблема, которую он пытается решить?

Далее говорится, что цель состоит в том, чтобы разрешить несколько протоколов через одно соединение, что это значит?

а также что означает эта часть

RLPx - это криптографический пакет одноранговых сетей и протоколов, который обеспечивает транспорт и интерфейс общего назначения для приложений, которые могут обмениваться данными через сеть p2p.

1 ответ

Я пытаюсь понять то же самое, я объясню, что я понял до сих пор (в надежде, что, если я ошибаюсь, кто-то меня поправит):

Прежде всего, RLPx - это набор протоколов, а не единый протокол. С одной стороны, он поддерживает оверлейную сеть p2p с помощью модифицированной версии протокола обнаружения узла kademlia (с использованием сообщений UDP). Мы могли бы назвать это протоколом обнаружения узлов RLPx.

В первый раз, когда два партнера встречаются, они должны выполнить двухфазное рукопожатие (т.е. два разных рукопожатия). В первом рукопожатии они обмениваются некоторыми криптографическими секретами (подробности объясняются здесь (в спецификации rlpx)), которые используются для последующей связи между ними. Следовательно, последующие сообщения шифруются и аутентифицируются.

Во втором рукопожатии они обмениваются своими возможностями, то есть какими подпротоколами devp2p они поддерживают (одноранговые узлы могут поддерживать несколько протоколов). Это второе рукопожатие можно считать уже частью проводного протокола devp2p (сообщение Hello). В документации сказано, что:

узлы Vp2p связываются, отправляя сообщения с использованием RLPx

(на этот раз с использованием TCP-сообщений). Я перечислю некоторые проводные подпротоколы devp2p, которые широко используются:

  • eth, субпротокол ethereum wire, используемый для обмена информацией о блокчейне
  • шептать
  • Les Light Ethereum - это протокол, разработанный для светлых клиентов.
  • ... Если вы хотите, вы можете написать свой собственный подпротокол https://github.com/ethereum/go-ethereum/wiki/Peer-to-Peer.

Поэтому сообщения RLPx зашифрованы и аутентифицированы, и поверх них вы можете общаться с различными протоколами. Можно сказать, что RLPx - это протокол транспортного уровня, а devp2p и его подпротоколы - это протоколы прикладного уровня.

Другие вопросы по тегам