Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

180663821-187214c4-7ac5-4b15-8c5a-0ca6a8d21dd9

Near Stake Wars III için validator oluşturma işlemi adım adım anlatılmıştır. Yapılan görevler sonucunda 1 yıl kilitli olmak şartı ile 50000 adet Near token kazanma şansınız olacak.

1. Görev: Cüzdan ve Cli Kurulumu

Öncelikle şu adrese gidiyoruz https://wallet.shardnet.near.org daha sonradan görsellerdeki gibi cüzdan oluşturuyoruz.

1 2 3

Copy e basarak kelimeleri bir not defterine yapıştırıp kaydediyoruz. Bu bizim cüzdan adresimiz kelimeleri ve bunlar olmadan cüzdanımıza ulaşamayız. Kaybetmeyecek şekilde saklayın.

4 5 6

En son sağ üst tarafa tıklayarak ismimizin olduğu cüzdanı seçiyoruz ve cüzdan da test nearlarını görüyoruz. Cüzdan oluşturma işlemi bu kadardı.

7

Şimdi Near-Cli yi Node'a yüklüyoruz. Sırasıyla kodları giriyoruz.

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"

Versiyon Kontrollerini yapıyoruz.

node -v

v18.x.x

npm -v

8.x.x

En sonda yükleme Near-ClI kodunu gidiyoruz.

sudo npm install -g near-cli

Yükleme işlemi sırasında şöyle bir ekran görünmeli

8

Yükleme işlemi bittikten sonrada buna benzer kodların olduğu ekran gelmeli.

9

Doğru ağı seçmek için her yeni kabuk başlatıldığında ortamın ayarlanması gerekir.

Ağlar:

-GuildNet -TestNet -Mainnet -Shardnet (Bu, Stake Wars için kullanacağımız ağdır)

Sırasıyla kodları giriyoruz.

export NEAR_ENV=shardnet
echo 'export NEAR_ENV=shardnet' >> ~/.bashrc

CLI denememizi sıradaki kodlarlar yapıyoruz.

İlk kodla sıralamaya girmiş validatorleri ve durumlarını görebiliriz.

near proposals

İkinci kodla üretilen blok sayıları gibi ayrıntıları görebiliriz.

near validators current

Üçüncü kodla doğrulayıcılar arasına girecek olan nodeları görebiliriz.

near validators next

2. Görev: Node Kurulumu

Kodu girdiğimizde ss'de ki gibi bir çıktı almalıyız. 10

lscpu | grep -P '(?=.*avx )(?=.*sse4.2 )(?=.*cx16 )(?=.*popcnt )' > /dev/null \
  && echo "Supported" \
  || echo "Not supported"

Güncelleme kodunu giriyoruz

sudo apt install -y git binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev cmake gcc g++ python docker.io protobuf-compiler libssl-dev pkg-config clang llvm cargo

Python pip yüklüyoruz

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

Alttaki kodu girdikten sonra

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

Eğer ss'de ki gibi bir ekranla karşılaşırsanız y yapıp enterlayın 12

Daha sonra bu ekranda bir şeye basmadan enterlayın sonra yükleme işlemi başlayacak bitiğinde 2. ssde ki gibi ekran görünmeli. 13 14

Sırasıyla kodları girmeye devam ediyoruz.

source $HOME/.cargo/env

Dosyaları vps'e yükleme işlemine geçiyoruız. Kodları sırasıyla girmeye devam edelim.

git clone https://github.com/near/nearcore
cd nearcore
git fetch
git checkout 0d7f272afabc00f4a076b1c89a70ffc62466efe9
cargo build -p neard --release --features shardnet

Yukarıda girdiğimiz son kodla birlikte yükleme işlemi biraz vakit alıyor. Bittikten sonra alttaki kod ile dizini yüklüyoruz ve görüntü ss'de ki gibi olmalı.nearcore kılasörünün içinde olduğunuzdan emin olun.

./target/release/neard --home ~/.near init --chain-id shardnet --download-genesis

15

Kodlara devam ediyoruz.

wget -O ~/.near/config.json https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/shardnet/config.json

Node çalıştırıyoruz.

cd ~/nearcore
./target/release/neard --home ~/.near run

Kırmızıyla işraretli olan yerin %100 olmasını bekliyorsunuz olduktan sonra Ctrl+c yapıp durduruyoruz logları. 16

Node cüzdana bağlıyoruz. Bu ekrandan y yapıyoruz

near login

17

y yapınca alttaki ekranın gelmesi gerekiyor.

18

Link kopyalayıp cüzdanın açtığımız yere yapıştırıyoruz.

19

Yapıştırdığımızda ss'de ki gibi bir ekran gelmesi lazım ve sonraki butonuna basarak ilerliyoruz.

20

21

Onayla yapıp devam ediyoruz.

22

Şu şekilde bir ekranın gelmesi lazım.

24

Daha sonra node ekranına cüzdan adresinizi ss'deki gibi girip enterlamalısınız.

25

Pool oluşturma adımına geçiyoruz aşağıdaki kodla pool oluşturuyoruz. nakoturk0.factory.shardnet.near gibi. Burada nakoturk0 sizin vereceğiniz bir isim olmalı ve gerisi olduğpu gibi kalacak

near generate-key <pool_id>

Oluşturduktan sonra aşağıdaki kodu ss'deki gibi kendi verdiğiniz isme göre düzenleyip enter'a basıyorsunuz

cp ~/.near-credentials/shardnet/YOUR_WALLET.json ~/.near/validator_key.json

26

Terminale gidip aşağıdaki kodu giriyoruz.

target/release/neard run

İkinci ss'de Downloading bölümü %100 olana kadar bekliyoruz sonra Ctrl+C yapıp durduruyoruz. 27 28

Service oluşturuyoruz.

sudo nano /etc/systemd/system/neard.service

Bu kodla oluşturdukttan sonra aşağıdaki kodları olduğu gibi o ekrana yapıştırıp. Ctrl+x sonra y ye basıp enter'a basıyoru.

[Unit]
Description=NEARd Daemon Service

[Service]
Type=simple
User=root
#Group=near
WorkingDirectory=/root/.near
ExecStart=/root/nearcore/target/release/neard run
Restart=on-failure
RestartSec=30
KillSignal=SIGINT
TimeoutStopSec=45
KillMode=mixed

[Install]
WantedBy=multi-user.target

Node Başlatmak

sudo systemctl enable neard
sudo systemctl start neard

29

Service de değişiklik yaparsanız aşaıdaki kode kullandıktan sonra startlayın.

systemctl daemon-reload

3. Görev: Havuz Oluşturma

Kodu örneği ile birlikte yazdım. Kendinize göre düzenleme yaptıktan sonra kodu girince ss'de ki gibi bir sonuçla karşılaşmalısınız.

near 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

Örnek

near call factory.shardnet.near create_staking_pool '{"staking_pool_id": "nakoturk0", "owner_id": "nakoturk0.shardnet.near", "stake_public_key": "ed25519:9XhXJhLx7JKYsWemkteaNED7FwZRudxYM", "reward_fee_fraction": {"numerator": 5, "denominator": 100}, "code_hash":"DD428g9eqLL8fWUxv8QSpVFzyHi1Qd16P8ephYCTmMSZ"}' --accountId="nakoturk0.shardnet.near" --amount=250 --gas=300000000000000

Oluşturma işlemi bittikten sonra aşağıdaki linkte hesabınızı bulup yaptığınız işlemleri ve havuza yaptığınız stake miktarını görebilirsiniz -https://explorer.shardnet.near.org/accounts

Ek stake yapmak istersek aşağıdaki kodu kullanıyoruz

near call <staking_pool_id> deposit_and_stake --amount <amount> --accountId <accountId> --gas=300000000000000

Unstake için aşağıdaki kodu kullanabilirsiniz.

near call <staking_pool_id> unstake '{"amount": "<amount yoctoNEAR>"}' --accountId <accountId> --gas=300000000000000

Bütün coinleri unstake etmek için kullandığımız kod.

near call <staking_pool_id> unstake_all --accountId <accountId> --gas=300000000000000

Unstake yaptıktan 2-3 epoch sonra birinci kodla istediğimiz miktarı cüzdana 2. kodlada bütün coinleri cüzdana çekebiliriz.

near call <staking_pool_id> withdraw '{"amount": "<amount yoctoNEAR>"}' --accountId <accountId> --gas=300000000000000
near call <staking_pool_id> withdraw_all --accountId <accountId> --gas=300000000000000

Staked Miktarı

near view <staking_pool_id> get_account_staked_balance '{"account_id": "<accountId>"}'

Unstaked Miktarı

near view <staking_pool_id> get_account_unstaked_balance '{"account_id": "<accountId>"}'

Cüzdana çekilebilir miktarın uygunluğunu görmek için aşağıdaki kodu kullanırız ve sonucun true çıkarmasını bekleriz.

near view <staking_pool_id> is_account_unstaked_balance_available '{"account_id": "<accountId>"}'

4-) Node Kontrol Etme

Loglar için

journalctl -n 100 -f -u neard | ccze -A

Düğüm sürümünüzü kontrol etmek

curl -s http://127.0.0.1:3030/status | jq .version

Delegeleri ve Stake'i Kontrol Etmek

near view <your pool>.factory.shardnet.near get_accounts '{"from_index": 0, "limit": 10}' --accountId <accountId>.shardnet.near

Doğrulayıcının atılıp atılmadığını görmek

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

Üretilen Blokları Kontrol Etmek

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.current_validators[] | select(.account_id | contains ("POOL_ID"))'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors