Merhaba Arkadaşlar,
Gördüğüm kadarıyla çoğu arkadaşım kurulum sırasında node’un çalıştığı SSH penceresini kapatmış. Bildiğiniz gibi bu pencere kapatılır ise node çalışmayı durdurur. Eğer AVA Hub da yer alan görevi tüm koşulları ile tamamlamak istiyorsanız aşağıda anlatacağım şekilde sıfırdan bir kurulum yapabilirsiniz.
Bu sefer ki yüklemeyi, bilgisayarıma kurduğum ubuntu 18.4 üzerinde yapmaya karar verdim. Bildiğiniz gibi iki kurulum arasında da hiçbir fark yok. Sadece, dosyalara erişim kendi bilgisayarımızda daha kolay.
Evet arkadaşlar başlıyoruz.
Sistem güncellemesi
1 2 |
sudo apt-get update sudo apt-get -y upgrade |
Go 1.13.9 kurulumu
1 2 |
cd /tmp wget https://dl.google.com/go/go1.13.9.linux-amd64.tar.gz |
1 2 |
sudo tar -xvf go1.13.9.linux-amd64.tar.gz sudo mv go /usr/local |
Profil düzenlemesi
1 |
sudo nano ~/.profile |
Açılan dosyaya aşağıdaki bilgileri ekleyelim. Burada avanode diye bir klasör belirledim. Yükleme oraya gerçekleşecek.
1 2 |
export GOPATH=$HOME/avanode export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin |
ctrl+o enter daha sonra da
cntrl+x ile dosyadan çıkış yapalım.
Yaptığımız eklemeyi aşağıdaki komut ile yüklemiş olacağız.
1 |
source ~/.profile |
Go versiyon kontrolü
1 |
go version |
go version go1.13.9 linux/amd64 şeklinde bir satır görünmelidir.
cd komutuyla dizin değiştirelim.
1 |
cd |
Gecko kurulumu öncesi gerekli olan kütüphane ve diğer araçları yükleyelim.
1 |
sudo apt-get install curl build-essential libssl-dev libuv1-dev cmake make g++ |
Gecko kurulumu
1 2 |
mkdir -p src/github.com/ava-labs cd src/github.com/ava-labs |
Not: Ubuntu’nun mevcut sürümünde git komutu olmayabilir. Bu nedenle Yükleme komutunu da aşağıya ilave ettim.
1 |
sudo apt install git |
Eğer yüklü ise aşağıdaki komut ile devam edelim.
1 2 |
git clone https://github.com/ava-labs/gecko.git cd gecko |
1 |
./scripts/build.sh |
Yukarıdaki komut sonrası işlem biraz uzun sürüyor.
TLS Sertifika Oluşturma
1 |
sh keys/genStaker.sh |
Nohup komutu ile test ağına bağlanma
Gördüğünüz gibi buraya kadar farklı hiçbir şey yapmadık. Şimdi nohup komutu kullanarak test ağına bağlanalım ve node’un arka planda çalışmasını sağlayalım.
1 |
nohup ./build/ava & |
Komut sonrası sayfa görünümü bu şekilde olmalıdır. (&) işareti ava’nın arka planda çalışmasını sağlar. nohup ise çıkış yapıldığında kill edilmesini engeller.
isterseniz şimdi node’un arka planda çalışmaya devam edip etmediğini kontrol edelim. Bunu birkaç şekilde yapabiliriz. Hangisi kolayınıza geliyorsa onu kullanabilirsiniz.
Bu komut, arka planda çalışan tüm işlemleri listeler.
1 |
ps aux | less |
Bu komut ise, sadece “./build/ava” kelimesi ile ilgili işlemleri listeler.
1 |
ps aux | grep ./build/ava |
Gördüğünüz gibi herşey normal bu nedenle yeni bir ssh penceresi açmayacağız ve kaldığımız yerden devam edeceğiz.
Bağlantı doğrulama
1 2 3 4 5 6 |
curl -X POST --data '{ "jsonrpc": "2.0", "method": "admin.peers", "params":{}, "id": 1 }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/admin |
Anahtar deposu kullanıcı oluşturma
Bu komutu çalıştırmak için yeni bir kullanıcı adı ve şifresi oluşturmalısınız. Bu bilgileri aşağıdaki komuta ekleyin. (“YOUR USERNAME HERE”)
1 2 3 4 5 6 7 8 9 |
curl -X POST --data '{ "jsonrpc": "2.0", "id": 1, "method": "keystore.createUser", "params": { "username": "YOUR USERNAME HERE", "password": "YOUR PASSWORD HERE" } }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/keystore |
X-Chain adres oluşturma
Yukarıda oluşturmuş olduğunuz kullanıcı ve şifre bilgilerini aşağıda komuta ekleyin. (“YOUR USERNAME HERE”)
1 2 3 4 5 6 7 8 9 |
curl -X POST --data '{ "jsonrpc":"2.0", "id" :2, "method" :"avm.createAddress", "params" :{ "username":"YOUR USERNAME HERE", "password":"YOUR PASSWORD HERE" } }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X |
$AVA test faucet kullanarak hesabınıza nAVA gönderin.
Ava Test Faucet linkine tıklayın ve açılan sayfadaki alana X-Chain adresini yazın ve adresinize nAVA gönderin. Ben 5 kez gönderim yaptım.
X-Chain adresinin bakiye kontrolu
Şimdi de X-Chain bakiyesini kontrol edelim. (“X-CHAIN ADRESS” kısmına x-chain adresinizi yazın.)
1 2 3 4 5 6 7 8 9 |
curl -X POST --data '{ "jsonrpc":"2.0", "id" :3, "method" :"avm.getBalance", "params" :{ "address":"X-CHAIN ADRESS", "assetID" :"AVA" } }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X |
Başka bir adrese AVA gönderme
“YOUR USERNAME HERE” yazan yerleri değiştirmeyi unutmayın.
1 2 3 4 5 6 7 8 9 10 11 12 |
curl -X POST --data '{ "jsonrpc":"2.0", "id" :5, "method" :"avm.send", "params" :{ "username" :"YOUR USERNAME HERE", "password" :"YOUR PASSWORD HERE", "assetID" :"AVA", "amount" :1000, "to" :"X-FxgGhoAwg3dPTPhHEmjgi27ZPmvc8jQmj" } }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X |
İşlem durumunu kontrol etme
“txID” alanını kendi bilgileriniz ile değiştirin.
1 2 3 4 5 6 7 8 |
curl -X POST --data '{ "jsonrpc":"2.0", "id" :6, "method" :"avm.getTxStatus", "params" :{ "txID":"2GPMzVUdGjCE3CitjusHUswFRcqSVNCdc4cQJzrRRPZKT9mgfz" } }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X |
Ava gönderilen adresin bakiye kontrolü
1 2 3 4 5 6 7 8 9 |
curl -X POST --data '{ "jsonrpc":"2.0", "id" :7, "method" :"avm.getBalance", "params" :{ "address":"X-FxgGhoAwg3dPTPhHEmjgi27ZPmvc8jQmj", "assetID" :"AVA" } }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X |
Kendi hesabımızın kalan bakiyesini kontrol etme
“address” kısmına kendi X-Chain adresinizi yazmayı unutmayın.
1 2 3 4 5 6 7 8 9 |
curl -X POST --data '{ "jsonrpc":"2.0", "id" :7, "method" :"avm.getBalance", "params" :{ "address":"X-Mh2rSShLyoEyVBCiYkFKneUTxVAe9u6Eq", "assetID" :"AVA" } }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X |
P-Chain hesabı oluşturma
“YOUR USERNAME HERE” yazan kısımları kendi bilgilerinize göre düzenleyiniz.
1 2 3 4 5 6 7 8 9 |
curl -X POST --data '{ "jsonrpc": "2.0", "method": "platform.createAccount", "params": { "username":"YOUR USERNAME HERE", "password":"YOUR PASSWORD HERE" }, "id": 1 }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P |
P-Chain hesabına para yatırma
Test ağında minumum bahis (stake) miktarı olan 10000 nAVA’dır. Bu nedenle göndereceğimiz tutar da bu olmalıdır. Aşağıda P-Chain adresini değiştirin.
1 2 3 4 5 6 7 8 9 10 11 |
curl -X POST --data '{ "jsonrpc":"2.0", "id" :1, "method" :"avm.exportAVA", "params" :{ "to":"GJrD6AZjDGbrJzvCjJkyEVDYu5qxf7twJ", "amount": 10000, "username":"test4", "password":"@2mayis2020@" } }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X |
İşlem kontrolü
Yukarıda aldığımız txid’yi kullanarak işlem durumunu kontrol edelim.
txID kısmını değiştirin
1 2 3 4 5 6 7 8 |
curl -X POST --data '{ "jsonrpc":"2.0", "id" :6, "method" :"avm.getTxStatus", "params" :{ "txID":"2K7DznWioZhwX6gLzDFQ2Lr2Wqj6p5VnsWghJDAYrUQDVMW56y" } }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X |
Şimdi de ikinci adımı tamamlayalım. Kendi bilgilerinizi eklemeyi unutmayın.( username, password, to )
1 2 3 4 5 6 7 8 9 10 11 |
curl -X POST --data '{ "jsonrpc": "2.0", "method": "platform.importAVA", "params": { "username":"test4", "password":"@2mayis2020@", "to":"GJrD6AZjDGbrJzvCjJkyEVDYu5qxf7twJ", "payerNonce":1 }, "id": 1 }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P |
Aşağıdaki komut ile de txid ‘yi göreceğiz.
1 2 3 4 5 6 7 8 |
curl -X POST --data '{ "jsonrpc": "2.0", "method": "platform.issueTx", "params": { "tx":"1117xBwcr5fo1Ch4umyzkLTEELey1nURJRqRZjHumL4DnMzWPj9qhHV747V6LeKhwugJN7JBm4SDd2yBhavjxkWJ7s6Df2VdENGBvERFvop1d8ZDTUctwFgfFPjLWjBVdYfvUB1mseXEBSW5S5ZbstZDKuL4PjCYjp9T76vJUBivYp5CNW8g8GoihFN57sen3rXKdf8aG8gYncYwJaR3yvBFtPuNxbj89ei6e3qKn34KVZW7JTSWcTxEL1w4oAczYShv5HLmy84TEBMqCrNyF1X7HNMYJvdHSEKg224dpYrKcsTvSjWZ8x6qFBuKvUodJzApfz66XLAyUJvbxTLkngTYdeHdxxQaLBTyhkGTjwAVjDckBncxB" }, "id": 1 }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P |
Şimdi de P-Chain hesabımızın bakiyesini kontrol edelim.
1 2 3 4 5 6 7 8 |
curl -X POST --data '{ "jsonrpc": "2.0", "method": "platform.getAccount", "params":{ "address":"GJrD6AZjDGbrJzvCjJkyEVDYu5qxf7twJ" }, "id": 1 }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P |
Node ID alma
1 2 3 4 5 6 |
curl -X POST --data '{ "jsonrpc": "2.0", "method": "admin.getNodeID", "params":{}, "id": 1 }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/admin |
İmzasız işlem oluşturma
(id ve destination kısımlarını değiştirmeyi unutmayın)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
curl -X POST --data '{ "jsonrpc": "2.0", "method": "platform.addDefaultSubnetValidator", "params": { "id":"7kE3JSq5nNuwo1LzHPmFYc7y6gqBscodt", "payerNonce":2, "destination":"GJrD6AZjDGbrJzvCjJkyEVDYu5qxf7twJ", "startTime":'$(date --date="10 minutes" +%s)', "endTime":'$(date --date="2 days" +%s)', "stakeAmount":10000 }, "id": 1 }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P |
İşlemi imzalama
Yukarıdaki işlemde elde ettiğiniz unsignedTx i kullanarak işlemi imzalayın.
1 2 3 4 5 6 7 8 9 10 11 |
curl -X POST --data '{ "jsonrpc": "2.0", "method": "platform.sign", "params": { "tx":"1112PGPvYSeth8shL8QyUy4aPc5odW3mDWDCmjFqrTxf8sGnYmqd6ZmxLTdPYMt6D7twHTdwzoUy1NFWnNv4FMyV8Ls8NheoJJfTkU5AmHYRQEvFJNVbjCNjpMae98RFWzVVcbJYvomTRcHAEnNLnZM8twad1zipRgSFMs2ReAoHpYHgSFAzU6VjaPVjfYFWYS1NkVWTrQd7jkHW", "signer":"GJrD6AZjDGbrJzvCjJkyEVDYu5qxf7twJ", "username":"test4", "password":"@2mayis2020@" }, "id": 2 }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P |
İşlemi düzenleyin
Yukarıdaki işlemde elde ettiğiniz tx i kullanarak işlemi düzenleyin.
1 2 3 4 5 6 7 8 |
curl -X POST --data '{ "jsonrpc": "2.0", "method": "platform.issueTx", "params": { "tx":"1112PGPvYSeth8shL8QyUy4aPc5odW3mDWDCmjFqrTxf8sGnYmqd6ZmxLTdPYMt6D7twHTdwzoUy1NFWnNv4FMyV8Ls8NheoJJfTkU5AmHYRQEvFJNozShcb5taS2Q24pSpRxvrodwDyPeU6pfL7HQ7GUFgqNmiofmWfmRU8W8hLzjcd6YzyvkM9yQrzu9RJVVowPAC5zVRa7F1R" }, "id": 3 }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P |
Doğrulama
1 2 3 4 5 6 |
curl -X POST --data '{ "jsonrpc": "2.0", "method": "platform.getPendingValidators", "params": {}, "id": 4 }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P |
Yanıt aşağıdaki şekilde olmalıdır. (id kısmında sizin NodeID’niz yer almalıdır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "jsonrpc": "2.0", "result": { "validators": [ { "id": "ARCLrphAHZ28xZEBfUL7SVAmzkTZNe1LK", "startTime": "1584021450", "endtime": "1584121156", "stakeAmount": "10000", } ] }, "id": 4 } |
Karşılaşabileceğiniz sorunlar:
- “Bağlantı doğrulama” aşamasında (admin.peers) anlatımdaki gibi birkaç IP görünmüyor ise test ağına bağlanmada sorun var demektir. Çalıştırdığınız komutun doğru olup olmadığını kontrol edin ve birkaç dakika sonra yeniden deneyin.
- {“jsonrpc”:”2.0″,”error”:{“code”:-32000,”message” bu hata mesajını birkaç hatadan dolayı alabilirsiniz.
- Yazdığınız komutta fazla-eksik karakter olabilir.
- Komutta yer alan tx, txid ya da adresler de hata olabilir.
- {“jsonrpc”:”2.0″,”result”:{“validators”:[]},”id”:4} bu hata mesajını da birkaç hatadan dolayı alabilirsiniz.
- Öncelikle Discord kanalı test-network ‘ü kontrol edin ya da sorun olup olmadığını sorun.
- Bu zamana kadar çalıştırdığınız komutlarda istenenden farklı bilgileri yazmış olabilirsiniz. Ben de birkaç kez bu hataya düştüm. O nedenle “Node ID Alma” aşamasından sonraki komutlarda özellikle unsignedTx, tx, txid kullandığımız alanları tek tek kontrol ettim.
İhtiyaç halinde kullanılacak komutlar:
Bu komutu bilinçli kullanın. Yanlış kullanılması halinde hem işletim sistemi hem de mevcut kurulumunuz zarar görebilir. Dikkatli olmakta fayda var.
Şimdilik bu kadar arkadaşlar. Bundan sonraki makalemde node’u servis hizmeti olarak çalıştırmayı deneyeceğim.
Tekrar görüşmek üzere