Это пошаговая инструкция по запуску ноды Parastate и настройке валидатора в проекте ParaState.
Рекомендуемые параметры ПК
- CPU: 2.0 GHz x86–64 CPU
- Memory: 8GB RAM
- Disk: 500GB High-Speed Storage (SSD)
- Ubuntu 18.04 or Ubuntu 20.04
Шаг 1. Подготовка компонентов
apt update
apt install -y \
software-properties-common \
wget \
cmake \
ninja-build \
curl \
git \
libboost-all-dev \
llvm-dev \
liblld-10-dev \
clang# Устанавливаем nodejs
curl -sL https://deb.nodesource.com/setup_14.x | bash
apt install -y nodejs# Устанавливаем yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list
apt update && apt install -y yarn# Устанавливаем rust
curl https://sh.rustup.rs -sSf | sh -s -- -y
source $HOME/.cargo/env
rustup update nightly && rustup update stable
rustup target add wasm32-unknown-unknown --toolchain nightly# Устанавливаем tmux
apt install tmux
Шаг 2. Создаем ключи
# Устанавливаем subkey tool
curl https://getsubstrate.io -sSf | bash -s -- --fast
source ~/.cargo/env
cargo install --force subkey --git https://github.com/paritytech/substrate --version 2.0.1 --locked# Создаем мнемоник фразу и ключи sr25519
subkey generate --scheme sr25519
Далее
сохраняем данные таким образом:
# Используем полученную мнемоник фразу и получаем ключи ed25519
subkey inspect --scheme ed25519 "Ваша мнемоник фраза"
Далее:
После данного действия тоже сохраняем данные
Шаг 3. Запускаем ноду
Официальная страница загрузки файлов через GitHub.
mkdir -p ~/parastate-node
cd ~/parastate-node
wget https://github.com/ParaState/frontier/releases/download/v0.21.7.15/parastate-node.tar.gz
wget https://github.com/ParaState/frontier/releases/download/v0.21.7.15/2021-07-15-spec-raw.json
tar zxvf parastate-node.tar.gz
rm -f parastate-node.tar.gz
После загрузки всех компонентов создаем новый экран через tmux.
tmux new -s state
И уже в нем запускаем свою ноду ParaState.
export YOUR_NODE_NAME='НАЗВАНИЕ ВАШЕЙ НОДЫ'
cd ~/parastate-node
LD_LIBRARY_PATH=. ./parastate-node \
--execution=Native \
--base-path ./data \
--chain ./2021-07-15-spec-raw.json \
--port 30333 \
--rpc-port 9933 \
--ws-port 9944 \
--validator \
--telemetry-url 'wss://telemetry.polkadot.io/submit/ 0' \
--name "$YOUR_NODE_NAME" \
--bootnodes "/ip4/13.112.97.203/tcp/30333/p2p/12D3KooWCW1zfn6uMNbS5Skv5399mpmiAa3yC925EaCDNkgsEimn"
Ждем когда нода начнет работать:
После синхронизации проверьте свою ноду Polkadot Телеметрии.
Нода установлена.
Шаг 4. Становимся валидатором:
Сначала используем команду,
ssh -N -L 9944:127.0.0.1:9944 root@ВАШ IP VPS
Переходим во вкладку Разработчик и выбираем RPC вызовы. Настраиваем модуль author и функцию InsertKey, и отправляем вызов RPC.
Далее создаем еще один вызов но уже с другими параметрами.
Теперь переходим во вкладку Аккаунты и выбираем пункт Добавить новый аккаунт. Вставляем свою мнемоник фразу из шага 2 и создаем аккаунт.
После переходим во вкладку Настройки и выбираем пункт Разработчик. Вставляем в открывшемся окне следующий код и сохраняем.
{
"Address": "MultiAddress",
"LookupSource": "MultiAddress",
"Keys": "SessionKeys2",
"Account": {
"nonce": "U256",
"balance": "U256"
},
"Transaction": {
"nonce": "U256",
"action": "String",
"gas_price": "u64",
"gas_limit": "u64",
"value": "U256",
"input": "Vec<u8>",
"signature": "Signature"
},
"Signature": {
"v": "u64",
"r": "H256",
"s": "H256"
}
}
Для того, чтобы стать валидатором нам надо получить тестовые токены. Переходим в кран ParaState и вводим свой Public key(hex) sr25519 из шага 2.
Далее опять переходим во вкладку Разработчик и выбираем RPC вызовы. Настраиваем модуль author и функцию rotateKeys(), и отправляем вызов RPC.
Копируем получившийся ключ. Теперь нам надо отправить тестовую транзакцию. Переходим во вкладку Разработчик и выбираем пункт Экстринзики (Extrinsics). Выбираем session and setKeys(keys, proof) и вставляем ключ, который скопировали.
Отправляем транзакцию, подтвердив ее паролем от аккаунта.
Нода запущена, валидатор создан. Отписываем админам свой Public key(hex) sr25519 из шага 2 и ждем когда подтвердят вас в валидаторы.