Не актуально
July 21, 2022

BlockPI

Децентрализация - это особенность блокчейна, и миссия BlockPI - внедрить ее в инфраструктуру, вернуть D в dApp и вернуть власть и конфиденциальность пользователям. В соответствии с этой ведущей идеологией команда BlockPI разработала и построила децентрализованную структуру сети, чтобы гарантировать быстрый отклик и лучшую доступность для конечных пользователей.

Структура BlockPI

BlockPI Hub

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

64-bit Linux distribution

CPU with 6 cores

32GB RAM

4TB SSD

Static public IP (ipv4)

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— ***...

заменить на key

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

Оригинал: https://testnet-docs.blockpi.io/