# Ana düğümü başlat

Normal bir ağ düğümü ile bir ana düğüm (ana düğüm, doğrulayıcı) arasındaki fark, yalnızca blokların üretilmesinde ve doğrulanmasında/imzalanmasında yer almasıdır. Teknik olarak, bu düğümlerin her ikisi de aynı şekilde çalışır. Örneğin, her düğümün her zaman kendi tanımlayıcısı (node_id) ve ed25519 biçiminde bir özel / genel anahtar çifti vardır - bu anahtar, düğümün bir ana düğüm olması durumunda blokları imzalamak için kullanılır.

# Требования

1) git;
2) golang 1.14+;
3) konsol yardımcı programları curl and jq;
4) yardımcı programı oluşturmak ve derlemek için araçlar (building tools);
5) key-value depolama kitaplığı LevelDB.   

Desteklenen işletim sistemlerinin listesi (3 Şubat 2022 itibarıyla):

  • 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

Eğer işletim sisteminiz listede yoksa, lütfen https://decimalchain.com/ adresindeki bağlantılar aracılığıyla desteğe başvurun.

Minimum donanım gereksinimleri:

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

Building tools'u (make dahil) ve LevelDB'yi kurmak için aşağıdaki komutları kullanın:

# 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

# Kurulum

Düğümle çalışmak için decd ve deccli programları gereklidir. Bunu yapmak için [Go] derleyicisini (https://golang.org/dl/) ve [Make] yardımcı programını (https://www.gnu.org/software/make/) kurmanız ve ardından "decd" ve "deccli" derleyin. Düğümü derlemek için:

  1. Düğümün kaynak kodunu klonlayın:

    git clone https://bitbucket.org/decimalteam/go-node.git
    
  2. decd и deccli derleme ve yüklemesini yapın:

    make all
    
  3. decd ve decclinin komutlarla kullanılabilir olup olmadığını kontrol et:

    decd version
    deccli version
    

# Yapılandırma

  1. Komutu kullanarak $HOME/.decimal klasörünü oluşturarak düğümü başlatmanız gerekir.:

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

    YOUR_NODE_NAME - düğüm adı, örneğin `my-great-node;
    mainnet|testnet|devnet - ilgili ağ için seçeneklerden birini belirtin;
    |xcvd|wgegeg - karşılık gelen ağların chain-id değiştirin.

  2. Komutu uyguluyoruz:

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

Bu komut, base64 ile kodlanmış ortak anahtarı ed25519 biçiminde çıkaracaktır. Bu, düğümün genel anahtarıdır, daha sonra doğrulayıcıyı kaydettirmek için ihtiyacınız olacak ('Public key' alanında), onu kaydetmeniz gerekir..

# Başla

  1. Düğümü başlatıyoruz ve senkronizasyonun bitmesini bekliyoruz:

    decd start
    
  2. Düğüm senkronize edilirken, hisse ve doğrulayıcı kaydı için paralıbir hesap hazırlamak gerekir. Konsolda (opens new window) tDEL test paralarını almak için bir musluk mevcuttur.

  3. Düğüm senkronize edildiğinde ve güncel olduğunda, hazırlanan düğümün doğrulayıcı olarak kaydedilmesi ve ilk hissenin atanması gerekir, hesaptan konsol üzerinden 'Declare candidate' işleminin oluşturulup gönderilmesi gerekir. Doğrulayıcının blok zincirinde daha fazla yönetilmesi planlanmaktadır. Düğümle ilgili bilgileri doldurmak ve işlemi göndermek için https://console.decimalchain.com/masternode (opens new window) bağlantısını takip edin. Doğrulayıcıyı etkinleştirmek ve devre dışı bırakmak için aynı bağlantı kullanılabilir.

    Public key öyrenmek için, düğümlü bir sistemde komutu çalıştırmanız gerekir (Public key terminaldeki gibi geri çekilecek):

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

# İkinci (rezerv) doğrulayıcı

Eğer sizin çalışan bir doğrulayıcı düğümünüz varsa, ancak farklı bir donanım üzerinde ikinci bir (yedek) düğüm hazırlayıp gerekirse çalıştırmak istiyorsanız, bu şu şekilde yapılır:

  1. Düğüm, normal bir düğüm gibi, mevcut düğüme paralel olarak önceden konuşlandırılır.

  2. Düğüm, gerçek blokları alarak blok zinciri ile senkronize edilir.

  3. Mevcut düğüm devre dışı bırakılmışsa, kapatılmalıdır (decd durduruldu). Daha sonra:

    Ana düğüm onun doğrulayıcı anahtarlarını .decimal/daemon/config/ dizininden kopyalayın:
    а. priv_validator_key.json
    б. node_key.json

  4. Bu anahtarları ikinci (yedek) düğümde aynı dizine yapıştırın. Önemli! Aynı zamanda yedek düğüm de kapatılmalıdır (decd durdurulur).

  5. Bir yedek düğüm çalıştırın. Bundan sonra, düğüm hızlı bir şekilde mevcut duruma senkronize edilir.

  6. Senkronizasyon tamamlandıktan sonra Konsoldan SetOnline işlemini gönderin ve yeni düğüm daha önce durdurulan düğümün yerine çalışacaktır (ilk düğümün kesinlikle çevrimiçi olmayacağından emin olmanız gerekir).