Giriş
AVA Platformu, binlerce TPS’yi, izinsiz bir ağda yaklaşık 1 saniyelik bir sonlandırma hızıyla, Proof of Stake sybil korumasını kullanarak varlıkların hızlı ve kolay bir şekilde oluşturulmasını ve değiştirilmesini sağlayan genişletilebilir bir mimariyi destekler. Topluluk, AVA geliştiricilerinin bu yıl neler inşa ettiğini merak ediyordu. AVA Gecko istemcisinin Borealis sürümüyle kod artık çalışmaya ve meraklı yazılımcıların test etmesine açık durumda.
Bu rehber, yerel bir ağa Borealis’i kurup, herkesin AVA Platformunu test etmenesine olanak tanır. Buna yardımcı olmak için Gecko (AVA Go istemcisi) ve Avash’ı (AVA düğüm başlatıcısı) kurma işlemini anlatacağız.
Gereksinimler
Yazılımı çalıştırmak için kullanıcıların komut satırı ortamlarında gezinme konusunda tecrübeli olmaları işlerini kolaylaştıracaktır. Bu sürümdeki en yoğun testler Ubuntu 18.04'te yapıldı, ancak diğer işletim sistemleri için de http://docs.ava.network adresinde çeşitli seçenekler var. Lütfen sık sık güncellemeler için bu dokümanlara göz atın. Nod yazılımı yükseltildikçe, değişiklikler dokümana yansıtılacaktır.
Tek bir nod için gereksinimler şunlardır:
- Ağ: Açık genel bağlantı noktasına sahip IPv4 veya IPv6 ağ bağlantısı.
- Donanım: 2 GHz veya daha hızlı CPU, 3 GB RAM, 250 MB sabit disk.
- İşletim Sistemi: Ubuntu> = 18.04 veya Mac OS X> = Catalina.
- Yazılım: Go > = 1.13.X ve $ GOPATH ayarlarını yapın. (Resmi Talimatlar)
Bir makinede yerel bir ağ başlatmak için 4 nod kullanacağız, böylece iki kat daha güçlü bir makine tavsiye edilebilir.
Makinede ayrıca aşağıdaki araçların ve kitaplıkların yüklü olması gerekir:
libssl-dev
libuv1-dev
cmake
make
curl
g++/clang++ that supports c++14 (to build salticidae C++ library)
Ubuntu 18.04 için dependencyleri yükleme kodu
sudo apt-get install curl build-essential libssl-dev libuv1-dev cmake make
Gecko — The AVA Go İstemcisi
AVA istemcisi Gecko’nun Go uygulaması bu kod sürümüne dahildir. Yerel makinelerde bir ağ başlatmak için kullanacağımız nod sürümü budur. Çok sayıda API ile beraber zengin özelliklere sahiptir: https://docs.ava.network/v1.0/en/api/intro-apis/.
GO’yu sanal makineye kurmak için
https://github.com/golang/go/wiki/Ubuntu adresinden aşağıdaki kodları kullanabilirsiniz.
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt update
sudo apt install golang-go
Go get Gecko
Gecko’yu kurmak için “go get” komutunu kullanarak yazılımı doğrudan indireceğiz.
go get -d -v github.com/ava-labs/gecko/...
Bu, tüm Gecko istemcisini $ GOPATH’ımıza çekmelidir.
Kaynaktan derleme
Şimdi Gecko’yu indirdiğimize göre, istemciyi kurmalıyız. Bunu yapmak için, “gecko” klasörüne gidin ve kaynağı oluşturun:
cd ~/go/src/github.com/ava-labs/gecko
./scripts/build.sh
Her şey yolunda giderse “build” dizinini kontrol ederken şöyle bir şey görmeliyiz:
ccusce@AVAccusce:~/.gvm/pkgsets/go1.13/global/src/github.com/ava-labs/gecko$ cd build/
ccusce@AVAccusce:~/.gvm/pkgsets/go1.13/global/src/github.com/ava-labs/gecko/build$ ls -al
total 58644
drwxr-xr-x 2 ccusce ccusce 4096 Mar 3 19:48 .
drwxr-xr-x 20 ccusce ccusce 4096 Mar 3 19:48 ..
-rwxr-xr-x 1 ccusce ccusce 34411024 Mar 3 19:48 ava
-rwxr-xr-x 1 ccusce ccusce 25625592 Mar 3 19:48 xputtest
Ayrıca, her şeyin yolunda gittiğini doğrulamak istiyorsak, aşağıdaki kodu da çalıştırabilirsiniz:
./scripts/build_test.sh
Her şey yolunda gittiyse lütfen Discord kanalımıza gelin ve yazılımcı takımımızla tanışın ayrıca geri bildirimleriniz için de şimdiden teşekkür ederiz.
Avash — AVA Nod Kurucusu
Avash, bir nodu başlatmayı kolay ve tekrarlanabilir bir süreç haline getirmek için özel olarak yapılmış bir araçtır. Avash yerel nodun veritabanlarını böler ve dosyaları kendi depolarına ayırır. Avash’ı kullanarak çeşitli özel şablonlardan ağların başlatılmasını sağlayan komut dosyaları yazabiliriz hatta istemci çıktıktan sonra eski nodları temizleyebiliriz.
Yerel makinemizde dört düğümlü bir ağ kurmak için Avash’ı kullanacağız,
Avash’ı Kur
Gecko kurulumumuz gibi, Avash’ı yüklemek için “go get” komutunu kullanacağız:
go get github.com/ava-labs/avash
Kaynaktan derleme
Şimdi Avash için kaynağı indirdiğimize göre, kaynak kodunu oluşturacağız.
cd $GOPATH/src/github.com/ava-labs/avash
go build
Olmuş olmalı.
“$GOPATH/src/github.com/ava-labs/avash”. bu uzantıda artık avash dosyasını görüyor olmalıyız
İstemciyi Yapılandırma
Avash’ın çalışması için bir yapılandırma dosyası gerekir. Konfigürasyon dosyamızı ana dizinimizde tutmak isteyeceğiz. Zaten örnek bir yapılandırma dosyası var ve bunu kolayca ana dizinimize kopyalayabiliriz:
cp example.avash.yaml ~/.avash.yaml
Seçtiğiniz bir metin düzenleyicisini kullanarak “~ / .avash.yaml” içindeki yapılandırmayı aşağıdaki gibi düzenlemelisiniz:
avalocation: <filepath>
datadir: <directory>
log:
terminal: <log-level>
logfile: <log-level>
dir: <directory>
- “avalocation” alanı, Avash’ı başlatmak için gerekli olan AVA binary sinin dosya yoludur. $GOPATH içinde “github.com/ava-labs/gecko/build” dizininde olmalıdır. Tam yolu kullanın. Örnek verecek olursak: /home/ccusce/.gvm/pkgsets/go1.13/global/src/github.com/ava-labs/gecko/build/ava
- “datadir” alanı, verinin varsayılan olarak tutulacağı stash dizinidir.
- İsteğe bağlı: “log.terminal” ve “log.logfile” alanları, sırasıyla terminal ve log dosyalarının log düzeyini belirtir. Her ikisi de isteğe bağlıdır, “{verbo, debug, info, warn, error, fatal, off}” ve varsayılan olarak “info” olabilir.
- İsteğe bağlı: “log.dir” alanı log dosyalarının dizinidir. Varsayılan olarak [datadir] / logs değerini alır.
Bu yapılandırmalar ana dizinde kurulduktan sonra, Avash basitçe aşağıdaki komutla başlamalıdır:
./avash
Uygun diğer komutları görmek için:
avash> help
Belirli bir komutun yardımını görmek için önce “help” ve ardından komut adını yazın. Örneğin, “procmanager” komutu hakkında daha fazla bilgi edinmek için şunu yazın:
avash> help procmanager
Sorun yaşarsanız AVA Discord kanalına gelerek yazılımcılarıma danışabilirsiniz.
Kurulumu Test Edin
Tebrikler! Artık yerel makinemizde bir ağ başlatmak için ihtiyacımız olan her şeye sahibiz. Bu ağ, Avash konsolu açık olduğu sürece devam eder. Avash konsolunda “exit” adını alır almaz, Avash’ın işlemi tüm düğümleri kapatıp temizleyerek yalnızca logları ve veritabanlarını geride bırakır.
Avash ile yerel bir ağ kurun
Bir test ağını başlatmayı basitleştirmek için Avash, kullanıcının bir ağı hızlı bir şekilde dağıtmasını sağlayacak bir dizi örnek komut dosyasına sahiptir. Kendi komut dosyalarımızı da oluşturabiliriz, ancak bu rehberin amacı için önceden hazırlanmış “four_node_network.lua” komut dosyasını kullanarak bir ağ oluşturabilmenizi göstermektir. Bu komut dosyasını yürütmek için Avash konsolunda aşağıdaki komutu çalıştırın:
avash> runscript scripts/four_node_network.lua
Inanılmaz değil mi ? Dört nod, bir makine, işlemlere ve nodun taleplerine https://docs.ava.network adresinde açıklanan çocuk oyuncağı kadar kolay API’lerimizle işleme hazır.
Avash konsolundaki çalışan nodlarımıza bir göz atalım:
avash> procmanager list
Buna benzer bir şey görmelisiniz
RPC düğümünü tanımlayın ve bir test komutu gönderin
Artık yerel ağımız çalışıyor, API düğümünü tanımlayalım. Bu düğümlerden birine “apinode” denir. Tüm API’lar istek göndermek için JSON-RPC’yi destekler. JSON-RPC 2.0 hakkında daha fazla bilgi için: https://www.jsonrpc.org/
Çalıştığımız komut dosyasının IP adresimiz olarak “127.0.0.1” kullandığına dikkat edin, aksi takdirde çoğu sistemde “localhost” olarak bilinir. Ayrıca “http-port” u 9650'ye açtı. Bunlar, API uç noktaları için kullanacağımız IP ve Port kombinasyonu olacak. Bunu test etmek için, bağlandığımız diğer üç düğümü ulaşmasını beklediğimiz ilk komutumuzu “(peer ())” göndereceğiz. Bunu yapmak için, Avash’tan başka bir terminal penceresi açıyoruz ve “curl” ı kullanarak API düğümümüze aşağıdaki isteği göndereceğiz:
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"admin.peers"
}' -H 'content-type:application/json;' 127.0.0.1:9650/ext/admin
Diğer kullanıcıların listesini yollamalı
{
"jsonrpc":"2.0",
"result":{
"peers":[
"127.0.0.1:9155",
"127.0.0.1:9156",
"127.0.0.1:9157"
]
},
"id":1
}
Tebrikler! İlk AVA Ağınızı başlattınız! Belgelerde listelenenler ile AVA Platformu ile yapılabilecek çok daha fazlası var: https://docs.ava.network
Zarif Bir Ayrılık
Avash’ın en güzel yanlarından biri de çevremizi bizim için temizlemesidir. Sadece “exit” yazmalıyız ve tüm nodlarımız zarif bir şekilde kapanır, kendilerinden temizlenir ve askıda işlemler bırakmaz. Oturumumuzun kayıtları günlük dizinimizde ve çalıştırdığımız düğümlerimizin veritabanında kalır.
Sonraki Adım
Artık nodları güvenilir bir şekilde başlatabildiğimize göre, varlık göndermeye başlayabiliriz. Bir sonraki eğitimde, AVA Cüzdanını, AVA Musluğunu (faucet) kuracağız ve Javascript kütüphanemiz Slopes ile çalışma hakkında daha fazla bilgi edinecağız.
Bu rehberlerin size AVA’yı çalıştırmak ve kullanmak için sağlam bir temel sağladığını umuyoruz. AVa ile nelerin mümkün olduğunu görmek için lütfen Discord aracılığıyla bizimle iletişime geçin.
Kullanışlı Linkler:
Ava’nın Sosyal Kanallarına Katılın.
- Website: https://avalabs.org/
- Whitepaper: https://arxiv.org/pdf/1906.08936.pdf
- Twitter: https://twitter.com/avalabsofficial
- Discord (devs): https://discord.gg/ccc8vEP
- GitHub Repo: https://github.com/ava-labs/gecko
- Dökümantasyon: https://docs.ava.network/
- Geliştirici Destekleme Programı: http://avalabs.org/dap
- Telegram: https://t.me/avacoin_official
- Telegram anons: https://t.me/AVA_announcements
- Linkedin: https://www.linkedin.com/company/ava-labs
- Reddit: https://www.reddit.com/r/ava
- Medium: https://medium.com/avalabs
- Facebook: https://www.facebook.com/AvaLabsOfficial
- Youtube: http://www.youtube.com/c/AVAofficial