December 6, 2023

Juneo Node Kurulum Rehberi

1) Node Kurulum

1. Makinemizi güncelleyelim ve kütüphane kurulumlarını tamamlayalım.

sudo apt update && sudo apt upgrade
sudo apt-get -y install libssl-dev && apt-get -y install cmake build-essential git wget jq make gcc

2. Kuruluma aşağıdaki komutla başlayalım: > Tek tek komutları girmenize gerek yok, komple alın ve terminale yapıştırın.

git clone https://github.com/Juneo-io/juneogo-binaries && \
cd juneogo-binaries && \
sudo cp -r juneogo /root/ && \
cd plugins && \
sudo cp -r ./* /root/ && \
cd

3. Dosyaları yetkilendirelim. > Tek tek komutları girmenize gerek yok, komple alın ve terminale yapıştırın.

chmod +x juneogo && \
chmod +x jevm && \
chmod +x srEr2XGGtowDVNQ6YgXcdUb16FGknssLTGUFYg7iMqESJ4h8e

4. Şimdi ise Binary'den aldığımız dosyaları ilgili kısımlara taşıyacağız. > Tek tek komutları girmenize gerek yok, komple alın ve terminale yapıştırın.

mkdir -p .juneogo/plugins && \
mv jevm .juneogo/plugins && \
mv srEr2XGGtowDVNQ6YgXcdUb16FGknssLTGUFYg7iMqESJ4h8e .juneogo/plugins

5. Node'u başlatalım.

sudo apt install screen
screen -S juneogo
./juneogo

Örnek çıktı:

6. Daha sonra buradan ctrl a - d ile çıkalım.

7. Bir süre sonra node'un boostrapped olup olmadığını aşağıdaki komutla kontrol edebilirsiniz:

Burada tıpkı örnek çıktıda olduğu gibi isBootstrapped kısmı "true" olmalıdır.

Not: Yaklaşık 1-2 saat arasında "true" çıktısı veriyor.

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

Örnek Çıktı:


8. İlgili Portları Açalım:

sudo ufw allow 9650
sudo ufw allow 9651 

9. Tarih/saat senkronizasyonunu ayarlama

Bunun sebebini resmi dokümanda şu şekilde ifade etmişler: "Node'unuzun saatinin doğru şekilde senkronize edilmesi son derece önemlidir. Yanlış zaman senkronizasyonu, node'un çevrimdışı olarak işaretlenmesine neden olur ve bu da stake ödüllerinin kaybedilmesine yol açabilir."

timedatectl set-ntp on

10. Node ID'mizi alalım:

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

Örnek Çıktı:

{"jsonrpc":"2.0","result":{"nodeID":"NodeID-HPUJEHhp4ZzCTXXXXXXXXXXXXX","nodePOP":{"publicKey":"0xXXXXXXXXXXXXXXXX

11. Şimdi MCN cüzdana'a gidelim ve bir cüzdan oluşturalım:

12. Cüzdan oluşturduktan sonra Node Id'nizi ve June-Chain cüzdan adresinizi ekibe iletin.
13. Token geldikten sonra cüzdanda Cross-Chain kısmına gelelim:

June-Chain'den Platform-Chain'e token transfer edelim. 50 adet yollayın.

14. Daha sonra cüzdanın en solundaki "Stake" butonuna tıklayın.

15. Sonra da "Validate" kısmına geçelim.

Ardından az evvel aldığımız Node ID'mizi Node ID yazan yere yapıştıralım. Stake adedimiz en az 1 olacak şekilde ayarlayalım ve token adedimizi istenen ve gereken şekilde ayarladıktan sonra cüzdanın en sağında mavi renkli fonu olan "Validate" butonuna tıklayalım.

16. İşlem tamamlandıktan sonra tarayıcıya gidelim.

Buradan Node ID'mizi kontrol edelim. Başarılı bir kurulum sonucunda örnek aşağıdaki görseldeki gibi olacaktır.

2) Supernet Oluşturma

Öncelikle github reposunu indirelim, makinemize.

Linke gittikten sonra aşağıdaki örnekte gösterildiği gibi indirebilirsiniz.

Ardından indirdiğimiz repoyu zipten çıkaralım ve VS Code Studio ile açalım.
Bilgisayarınızda yüklü değilse buradan yükleyebilirsiniz.

Terminali aşağıdaki görselde ok'un işaret ettiği yere tıklayarak açabilirsiniz.

Terminale aşağıdaki komutu girerek işlemlere başlayın.

cp .env.example .env

Şimdi .env adlı bir dosya oluşturduk. Buraya MCN Wallet ile cüzdan oluştururken yedeklediğimiz cüzdan kelimelerini yazacağız.

Sol taraftan .env adlı dosyanın üzerine tıklayın ve açılan ekranda cüzdan kelimelerinizi yazın.

Örnek:

MNEMONIC='CÜZDANKELİMELERİNİZ'

Yazdıktan sonra "ctrl s" ile kaydedin yaptığınız değişiklikleri, daha sonra terminale gelin ve aşağıdaki komutu çalıştırın.

npm install

Yükleme tamamlandıktan sonra terminale şu komutu girin ve Enter'a basın.

npx ts-node ./src/docs/crossJUNEtoJVM.ts

Bu komut şu şekilde bir çıktı vermelidir:

Diğer komutu çalıştıralım:

npx ts-node ./src/docs/crossJVMtoP.ts

Bu komut ise şu şekilde çıktı vermelidir:

Bu adımları sağlıklı şekilde yaptıktan sonra şimdi supernet oluşturma komutunu çalıştıracağız ve bize supernet id'mizi verecek bu id'yi not edin.

npx ts-node ./src/supernet/createSupernet.ts

Örnek Çıktı:

Sol taraftan /src/supernet/addSupernetValidator.ts dosyasını seçin.

Burada addSupernetValidator.ts dosyası içinde değiştirmemiz gereken kısımlar var, o kısımları kendi bilgimizle değiştirmeliyiz.

Değiştirlecek kısımlar:

const nodeId: string = 'NodeID'niz'
const supernetId: string = 'SupernetID'niz'

Örnek:

Değişiklikleri sağlıklı şekilde yaptıktan sonra terminale gelin ve şu komutu çalıştırın:

npx ts-node ./src/supernet/addSupernetValidator.ts

Size bir çıktı verecek ve bu çıktıyı da kenara not edin.

Sonra sunucunuza bağlanın node'u durduracağız.

cd
screen -r juneogo

screen'e girince ctrl c yapın ve node'u durdurun.

Config.json adlı bir dosya oluşturacağız. Aşağıdaki komutu girin.

nano config.json

Bu komuttan sonra aşağıdaki komutu açılan pencereye kendi supernet id'nizi yazarak yapıştırın.

Not: komutu not defteri vb. yerlerde düzenleyin.

{
 "track-supernets":"supernetidniziyazınburaya"
}

Daha sonra ctrl x y ve enter'a basıp kaydedin.

Tüm bunları tamamladıktan sonra şimdi node'u tekrar başlatacağız.

cd
screen -r juneogo

Screen'e girince komutu direkt yapıştırın ve enter'layıp çalıştırın.

./juneogo --config-file="./config.json"

Vee sizi tebrik ederim, bir supernet oluşturdunuz.

Bu aşamada sunucunuzdan çıkmayın, kenarda açık kalsın.

Şimdi sıra son adımda..

3) Supernet EVM Deploy Etme

VS code studio'ya tekrar dönün ve sol taraftan bu sefer /src/supernet/createChain.ts dosyasını seçin.

Bu dosyada değiştirmemiz gereken kısımlar var.

const supernetId: string = 'Supernet ID'nizi Yazın'

const chainName: string = 'Chain Adınızı Yazın'

const chainId: number = XXXXXXX

const genesisMintAddress: string = 'MCN CÜZDANDAKİ JUNE-CHAIN ADRESİNİZİ YAZIN'

const chainId: number = XXXXXXX kısmında 300,000 - 399,999 arasında bir sayı yazacaksınız. Örnekte de gördüğünüz üzere ben 360179 seçmiştim. Siz de bundan yola çıkarak bir chainID number yazın.

Örnek:

Değişiklikleri tamamladıktan sonra şu komutu çalıştırın ve çıktıyı kenara not edin.

npx ts-node ./src/supernet/createChain.ts

Örnek Çıktı:

Created chain with id: FuSuQhs4J8WZbewXVtTAvvyccZiSKeLjWEhUpC7U1No3CWcdQ

Chain'imizi explorer üzerinde indekslemek için birkaç şey yapacağız. Bu sebeple sunucumuza bağlanalım. Bu işlemleri orada yapacağız.

Aşağıdaki komutları sırayla yazın ama değişiklik yapmanız gereken kısmı unutmayın.

Uyarı: komutları topluca değil, tek tek girin terminale.

cd .juneogo

mkdir configs
cd configs

mkdir chains
cd chains

mkdir chainidçıktınızıyazınburaya
cd chainidçıktınızıyazınburaya

nano config.json

Not: chainidçıktınızıyazın kısmına bir işlem önce aldığımız id'yi yazacaksınız.

nano config.json komutundan açılan sayfaya aşağıdaki komutu direkt yapıştırıp kaydedin.

{
"pruning-enabled": false,
  "eth-apis": ["public-eth", "public-eth-filter","net","web3","internal-public-eth","internal-public-blockchain","internal-public-transaction-pool","internal-public-debug","debug-tracer"]
}

Daha sonra ctrl x y ve enter'a basıp kaydedin.

Node'u yine durdurun ve aşağıdaki komutla node'u tekrar yeniden başlatın.

cd
./juneogo --config-file="./config.json"

Sağlıklı çalıştığını gördükten sonra yeniden durdurun.

cd
screen -r juneogo

ctrl c basın ve node'u durdurun.

Şimdi config.json dosyamızda gereken değişiklikleri yapacağız.

cd
nano config.json

Açılan ekranı aşağıdaki örnekte olduğu gibi değiştirin.

{
 "track-supernets":"supernetidniziyazacakburada",
 "http-host":"sunucuipadresinizyazacakburada"
}

Daha sonra ctrl x y ve enter'a basıp kaydedin.

Şimdi node'u yeniden çalıştırın.

./juneogo --config-file="./config.json"

Bu kısımdan sonra cüzdanımızı metamask'a import etme ve ağımızı ekleme adımına geçeceğiz.

MCN Wallet'tan private keyinizi alın. Private key MCN Wallet'a girdiğinizde sol en altta settings kısmında bulunuyor. Aldığınız private keyi, metamask'a import edin.

Sonra manuel ağ ekleme kısmına gelin.

Ağ adı: Chain Adı

Örnek:

BlackOwl

RPC: http://sunucuipadres:9650/ext/bc/chainid/rpc

Örnek:

http://135.181.203.108:9650/ext/bc/FuSuQhs4J8WZbewXVtTAvvyccZiSKeLjWEhUpC7U1No3CWcdQ/rpc

Zincir Kimliği: ChainID Number

Örnek:

360179

Para Sembolü: TEST

Ağ eklendikten sonra 2-3 transfer yapın.

Örnek:

Bu aşamaya kadar her şey sağlıklı ve sorunsuz ise şimdi ekibe gerekli bilgileri gönderme vakti geldi.

Aşağıdaki formatta ekibe bilgilerinizi iletin.

Supernet
- Name
- Description
- id

Blockchain
- Name 
- Description 
- Currency (in ALL-CAPS format)
- Decimals 
- Host (http://xxx.xxx.xxx.xxx:9650 or with domain name) 
- rpc (http://xxx.xxx.xxx.xxx:9650/ext/bc/id/rpc)
- Logo (min 273x273 or greater.
        In .png format. 
        The width:height ratio should be 1:1)
- id

Örnek:

İşte her şey bu kadardı!

-BlackOwl