VinuChain ile bir süredir ilgileniyorum, bir kaç gündür de validatörünü çalıştırıyorum.
Ödül konusuna aldığım cevap;
Validatörünüz ne kadar çalışırsa o kadar testnet ödülü
, siz yinede sorun isterseniz.
Ne kadar sürecek sorusuna aldığım cevap
1.5 ay
, tahmini maliyetim:Hetznerde $6.
Lütfen kod bloklarında ve dışında yazdığım her şeyi okuyunuz, nedenini çok iyi anlayacaksınız.
Topluluk kanalları: Duyurular - Sorularınız İçin - VinuChain Discord - Explorer
Sunucu olarak Hetzner Kullanıyorum
# Benim kullandığım:
2 CPU - 4 RAM - 80 SSD
# Dökümasyon önerisi:
4 CPU - 16 RAM - 500 SSD
Benim sunucumda kullanım görselde ki gibi:
# Sistem güncellemeleri
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install ufw
# Yes diyebilirsiz portlarınız açık değilse
sudo ufw enable
sudo ufw allow 22
sudo ufw allow 5050
sudo ufw allow 4000
sudo ufw allow 3000
# rues yazan yere bir kullanıcı ismi verin
USER=rues
sudo mkdir -p /home/$USER/.ssh
sudo touch /home/$USER/.ssh/authorized_keys
sudo useradd -d /home/$USER $USER
sudo usermod -aG sudo $USER
sudo chown -R $USER:$USER /home/$USER/
sudo chmod 700 /home/$USER/.ssh
sudo chmod 644 /home/$USER/.ssh/authorized_keys
# Giriş yapınız bu klasöre:
sudo nano /etc/sudoers
# Fotoğrafta gösterdiğim gibi ekleyiniz. (Kullanıcı adını unutmayın)
kullanıcıİsminiz ALL=(ALL:ALL) ALL
# CTRL + X + Y + ENTER ile kaydedip çıkıyoruz.
# bu paketi yükleyelim:
sudo apt-get install -y build-essential
# go'yu yükleyelim:
wget https://go.dev/dl/go1.19.3.linux-amd64.tar.gz
sudo tar -xvf go1.19.3.linux-amd64.tar.gz
sudo mv go /usr/local
# nano ile dosyanın içersine girelim:
nano ~/.bash_aliases
# Bu değerleri dosyanın içine yapıştırın ve kaydedip çıkın.
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
# source edelim ve go version
source ~/.bash_aliases
go version
# Opera'yı ve VinuChain'i yükleyelim:
git clone https://github.com/VinuChain/VinuChain
cd VinuChain/
make
# version kontrol; 1.1.2-rc.3
./build/opera version
# doğru dizine gidelim:
cd
cd VinuChain
cd build/
# Genesisi yükleyelim
wget https://tinyurl.com/genesis-testnet
# Burada opera log ile node'u başlatıyoruz, değişmesi gereken bir yer yok.
nohup ./opera --port 3000 --nat any --genesis genesis-testnet --genesis.allowExperimental --bootnodes enode://3c4da2358ce3c3e117b03e4c87dff1d8d767a684e3c94f5eb29a4e88f549ba2f5a458eab60df637417411bb59b52f94542cf7d22f0dd1a10e45d5ae71c66e334@54.203.151.219:3000 > opera.log &
# yukarıda ki komuttan sonra "nohup: ignoring input.." çıktısı verecek, enter diyoruz.
tail -f opera.log
# Bu komuttan sonra loglar hızlıca akacak ve 2-3 dkya sync olacaksınız, explorerdan bakarsınız blok sayısına.
# Explorer gibi bir çok temel linkler vs. reponun sonunda veya başında bulundururum.
DİKKAT: Sırada ki işlemlerde,
iki key
oluşturuyoruz, biripublic adres
diğeripublic key
.
DİKKAT: İsmen aynı olabilir lakin farklılıklarını anlatacağım. Zaten birisi
kısa
birisiuzun
olacak.
DİKKAT: Bu komutlar sonrasında winscp ile
/root/.opera/keystore/
içersinde kiUTC
dosyasını vevalidatör
klasörünü saklayın!
# Bu public adresdir. Kısa olandır.
./opera account new
# account new ile oluşan cüzdana discorddan test tokeni isteyelim. 100k token. 1 tanede fee için olsun. 100.001
# Bu çıktıda ki bilgileri de kaydedelim.
./opera validator new
# Bu public keydir. Uzun olandır.
# bu çıktılarda ki bilgileri ve şifreyi kaybederseniz çözümü yok asla, yeni validator kurmanız gerekir.
# şimdi bir javascript konsolu oluşturacağız
./opera attach
DİKKAT: Sunucunuzda Açılan ">" konsoluna buradaki değişkenleri girip enterlayın.
Daha basit bir ifade ile; buradaki linkten komutu kopyalayıp yapıştırın.
# Bir yeri düzenlemenize gerek yok, abi kontratını başlatalım:
sfcc = web3.ftm.contract(abi).at("0xfc00face00000000000000000000000000000000")
# bu komutta sıfır dışında bir çıktı almalısınız (aktif validatör sayısı)
sfcc.lastValidatorID()
# Buradan validator ID'ınıze bakın:
sfcc.getValidatorID("KısaCüzdanAdresi")
# Çıktıda 0 çıkması gerekiyor çünkü henüz validatör oluşturmadık, 0 dışında bir şey varsa hata.
# validatör cüzdanımızı unlock ediyoruz:
personal.unlockAccount("KısaCüzdanAdresi", "Şifre", 300)
# Burada ki şifreyi zaten yukarıda belirtmiştik, bu komutun çıktısı TRUE olacaktır.
# Şimdi register edelim validatörümüzü:
tx = sfcc.createValidator("UzunCüzdanAdresi", {from:"kısaCüzdanAdresi", value: web3.toWei("100000.0", "ftm")})
# Eğer token yoksa çalışmaz, sorun yoksa yeşil yanan bir TX çıktısı alırsınız.
# TX'i kontrol edelim bu komutla, en sonda status: 0x1 çıktısı vermeli.
ftm.getTransactionReceipt("txAdresi")
# Veya explorerdan aratabilirsiniz tx'inizi.
# Yukarıda validator ID'ınıze bakmıştık 0'dı çünkü oluşturmamıştık, şimdi ise:
sfcc.getValidatorID("kısaCüzdanAdresi")
# Bir sayı çıktısı almalısınız , çıktı neyse mesela 15, 15. validatörsünüz ve bu ID'yi saklayın not edin!
# Operaya kill çekelim bu olmak zorunda:
pkill opera
# Yukarıda ki şifremizi password.txt dosyasına girip kaydedelim.
nano password.txt
# Bu klasörün içine şifrenizi yazın ve CTRL X Y ENTER ile çıkın kaydedip.
# Son adım:
nohup ./opera --bootnodes enode://3c4da2358ce3c3e117b03e4c87dff1d8d767a684e3c94f5eb29a4e88f549ba2f5a458eab60df637417411bb59b52f94542cf7d22f0dd1a10e45d5ae71c66e334@54.203.151.219:3000 --validator.id <ValidatorIDniz> --validator.pubkey <UzunAdres> --validator.password password.txt > validator.log &
# Bu komutta iki şey değişiyoruz, ValidatorID ve UzunAdresi, lütfen içine yazıp < > işaretlerini kaldırın.
# Logu kontrol edelim validatör için:
tail -f validator.log
# Akıyorsa no problemo
Validatorunuzu buradan kontrol edin (ID'si ile) downtime 0 ise sorun yok, artıyorsa node'u kontrol etmek gerekir.
VinuChain bir meme token değil merak etmeyin. Ahım şahım bir proje değil ama maliyeti düşük ve çalıştıracağım ben.
Madem buraya kadar okudunuz, elimde 2 milyon VC (VinuChain) token var, rueschatten yazan
ilk 20 kişiye 100k
veriyorum.
Topluluk kanalları: Duyurular - Sorularınız İçin - VinuChain Discord - Explorer
Daha ekleyecek yorumlarım vb. şeyler olabilir onun için yukarıdan yıldızlayın takibinizde olsun, eksik görürseniz PR atabilirsin, si yu