Penumbra - тестовая сеть Philophrosyne
Важное уточнение — команда не планирует никаких вознаграждений за тестовую сеть - https://discord.com/channels/824484045370818580/824484046335246348/960393830597799956
Обновление
cd penumbra && git pull
git checkout 008-philophrosyne && cargo update
cargo build --release --bin pcli
# После обновления сбросьте кошелек cargo run --release --bin pcli wallet reset
Установка на новом сервере
0. Берем недорогой сервер (к примеру cpx21 - 2/4/40)
1. Обновляем репозитории и устанавливаем необходимое ПО
sudo apt update && sudo apt upgrade -y
sudo apt install make clang pkg-config libssl-dev build-essential tmux -y
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # press 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
4. Генерируем новый кошелек или восстанавливаем ранее созданный. После сохраняем 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>
Penumbra позволяет создавать произвольное количество общедоступных адресов, которые соответствуют вашему основному кошельку
# Добавляем к основному кошельку новые "подкошельки" (при желании) cargo run --quiet --release --bin pcli addr new <new_name_wallet> # Смотрим список кошельков cargo run --quiet --release --bin pcli addr list
При восстановлении всех подкошельков необходимо помимо импорта seed основного кошелька выполнить команды pcli addr new <new_name_wallet>
для восстановления всех подкошельков, что детерминированно сгенерирует тот же адрес, что и раньше. В настоящее время нет механизма для восстановления из сети информации о том, какие адреса вы использовали, но это должно быть решено в будущем
export RUST_LOG=info
cargo run --quiet --release --bin pcli sync
7. Просим тестовые токены в дискорде в канале #testnet-faucet
# Проверяем общий баланс cargo run --quiet --release --bin pcli balance # Проверяем баланс всех кошельков по отдельности cargo run --quiet --release --bin pcli balance -b
Так как кошельков в Penumbra можно создать любое количество и все они будут привязаны к одному json, то при отправке транзакций без параметра --source
средства будут использоваться с любого из ваших адресов. Не только с адреса по умолчанию
# Отправка транзакций с рандомного кошелька своего cargo run --quiet --release --bin pcli tx send 5penumbra --to <address> # Отправка транзакций с определенного кошелька, где --source 1 это индекс кошелька cargo run --quiet --release --bin pcli tx send --source 1 5penumbra --to <address>
Отправка монет в стейк
# Смотрим список текущих валидаторов cargo run --quiet --release --bin pcli stake list-validators
# Делегируем 10 монет валидатору cargo run --quiet --release --bin pcli stake delegate 10penumbra --to penumbravalid1hz7u... # Делегируем с определенного кошелька, где --source 1 это индекс кошелька cargo run --quiet --release --bin pcli stake delegate --source 1 10penumbra --to penumbravalid1hz7u...
# Показать делегации cargo run --quiet --release --bin pcli stake show
# Отменить делегирование cargo run --quiet --release --bin pcli stake undelegate 1delegation_penumbraval
PD и Tendermint
В настоящее время команда penumbra предоставляем только инструкции для запуска развертывания fullnode. Fullnode будет синхронизироваться с сетью, но не будет иметь права голоса и не будет иметь права на получение вознаграждений
1. Устанавливаем 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
3. Устанавливаем 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="[email protected]:26656,[email protected]:26656" sed -i.bak -e "s/^persistent-peers =.*/persistent-peers = \"$peers\"/" $HOME/.tendermint/config/config.toml
wget -O $HOME/.tendermint/config/genesis.json "https://raw.githubusercontent.com/penumbra-zone/penumbra/main/testnets/008-philophrosyne/genesis.json"
7. Запускаем 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
8. Запускаем tendermint в отдельном окне tmux
Сначала сворачиваем окно tmux c pd нажав CTRL+B потом D
tmux new-session -s tendermint tendermint start
Если все правильно, то видим следующий результат:
Полезные команды
# Все команды выполняются из директории cd $HOME/penumbra
# help cargo run --quiet --release --bin pcli help
# Очищаем блокчейн (старого тестнета) cargo run --quiet --release --bin pcli wallet reset
# Удаляем кошелек cargo run --quiet --release --bin pcli wallet delete
# Help по стейкингу cargo run --quiet --release --bin pcli stake --help
Документация Penumbra - https://protocol.penumbra.zone/main/index.html
Офф инструкция теста - https://github.com/penumbra-zone/penumbra
Шпаргалка по TMUX https://losst.ru/shpargalka-po-tmux