Stake Wars Challenges
Übung 1
sudo apt update && sudo apt upgrade -y
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install build-essential nodejs
PATH="$PATH"
echo 'export NEAR_ENV=shardnet' >> ~/.bashrc
echo 'export NEAR_ENV=shardnet' >> ~/.bash_profile
source $HOME/.bash_profile
Das Angebot des Validierers gibt an, dass er in das Set des Validierers aufgenommen werden möchte, damit das Angebot akzeptiert wird, muss es den Mindestplatzpreis erfüllen.near proposals
Dies zeigt die Liste der aktiven Validatoren in der aktuellen Epoche, die Anzahl der produzierten Blöcke, die Anzahl der ausstehenden Blöcke und die Online-Geschwindigkeit. Wird verwendet, um zu überwachen, ob der Validator Probleme hat.near validators current
Hier sind die Prüfer gezeigt, deren Vorschlag vor einer Epoche akzeptiert wurde und die in der nächsten Epoche in den Satz von Prüfern aufgenommen werden.near validators next
Übung 2
sudo apt install -y git binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev cmake gcc g++ python docker protobuf-compiler libssl-dev pkg-config clang llvm cargo
Wenn Sie Probleme haben, python oder docker.io auf Ubuntu zu installieren, versuchen Sie diesen Befehl:sudo apt install python3
sudo apt install docker-ce
Wenn nicht, dann gehen Sie direkt hierher.sudo apt install python3-pip
USER_BASE_BIN=$(python3 -m site --user-base)/bin
export PATH="$USER_BASE_BIN:$PATH"
sudo apt install clang build-essential make
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
git clone https://github.com/near/nearcore
cd nearcore
git fetch
git checkout 68bfa84ed1455f891032434d37ccad696e91e4f5
cargo build -p neard --release --features shardnet
cd $HOME
sudo apt-get install awscli -y
~/nearcore/target/release/neard --home ~/.near init --chain-id shardnet --download-genesis
rm ~/.near/config.json ~/.near/genesis.json
wget -O ~/.near/config.json https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/shardnet/config.json
wget -O ~/.near/genesis.json https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/shardnet/genesis.json
Gehen Sie im Browser zum Wallet und erstellen Sie eine Test-Wallet-Adresse
https://wallet.shardnet.near.org/
Wir erhalten einen Login-Link im Terminal, folgen Sie ihm im Browser
in der Nähe von Login
Wir warten auf das Fehlen einer Verbindung im Browser und geben den vollständigen Namen Ihrer Brieftasche im Terminal ein
Wenn die validator_key.json im Ordner $HOME/.near nicht automatisch generiert wurde, erstellen wir sie selbstcp ~/.near-credentials/shardnet/!YOUR_WALLET!.json ~/.near/validator_key.json
Ändern Sie „account_id“ => xx.factory.shardnet.near, wobei xx der PoolName ist
Ändern Sie private_key in secret_key
Warnung: account_id muss mit dem Vertragsnamen des Staking-Pools identisch sein, sonst signieren Sie keine Blöcke
Der Inhalt von validator_key.json sollte wie folgt aussehen:`
{
"account_id": "xx.factory.shardnet.near",
"public_key": "ed25519:HeaBJ3xLgvZacQWmEctTeUqyfSU4SDEnEwckWxd92W2G",
"secret_key": "ed25519:****"
}
sudo tee /etc/systemd/system/neard.service > /dev/null <<EOF
[Unit]
Description=NEARd Daemon Service
[Service]
Type=simple
User=$USER
Group=near
WorkingDirectory=$HOME/.near
ExecStart=$HOME/nearcore/target/release/neard run
Restart=on-failure
RestartSec=30
KillSignal=SIGINT
TimeoutStopSec=45
KillMode=mixed
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable neard
sudo systemctl start neard && journalctl -f -u neard
Übung 3
Erweiterung unseres Staking-Pool-Vertragsnear call factory.shardnet.near create_staking_pool '{"staking_pool_id": "<pool id>", "owner_id": "<accountId>", "stake_public_key": "<public key>", "reward_fee_fraction": {"numerator": 5, "denominator": 100}, "code_hash":"DD428g9eqLL8fWUxv8QSpVFzyHi1Qd16P8ephYCTmMSZ"}' --accountId="<accountId>" --amount=30 --gas=300000000000000
Beispiel
near call factory.shardnet.near create_staking_pool '{"staking_pool_id": "example", "owner_id": "example.shardnet.near", "stake_public_key": "ed25519:your key", "reward_fee_fraction": {"Zähler": 5, "Nenner": 100}, "code_hash": "DD428g9eqLL8fWUxv8QSpVFzyHi1Qd16P8ephYCTmMSZ"}' --accountId="example.shardnet.near" --amount=30 --gas=300000000000000
Transaktionsleitfaden
Einzahlung und Wette
near call <pool_id> deposit_and_stake --amount <amount> --accountId <accountId> --gas=300000000000000
Wette stornieren
near call <pool_id> unstake '{"amount": "<amount yoctoNEAR>"}' --accountId <accountId> --gas=300000000000000
Um die gesamte Wette zu stornieren, gehen Sie wie folgt vor:
near call <pool_id> unstake_all --accountId <accountId> --gas=300000000000000
Das Aufheben des Einsatzes dauert 2-3 Epochen, danach können Sie alles aus dem Pool zurückziehen.
near call <pool_id> withdraw '{"amount": "<amount yoctoNEAR>"}' --accountId <accountId> --gas=300000000000000
Alle Befehle anzeigen
near call <pool_id> withdraw_all --accountId <accountId> --gas=300000000000000
Ping (Es ist besser, es zu automatisieren, da Sie jede Stunde pingen müssen)
Ping erstellt ein neues Angebot und aktualisiert die Gebotssalden für Ihre Delegierten. Ein Ping sollte jede Epoche gesendet werden, um die Belohnungen auf dem neuesten Stand zu halten.
near call <pool_id> ping '{}' --accountId <accountId> --gas=300000000000000
Balances
near view <pool_id> get_account_total_balance '{"account_id": "<accountId>"}'
Balance-Rate
near view <pool_id> get_account_staked_balance '{"account_id": "<accountId>"}'
Неразмещенный баланс
near view <pool_id> get_account_unstaked_balance '{"account_id": "<accountId>"}'
Unplatzierter Saldo
near view <pool_id> is_account_unstaked_balance_available '{"account_id": "<accountId>"}'
Pause
near call <pool_id> pause_staking '{}' --accountId <accountId>
Fortfahren
near call <pool_id> resume_staking '{}' --accountId <accountId>
Übung 4
sudo apt install ccze
journalctl -f -u neard | ccze -A
INFO-Statistiken: 85079829 H1GUabkB7TW2K2yhZqZ7G47gnpS7ESqicDMNyb9EE6tf Validator 73 Validatoren 30 Peers ⬇ 506,1 kiB/s ⬆ 428,3 kiB/s 1,20 bps 62,08 Tgas/s CPU: 23 %, Arbeitsspeicher: 7,4 GiB
Validator: „Validator“ zeigt an, dass Sie ein aktiver Validator sind.
73 Validatoren: Es gibt insgesamt 73 Validatoren im Netzwerk.
30 Peers: Sie haben derzeit 30 Peers. Sie benötigen mindestens 3 Peers, um einen Konsens zu erzielen und mit der Validierung zu beginnen
46199418 : block - beobachten Sie, wie sich die Blöcke bewegen
Allgemeine Befehle:
Проверьте версию вашего узла: Команда:
curl -s http://127.0.0.1:3030/status | jq .version
Überprüfung der Delegierenden und Bewertungsteams:
near view <your pool>.factory.shardnet.near get_accounts '{"from_index": 0, "limit": 10}' --accountId <accountId>.shardnet.near
Überprüfen Sie die Fehlerursache des Validators Befehl:
curl -s -d '{"jsonrpc": "2.0", "method": "validators", "id": "dontcare", "params": [null]}' -H 'Content-Type: application/json' 127.0.0.1:3030 | jq -c '.result.prev_epoch_kickout[] | select(.account_id | contains ("<POOL_ID>"))' | jq .reason
Befehl „Erstellte/ausstehende Blöcke prüfen“:
curl -r -s -d '{"jsonrpc": "2.0", "method": "validators", "id": "dontcare", "params": [null]}' -H 'Content-Type: application/json' 127.0.0.1:3030 | jq -c '.result.current_validators[] | select(.account_id | contains ("POOL_ID"))'