Blockchain/Testnet

Celestia 테스트넷 노드 설치 가이드

lowsec 2022. 10. 26. 22:23

Celestia 개요

 

Celestia는 블록체인의 역할을 여러 체인에서 각각 수행하여 트릴레마를 서로 다른 레이어에서 종합적으로 해결하는 모듈러 블록체인 방식을 가장 먼저 제안한 프로젝트(모놀로틱 블록체인과의 차이는 여기, Celestia와 모듈러 블록체인에 대해 더 자세히 알고 싶으시면 여기에서)로 Cosmos, Ethereum 2.0, Polygon Avail과 더불어 최근 활발하게 개발이 진행되고 있습니다.

 

사진. Celestia 메인

 

 

올해 10월 19일 공식 블로그에 따르면 Bain Capital, Polychain, Galaxy, Delphi Digital, Figment, Maven 11, FTX ventures, Jump Crypto, Balaji Srinivasan, Eric Wall 등으로 부터 $55M을 유치하여 기업 가치 $1B를 달성했다고 합니다.

 

2021년에 MVP를 구현하여 2022년 현재는 Arabica Devnet과 Mamaki Testnet을 운영 중이고 로드맵 상에서는 올해 메인넷 런칭까지 계획되어 있습니다.

 

아직 인센티브 테스트넷도 아니고 토큰 에어드랍 확정 공지도 없지만 향후에 분명히 Validator나 Full Node를 모집하는 공지가 올라올 것이고, 신청 양식에서 과거 노드 운영 경험을 물어보는 케이스가 많기 때문에 분명 도움이 될 것이라 생각합니다. 작은 노력이 큰 수익으로 이어질 수도 있기에 (몇 일 전 Aptos 에어드랍을 떠올려보세요. 인센티브 테스트넷 신청자에게 보상이 있었습니다.)

 

오늘 포스팅에서는 Celestia 공식 가이드에 따른 Mamaki 테스트넷 노드 설치 방법을 알려드리고자 합니다.

 

🔗 프로젝트 링크 🔗

웹사이트 - https://celestia.org
트위터 - https://twitter.com/CelestiaOrg
디스코드 - https://discord.gg/FESaJzgZcA
Github - https://github.com/celestiaorg
텔레그램 공지 - https://t.me/CelestiaOrg
리소스 - https://docs.google.com/spreadsheets/d/16p75dIcsB72lMEwlbbCPl8P9gX9crabSior3VBjz2mY

 

Mamaki Testnet 노드 설치

 

본 가이드는 튜토리얼 페이지를 참고하였으며 light node를 기준으로 작성되었습니다.

 

 

Hardware Requirements

 

light node는 네트워크에서 Full node나 Validator 처럼 합의나 블록 생성을 담당하지는 않지만, 네트워크에 참여하여 트랜잭션을 요청하고 블록 및 트랜잭션을 조회할 수 있는 노드입니다. 실행에 필요한 하드웨어 요구사항은 그리 높지 않은 수준입니다. 저는 Virtualbox에서 Ubuntu 20.0.4. LTS image를 생성하여 테스트하였습니다. virtualbox 이미지 세팅 방법은 https://truelifer.medium.com/virtual-box-에-ubuntu-20-04-lts-설치하기-71ab044eb4f8 를 참고하세요. 디스크 용량은 여유있게 100 GB로 설정하여 진행합니다.

 

The following minimum hardware requirements are recommended for running a light node:

  • Memory: 2 GB RAM
  • CPU: Single Core
  • Disk: 5 GB SSD Storage
  • Bandwidth: 56 Kbps for Download/56 Kbps for Upload

 

Setting Up Dependencies

 

Ubuntu를 실행하고 터미널에서 설치 이전에 필요한 패키지 업데이트와 개발용 소프트웨어/라이브러리를 설치합니다.

sudo apt update && sudo apt upgrade -y

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

 

Insall golang

Celestia는 golang으로 개발되었습니다. 소스 코드 빌드를 위해 golang을 설치합니다. Mamaki Testnet 노드와 Arabica Devnet 노드가 지원하는 golang 버전이 다르기 때문에 설치할 때 1.18 버전인지 꼭 확인하고 설치해야 합니다.

export ver="1.18.2"
cd $HOME
# go 1.18.2 소스코드 다운로드
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
# 기존 go 삭제
sudo rm -rf /usr/local/go
# go 1.18.2 설치
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
rm "go$ver.linux-amd64.tar.gz"

 

golang을 터미널에서 바로 실행할 수 있도록 $PATH 환경 변수를 세팅합니다.

echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile

 

설치한 golang 버전을 확인합니다.

go version

 

Install celestia-node

Mamaki testnet에서 실행할 노드를 다운로드하여 설치합니다.

cd $HOME
# 기존 celestia-node 삭제
rm -rf celestia-node
# celestia-node 소스 코드 다운로드
git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node/
# v0.3.0-rc2 버전을 사용
git checkout tags/v0.3.0-rc2
# celestia-node 설치 (초기 path: $HOME/.celestia-node/)
make install
# 키 관리를 위한 cel-key 설치
make cel-key

 

Start celestia-node

설치한 노드를 초기화하고 실행합니다.

# 초기화
celestia light init
# 시작
# 네트워크를 위해 https://rpc-mamaki.pops.one:9090 노드에 연결
celestia light start --core.grpc https://rpc-mamaki.pops.one:9090

 

정상적으로 노드가 실행되면 아래 화면을 확인할 수 있습니다. 노드 타입과 테스트넷 이름이 보입니다. 실행 화면에서 동기화까지 진행하지 않고 ctrl + c를 눌러 종료합니다.

 

사진. Mamaki testnet 노드 실행

 

Keys and wallets

이전에 설치한 cel-key로 Mamaki testnet에서 사용할 새 주소를 생성할 수 있습니다.

  • address: celestia 네트워크에서 사용할 account 주소
  • name: 주소 생성 정보 식별자 (노드 실행할 때 name을 사용합니다.)
  • memonic: 계정을 복구할 때 사용하는 니모닉 (포스팅용으로 생성한 주소라 니모닉도 같이 공개하였습니다.)
cd $HOME/celestia-node
# 주소 생성
./cel-key add bhlee_testnet --keyring-backend test --node.type light
# 결과
- address: celestia1vqeg385p7t3lf4pl5fum923fvrcwjqg067cu6y
  name: bhlee_testnet
  pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AjtKw9ZlZV79LtjeNOLw+xrgzeVk/MDjR6y2PBVf82IT"}'
  type: local

**Important** write this mnemonic phrase in a safe place.
It is the only way to recover your account if you ever forget your password.

chest circle disorder smile actress drama gadget traffic model forget silver switch act armed only grab oval one biology circle nothing attitude couch inherit

 

Faucet 요청

Celestia 공식 디스코드의 #mamaki-faucet 채널에 $request {address} 형식으로 채팅을 입력하면 봇이 입력한 주소로 faucet를 보내줍니다.

  • {address}는 이전 주소 생성 단계에서 cel-key 실행 결과 나온 address를 사용합니다.
  • 입력 예: $requeset celestia1vqeg385p7t3lf4pl5fum923fvrcwjqg067cu6y

사진. celestria mamaki testnet faucet 요청

(스크린샷을 찍으면서 다시 faucet 요청을 보냈는데 이전에 요청한 내역이 있어 안된다고 하네요.)

 

노드 재실행

생성한 주소 정보를 넣어서 아래와 같이 노드를 재실행합니다.

celestia light start --core.grpc https://rpc-mamaki.pops.one:9090 --keyring.accname bhlee_testnet

 

잔고 확인

노드가 실행되고 있을 때 다른 터미널에서 /balance API를 실행하여 생성한 주소의 $TIA 잔고를 체크합니다. 요청한 faucet만큼 $TIA 잔고가 증가한 것을 확인할 수 있습니다.

curl -X GET http://127.0.0.1:26658/balance
{"denom":"utia","amount":"10000000"}

 

동기화 상태 확인

/head API를 호출하여 현재 설치한 노드가 동기화한 최대 블록 높이를 확인할 수 있습니다. 포스팅 작성 시점의 블록 높이는 272027인데 아직 동기화 중이라 높이 차이가 다소 있습니다.

curl -X GET http://127.0.0.1:26658/head | python3 -m json.tool | grep height

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 59560    0 59560    0     0  18.9M      0 --:--:-- --:--:-- --:--:-- 18.9M
        "height": 262145,
        "height": 262145,

 

포스팅 작성 시점의 Celestia 테스트넷 익스플로러 메인 페이지 화면입니다.

사진. Celestia Testnet Explorer

 

따라오시느라 고생하셨습니다.👏

질문할 내용이 있다면 언제든 댓글로 남겨주세요. 수시로 확인하고 답변 드리겠습니다. 감사합니다!

 

Reference

https://twitter.com/100y_eth/status/1534923370336092160

https://medium.com/@chokokim/모듈형-modular-블록-체인이-차세대-알파를-차지합니까-셀레스티아-celestia-개요-98edb33e64b5

https://blog.celestia.org/celestia-raises-55m-to-launch-modular-blockchain-network/

https://docs.celestia.org/nodes/mamaki-testnet/

https://docs.celestia.org/developers/node-tutorial

https://celestia.explorers.guru/