Сторожевые узлы — это один из способов защитить валидаторов от атаки DOS, не подвергая их прямому доступу в Интернет. Сторожевые узлы — это полные узлы, которые подключаются к другим валидаторам и одноранговой сети и изолируют валидатор. Узел валидатора (тот, у которого есть ключи подписи) изолирован от остальной части сети сплетен и подключен только к сторожевому узлу (узлам).
Эта задача состоит в том, чтобы создать конфигурацию узла часового и скрипт, который может запускать два отдельных узла и соединять их друг с другом, чтобы один был общедоступным в сети p2p (сторожевой), а другой подключался только к часовому (валидатор). ). Валидатор должен по-прежнему иметь возможность участвовать в консенсусе Polkadot в тестовой сети Александра. Когда все заработает, напишите краткое руководство о том, как кто-то будет это развертывать. Вы можете основывать руководство на текущем руководстве по валидатору для Polkadot. Однако не повторяйте уже написанный там контент, вместо этого напишите свое руководство как «расширение» к уже существующему.
Статус проблемы: 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 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gitcoinbot жив, скоро будет обновление
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@agutsal очень жду! :)
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gitcoinbot подожди немного
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gitcoinbot работает
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@Web3Foundation пытался собрать с помощью polkadot Dockerfile .
Команда docker build --tag polkadot -f Dockerfile .
завершается с ошибкой:
Два раза пробовал - тот же результат.
@agutsal Вы строите из ветки master или из ветки v0.4? Возможно, лучше собрать v0.4
, так как он более стабилен и будет подключаться к тестовой сети Александра.
Пожалуйста, свяжитесь с @logan:web3.foundation в Riot для более оперативного общения.
Еще хуже на v0.4
:
@lsaether @Web3Foundation
@lsaether что такое Riot? Дайте ссылку плз
Похоже, вы не компилируете двоичный файл Wasm перед запуском cargo build
, попробуйте сначала запустить скрипт в scripts/build.sh
@lsaether Я пока что запускаю docker/build.sh
. Я предполагаю, что это работает, но из того, что я вижу, это не так;)
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@lsaether @Web3Foundation кажется, я исправил Dockerfile PR #308
Пожалуйста, объедините.
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gitcoinbot в разработке
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gitcoinbot говорит о PR #308
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gitcoinbot заткнись пожалуйста
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gitcoinbot
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gitcoinbot только что закончил обсуждение недавнего PR WIP и продолжает работать
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
лол, извините, я заглушил @gitcoinbot на 100 дней @agutsal
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@Web3Foundation, спасибо
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@Web3Foundation кажется, что звук не работает ;(
@gitcoinbot да, я все еще работаю над конфигурацией сети для создания докеров, чтобы запускать один узел за другим. @Web3Foundation , пожалуйста, подтвердите, что это то, что вы ожидаете.
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 1 день | 3 дня | 5 дней | 10 дней | 100 дней
@gutsal-arsen Привет от Gitcoin Core — вы все еще работаете над этой проблемой? Пожалуйста, отправьте WIP PR или комментарий в течение следующих 3 дней, иначе вы будете удалены из этой заявки, и она будет возвращена в статус «Открыта». Пожалуйста, дайте нам знать, если у вас есть вопросы!
Только для спонсоров: отложить предупреждения на 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
затем передайте его валидатору следующим образом:
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) отправил __:
@Web3Foundation, пожалуйста, взгляните на представленную работу:
Статус проблемы: 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.
Закрытие, так как сторожевые узлы устарели .
Самый полезный комментарий
лол, извините, я заглушил @gitcoinbot на 100 дней @agutsal