Docker ашиглаж валидатор node ажиллуулах заавар

Энэ хэсэгт Docker Container дээр валидатор node ажиллуулах талаар тайлбарлана.

Шаардагдах хэрэгслүүдийг суулгах

Энэхүү зааварт Docker програмийг Ubuntu үйлдлийн системтэй сервер дээр тохируулсан болно.

  1. apt-ыг шинэчилж, Docker програмыг суулгахад хэрэглэгдэх програмуудыг суулгана.

sudo apt-get update

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  1. Албан ёсны GPG түлхүүрийг нэмэх, програмын тогтвортой хувилбарыг татах санг нэмэх.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. Дээрх командуудыг ажиллуулсны дараа таны компьютерт Docker програм суух орчин бүрдэнэ. Доорх командаар Docker болон түүнтэй холбоотой ажиллах програмуудыг суулгана.

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io
  1. Docker програм зөв суусан эсэхийг шалгаж hello-world-ийг ажиллуулъя.

docker run hello-world
  1. Docker-compose програмыг суулгах.

 sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. Татсан програмыг ажиллуулах эрхийг олгох.

 sudo chmod +x /usr/local/bin/docker-compose

Docker-compose ашиглаж corex -ийг асаах

  1. Бидний бэлдсэн docker image -ийг татаж авах.

docker pull corexchain/corex

corexchain/corex-ийн тухай дэлгэрэнгүй мэдээллийг эндээс авна уу.

Үндсэн ubuntu үйлдлийн систем дээрх datadir гэсэн директорийг container-ийн /root/.corexchain гэсэн директортой холбож асаана. Хоёр директорийг холбож асааснаар бид өгөгдлөө алдагдхаас зайлс хийх, node-ийн өгөгдлийг зөөх боломжтой болно.

  1. Corex Validator node-ыг ажиллуулахаас өмнө эхлээд corex энгийн node-ыг асааж, үүнтэйгээ харьцаж байж validator эрхийг бүртгүүлнэ. Дараах алхмаар corex-ыг ажиллуулснаар энгийн node асаж, corex сүлжээтэй шууд синхрон хийж эхлэх болно.

docker container run -v $(pwd)/datadir:/root/.corexchain:rw corexchain/corex ./corex --genesis /genesis/mainnet.g 

Валидатор хэтэвч үүсгэх

Бидний ажиллаж буй терминал дээр энгийн node ажиллаж эхэлсэн учраас бид SSH ашиглан валидатор сервертэйгээ нэмж холбогдоно. Сервертэй холбогдсоны дараагаар дараах командаар шинэ хэтэвч үүсгэнэ.

docker container exec -it {CONTAINER ID} ./corex account new

Дээрх командыг ажиллуулснаар танаас түлхүүрийг нууцлах нууц үгийг асуух болно. Энэ нууц үгийг та мартахгүй санах хэрэгтэй. Нууц үгээ мартсан тохиолдолд, эсвэл хэтэвч устсан тохиолдолд сэргээх боломжгүй гэдгийг хатуу анхаарна уу. Тиймээс аюулгүйн үүднээс та secret key file-д заагдсан зам, нэрээр үүсгэгдсэн файлыг хаа нэгтэй нөөцөлж авах нь зүйтэй. Уг файл доторх таны хувийн түлхүүр таны нууц үгээр хамгаалагдсан байх болно.

Зурагт үзүүлснээр Public address of the key хэсэгт таны түлхүүрийн хаяг байрлах болно. Энэхүү зургаас түлхүүрийн хаягийг албаар авч хаясан болно. Одоо та өөрийн хаягаа www.corex.mn биржээр орж дор хаяж 2,000,000CRX-р цэнэглэх ёстой. Нэмэлт гүйлгээний төлбөрт зориулж арай ихээр цэнэглэхээ мартуузай.

Одоо validator түлхүүрийг үүсгэе.

docker container exec -it {CONTAINER ID} ./corex validator new

Дээрх командыг ажиллуулсны дараа танаас түлхүүрийг нууцлах нууц үгийг асууна. Энэ нууц үгийг та мартахгүй санах хэрэгтэй. Нууц үгээ мартсан тохиолдолд, эсвэл хэтэвч устсан тохиолдолд сэргээх боломжгүй гэдгийг хатуу анхаарна уу. Тиймээс аюулгүйн үүднээс та secret key file-д заагдсан зам, нэрээр үүсгэгдсэн файлыг хаа нэгтэй нөөцөлж авах нь зүйтэй. Уг файл таны нууц үгээр хамгаалагдсан байх болно.

Валидатор бүртгүүлэх

Валидатор бүртгүүлэхдээ бид гүйлгээ хийж ухаалаг гэрээтэй харьцах тул дараах командаар JavaScript console-д орно.

docker container exec -it {CONTAINER ID} ./corex attach

Уг console дээр web3 гэж бичиж та хийж болох үйлдлүүдийг харах боломжтой.

Одоо бид корэкс сүлжээнд суурилсан ухаалаг гэрээг ашиглан валидатор бүртгүүлэх болно. Эхлээд бидэнд уг гэрээний ABI хэрэгтэй. ABI-г эндээс github авах боломжтой.

abi = JSON.parse('Татаж авсан json тэкст')

ABI нь Корэксийн албан ёсны ухаалаг гэрээний, JSON хэлбэрт байгаа abi. Одоо гэрээний хуулбарыг авчиръя. Уг албан ёсны ухаалаг гэрээ corex блокчейн дээр 0xc04e800000000000000000000000000000000cfc хаяг дээр үүсгэгдсэн байдаг.

sfcc = web3.crx.contract(abi).at("0xc04e800000000000000000000000000000000cfc")

Хэрэв бүх зүйл амжилттай болсон бол одоо ухаалаг гэрээний функцийг дуудаж шалгаж үзье. sfcc гэж доторх үйлдлүүдийг харах боломжтой.

sfcc
# Хамгийн сүүлийн Validator-ын ID. Алдаагүй бол 0-ээс их утга буцаана.
sfcc.lastValidatorID()

Хэрэв бүх зүйл амжилттай болсон бол энд алдаа заах учиргүй ба хамгийн сүүлд бүртгүүлсэн валидаторын ID -ыг буцаана. Валидатор бүр дахин давхардахгүй ID -тай байдаг.

Мөн бусад Validator-уудын мэдээллийг эндээс харах боломжтой.

for (i = 1; i <= sfcc.lastValidatorID(); i++) { console.log(sfcc.getValidator(i)); }

Дээрх коммандаар бусад бүх Валидаторын барьцааны хэмжээ төлөв гэх мэт мэдээллийг харуулна.

Одоо валидтор үүсгэх гүйлгээг хийцгээе. Эхлээд гүйлгээ хийхэд бэлдэж хэтэвчээ нээх хэрэгтэй.

personal.unlockAccount("<таны хаяг>")

Дээрх командын <таны хаяг> хэсэг дээр ./corex account new командаар буцаасан хаягийг тавина. Командыг ажиллуулахад түлхүүрийг онгойлгох нууц үгийг танаас асуух болно. Амжилттай болсон бол true утга буцаана.

Валидатораар бүртгүүлэхийн тулд гэрээний createValidator функцийг дуудна. Уг гүйлгээ 2,000,000CRX болон гүйлгээний шимтгэлийг шаардана.

tx = sfcc.createValidator("<таны нийтийн түлхүүр>", {from:"<таны хаяг>", value: web3.toWei("1000000.0", "crx")}) 

Дээрх командын <таны нийтийн түлхүүр> хэсэгт ./corex validator new командаар буцаасан Public Key: дээрх нийтийн түлхүүрийг хуулж тавина. Харин <таны хаяг> гэдэг нь өмнөх командтай адилхан байх юм. tx-т Validator үүсгэх гүйлгээний хаяг хадгалагдана. Энд бид 2,000,000CRX ашиглан validator бүртгүүлсэн бөгөөд та энэ хэмжээг ихэсгэх боломжтой. Одоо гүйгээ аль хэдийн хийгдсэн бөгөөд гүйлгээ амжилттай болсон эсэхийг

crx.getTransactionReceipt(tx)

гэж харах боломжтой.

Одоо та албан ёсоор валидатор болсон бөгөөд өөрийн валидатор ID-аа дараах командаар харах боломжтой.

sfcc.getValidatorID("<таны хаяг>")

Анхааруулга: Дээрх зурагт үзүүлсэн ID-г туршилтаар үүсгэсэн бөгөөд корэкс сүлжээнд ямар ч холбоогүй болно.

Та валидатор болоход барьцаанд тавьсан CRX-ын хэмжээг дараах үйлдлээр харах боломжтой.

sfcc.getStake("<таны хаяг>", "<таны Validator ID>")

Одоо та өөрийн node-ыг validator горимоор дахин асаах л үлдлээ.

Валидатор node асаах

Одоо сүүлийн алхам үлдлээ. Та өөрийн серверийг валидатор горимоор ажиллуулах ёстой. Та өнмө ажиллуулсан энгийн node (Docker container) -ийг унтраана docker container stop {CONTAINER ID}, дараах docker-compose.yaml -ийг datadir / corex -ийн өгөгдөл байгаа газар үүсгэнэ.

# docker-compose.yaml
version: '3.9'
services:
  go-corex:
    image: corexchain/corex
    command: /corex --genesis /genesis/mainnet.g --validator.id=${VALIDATOR_ID} --validator.pubkey=${VALIDATOR_PUB_KEY} --validator.password=/passphrase 
    volumes:
      - $(pwd)/datadir:/root/.corexchain
      - $(pwd)/passphrase:/passphrase
    ports:
      - "5050:5050"

Дээрх командыг дуудахдаа та өөрийн валидатор ID, нийтийн түлхүүр, валидатор түлхүүрийн нууц үгийг агуулах файлыг зааж өгнө. Нууц үг текст хэлбэрээр файл дотор байрших шаардлагатай. Одоо таны node валидатор горимоор ажиллаж эхэллээ. Танд баяр хүргэе!

Last updated