# Masternode`ni başlatmaq

Adi şəbəkə nodu ilə masternode (master node, təsdiqləyici) arasındakı fərq yalnız blokların istehsalında və yoxlanılmasında / imzalanmasında iştirak etməsidir. Texniki olaraq, bu qovşaqların hər ikisi eyni şəkildə işləyir. Məsələn, hər bir node həmişə öz identifikatoruna (node_id) və ed25519 formatında şəxsi/ictimai açar cütlüyünə malikdir - bu açar qovşağın masternode`yə çevrildiyi halda blokları imzalamaq üçün istifadə olunur.

# Tələblər

1) git;
2) golang 1.14+;
3) konsol yardım proqramları curl and jq;
4) alətlər qurmaq və tərtib etmək üçün (building tools);
5) key-value saxlama kitabxanası LevelDB.   

Dəstəklənən əməliyyat sistemlərinin siyahısı (3 fevral 2022-ci il):

  • Linux CentOS 7
  • Linux CentOS 8
  • Linux Ubuntu 16.04
  • Linux Ubuntu 18.04
  • Linux Ubuntu 20.04
  • Linux Ubuntu 22.04
  • Linux Debian 9
  • Linux Debian 10

Əgər əməliyyat sisteminiz siyahıda yoxdursa, https://decimalchain.com/ linkləri vasitəsilə dəstək xidməti ilə əlaqə saxlayın.

Minimum avadanlıq tələbləri:

4 core CPU, 8 Gb RAM, SSD NVM 500Gb

Building tools (o cümlədən make) və LevelDB quraşdırmaq üçün aşağıdakı əmrlərdən istifadə edin:

# RHEL 8 / CentOS 8:

sudo dnf groupinstall "Development Tools"
sudo dnf install leveldb leveldb-devel snappy

# Ubuntu:

sudo apt-get install build-essential
sudo apt-get install libsnappy-dev libleveldb-dev

# macOS:

brew install coreutils
brew install leveldb snappy

# Quraşdırma

Node ilə işləmək üçün decddeccli proqramları tələb olunur. Bunun üçün siz [Go] kompilyatorunu (https://golang.org/dl/) və [Make] yardım proqramını (https://www.gnu.org/software/make/) quraşdırmalı və sonra decddeccli tərtib edin. Düyün tərtib etmək üçün:

  1. Node mənbə kodunu klonlayın:

    git clone https://bitbucket.org/decimalteam/go-node.git
    
  2. 'decd' və 'deccli'nin tərtib edilməsi və quraşdırılması`:

    make all
    
  3. decddeccli-nin əmrlərlə mövcud olduğunu yoxlamaq:

    decd version
    deccli version
    

# Konfiqurasiya

  1. Komandadan istifadə edərək $HOME/.decimal qovluğunu yaradaraq qovşağı işə salmalısınız:

    decd init YOUR_NODE_NAME --network mainnet|testnet|devnet --chain-id decimal-mainnet-08-01|xcvd|wgegeg
    

    YOUR_NODE_NAME - node adı, məsəl üçün `my-great-node;
    mainnet|testnet|devnet - müvafiq dəst üçün variantlardan birini göstərin;
    |xcvd|wgegeg - müvafiq şəbəkələrin chain-id ilə əvəz edin.

  2. Əmri yerinə yetiririk:

    cat $HOME/.decimal/daemon/config/priv_validator_key.json | jq --raw-output '.pub_key.value'
    

    Bu əmr base64 kodlu açıq açarı ed25519 formatında çıxaracaq. Bu, qovşağın açıq açarıdır, təsdiqləyicini qeydiyyatdan keçirmək üçün daha sonra ona ehtiyacınız olacaq (Public key sahəsində), siz onu yadda saxlamalısınız.

# Başla

  1. Node başlat və sinxronizasiyanın sonunu gözlə:

    decd start
    
  2. Hələki node sinxronizasiya edilərkən, payı və təsdiqləyicinin qeydiyyatı üçün pul ilə hesab hazırlamaq lazımdır. Konsolda (opens new window) tDEL test pulları qəbul etmək üçün kran mövcuddur.

  3. Node sinxronlaşdırıldıqda və yeni olduqda, hazırlanmış qovşağı təsdiqləyici kimi qeydiyyatdan keçirmək və ilkin payı təyin etmək lazımdır, hesabdan konsol vasitəsilə Declare candidate əməliyyatını formalaşdırmaq və göndərmək lazımdır. Bundan sonra blokçeynində təsdiqləyicinin idarə edilməsi planlaşdırılır. Node haqqında məlumatı doldurmaq və əməliyyatı göndərmək üçün https://console.decimalchain.com/masternode (opens new window) keçidini izləyin. Eyni keçid təsdiqləyicini aktivləşdirmək və söndürmək üçün istifadə edilə bilər.

    Public key öyrənmək üçün, node olan bir sistemdə əmri yerinə yetirməlisiniz (Public key terminalda olduğu kimi çıxacaq):

    cat $HOME/.decimal/daemon/config/priv_validator_key.json | jq --raw-output '.pub_key.value'
    

# İkinci (rezerv) təsdiqləyici

Əgər sizin təsdiqləyici qovşağınız işləyirsə, lakin müxtəlif aparatlarda ikinci (ehtiyat) node hazırlamaq və lazım gələrsə onu işə salmaq istəyirsinizsə, bu aşağıdakı kimi edilir:

  1. Node, adi qovşaq kimi, cari birinə paralel olaraq əvvəlcədən yerləşdirilir.

  2. Node faktiki blokları qəbul edərək blokçeyn ilə sinxronlaşdırılır.

  3. Əgər cari node deaktiv edilibsə, o zaman söndürülməlidir (decd dayandırıldı). Sonra:

    Əsas qovşağın .decimal/daemon/config/ kataloqundan onun təsdiqləyici node kopyalayın:
    а. priv_validator_key.json
    б. node_key.json

  4. Bu açarları ikinci (rezerv) nodeda eyni kataloqa yapışdırın. Vacibdir! Eyni zamanda, ehtiyat nodeda söndürülməlidir (decd dayandırılır).

  5. Rezerv node işə salın. Bundan sonra, node tez bir zamanda cari vəziyyətə sinxronlaşdırılır.

  6. Sinxronizasiya başa çatdıqdan sonra Konsoldan SetOnline əməliyyatını göndərin və əvvəllər dayandırılmış olanın əvəzinə yeni node işləyəcək (birinci node mütləq şəkildə internetə keçməyəcəyinə əmin olun).