Ana içeriğe geç

BSC Validator'ı Çalıştır

Validator Donanım Gereksinimleri

Mainnet

  • Örnek Özelliği: AWS üzerinde r7a.4xlarge örnek türü önerilir.
  • Bellek: 64 GB
  • Disk: ÖNEMLİ 4T GB, katı hal sürücüsü (SSD), gp3, 8k IOPS, 500 MB/s veri aktarım hızı, okuma gecikmesi 10 Gbps

Testnet

  • CPU: "AMD Gen 3 veya daha yenisi" veya "Intel Ice Lake veya daha yenisi"
  • Bellek: 16 GB
  • Disk: 1.5 TB, katı hal sürücüsü (SSD), gp3, 8k IOPS, 250 MB/s veri aktarım hızı.
  • Ağ Bant Genişliği: > 2.5 Gbps

Validator Düğümünü Kurma

1. BSC Fullnode'u Kur

Bir full node kurmak için buradaki talimatları izleyin.

2. Hesapları Hazırlama

İki hesap, bir validator çalıştırmadan önce hazırlanmalıdır: Konsensüs hesabı ve BLS Oylama hesabı. Bu hesapların yeni bir validator oluşturulurken karşılık gelenlerle eşleştiğinden emin olun.

Konsensüs Adresini Oluştur

Yeni bir madencilik konsensüs hesabı oluşturmak için bu komutu çalıştırın ve hesap için bir şifre belirleyin:

geth account new --datadir ${DATA_DIR}
  • DATA_DIR: Anahtar depolama dosyalarınızın kaydedildiği yer.

Eğer zaten bir konsensüs hesabınız varsa, bu adımı atlayın. Şifreyi password.txt adında bir dosyaya kaydedin:

echo {konsensüs hesabı için şifreniz} > password.txt

BLS Oylama Adresini Oluştur

Yeni bir BLS hesabı kurmak için bu komutu kullanın:

geth bls account new --datadir ${DATA_DIR}
  • DATA_DIR: Anahtar depolama dosyalarınızı saklamak için dizin.

Eğer zaten bir BLS oylama anahtarınız varsa, bir BLS cüzdanı oluşturabilir ve onu anahtar dosyası ile geri yükleyebilirsiniz:

geth bls account import ${KEY_FILE} --datadir ${DATA_DIR}

BLS adresinizi almak için çalıştırın:

geth bls account list --datadir ${DATA_DIR}

Şifreyi blspassword.txt adında bir dosyaya kaydedin:

echo {BLS cüzdanı için şifreniz} > blspassword.txt

3. Validator Düğümünü Başlat

tehlike

Lütfen RPC uç noktalarınızı halka açık ağa açmayın!

Validator'nızı aşağıdaki komut satırını kullanarak başlatın:

geth --config ./config.toml --datadir ./node --syncmode snap -unlock {tx imzalamak için hesaplar, en azından madencilik hesabınızı içermelidir} --miner.etherbase {madencilik hesabınızın adresi} --password password.txt --blspassword blspassword.txt --mine --vote --allow-insecure-unlock --cache 18000

Çalıştırma Sonrası

1. Düğüm durumunu izleme

Hızlı bir başlangıç için, GethExporter'ı bir Docker konteynerinde çalıştırın.

docker run -it -d -p 9090:9090 \
-e "GETH=http://mygethserverhere.com:8545" \
hunterlong/gethexporter

2. Validator profilini güncelle

Bilgilerinizi güncellemek için bu depoya bir PullRequest gönderebilirsiniz:

Referans:

3. Validator Bilgilerini Yayınla

Bu repoya bir Pull Request gönderebilirsiniz

Bu depo, validator adaylarının potansiyel delegeçilere ekipleri ve altyapıları hakkında kısa bir tanıtım sunmaları ve ekosistem katkılarını sergilemeleri için bir yerdir.

4. Doğrulamayı Durdur

Yeni blok madenciliğini durdurmak için geth konsolu üzerinden komutlar gönderebilirsiniz.

Validator düğümünüze geth attach ipc:path/to/geth.ipc ile bağlanın.

miner.stop()

Doğrulamayı yeniden başlatmak için,

miner.start()

Bazı İpuçları & Araçlar

1. Yedek düğüm çalıştırma

Yedek düğüm, ana validator düğümünüz çeşitli potansiyel nedenlerden dolayı sorunlarla karşılaştığında yardım edebilir ve ağdaki katılımınızın sürekliliğini ve güvenilirliğini sağlar.

2. Düğümünüzün stabilitesini kontrol edin

BSC deposunda her validatorın slash durumunu dökme için bir javascript bulunmaktadır.

cd <bsc>/cmd/jsutils
# 1. Son bloğun slasherını dökmek için:
node getslashcount.js --Rpc https://bsc-mainnet.nodereal.io/v1/454e504917db4f82b756bd0cf6317dce

# 2. Ayrıca blok numarasını belirtebilirsiniz:
node getslashcount.js --Rpc https://bsc-mainnet.nodereal.io/v1/454e504917db4f82b756bd0cf6317dce --Num 39938351

Anahtar Not: Validator'ınız sorunsuz çalışıyorsa, günlük olarak minimal veya hiç ceza almayı beklemelisiniz. Genel olarak, eğer validator'ınız tek bir günde üçten fazla slash alırsa, bu anomaliyi araştırmak iyi olur.

3. Bakım moduyla ilgili

Validator'ınız 50 slash alırsa, otomatik olarak bakım moduna geçecektir. Düğümünüzdeki sorunları zamanında teşhis edip gidermek önemlidir; aksi takdirde, düğümünüz daha kısıtlayıcı bir duruma geçebilir, bu duruma genellikle "hapsetme" denir.

Düğümünüzün işlevselliğini başarılı bir şekilde geri kazandıktan sonra, normal operasyonları yeniden başlatmak ve gereksiz duraklama veya cezaları önlemek için bakım modundan çıkmanız önemlidir.


// not: "0x75B851a27D7101438F45fce31816501193239A83" değerini validator'ınızın konsensüs adresi ile değiştirin. geth attach geth.ipc web3.eth.sendTransaction({ from: "0x75B851a27D7101438F45fce31816501193239A83", to: "0x0000000000000000000000000000000000001000", data: "0x04c4fec6"})


### 4. Peerlere regex kalıbıyla filtreleme

Bu işlev, [1.4.6](https://github.com/bnb-chain/bsc/releases/tag/v1.4.6) sürümü ile tanıtılmıştır ve işlevsellikleri sorunlu olabilecek peerlere uygun bir şekilde kimlik belirlemeyi ve bunları hariç tutmayı amaçlamaktadır, böylece onlarla bağlantı kurulmasını önler. Daha fazla bilgi için lütfen bu Pull Request'i inceleyin: [PR#2404](https://github.com/bnb-chain/bsc/pull/2404).

Genel olarak, bu özelliğin normal işletim için gerekli değildir. Ancak, bir sürüm kritik hatalar içeriyorsa ve tüm düğümlerin hemen stabil bir sürüme yükseltmesi mümkün değilse, bu özellik problemler içeren sürümlere sahip peerlere bağlantıyı kesmek için kullanılabilir. Bu, kapsamlı bir güncelleme yapılana kadar bu hataların etkisini azaltmak için geçici bir çözüm sağlar.

Örneğin, v1.4.9'da bilinen sorunlar varsa, bu sürümün düğümlerinden bağlantıyı kesmek istiyorsanız, `config.toml` dosyanızı güncelleyebilir ve yeniden başlatabilirsiniz:

[Node.P2P] PeerFilterPatterns = ["Geth/v1.4.9.*"]