Everest Testnet Kurulum Rehberi

Muhammet Selim Ferah
6 min readAug 21, 2020

--

Mainnet’ten önceki son testnet olan Everest testnet bügün itibariyle başladı. Bu makalede nasıl kurum yapacağınızı anlatacağım. Öncelikle daha önceki makalemde de verdiğim teorik bilgileri vererek başlıyorum ki sistemi anlayarak işlemleri gerçekleştirin. X-Chain ve P-Chain adresleri oluşturup X-Chain adresimize Faucet’den test tokenı alacağız ve bunu P-Chain’e gönderip burada stake edeceğiz.

Nedir Bu X-Chain ve P-Chain?

Avalanche Üzerinde default 3 adet subnet var. Bunlar X-Chain(eXchange Chain), P-Chain(Platform Chain) ve C-Chain(Contract Chain).

X-Chain

X-Chain, akıllı dijital varlıklar oluşturmak ve işlem yapmak için merkezi olmayan bir platform görevi görür. X-Zincirinde işlem gören varlıklardan bir tanesi AVAX.

P-Chain

Avalanche ağı hakkındaki meta verileri yöneten zincirdir. P-Chain API’sı istemcilerin alt ağlar oluşturmasına, alt ağlara validatorler eklemesine ve blok zincirleri oluşturmasına olanak tanır.(Biz de AvaX Faucet’den X-Chain cüzdan adresimize talep edeceğimiz nAVAX’larımızı validator olabilmek için P-Chain üzerinde oluşturacağımız cüzdanımıza yollayacağız.)

C-Chain

C-Chain, Avalanche tarafından desteklenen Ethereum Sanal Makinesinin bir örneğidir. C-Chain üzerinde akıllı sözleşmeler yapılabilir ve C-Chain’in API’sını kullanarak Ethereum üzerinde yapılabilen her şey burda yapılabilir.

Node Kurulumu

Gecko isimli istemcimiz 2 farklı işletim sisteminde test edildi.

  • Ubuntu 18.04 ve 20.04
  • OSX Catalina veya daha üst bir sürüm

Minimum donanım gereksinimleri:

  • CPU: 2 GHz
  • RAM: 3 GB
  • Storage: 250 MB boş alan

Önerilen donanım:

  • CPU: > 2 GHz
  • RAM: > 3 GB
  • Storage: > SSD üzerinde 5 GB boş alan

Kurulum

Öncekikle buradan Google Cloud üzerinde VM (sanal makine) kurulumunu yapabilirsiniz. Boot disk bölümünü Ubuntu 18.4 LTS olarak seçmeyi unutmayın.

Sanal makinemizi kurduktan sonra Sanal makine örnekleri sayfasına gidin ve bağlanmak istediğiniz sanal makine örneğinin bulunduğu satırdaki SSH’ye tıklayın.

Artık Sanal makine örneğimizle etkileşim kurmak için bir terminal penceremiz var. Bütün işimiz bu terminal penceresi ile olacak.

SSH’e Tıkladıktan sonra aşağıdaki gibi bir terminal açılmış olmalı.

Şimdi Komutlarımızı Girmeye Başlayalım

Komutları sırasıyla ve tek tek yapıştırıyoruz ve enter’a basıyoruz.

wget https://github.com/ava-labs/gecko/releases/download/v0.6.4/avalanche-linux-0.6.4.tar

tar -xvf avalanche-linux-0.6.4.tar

cd avalanche-0.6.4

nohup ./avalanche &

Üsteki komutlar ile En son Everest versiyonunu indirdik ve avalanche-0.6.4 isimli bir klasörde indirdiğimiz dosyayı açtık. cd ile başlayan komutla klasörün içine girdik.(cd: Change Drictory. Bu komutla klasörler arasında geçiş yapabiliriz.) nohup ./avalanche & komutu ile node’umuzu arka planda çalışabilir şekilde başlattık.

Validator Olmak

Avalanche ağında doğrulayıcı olmak için öncelikle AVAX’yı platforma yatırmak(P-Chain) gerekiyor. Everest için minimum stake miktarı 5.000 nAVA’dır (nano-AVAX). Bu miktar Mainnet’tekiyle aynı olamayacak.

Adım 1 — Kullanıcı ve Adresler Oluşturma

Öncelikle sanal makine örneklerim kısmından SSH’e tıklayarak yeni bir terminal penceresi açıyoruz ve komutları yapıştırmaya başlıyoruz.

Burdan sonra kullanacağımız komutları bir text editor’e yapıştırıp düzenlemelisiniz. Dikkat etmeniz gereken nokta text editor’ler bazen saçma sapan boşluklar bırakabiliyor ve alacağınız hataların büyük bölümü gözden kaçan bu boşluklardan dolayı. Microsoft Word kullanmanızı tavsiye ediyorum. Çünkü Aşağıda ki resimde gördüğümüz “Tümünü Göster” butonu boşlukları görmemize yarayan sekme işaretlerini gösterme veya gizleme işlevini gerçekleştiriyor.

Doğrulayıcı olabilmek için bir kullanıcı oluşturacağız. Aşağıdaki komut, belirlediğimiz kullanıcı adı ve şifreyi içeren bir kullanıcı oluşturur.

curl -X POST --data '{
"jsonrpc": "2.0",
"id": 1,
"method": "keystore.createUser",
"params": {
"username": "YOUR USERNAME",
"password": "YOUR PASSWORD"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/keystore

Artık bir hesabımız olduğuna göre, X-Chain üzerinde bir adres oluşturmamız gerekiyor. Bu adres Faucet’den AVAX alacak. Aşağıdaki avm.createAddress komutu ile X-Chain üzerinde cüzdan oluşturuyoruz.

curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"avm.createAddress",
"params" :{
"username": "YOUR USERNAME",
"password": "YOUR PASSWORD"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X

Aşağıda ki gibi bir sonuç döndürecektir. Verilen adresi bir kenara not almayı unutmayın. birazdan faucet’den bu X-Chain adresine token talep edeceğiz.

{
"jsonrpc": "2.0",
"result": {
"address": "YOUR X-CHAIN ADDRESS"
},
"id": 1
}

Şimdi aşağıda ki platform.createAccount komutu ile P-Chain üzerinde hesap oluşturalım.

curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.createAddress",
"params": {
"username": "YOUR USERNAME",
"password": "YOUR PASSWORD"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

Bu komut aşağıdaki gibi P-Chain adresimizi döndürür. Daha sonraki adımlarda kullanacağımız için bunu da not etmeliyiz.

{
"jsonrpc": "2.0",
"result": {
"address": "YOUR P-CHAIN ADDRESS"
},
"id": 1
}

Artık X-Chain üzerinde nAVAX talep edeceğimiz bir cüzdana ve onları gönderip stake edeceğimiz P-Chain üzerinde bir cüzdana sahibiz. Şimdi sıra nAVAX almakta.

Faucet’den Token Almak

AVA Testnet Faucet Adresine gidiyoruz. Aşağıda gördüğünüz gibi Adres kısmına kendi X-Chain adresimizi yazıyoruz ve insan olduğumuzu onayladıktan sonra nAVAX istiyoruz.

Birkaç saniye içerisinde nAVAX’lar hesabımıza geçmiş olmalı. Aşağıda ki komut ile hesabımızı kontrol ediyoruz. YOUR X-CHAIN ADDRESS HERE Kısmına X-Chain adresinizi yazmayı unutmayın.

curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"avm.getBalance",
"params" :{
"address":"YOUR X-CHAIN ADDRESS HERE",
"assetID" :"AVAX"
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X

nAVAX’larımızı aldığımızı doğrulayan aşağıdaki yanıtı göreceğiz.

{
"jsonrpc": "2.0",
"result": {
"balance": "10000000",
"utxoIDs": [
{
"txID": "ZckGnBciWaRyDXiYcs9igvXjyMZH28cSrDVvpkBteHxhYEA3Z",
"outputIndex": 0
}
]
},
"id": 1
}

P-Chain’e gönderme

Şimdi Stake etmek için bu avaları P-Chain adresimize göndermeliyiz. En az 5 bin nAVAX gerek stake işlemi için. Aşağıda ki avm.exportAVA komutu ile 7bin nAVA’yı P-Chain adresimize göndereceğiz(İşlem ücretini ödemek için ek bir 2.000.000 nAVAX gönderiyoruz). YOUR ile başlayan kısımlara kendi bilgilerinizi girmeyi unutmayın.

curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"avm.exportAVAX",
"params" :{
"username": "YOUR USERNAME",
"password": "YOUR PASSWORD",
"to":"YOUR PLATFORM ADDRESS HERE",
"amount": 7000000
}
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/X

Bu komut bir TxID döndürür. Bu TxID’yi saklamamız gerekmiyor.

Bir sonraki adım, P-Chain’de bu gönderimi kabul etmek. Bunu yapmak için aşağıda ki platform.importAVA komutunu kullanacağız.

curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.importAVAX",
"params": {
"username": "YOUR USERNAME",
"password": "YOUR PASSWORD",
"to":"YOUR PLATFORM ADDRESS HERE",
"sourceChain": "X"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P

Bu komut aşağıda kine benzer bir işlemi temsil eden TxID döndürür. bunuda saklamak zorunda değiliz.

P-Chain, Everest test ağında validator olarak pay almak ve katılmak için yeterli nAVA’ya(5 bin) sahip olunmalıdır. Bunu doğrulamak için aşağıdaki platform.getAccount komutu ile bakiyeyi doğruluyoruz. YOUR PLATFORM ADDRESS HERE kısmına kendi P-Chain adresinizi yazmayı unutmayın.

curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.getBalance",
"params":{
"address":"YOUR PLATFORM ADDRESS HERE"
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/P

Validation

Artık P-Chain’de fonlarımız olduğuna göre, ağda onaylayıcı(Validator) olmak için kaydolmaya hazırız. Her node’un, ağdaki node’u benzersiz olarak tanımlamak için kullanılan bir node id’si vardır. Doğrulayıcı olabilmek için, bu node id’yi işi yapan node olarak taahhüt etmemiz gerekir. Şimdi nodeID’imizi alalım. Node Id’yi bir kenara not almayı unutmayın.

curl -X POST --data '{
"jsonrpc": "2.0",
"method": "info.getNodeID",
"params":{},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/info

Bir sonraki adım platform.addDefaultSubnetValidator komutu ile node’umuzu ağa ekleyen bir işlem oluşturmaktır. Aşağıdaki örnekte, 15 dakikalık bir başlangıç ​​zamanı koyuyoruz ve 15 Ağustos 2021'de sona erdiriyoruz.

curl -X POST --data '{
"jsonrpc": "2.0",
"method": "platform.addDefaultSubnetValidator",
"params": {
"username":"YOUR USERNAME HERE",
"password":"YOUR PASSWORD HERE",
"nodeID":"YOUR NODEID HERE",
"rewardAddress":"YOUR PLATFORM ADDRESS HERE",
"startTime":'$(date --date="15 minutes" +%s)',
"endTime":1629032852,
"stakeAmount":5000000,
"delegationFeeRate":0
},
"id": 1
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/P

Bu komut bir TxID döndürecektir. Bu TxID’yi saklamanıza gerek yoktur. Şimdi node id’mizi Avalanche Explorer da bekleyen onaylayıcılar listesinde göreceğiz ve 15 dakika içinde mevcut doğrulayıcılar listesinde göreceğiz. İşte bu kadar!

Okuduğunuz için teşekkürler!

Avalanche-Türkçe telegram kanalına katılabilir, sorularınızı sorabilirsiniz.

Beni twiter’dan takip edebilirsiniz.

Yararlandığım kaynaklar

https://medium.com/avalabs/how-to-join-avalanche-everest-release-a40cd20aa654

--

--