April 25, 2022

Penumbra

тестовая сеть Philophrosyne

Системный требования: 2 CPU 4 RAM 40 SSD

Арендую тут: тык

Обновление ( если стоит предыдущая сеть)

cd penumbra && git pull
git checkout 008-philophrosyne && cargo update
cargo build --release --bin pcli

После обновления сбросьте кошелек

cargo run --release --bin pcli wallet reset

Установка на новый сервер

Обновляем репозитории и устанавливаем необходимое ПО

sudo apt update && sudo apt upgrade -y
sudo apt install make clang pkg-config libssl-dev build-essential tmux -y

Устанавливаем rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

(нажимаем 1)

source ~/.cargo/env

Устанавливаем ноду

git clone https://github.com/penumbra-zone/penumbra
cd penumbra && git checkout 008-philophrosyne && cargo update
cargo build --release --bin pcli

Генерируем новый кошелек или восстанавливаем ранее созданный. После сохраняем penumbra_wallet.json из /root/.local/share/pcli/

Создать новый кошелек

cargo run --quiet --release --bin pcli wallet generate

Экспортировать кошелек

cargo run --quiet --release --bin pcli wallet export

Импортировать кошелек

cargo run --quiet --release --bin pcli wallet import <seed>

Включаем логи

export RUST_LOG=info

Cинхронизируемся

cargo run --quiet --release --bin pcli sync

Просим тестовые токены в дискорде в канале #testnet-faucet

Проверяем баланс

cargo run --quiet --release --bin pcli balance

Отправляем транзакции

cargo run --quiet --release --bin pcli tx send 5penumbra --to <address>

Отправка монет в стейк

Смотрим список текущих валидаторов

cargo run --quiet --release --bin pcli stake list-validators

Делегируем 10 монет валидатору

cargo run --quiet --release --bin pcli stake delegate 10penumbra --to penumbravalid1hz7u...

Показать делегации

cargo run --quiet --release --bin pcli stake show

Отменить делегирование

cargo run --quiet --release --bin pcli stake undelegate 1delegation_penumbraval

PD и Tendermint

Устанавливаем GO

wget https://golang.org/dl/go1.17.5.linux-amd64.tar.gz; \
rm -rv /usr/local/go; \
tar -C /usr/local -xzf go1.17.5.linux-amd64.tar.gz && \
rm -v go1.17.5.linux-amd64.tar.gz && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile && \
source ~/.bash_profile && \
go version

Клонируем репозиторий

cargo build --release --bin pd

Устанавливаем tendermint

cd $HOME && git clone https://github.com/tendermint/tendermint.git && cd tendermint
git checkout v0.35.4
make install
tendermint version

Инициализируем

tendermint init full

Добавляем peers

peers="[email protected]:26656,[email protected]:26656"
sed -i.bak -e "s/^persistent-peers =.*/persistent-peers = \"$peers\"/" $HOME/.tendermint/config/config.toml

Скачиваем Genesis

wget -O $HOME/.tendermint/config/genesis.json "https://raw.githubusercontent.com/penumbra-zone/penumbra/main/testnets/008-philophrosyne/genesis.json"

Запускаем pd в отдельном окне tmux

cd $HOME/penumbra && tmux new-session -s pd
export RUST_LOG="warn,pd=debug,penumbra=debug,jmt=info"
cargo run --release --bin pd start --rocks-path $HOME/.rocksdb

Запускаем tendermint в отдельном окне tmux

(cначала сворачиваем окно tmux c pd нажав CTRL+B потом D)

tmux new-session -s tendermint
tendermint start

Полезные команды

Все команды выполняются из директории

cd $HOME/penumbra

Очищаем блокчейн (старого тестнета)

cargo run --quiet --release --bin pcli wallet reset

Удаляем кошелек

cargo run --quiet --release --bin pcli wallet delete

Поблагодарить можно +rep в чате :)