BlockPI
Децентрализация - это особенность блокчейна, и миссия BlockPI - внедрить ее в инфраструктуру, вернуть D в dApp и вернуть власть и конфиденциальность пользователям. В соответствии с этой ведущей идеологией команда BlockPI разработала и построила децентрализованную структуру сети, чтобы гарантировать быстрый отклик и лучшую доступность для конечных пользователей.
Структура BlockPI
BlockPI Hub - это сервер, управляющий системой пользователей, системой рейтинга узлов и аутентификаторов, а также системой учета. Здесь хранится регистрационная информация пользователей, информация об учетной записи и KYC-информация. Он также постоянно тестирует узлы сети и выставляет им оценки, которые являются источником балансировщика нагрузки BlockPI Load Balancer. Здесь подсчитываются доходы и расходы всей сети, а также награды, выдаваемые персонажам в системе. Как видите, эта часть представляет собой централизованный сервис. В более поздних версиях мы постепенно децентрализуем эту часть функций и развернем их в смарт-контракты, оставив лишь небольшую часть основного сервиса.
HyperNode
HyperNode - это основные децентрализованные узлы службы RPC, которые обрабатывают запросы RPC и отправляют ответы пользователям через шлюз. HyperNode обычно запускается с полным узлом целевого блокчейна (цели запроса RPC). HyperNode - это первая децентрализованная роль в сети BlockPI. Начиная с этапа тестовой сети №1, сторонние операторы могут присоединяться и запускать HyperNode.
Gateway
Шлюзы собирают и сортируют запросы пользователей и направляют их на соответствующий узел HyperNode с помощью балансировщика нагрузки BlockPI. Шлюз - это вторая децентрализованная роль в сети BlockPI, что означает, что в ближайшем будущем регистрация будет открыта для третьих лиц.
Валидатор
Валидаторы - это отдельные узлы блокчейна, контролирующие каждую роль в сети. Это гарантия здоровой работы сети. С определенной периодичностью и по случайному алгоритму валидатор получает данные от HyperNode и Gateway и записывает их в блок. С помощью протокола консенсуса данные проверяются и записываются другими валидаторами. Таким образом, Валидаторы становятся сетью блокчейн и контролируют другие роли в сети.
Fisherman
Fisherman - это еще одна роль, отвечающая за безопасность сети, и ее можно рассматривать как особый вид пользователя. Он проверяет правильность функционирования гиперузлов и шлюзов так же, как и обычные пользователи, отправляющие запросы.
Установка HyperNode
1.Загрузка
# Загрузите исходные файлы и файл конфигурации
Одной командой, использую последний релиз https://github.com/BlockPILabs/testnets/releases/latest
mkdir ~/HyperNode3
cd ~/HyperNode4
version=`wget -qO- -t1 -T2 "https://api.github.com/repos/BlockPILabs/testnets/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g'`5
wget https://github.com/BlockPILabs/testnets/releases/download/${version}/HyperNode6
wget https://github.com/BlockPILabs/testnets/releases/download/${version}/config.yml7
chmod +x ./HyperNode8
mv ./HyperNode /usr/local/bin/В каталоге HyperNode - исполняемый файл, а config.yaml - файл конфигурации.
cd ~/HyperNode
2.Инициализация
Инициализация создаст открытый ключ в каталоге, где находится текущая система, который используется для шифрования статистики. Он создаст каталог с именем 'keystore' и закрытый ключ в этом каталоге. Затем адрес будет сгенерирован и экспортирован.
HyperNode init
Вводим пароль и повторяем его, копируем и сохраняем в нужное место ключи и пароль.
Password: Repeat password:
Файл keystore находится в каталоге ./keystore
Вставляем вместо '{passwd}' свой пароль и отправляем его в директорию указанную ниже.
echo '{passwd}' > ~/HyperNode/passwd.txtПожалуйста, убедитесь, что порт 8090 открыт, иначе вы не сможете принимать запросы.
3.Правим config.toml
Заходим в config.toml и проверяем, меняем значения на свои.
Приведенные ниже конфигурации должны быть настроены для каждого пользователя отдельно.
Обязательно проверьте правильность своих настроек,provider, maxage
и др.
Другие параметры остаются по умолчанию. В противном случае HyperNode может работать неправильно.
# provider. Set provider id, input erc20 address. You can use this account to log in to the explorer to view node status and revenue. provider: "0x***********"
# chain. Chain configurations are for the target blockchain chain: name: "klaytn" network: "8217"
# Node. To set up the back-end of the target blockchain network (for both rpc and archive node). node: addr: "http://127.0.0.1:31271"
# beacon. Connect to the nearest beacon node to get the gateways list information and improve HyperNode performance.
# Overwrite {beacon_ip}
beacon:
[ "{beacon_ip}:9090" ]
# Name of the HyperNode:
name: "{name}"# The expiration time (in hours). maxage is the maximum expiration time. rotationtime is the time window to record data. logger: maxage: "2" rotationtime: "1"
# Snapshot expiration time (in hours). snapshot: packedttl: "1"
Существует несколько вариантов {beacon_ip}. Выберите вариант с наименьшей задержкой пинга.
141.95.205.50 15.235.145.122 15.235.11.42
4.Старт HyperNode
--datadir dir # The main directory of the HyperNode --keystore_path keystore # The path of the keystore files --password_path ./passwd.txt # The passwd.txt file created previously
Формат команды запуска:
Обратите внимание, что нужно изменить название данного файла UTC— ***...
cd ~/HyperNode HyperNode --datadir ~/HyperNode --keystore_path ~/HyperNode/keystore/key --password_path passwd.txt
Либо запустить данную команду только использовать своё название файла, иначе ничего не выйдет(в помощь Tab):
cd ~/HyperNode HyperNode --datadir ~/HyperNode --keystore_path ~/HyperNode/keystore/UTC--2022-03-14T10-28-00.437250400Z--2fe38d190b8813155db481d1a42d0d328114b37d --password_path ~/HyperNode/passwd.txt
Создаем сервисный файл:
Правьте, как Вам нужно назвать демона и обратите внимание на строку ExecStart=
sudo tee /etc/systemd/system/HyperNoded.service > /dev/null <<EOF [Unit] Description=HyperNoded After=network-online.target [Service] User=root WorkingDirectory=/root/HyperNode ExecStart=/usr/local/bin/HyperNode --datadir /root/HyperNode --keystore_path keystore/key --password_path passwd.txt LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF
Настройка сервера на запуск HyperNode:
systemctl enable HyperNode
systemctl start HyperNode
systemctl stop HyperNode
systemctl status HyperNode
tail log/HyperNode.log