General-grants-program: Создайте конфигурацию сторожевого узла для валидаторов Polkadot с руководством

Созданный на 11 июн. 2019  ·  82Комментарии  ·  Источник: w3f/General-Grants-Program

Сторожевые узлы — это один из способов защитить валидаторов от атаки DOS, не подвергая их прямому доступу в Интернет. Сторожевые узлы — это полные узлы, которые подключаются к другим валидаторам и одноранговой сети и изолируют валидатор. Узел валидатора (тот, у которого есть ключи подписи) изолирован от остальной части сети сплетен и подключен только к сторожевому узлу (узлам).

Эта задача состоит в том, чтобы создать конфигурацию узла часового и скрипт, который может запускать два отдельных узла и соединять их друг с другом, чтобы один был общедоступным в сети p2p (сторожевой), а другой подключался только к часовому (валидатор). ). Валидатор должен по-прежнему иметь возможность участвовать в консенсусе Polkadot в тестовой сети Александра. Когда все заработает, напишите краткое руководство о том, как кто-то будет это развертывать. Вы можете основывать руководство на текущем руководстве по валидатору для Polkadot. Однако не повторяйте уже написанный там контент, вместо этого напишите свое руководство как «расширение» к уже существующему.

Bounty Bounty-s

Самый полезный комментарий

лол, извините, я заглушил @gitcoinbot на 100 дней @agutsal

Все 82 Комментарий

Статус проблемы: 1. Открыто 2. Начато 3. Отправлено 4. Готово


__Теперь к этому выпуску прикреплено финансирование в размере 150,0 DAI (150,0 долларов США при 1,0 доллара США за DAI).__

Статус проблемы: 1. Открыто 2. Начато 3. Отправлено 4. Готово


__Рабочие подали заявки на начало работы__.

Каждый из этих пользователей заявил, что может завершить работу через 12 месяцев.
Пожалуйста, ознакомьтесь с их планами действий ниже:

1) гуцал-арсен подал заявку на начало работы _(только для спонсоров: одобрить работника | отклонить работника )_.

Создайте конфигурацию с двумя узлами (сентри и валидатор), создайте руководство по развертыванию.

Узнайте больше на странице сведений о выпуске Gitcoin .

@Web3Foundation применяется к Gitcoin. Не могли бы вы одобрить?

Эй , @agutsal , gitcoin не работает в данный момент, как только будет рассмотрено возобновление работы сервисов!

Статус проблемы: 1. Открыто 2. Начато 3. Отправлено 4. Готово


__Работа начата__.

Каждый из этих пользователей заявил, что может завершить работу через 9 месяцев и 1 неделю.
Пожалуйста, ознакомьтесь с их планами действий ниже:

1) гуцал-арсен допущен к работе.

Создайте конфигурацию с двумя узлами (сентри и валидатор), создайте руководство по развертыванию.

Узнайте больше на странице сведений о выпуске Gitcoin .

@agutsal вы получили разрешение на работу.

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gitcoinbot жив, скоро будет обновление

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@agutsal очень жду! :)

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gitcoinbot подожди немного

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gitcoinbot работает

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@Web3Foundation пытался собрать с помощью polkadot Dockerfile .
Команда docker build --tag polkadot -f Dockerfile . завершается с ошибкой:

image

Два раза пробовал - тот же результат.

@agutsal Вы строите из ветки master или из ветки v0.4? Возможно, лучше собрать v0.4 , так как он более стабилен и будет подключаться к тестовой сети Александра.

Пожалуйста, свяжитесь с @logan:web3.foundation в Riot для более оперативного общения.

Еще хуже на v0.4 :
image

@lsaether @Web3Foundation

@lsaether что такое Riot? Дайте ссылку плз

Похоже, вы не компилируете двоичный файл Wasm перед запуском cargo build , попробуйте сначала запустить скрипт в scripts/build.sh

@lsaether Я пока что запускаю docker/build.sh . Я предполагаю, что это работает, но из того, что я вижу, это не так;)

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@lsaether @Web3Foundation кажется, я исправил Dockerfile PR #308

Пожалуйста, объедините.

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gitcoinbot в разработке

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gitcoinbot говорит о PR #308

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gitcoinbot заткнись пожалуйста

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gitcoinbot

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gitcoinbot только что закончил обсуждение недавнего PR WIP и продолжает работать

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

лол, извините, я заглушил @gitcoinbot на 100 дней @agutsal

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@Web3Foundation, спасибо

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@Web3Foundation кажется, что звук не работает ;(
@gitcoinbot да, я все еще работаю над конфигурацией сети для создания докеров, чтобы запускать один узел за другим. @Web3Foundation , пожалуйста, подтвердите, что это то, что вы ожидаете.

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!

  • [x] напоминание (3 дня)
  • [ ] эскалация в моды (6 дней)

Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней

@ Web3Foundation Я все еще жду вашего ответа на мое объяснение в предыдущем комментарии выше. Является ли настраиваемая конфигурация виртуальной сети, составленная из докеров, такой, как вы ожидаете, когда 2 узла работают один за другим?

Привет , @agutsal, извини за долгий ответ; @lsaether или @fgimenez , вероятно, могли бы ответить на вопрос о

«Вы ожидаете, что настраиваемая конфигурация виртуальной сети, составленная из докеров, будет иметь 2 узла, работающих один за другим?»

Вероятно , @lsaether @fgimenez оба в отпуске, @Web3Foundation ? ;)

Теперь снова пропингую, @agutsal просто был очень занят, еще раз извиняюсь за ожидание.

Правильно, два узла, один работает "позади" другого. Сторожевой узел обращен к общедоступной сети (и подключается к остальной части сети p2p). Узел валидатора находится за брандмауэром и может взаимодействовать только с сторожевым узлом.

* общедоступная сеть * <---> Sentry node <-- firewall --> Validator node

https://guide.kusama.network/en/latest/try/secure-validator-setup/

Не стесняйтесь пинговать меня, если у вас есть другие вопросы.

@laboon еще раз - мы оба говорим о конфигурации частной сети Compose.

Извините, я просто указал на это и неправильно понял ваш вопрос. Федерико, который, как мне кажется, составил эту просьбу, на этой неделе в отпуске.

_ "Является ли пользовательская конфигурация виртуальной сети, созданная с помощью docker, тем, что вы ожидаете от двух узлов, работающих один за другим?""_

Использование Docker Compose для создания изолированной частной сети, безусловно, является одним из способов сделать это и должно быть приемлемым. Однако я не знаю, было ли это первоначальным ожиданием (я не вижу здесь ничего противоположного - не уверен, что у вас есть личные сообщения в другом месте).

Не стесняйтесь, дайте мне знать, если я не ответил на ваш вопрос.

@agutsal , насколько я понимаю, оверлейных сетей, созданных docker-compose, недостаточно, чтобы изолировать узел валидатора от остальной части сети polkadot; как только валидатор подключится к своим загрузочным узлам, он будет известен сети, и если вы не предпримете никаких дополнительных мер, другие одноранговые узлы смогут подключиться к нему. Вы можете убедиться во всем этом, запустив сеть с помощью файла docker compose, например:

version: '3'
services:
  node:
    image: parity/polkadot:v0.4.4
    container_name: polkadot-node 
    command: >
      --chain=alexander --validator 
    networks: 
      testing_net: 
        ipv4_address: 172.28.1.1 

networks:
  testing_net:
    ipam:        
      driver: default 
      config:            
        - subnet: 172.28.0.0/16  

Этот единственный узел имеет внутренний IP-адрес, не объявляет какой-либо p2p-порт для доступа извне и не имеет дополнительных узлов в локальной оверлейной сети. Когда я запускаю узел:

$ docker-compose -f dcp.yml up --force-recreate 
Recreating polkadot-node ... done
Attaching to polkadot-node
polkadot-node | 2019-08-12 08:52:16 Parity Polkadot
polkadot-node | 2019-08-12 08:52:16   version 0.4.4-aa49754-x86_64-linux-gnu
polkadot-node | 2019-08-12 08:52:16   by Parity Team <[email protected]>, 2017-2019
polkadot-node | 2019-08-12 08:52:16 Chain specification: Alexander
polkadot-node | 2019-08-12 08:52:16 Node name: dcp-test
polkadot-node | 2019-08-12 08:52:16 Roles: AUTHORITY
polkadot-node | 2019-08-12 08:52:16 Generated a new keypair: 568dbb11bcc8f4bd1480d381e2ee87f9e1ff3798c99efa23f550dcce7417a506 (5E2C5Usq...)
polkadot-node | 2019-08-12 08:52:16 Initializing Genesis block/state (state: 0xb7d6…2707, header-hash: 0xdcd1…025b)
polkadot-node | 2019-08-12 08:52:16 Loaded block-time = 6 seconds from genesis on first-launch
polkadot-node | 2019-08-12 08:52:16 Loading GRANDPA authority set from genesis on what appears to be first startup.
polkadot-node | 2019-08-12 08:52:16 Best block: #0
polkadot-node | 2019-08-12 08:52:16 Local node identity is: QmWg2c4V6qq1hFYUcbkmckUgtMfWiC7aq5u9e8X5Sq45Tu
polkadot-node | 2019-08-12 08:52:16 Listening for new connections on 127.0.0.1:9944.
polkadot-node | 2019-08-12 08:52:17 Using authority key 5E2C5Usqi8UhQLCB1CGobhB5aGMg6zWxvg2h7Vq39tWbj14Q
polkadot-node | 2019-08-12 08:52:18 Discovered external node address: /ip4/92.176.206.107/tcp/30333/p2p/QmWg2c4V6qq1hFYUcbkmckUgtMfWiC7aq5u9e8X5Sq45Tu
polkadot-node | 2019-08-12 08:52:22 Syncing, target=#2614309 (2 peers), best: #256 (0x7e81…c0f7), finalized #0 (0xdcd1…025b), ⬇ 84.0kiB/s ⬆ 5.9kiB/s
polkadot-node | 2019-08-12 08:52:28 Syncing 93.9 bps, target=#2614310 (4 peers), best: #896 (0x6da8…cd8f), finalized #0 (0xdcd1…025b), ⬇ 30.6kiB/s ⬆ 1.7kiB/s
polkadot-node | 2019-08-12 08:52:35 Syncing 94.4 bps, target=#2614311 (5 peers), best: #1536 (0xf9b0…8351), finalized #0 (0xdcd1…025b), ⬇ 34.8kiB/s ⬆ 3.1kiB/s
polkadot-node | 2019-08-12 08:52:41 Syncing 93.9 bps, target=#2614312 (5 peers), best: #2048 (0xaa1c…3b27), finalized #0 (0xdcd1…025b), ⬇ 40.4kiB/s ⬆ 2.8kiB/s
polkadot-node | 2019-08-12 08:52:46 Syncing 93.4 bps, target=#2614313 (5 peers), best: #2515 (0x8bff…4f0b), finalized #0 (0xdcd1…025b), ⬇ 7.6kiB/s ⬆ 1.3kiB/s
polkadot-node | 2019-08-12 08:52:51 Syncing 93.2 bps, target=#2614314 (5 peers), best: #2981 (0x47ab…67bd), finalized #0 (0xdcd1…025b), ⬇ 6.0kiB/s ⬆ 0.3kiB/s

[..........]

Вы можете видеть, что другие пиры могут легко подключиться к нему сразу после запуска.

Тем не менее, я думаю, что оверлейная сеть — это хороший шаг в правильном направлении, она создает сетевое адресное пространство, известное только членам сети, и вы можете настроить валидатор и общедоступные узлы для ограничения доступа, возможно, используя двоичный файл polkadot. варианты listen-addr и reserved-nodes . Мы предложили безопасную настройку валидатора, в которой используется этот подход, но вместо использования оверлейной сети докеров для адресного пространства частной сети он использует VPN для повышения безопасности. Посмотрите здесь https://hackmd.io/QSJlqjZpQBihEU_ojmtR8g#Conclusions -and-Proposal

@fgimenez , как упоминалось здесь , не сработает:

# Docker compose file to simulate a sentry node setup.
#
#
# Setup:
#
# Validator A is not supposed to be connected to the public internet. Instead it
# connects to a sentry node (sentry-a) which connects to the public internet.
# Validator B can reach validator A via sentry node A and vice versa.
#
#
# Usage:
#
# 1. Build `target/release/substrate` binary: `cargo build --release`
#
# 2. Start networks and containers: `sudo docker-compose -f scripts/sentry-node/docker-compose.yml up`
#
# 3. Reach:
#   - polkadot/apps on localhost:3000
#   - validator-a: localhost:9944
#   - validator-b: localhost:9945
#   - sentry-a: localhost:9946

version: "3.7"
services:

  validator-a:
    ports:
      - "9944:9944"
    volumes:
      - ../../target/release/substrate:/usr/local/bin/substrate
    image: parity/substrate
    networks:
      - network-a
    command:
      # Local node id: QmRpheLN4JWdAnY7HGJfWFNbfkQCb6tFf4vvA6hgjMZKrR
      - "--node-key"
      - "0000000000000000000000000000000000000000000000000000000000000001"
      - "--base-path"
      - "/tmp/alice"
      - "--chain=local"
      - "--key"
      - "//Alice"
      - "--port"
      - "30333"
      - "--validator"
      - "--name"
      - "AlicesNode"
      - "--reserved-nodes"
      - "/dns4/sentry-a/tcp/30333/p2p/QmV7EhW6J6KgmNdr558RH1mPx2xGGznW7At4BhXzntRFsi"
      # Not only bind to localhost.
      - "--ws-external"
      - "--rpc-external"
      # - "--log"
      # - "sub-libp2p=trace"
      # - "--log"
      # - "afg=trace"
      - "--no-telemetry"
      - "--rpc-cors"
      - "all"

  sentry-a:
    image: parity/substrate
    ports:
      - "9946:9944"
    volumes:
      - ../../target/release/substrate:/usr/local/bin/substrate
    networks:
      - network-a
      - internet
    command:
      # Local node id: QmV7EhW6J6KgmNdr558RH1mPx2xGGznW7At4BhXzntRFsi
      - "--node-key"
      - "0000000000000000000000000000000000000000000000000000000000000003"
      - "--base-path"
      - "/tmp/sentry"
      - "--chain=local"
      # Don't configure a key, as sentry-a is not a validator.
      # - "--key"
      # - "//Charlie"
      - "--port"
      - "30333"
      # sentry-a is not a validator.
      # - "--validator"
      - "--name"
      - "CharliesNode"
      - "--bootnodes"
      - "/dns4/validator-a/tcp/30333/p2p/QmRpheLN4JWdAnY7HGJfWFNbfkQCb6tFf4vvA6hgjMZKrR"
      - "--bootnodes"
      - "/dns4/validator-b/tcp/30333/p2p/QmSVnNf9HwVMT1Y4cK1P6aoJcEZjmoTXpjKBmAABLMnZEk"
      - "--no-telemetry"
      - "--rpc-cors"
      - "all"
      # Not only bind to localhost.
      - "--ws-external"
      - "--rpc-external"
      # Make sure sentry-a still participates as a grandpa voter to forward
      # grandpa finality gossip messages.
      - "--grandpa-voter"

  validator-b:
    image: parity/substrate
    ports:
      - "9945:9944"
    volumes:
      - ../../target/release/substrate:/usr/local/bin/substrate
    networks:
      - internet
    command:
      # Local node id: QmSVnNf9HwVMT1Y4cK1P6aoJcEZjmoTXpjKBmAABLMnZEk
      - "--node-key"
      - "0000000000000000000000000000000000000000000000000000000000000002"
      - "--base-path"
      - "/tmp/bob"
      - "--chain=local"
      - "--key"
      - "//Bob"
      - "--port"
      - "30333"
      - "--validator"
      - "--name"
      - "BobsNode"
      - "--bootnodes"
      - "/dns4/validator-a/tcp/30333/p2p/QmRpheLN4JWdAnY7HGJfWFNbfkQCb6tFf4vvA6hgjMZKrR"
      - "--bootnodes"
      - "/dns4/sentry-a/tcp/30333/p2p/QmV7EhW6J6KgmNdr558RH1mPx2xGGznW7At4BhXzntRFsi"
      - "--no-telemetry"
      - "--rpc-cors"
      - "all"
      # Not only bind to localhost.
      - "--ws-external"
      - "--rpc-external"

  ui:
    image: polkadot-js/apps
    ports:
      - "3000:80"

networks:
  network-a:
  internet:

@fgimenez хорошо, я бы рассмотрел этот подход после нескольких дней молчания

@agutsal извините за поздний ответ, сочетание зарезервированных узлов и загрузочных узлов - хороший вариант. Как указано в моем предыдущем комментарии, я бы также представил listen-addr в валидаторе с IP-адресом валидатора в оверлейной сети docker compose, чтобы вы могли убедиться, что валидатор принимает соединения только от одноранговых узлов в этом адресном пространстве.

Спасибо за ответ. Из того, что я вижу, они используют образ докера substrate , которым мы не являемся.

В основном я должен следовать этому:
docker run -ti parity/polkadot:v0.4.4 --chain=alex --alice <== запустить часовой
он производит что-то вроде этого, где я должен проверить Discovered external node address
image
затем передайте его валидатору следующим образом:
docker run -ti parity/polkadot:v0.4.4 --chain=local --validator --reserved-nodes /ip4/5.58.235.221/tcp/30333/p2p/QmVUPpkU2LoBMqhagLmF6H2Xnb4ShK8KV2ZzKeJkmGGBkX

Если это правильно, где передать bootnodes ? Если нет - поправьте меня плз, @fgimenez

Как я вижу, вы не должны использовать какой-либо внешний обнаруженный адрес, вместо этого, если вы должны использовать мультиадрес, который включает в себя IP-адрес общедоступного узла в оверлейной сети компоновки докеров. Не уверен, что вы можете узнать это до запуска сети docker compose.

Я упомянул загрузочные узлы только потому, что они появились в приведенном вами примере, они вам нужны только в том случае, если вы собираетесь создавать локальную сеть. Если вы собираетесь присоединиться к alex или (что было бы лучше imo) kusama, загрузочные узлы уже определены в спецификации цепи.

@fgimenez согласно требованию узел валидатора должен подключаться к сторожевому узлу. Мне нужно знать, как это сделать. Вот и все.

Да, это делается путем установки --reserved-nodes в валидаторе с мультиадресом публичных узлов (один зарезервированный узел на публичный узел). Здесь лучше использовать частный адрес общедоступного узла для мультиадреса, имеет ли это смысл?

@fgimenez ;) может быть, просто не знаю формат параметра --reserved-nodes , указывающего мультиадрес. Был бы признателен за образец.

конечно, что-то вроде этого /ip4/<private_ip>/tcp/30333/p2p/<peer_id>

Вы должны установить частный IP-адрес как тот, который назначен общедоступному узлу в оверлейной сети docker compose. Идентификатор узла назначается случайным образом при загрузке, если вы не укажете ключ узла с помощью --node-key . Этот ключ узла должен быть строкой из 64 шестнадцатеричных символов, вы можете попробовать запустить узел локально, установив известный ключ узла, а затем проверив, какой идентификатор узла назначен, и использовать этот идентификатор узла для создания мультиадреса зарезервированного узла.

Итак, для каждого публичного узла:

  • запустите локальный узел с polkadot --node-key=<your_node_key>
  • принять к сведению назначенный идентификатор пира
  • установите команду запуска общедоступного узла, чтобы включить --node-key в предыдущее значение, чтобы убедиться, что он всегда будет иметь один и тот же идентификатор узла.
  • построить мультиадрес как /ip4/<private_ip>/tcp/30333/p2p/<peer_id>

и запустите валидатор с одним набором --reserved-nodes для каждого мультиадреса общедоступного узла.

Позвольте мне знать, если вам нужно что-нибудь еще.

@fgimenez В настоящее время я думаю, как сделать этот двухэтапный процесс в одном файле docker-compose.yml . Скажите, <your_node_key> может быть сгенерирован случайным образом как какой-то UUID?

Что-то вроде этого: $(openssl rand -base64 500 | tr -dc 'a-zA-Z0-9' | fold -w 45 | head -n 1)

Вы можете использовать одну из библиотек libp2p для создания идентификатора узла и связанной с ним пары ключей, например https://github.com/libp2p/js-peer-id node-key — это закрытый ключ длиной 256 бит.

@fgimenez , пожалуйста, просмотрите мой WIP PR

из каталога docker просто запустите docker-compose -f sentry-docker-compose.yml up и посмотрите результат. Кажется, валидатор успешно подключается к часовому в качестве партнера.

Если будет принято, я добавлю еще немного конфигурации и подтолкнуть к слиянию с мастером.

Обязательно посмотрю на следующей неделе :+1:

@fgimenez в мой WIP RP добавлено некоторое обновление
Пожалуйста, дайте мне знать после проверки.

@agutsal выглядит хорошо, он очень похож на https://github.com/paritytech/substrate/blob/master/scripts/sentry-node/docker-compose.yml , верно? Какая польза от добавления его в репозиторий polkadot?

Что ж, @fgimenez на самом деле основан на sentry-node/docker-compose.yml , но имеет существенные отличия: мы можем передать кучу переменных среды для управления обоими контейнерами:

{SENTRY,VALIDATOR}_NODE_KEY
{SENTRY,VALIDATOR}_BASE_PATH
{SENTRY,VALIDATOR}_CHAIN
{SENTRY,VALIDATOR}_PORT
{SENTRY,VALIDATOR}_NAME
VALIDATOR_RESERVED_NODES
SENTRY_BOOTNODES

Это необходимо для запуска sentry/validator с уникальным URI NODE_KEY, RESERVED_NODES/BOOTNODES в общедоступной (не локальной) цепочке.
По умолчанию он работает с 0000000000000000000000000000000000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000000000000000000003

что подходит для тестирования, но не для производства. Также были очищены некоторые избыточные параметры.

Статус проблемы: 1. Открыто 2. Начато 3. Отправлено 4. Готово


__Работу на 150,0 DAI (150,0 долларов США по 1,0 доллара США/DAI) отправил __:

  1. @gutsal-arsen

@Web3Foundation, пожалуйста, взгляните на представленную работу:

  • PR @gutsal-arsen

Статус проблемы: 1. Открыто 2. Начато 3. Отправлено 4. Готово


__Финансирование в размере 150,0 DAI (150,0 долларов США по 1,0 доллара США/DAI), прикрепленное к этому выпуску, было одобрено и выдано @gutsal-arsen.__

@Web3Foundation Спасибо за оплату. Однако я думаю, что мне также нужно исправить документы в рамках текущего проекта. Текущий репозиторий не содержит документов, мне следует клонировать https://github.com/w3f/polkadot-wiki и исправлять их там?

@agutsal конечно; было несколько повторных усилий, поскольку @fgimenez создал инструмент, который, возможно, более успешно решает эту проблему. Мы заплатили из-за ваших неоднократных усилий в экосистеме и текущего соответствующего времени, которое вы потратили на прошлые награды и это.

Не стесняйтесь вносить изменения в документацию и оставлять любые комментарии для проверки.

Спасибо, что дал мне знать. Я поработаю над этим сегодня и дам вам знать @fgimenez @Web3Foundation.

Закрытие, так как сторожевые узлы устарели .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

bobjiang picture bobjiang  ·  5Комментарии

EdwardAThomson picture EdwardAThomson  ·  6Комментарии

EdwardAThomson picture EdwardAThomson  ·  5Комментарии

dfishb picture dfishb  ·  15Комментарии

EdwardAThomson picture EdwardAThomson  ·  9Комментарии