본문 바로가기
Blockchain/Node

0G Labs Validator 노드 구동하기

by GrayChoi 2024. 4. 9.
반응형

OG가 아닌 0G Labs 프로젝트이며

'The First Modular AI Chain'을 표방한다.

 

Pre-seed round에서 $35M을 펀딩받은 0G Labs

애니모카, OKX 등 굵직한 투자사들이 참여했다.

 

한국시간 기준 4월 7일 오후2시경 테스트넷을 출시했으며

벨리데이터 노드와 스토리지 노드를 구동할 수 있다.

 

이번편에서는 벨리데이터 노드를 구동해보자

 

 

 

System Requirements

CPU: 4 cores

Memory: 8GB RAM

Disk: 500GB NVMe SSD

Bandwidth: 100mbps

 

 

 


 

 

1. VPS  준비

 

위 이미지를 클릭하면 Contabo 사이트로 접속되며

VPS 구매시 그레이에게 많은 도움이 됩니다.

감사합니다.

 

콘타보의 VPS 1 로도 가능할 것 같긴한데 넉넉히 다른거도 같이 돌릴겸

VPS 2 로 선택하자.(본인은 VPS 3으로 돌리는중이다.)

 

0G storage Node와 같이 구동하려면 VPS3을 구매해야한다.

VPS2로 돌리는 분들은 오류가 난다고 보고받았다.

 

VPS 초기 세팅방법과 접속이 궁금하다면?

[기초] VPS 구매, 접속하기

[기초] VPS ssh 접속하기 with Termius

 

2. Install required packages

sudo apt update

 

sudo apt install curl git jq build-essential gcc unzip wget lz4 -y

설치가 완료되기까지 약간의 시간이 걸린다.

 

3. Install Go

wget https://go.dev/dl/go1.22.2.linux-amd64.tar.gz

 

rm -rf /usr/local/go && tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz

 

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

source $HOME/.bash_profile

go version

rm -rf go1.22.2.linux-amd64.tar.gz

 

4. Install evmosd via CLI

git clone -b testnet https://github.com/0glabs/0g-evmos.git

 

./0g-evmos/networks/testnet/install.sh

 

source .profile

 

5. Set Chain ID

evmosd config chain-id zgtendermint_9000-1

 

6. Initialize Node

// <your_validator_name>은 본인이 원하는 이름으로 대체
evmosd init <your_validator_name> --chain-id zgtendermint_9000-1

<your_validator_name> 부분을 지우고 위 사진의 맨 첫번째 줄을 참고하여

본인이 쓰고싶은 이름으로 대체한다.

 

위 단계부터 시간이 좀 걸릴 수 있는데 광고한번만 눌러주시면... 압도적감사...

 

7. Copy the Genesis File

rm .evmosd/config/genesis.json

wget -P ~/.evmosd/config https://github.com/0glabs/0g-evmos/releases/download/v1.0.0-testnet/genesis.json

 

evmosd validate-genesis

 

8. Seeds 추가

nano .evmosd/config/config.toml

// 오픈 된 창에서 seeds를 찾은 후 아래 seeds로 대체
seeds = "8c01665f88896bca44e8902a30e4278bed08033f@54.241.167.190:26656,b288e8b37f4b0dbd9a03e8ce926cd9c801aacf27@54.176.175.48:26656,8e20e8e88d504e67c7a3a58c2ea31d965aa2a890@54.193.250.204:26656,e50ac888b35175bfd4f999697bdeb5b7b52bfc06@54.215.187.94:26656"

아래로 쭉 내리다 보면 P2P가 보이는데 여기에 seeds가 있다.

기존의 시드를 위 시드로 사진처럼 변경해준다.

 

수정이 완료되면

Ctrl + x, Y, 엔터를 순서대로 입력하여 저장한다.

 

9. Snapshot Download

wget https://rpc-zero-gravity-testnet.trusted-point.com/latest_snapshot.tar.lz4

처음부터 시작해서 최신블록까지 동기화 하려면 꽤 오랜 시간이 걸려서 스냅샷을 다운받는 방식으로 글을 수정하였다.

 

cp $HOME/.evmosd/data/priv_validator_state.json $HOME/.evmosd/priv_validator_state.json.backup

evmosd tendermint unsafe-reset-all --home $HOME/.evmosd --keep-addr-book

lz4 -d -c ./latest_snapshot.tar.lz4 | tar -xf - -C $HOME/.evmosd

mv $HOME/.evmosd/priv_validator_state.json.backup $HOME/.evmosd/data/priv_validator_state.json

 

10. Start Testnet

apt install screen

screen -S 0g

노드를 시작하면 다른 창을 킬 수 없기 때문에 스크린을 이용하여 따로 관리해준다.

 

evmosd start

위와 같은 화면이 나오고 블록이 잘 올라가는 모습을 보이면 성공이다.

 

성공 후 Ctrl + a + d 를 입력하여 screen을 빠져나오면 된다.

 

*오류가 발생하는 경우

위와 같은 오류가 발생한다면

 

rm -rf .evmosd 0g-evmos

위 명령어를 입력 후

본 게시글의 4번으로 돌아가서 다시 처음부터 시작한다.

 

11. 지갑 생성

// <key_name>은 위에서 만든 이름으로 대체하면된다.
evmosd keys add <key_name>

입력 후 'Enter keyring passphrase (attempt 1/3):' 에서는

사용할 비밀번호를 입력하면 된다.

입력후 다음 'Re-enter keyring passphrase'에서도 같은 비밀번호를 입력해주면된다.

 

비밀번호 설정이 완료되면 지갑주소와 퍼블릭키, 시드문구가 나오게 되는데

꼭 따로 저장해두어야한다.

 

12. 메타마스크에 추가

// <key_name>에는 위에서 만든 이름으로 대체한다.
evmosd keys unsafe-export-eth-key <key_name>

위 명령어를 입력한 다음에

나오는 프라이빗키를 이용하여 메타마스크에 추가를 해주어야한다.

계정 가져오기에서 프라이빗키를 붙여넣고 가져오기를 클릭한다.

 

가져온 후 0G 테스트넷 네트워크를 추가해줘야한다.

메타마스크 오픈 후 - 우측 상단 점 세개 - 설정 - 네트워크 - 네트워크 추가 순으로 진입한다.

 

네트워크 직접 추가를 누른다.

0G Testnet 정보

네트워크 이름: 0g Newton Testnet

새 RPC URL: https://rpc-testnet.0g.ai

체인 ID: 9000

통화 기호: A0GI

블록 탐색기 URL: https://scan-testnet.0g.ai/

 

위와같이 설정해주면된다.

 

13. Faucet에서 토큰 받기

https://faucet.0g.ai/

위 주소로 이동하여 방금 프라이빗키를 이용해서 추가한 메타마스크 주소로 테스트넷 토큰을 수령하면 된다.

 

0.1개가 들어온다.

 

14. Create Validator

위 단계부터는 블록 동기화가 완료된후에 진행할 수 있다.

evmosd status | jq .SyncInfo

좌) 블록 동기화 전, 우) 블록 동기화 후

위 명령어를 통해 블록 동기화를 확인할 수 있으며

우측 사진처럼 catching_up이 false가 되어야한다.

현재 VPS에서의 블록높이는 "latest_block_height"로 확인할 수 있다.

동기화가 되었다면 다음으로 진행한다.

 

또는

screen -r 0g

위 명령어를 이용하여 스크린에 다시 접속 후 블록 높이와

0G 테스트넷의 최신 블록높이가 같은지 확인한 후 진행한다.

 

http://dashboard-0g.trusted-point.com/

위 사이트에서 최신 블록 높이를 확인할 수 있으며

위 사진에서는 679,523인 것을 확인할 수 있다.

최신블록 동기화까지 꽤 오랜시간이 걸리니 천천히 진행하면된다.

스냅샷을 받았다면 동기화가 금방 완료될 것이다.

 

// <your_validator_name>과 <key_name> 부분은 위에서 사용한 이름으로 대체해준다.
evmosd tx staking create-validator \
  --amount=80000000000000000aevmos \
  --pubkey=$(evmosd tendermint show-validator) \
  --moniker="<your_validator_name>" \
  --chain-id=zgtendermint_9000-1 \
  --commission-rate="0.10" \
  --commission-max-rate="0.20" \
  --commission-max-change-rate="0.01" \
  --min-self-delegation="1000000" \
  --gas="5000000" \
  --gas-prices="30aevmos" \
  --from=<key_name>

4번째줄의 <your_validator_name> 부분과

마지막줄의 <key_name> 부분은 위에서 사용한 이름으로

대체해 준 후 엔터를 친 다음 비밀번호를 입력해준다.

 

y 입력

위에 나오는 내용중 pubkey 아래 validator address를 따로 정리해두자

추후 디스코드에서 벨리데이터 등록 확인에 필요하다.

 

별다른 오류 없이 txhash가 잘 뜬다면 완료

 

15. Check Validator

https://explorer.validatorvn.com/OG-Testnet/staking

위 사이트로 접속해서 Inactive로 들어간다음

등록했던 이름으로 검색하면 위와같이 확인할 수 있다.

 

또는 0G 디스코드 접속 - Testnet Validator 롤을 얻은 후

node-status 채널에서 "!val 밸리데이터 주소"를 입력하면 상태를 확인할 수 있다.

 

여기까지 Validator Node를 구동하는 방법이다.

0G Labs Storage 노드 구동하기

Storage 노드를 같이 돌리려면 위 글로 넘어가길 바란다.

 

스팸 댓글이 많아서 본 게시글의 댓글 확인을 안합니다.

궁금하신 점이 있다면 아래 채팅방으로 문의 부탁드립니다.

 

퍼가실 땐 출처 명시 부탁드립니다.

 


 

 

노드 대행 및 기타 문의

graychoi0920@gmail.com


 

노드그레이 텔레그램 공지방

 

노드그레이

그레이의 50가지 노드 그림자

t.me

 

노드그레이 텔레그램 채팅방

 

노드그레이 채팅방

공지방 : https://t.me/nodegray

t.me

 

 

반응형

'Blockchain > Node' 카테고리의 다른 글

Aethir Checker Node 구동하기 for Windows  (1) 2024.04.21
0G Labs Storage 노드 구동하기  (2) 2024.04.11
Avail Light Client Node 구동하기  (1) 2024.04.05
CESS Consensus 노드 구동하기  (48) 2024.04.03
DATS Project 구동하기  (1) 2024.03.28

댓글