Cover photo

Celestia Light & Full Node on the Mocha Testnet

آموزش قدم به قدم راه‌اندازی نودهای لایت + فول شبکه سلستیا روی تست نت مچا

Resources:

سلستیا یک شبکه با طراحی ماژولاره و برخلاف اتریوم که یک بلاکچین یکپارچه است، در شبکه ماژولار اجزای بلاکچین و نودها هرکدوم جداگانه وظایفی رو به عهده دارند

شبکه سلستیا از 2 لایه تشکیل شده که هرکدوم دارای نودهای متفاوتیه:

  • Consensus Nodes

    1. 1.Validator Nodes

    2. 2.Consensus Full Nodes

  • Data Availability Nodes

    1. 1.Bridge Nodes

    2. 2.Full Storage Nodes

    3. 3.Light Nodes

از اونجایی که درحال حاضر تعداد زیادی نود ولیدیتور روی شبکه تست‌نت وجود داره و فقط 150 نفر با بیشترین تعداد توکن به عنوان ولیدیتور “فعال” انتخاب میشن، پیشنهاد تیم برای شرکت در تست‌نت راه‌اندازی یک یا هر دو نودهای "لایت" و "فول" است

آموزش و دستورات کدنویسی در محیط سیستم عامل لینوکس اوبونتو انجام میشه و برای اطلاعات بیشتر برای نحوه ایجاد محیط اوبونتو میتونید این توییت رو مطالعه کنید

در این آموزش ابتدا “لایت نود” رو راه میندازیم و بعدش “فول نود” رو در کنارش راه اندازی میکنیم

راه اندازی لایت نود

نود لایت باتوجه به اینکه سبکه میتونید روی کامپیوتر هم راه اندازیش کنید و حتما نیازی به سرور مجازی ندارید. من برای اینکه همیشه نودم فعال باشه روی یک سرور مجازی اوبونتو راه اندازیش کردم

  • Requirements:

  • PC or VPS, 1 core, 2 GB RAM and Hard SSD 5 GB

سیستم رو آپدیت کنید

sudo apt update && sudo apt upgrade -y

موارد مورد نیاز رو نصب کنید

sudo apt install curl tar clang pkg-config libssl-dev jq build-essential git make ncdu -y

زبان go رو نصب کنید

if ! [ -x "$(command -v go)" ]; then
  ver="1.19.1"
  cd $HOME
  wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
  sudo rm -rf /usr/local/go
  sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
  rm "go$ver.linux-amd64.tar.gz"
  echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile
  source ~/.bash_profile
fi

بعد از نصب ورژنش رو چک کنید و از نصبش اطمینان حاصل کنید

go version

نصب سلسیتا

git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node/
git checkout tags/v0.6.0
make install
make cel-key

ورژن رو برای اطمینان از نصب چک کنید

آماده سازی لایت نود

celestia light init

ساخت ولت لایت نود

./cel-key add mywallet --keyring-backend test --node.type light

کلمات بازیابی که بهتون میده رو سیو کنید. برای کپی کردن متن از پوتی از کلید میانبر زیر استفاده کنید

Ctrl + Shift + C

اگر از قبل ولت داشتید برای بازیابی دستور زیر

./cel-key add mywallet --keyring-backend test --node.type light --recover

مشاهده لیست ولت های لایت نود موجود در سیستم یا سرور

./cel-key list --node.type light --keyring-backend test

حالا برای دریافت فاست به دیسکورد پروژه جوین شید و در کانال فاست تست نت “مچا” درخواست توکن تستی کنید

راه اندازی لایت نود توسط SystemD

این دستور مهمترین بخش نود هست که مشکل اکثر کاربرا تو همین قسمته پس با دقت نکات رو بخونید:

ما در این قسمت با یک دستور، یک فایل “سرویس” میسازیم و کانفیگ یا تنظیمات نود رو برای راه اندازیش داخل فایل قرار میدیم

اول کلیت دستور زیر رو ببینید و قبل از اجراش، توضیحات بعدش رو بخونید

sudo tee <<EOF >/dev/null /etc/systemd/system/celestia-lightd.service
[Unit]
Description=celestia-lightd Light Node
After=network-online.target

[Service]
User=root
ExecStart=/usr/local/bin/celestia light start --core.ip https://rpc-mocha.pops.one:9090 --keyring.accname mywallet
Restart=on-failure
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

طبق عکس زیر مواردی که شماره گذاری کردم قابل کانفیگ شدن هستند و به ترتیب هرشماره توضیحاتشو مینویسم

post image

1- این قسمت آدرس فایلی به اسم سلستیا هست در سیستمتون که باید در دستور بالا جاگذاری بشه بعضا ممکنه فایل سلستیاتون در آدرسی که من قرار دادم نباشه؛ پس با دستور زیر، آدرس فایل سلستیا رو میتونید پیدا کنید و اگر با دستور بالا متفاوت بود جایگزینش کنید

which celestia

2- نوع نود هست که میتونه لایت باشه یا فول

3- باید یک آر پی سی ولیدیتور رو برای نود لایتمون ست کنیم که بهش وصل شه و اونی که من در دستور بالا انتخاب کردم یک ولیدیتور اصلی شبکه است و میتونید تغییرش ندید اکثرا به مشکل بر نخوردند با این آر پی سی

4- این یکی اسم ولتی که ساختید رو باید قرار بدید و اگر با دستور من ولتتون رو ساخته یا ریکاور کرده باشید اگر برگردید به همون دستور میبینید که همین اسم یعنی “مای ولت” رو براش انتخاب کردیم و میتونید تغییرش ندید

استارت لایت نود توسط SystemD

systemctl daemon-reload
systemctl enable celestia-lightd
systemctl start celestia-lightd

مدیریت سرویس لایت نود

چک کردن لاگ لایت نود

journalctl -u celestia-lightd.service -f

کمی صبر کنید تا نود سینک شه و بعد اگر خطوط با عبارات زیر گرفتید یعنی نود فعاله

Info / sampled / header / new header

خروج از لاگ Ctrl + C

چک کردن وضعیت لایت نود

systemctl status celestia-lightd

ریستارت لایت نود

systemctl restart celestia-lightd

پاک کردن لایت نود

sudo systemctl stop celestia-lightd
sudo systemctl disable celestia-lightd
sudo rm /etc/systemd/system/celestia* -rf
sudo rm $HOME/.celestia* -rf
sudo rm $HOME/celestia* -rf

مشاهده یا ویرایش پورت لایت نود

به هر نود باید یک پورت اختصاص داده بشه

با دستور زیر منوی ویرایش فایل “کانفیگ” لایت نود رو باز کنید و پورت طبق تصویر رو مشاهده یا بر حسب نیاز ویرایش کنید

nano /root/.celestia-light-mocha/config.toml
post image

برای خروج از منوی ویرایش:

Ctrl + X

Y

Enter

باز کردن پورت های مورد نیاز

پورتی که توی فایل کانفیگ ست شده رو با این دستور باز کنید مثلا برای من 26656 بود

apt install ufw -y 
ufw allow ssh 
ufw allow https 
ufw allow http 
ufw allow 9090
ufw allow 26656
ufw enable

البته یک خطش مربوط به باز کردن اون پورته و میتونید برای پورت های بعدی خط دستور رو تکی بزنید

اگر فول نود یا نود دیگه ای در کنار لایت نود قراره راه اندازی کنید باید حواستون باشه نودها تداخل پورت نداشته باشند. در مورد تداخل این نود با فول نود در انتهای آموزش فول نود بهش میپردازیم

راه اندازی “فول نود” در کنار لایت نود

فول نود کمی سنگین تره و اگر سرور مجازی دارید در کنار لایت نود راه بندازیدش اما اجباری نیست و میتونید به لایت نود هم بسنده کنید

دستورات در ادامه برای نصب فول نود در کنار لایت نود هست

  • Requirements:

  • VPS, 4 core, 8 GB RAM and Hard SSD 50 Gb

آماده سازی فول نود

celestia full init

برای ریکاوری ولت لایت نود روی فول نود

./cel-key add mywallet --keyring-backend test --node.type full --recover

مشاهده لیست ولت های فول نود موجود در سیستم یا سرور

./cel-key list --node.type full --keyring-backend test

راه اندازی فول نود توسط SystemD

sudo tee <<EOF >/dev/null /etc/systemd/system/celestia-full.service
[Unit]
Description=celestia-full Cosmos daemon
After=network-online.target

[Service]
User=root
ExecStart=/usr/local/bin/celestia full start --core.ip https://rpc-mocha.pops.one:9090 --keyring.accname mywallet
Restart=on-failure
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
EOF

استارت فول نود توسط SystemD

systemctl enable celestia-full
systemctl start celestia-full

مدیریت سرویس فول نود

چک کردن لاگ فول نود

journalctl -u celestia-full.service -f

چک کردن وضعیت فول نود

systemctl status celestia-full

ریستارت فول نود

systemctl restart celestia-full

استاپ فول نود

sudo systemctl stop celestia-full
sudo systemctl disable celestia-full

مشاهده یا ویرایش پورت فول نود

nano /root/.celestia-full-mocha/config.toml

برای رفع تداخل 2 نود لایت + فول پورت هاشون نباید تداخل داشته باشه که طبق دستور ویرایش پورت اونارو میتونید اونارو تغییر بدید (مثلا به اضافه یا منهای 1 کنید)

باز کردن پورت مورد نظر برای مثال

حالا هر 2 نود رو بعد ازینکه تداخل پورت ها رو رفع کردید می تونید ریستارت کنید

systemctl daemon-reload
systemctl enable celestia-lightd
systemctl restart celestia-lightd
systemctl enable celestia-full
systemctl restart celestia-full

*

تبریک میگم شما هر 2 نود لایت + فول رو رو تست نت مچا شبکه سلستیا راه اندازی کردید*