바빌론 노드? 무조건 해야됩니다. 엄청난 녀석이에요!

250x250
반응형
728x90

이번엔 바빌론 노드에 대해 살펴보고 노드를 굴리는 방법에 대해 알아볼 예정입니다.

바빌론은 비트코인의 스테이킹을 지원해주는 디파이라고 보시면 되겠는데요.


바빌론에 대한 전반적인 내용은 이렇습니다.

기본적으로 디파이는 보안적인 취약점이 존재하기 때문에 이에 공격당하면 가격이 하락하는 심각한 상황이 맞이될 수도 있습니다.
이 부분에 대해 해결하기 위해 바빌론 체인은 지분증명 네트워크들의 체크포인트를 보안이 가장 강력한 비트코인 네트워크에 기록해 롱 레인지 공격에 대비할 수 있게 하는 방식을 취합니다.
 
롱 레인지 공격이란, 공격자가 블록체인의 제네시스 블록에서부터 다시 포크를 만들어 메인 체인을 뒤집는 공격을 말하는데, 이 때 오랫동안 운영되지 않은 노드의 경우 검증이 취약해지는 점을 악용해 헛점을 이용한 공격이라고 보시면 됩니다.
 
쉽게 말해서 비트코인의 네트워크를 활용해 공격 취약점에 노출되지 않도록 만든다. 라고 보시면 되는데...
자세한 글은 아래의 코백장님의 글을 확인하시면 쉽게 이해되실겁니다!
https://medium.com/a41-ventures/research-babylon-chain-%EB%B9%84%ED%8A%B8%EC%BD%94%EC%9D%B8-%EB%B3%B4%EC%95%88%EC%9D%98-%ED%99%9C%EC%9A%A9%EC%9D%84-%EC%A4%91%EA%B0%9C%ED%95%98%EB%8B%A4-ad06e9c01c52

 

[Research] Babylon Chain — 비트코인 보안의 활용을 중개하다

지분증명 네트워크들의 체크포인트를 비트코인 네트워크에 기록할 수 있도록 중개 역할을 수행하는 코스모스 앱체인, 바빌론 체인(Babylon Chain)에 대해 알아봅니다.

medium.com

 
그리고 이런 바빌론에 대한 자세한 부분은
https://docs.babylonchain.io/docs/introduction/babylon-overview

 

Babylon Overview | Babylon Blockchain

Babylon project designs security protocols that scale Bitcoin to secure the decentralized world.

docs.babylonchain.io

여기 공식문서가 있으니 여기서도 확인해보실 수 있습니다.
 
아무튼 이러한 기술을 갖고 현재 테스트넷을 운영중인 바빌론체인은

위에 보이듯이 18M 달러의 투자도 확보한 만큼 꽤나 관심을 가져야되는 녀석이기도 합니다.
 
또, 최근에 테스트넷 작업으로 뜨거운

폴리헤드라와도 손을 잡았고
2024.01.21 - [크립토 에어드랍 작업/에어드랍 작업 정리] - PolyHedra - 알고보면 엄청나게 간단한 에어드랍 작업!

 

PolyHedra - 알고보면 엄청나게 간단한 에어드랍 작업!

PolyHedra라고 토큰과 NFT 브릿지가 가능한 프로토콜이 있습니다. 심지어 이것도 무려 바이낸스랩스의 투자를 받았다는 프로토콜이기도 하죠. 생각보나 바이낸스랩스가 투자한 곳들이 많네요 ㅎㅎ

metaboo.tistory.com

위는 폴리헤드라의 에어드랍작업 가이드니 참고하시구요.
 
그리고 또 최근에 크게 먹여준 기술을 보유한 녀석인

알트레이어와도 손을 잡았습니다.
 
2024.01.27 - [크립토 에어드랍 작업/에드작 복기용] - 알트레이어($ALT) 바이낸스 상장 후기 및 코인 에어드랍 복기

 

알트레이어($ALT) 바이낸스 상장 후기 및 코인 에어드랍 복기

알트레이어라는 프로젝트의 코인인 $ALT가 1월 25일 오후 7시에 바이낸스에 직상장했다. 사실 알트레이어가 투자규모도 엄청 많았고, 상장하면 먹여줄거라는 글도 상당히 많았었는데... 나는 뭐에

metaboo.tistory.com

 
대충 이러한 녀석이니까.. 안할 수가 없겠죠? 꼭 해야겠다는 생각이 들지 않나요?ㅎㅎ

그럼 노드 구축하는 방법에 대해 알아보겠습니다.
참고로 노드를 구축한 건 이 링크를 참조해서 작성하니, 복사 붙여넣기는 아래의 링크를 참고해주세요!
https://services.kjnodes.com/testnet/babylon/installation/

 

Installation

Setting up your validator node has never been so easy. Get your validator running in minutes by following step by step instructions.

services.kjnodes.com

 

이거 끝났고 새로운 버젼나왔습니다.

아래 게시글로 넘어가서 진행하세요!!!

2024.02.25 - [분류 전체보기] - 바빌론 테스트넷 업데이트하기! 안하면 보상 안받아집니다~

 

바빌론 테스트넷 업데이트하기! 안하면 보상 안받아집니다~

지난 번에 바빌론 테스트넷을 설치해서 노드를 운용하는 방법에 대해 설명드렸었죠? 이번엔 그 바빌론 테스트넷의 마이그레이션 작업 즉, 업데이트를 해줘야됩니다. 바빌론은 설치가 되어있어

metaboo.tistory.com


1. 노드 환경 구성하기

노드 환경셋팅은
2024.01.25 - [크립토 에어드랍 작업/노드 운용하기] - 클라우드 컴퓨터 호스팅하기 - 블록체인 노드를 돌리기! 어렵지 않아요!!

 

클라우드 컴퓨터 호스팅하기 - 블록체인 노드를 돌리기! 어렵지 않아요!!

다들 블록체인 노드를 한번 운용해보려는데 막막하신가요? 사실 비트코인, 이더리움처럼 CPU, GPU를 활용하는 자원은 실제 본인의 컴퓨터의 자원을 활용해야되기 때문에 전력량으로 인해 많은 비

metaboo.tistory.com

 
위 작성글을 참고해주시구요.
 
문서에는 딱히 노드의 권장사양이 나오지는 않았지만 대충 적당한 수준인 
 

이정도 스펙의 서버를 대여해서 사용하겠습니다.
 
완료되셨으면 윈도우의 cmd를 활용해서 접속해줍시다.

찾기-cmd검색

 
다 되셨으면 이제 해당 서버로 접속해줍시다.
 
접속 방법은 ssh root@서버 IP주소 입니다.

대충 요렇게 yes입력해주고 초기비밀번호 입력해준 뒤 비번 변경까지 완료되시면 접속이 완료됩니다.
 

일단 제일먼저 Golang을 설치해달라고 하니까 설치해줍시다.
 

sudo apt -q update
sudo apt -qy install curl git jq lz4 build-essential
sudo apt -qy upgrade

 
위 내용을 순서대로 입력해주시구요. 

혹시 위와 같은 분홍색 화면이 나오면 그냥 바로 엔터 누르시면 됩니다.

꼭 저런 내용이 아니더라도 뒷 배경이 분홍색화면이면 엔터눌러주시면 됩니다.

그럼 이런식으로 완료가 뜨구요.
 
이번엔 아래의 내용을

sudo rm -rf /usr/local/go
curl -Ls https://go.dev/dl/go1.20.13.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
eval $(echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/golang.sh)
eval $(echo 'export PATH=$PATH:$HOME/go/bin' | tee -a $HOME/.profile)

 
순서대로 하나하나씩 추가입력해주세요.
 
그 다음 제대로 설치가 되었는지 확인하는 방법인데요.

go version

 
이라고 입력해주시면 됩니다.

이렇게 나온게 확인될거에요.
 
그 다음 

MONIKER="YOUR_MONIKER_GOES_HERE"

 
위 명령어를 통해 밸리데이터 이름을 바꿔줍시다.
YOUR_MONIKER_GOES_HERE 이 부분을 원하는대로 바꿔주세요.

MONIKER="metaboo"

위와 같은 식으로 바꿔서 입력해주시면 됩니다.


자 이제 노드 설치하러 가봅시다


2. 바빌론 노드 설치하기

자 이제 바빌론 노드를 설치하는 부분입니다.

# Clone project repository
cd $HOME
rm -rf babylon
git clone https://github.com/babylonchain/babylon.git
cd babylon
git checkout v0.7.2

 
위 내용을 하나하나 순서대로 입력해주시면

이렇게 설치가 된 것을 확인할 수 있습니다.
 
그 다음 

make build

위 입력해주시고 나서 (시간이 좀 걸림...)

mkdir -p $HOME/.babylond/cosmovisor/genesis/bin
mv build/babylond $HOME/.babylond/cosmovisor/genesis/bin/
rm -rf build

위 명령어들도 순서대로 입력해주세요.
 
빌드를 설정해서, 바이너리를 구성하기 위함입니다. 

 
여기까지 완료되셨다면 아래 명령어들을 입력해주세요.

sudo ln -s $HOME/.babylond/cosmovisor/genesis $HOME/.babylond/cosmovisor/current -f
sudo ln -s $HOME/.babylond/cosmovisor/current/bin/babylond /usr/local/bin/babylond -f

 


3. Cosmovisor 설치 및 생성

이번엔 바빌론 노드는 설치했으니 Cosmovisor를 설치해보겠습니다.
 
일단 Cosmovisor 설치를 위해

go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.5.0

 
위 명령어를 입력해주시구요.

sudo tee /etc/systemd/system/babylon.service > /dev/null << EOF
[Unit]
Description=babylon node service
After=network-online.target

[Service]
User=$USER
ExecStart=$(which cosmovisor) run start
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
Environment="DAEMON_HOME=$HOME/.babylond"
Environment="DAEMON_NAME=babylond"
Environment="UNSAFE_SKIP_BACKUP=true"
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:$HOME/.babylond/cosmovisor/current/bin"

[Install]
WantedBy=multi-user.target
EOF

위 내용을 그대로 입력해주세요 (어렵다면 복사는 아까의 문서(링크)하시면 됩니다.)

이렇게 된 다음 엔터를 누르시면 됩니다.
 
마지막으로 데몬 실행을 위해

sudo systemctl daemon-reload
sudo systemctl enable babylon.service

 
위 명령어를 입력해주시구요.


이번에는 바빌론 노드를 초기화하겠습니다.

babylond config chain-id bbn-test-2
babylond config keyring-backend test
babylond config node tcp://localhost:16457

 
위 명령어를 순서대로 입력해 주시고

babylond init $MONIKER --chain-id bbn-test-2

 
위의 명령어까지 입력해주시면 막 복잡한 내용이 뜨면서 완료가 됩니다.


4. 노드 시작설정하기

curl -Ls https://snapshots.kjnodes.com/babylon-testnet/genesis.json > $HOME/.babylond/config/genesis.json
curl -Ls https://snapshots.kjnodes.com/babylon-testnet/addrbook.json > $HOME/.babylond/config/addrbook.json

일단 위 명령어를 마찬가지로 순서대로 입력해주시구요.

sed -i -e "s|^seeds *=.*|seeds = \"3f472746f46493309650e5a033076689996c8881@babylon-testnet.rpc.kjnodes.com:16459\"|" $HOME/.babylond/config/config.toml

위 명령어도 입력해주세요. 위 명령어는 시드를 생성하는 명령어로

sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.00001ubbn\"|" $HOME/.babylond/config/app.toml

위 명령어는 가스비를 최저로 맞춰주는 명령어입니다.


다 되셨으면

sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
  -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
  $HOME/.babylond/config/app.toml

위 명령어를 입력해주시고

sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:16458\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:16457\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:16460\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:16456\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":16466\"%" $HOME/.babylond/config/config.toml
sed -i -e "s%^address = \"tcp://localhost:1317\"%address = \"tcp://0.0.0.0:16417\"%; s%^address = \":8080\"%address = \":16480\"%; s%^address = \"localhost:9090\"%address = \"0.0.0.0:16490\"%; s%^address = \"localhost:9091\"%address = \"0.0.0.0:16491\"%; s%:8545%:16445%; s%:8546%:16446%; s%:6065%:16465%" $HOME/.babylond/config/app.toml

포트까지 설정해주면 끝!
 
이제 그럼 최신 스냅샷 업데이트 해주시구요.

curl -L https://snapshots.kjnodes.com/babylon-testnet/snapshot_latest.tar.lz4 | tar -Ilz4 -xf - -C $HOME/.babylond
[[ -f $HOME/.babylond/data/upgrade-info.json ]] && cp $HOME/.babylond/data/upgrade-info.json $HOME/.babylond/cosmovisor/genesis/upgrade-info.json

 
마지막으로

sudo systemctl start babylon.service && sudo journalctl -u babylon.service -f --no-hostname -o cat

서비스 시작과 로그 확인을 위해 위 명령어를 입력해주시면 완료입니다.

돌아가는게 확인되면 Ctrl+Z를 눌러서 일단 빠져나와주세요


5. 지갑 주소 얻고 검증인 되기 with Faucet

이제 노드 검증인이 되려면 지갑에 돈이 있어야 되기 때문에, 지갑을 생성하고 테스트넷용 토큰을 받기 위해 Faucet을 진행할 겁니다.
 
먼저 지갑을 생성하기 위해

babylond keys add wallet

를 입력해주세요.

이렇게 나오니까 주소랑 key는 꼭 따로 적어서 보관해주시기 바랍니다. (이게 다 소중한 자산으로 돌아옵니다ㅠㅠ)
 
만약 생성했던 지갑이 있다면

babylond keys add wallet --recover

위 명령어를 통해 복구할 수 있습니다.
 
그럼 지갑주소를 얻었으니 Faucet을 얻어야겠죠?
https://discord.gg/babylonglobal

 

Discord - A New Way to Chat with Friends & Communities

Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.

discord.com

위 디스코드 들어와서

get a role을 통해 위 보이듯이 4개를 다 눌러주시면
 

이런 테크 존이 보일텐데 여기 빨간네모인 Faucet을 눌러주세요.
 
그리고 다른 사람들이 치는 것 처럼

 
!faucet 본인이 생성한 지갑주소

를 입력해주시면 됩니다.
 
그럼

이런 전송중이란 것과 함께

이렇게 전송완료됐다고 나옵니다.
만약 실패했다고 뜨면 다시도전하세요!


이제 검증인이 되기 위해 아래 명령어들 모두 순차적으로 입력해주세요.

babylond create-bls-key $(babylond keys show wallet -a)
sudo systemctl restart babylon.service
sed -i -e "s|^key-name *=.*|key-name = \"wallet\"|" $HOME/.babylond/config/app.toml
sed -i -e "s|^timeout_commit *=.*|timeout_commit = \"10s\"|" $HOME/.babylond/config/config.toml

여기까지 입력되셨다면 

babylond status | jq .SyncInfo

위 명령어를 입력해주시면 끝입니다.
 
그리고 이렇게 뜬다면 맨 처음은 true일텐데

30분정도 기다려주시면

이렇게 false로 바뀝니다.

이제그럼 마지막으로 아래의 명령어를 입력해주시면 끝입니다.

babylond tx checkpointing create-validator \
--amount 1000000ubbn \
--pubkey $(babylond tendermint show-validator) \
--moniker "YOUR_MONIKER_NAME" \
--identity "YOUR_KEYBASE_ID" \
--details "YOUR_DETAILS" \
--website "YOUR_WEBSITE_URL" \
--chain-id bbn-test-2 \
--commission-rate 0.05 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 0.00001ubbn \
-y

참고로 여기에서 보이는 moniker, identity, details, website에 들어가는 것들은 본인의 자세한 내용들로 바꿔서 입력해주시면 됩니다.

저는 아래와 같이 했네요 ㅎㅎ

babylond tx checkpointing create-validator \
--amount 1000000ubbn \
--pubkey $(babylond tendermint show-validator) \
--moniker "metaboo" \
--website "https://metaboo.tistory.com" \
--chain-id bbn-test-2 \
--commission-rate 0.05 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--from wallet \
--gas-adjustment 1.4 \
--gas auto \
--gas-prices 0.00001ubbn \
-y

위 내용처럼 꼭 다 입력해야될 필요는 없습니다.


6. 노드 잘 돌아가는지 체크하기

이제 노드가 셋팅되었으니 잘 돌아가는지 확인해야겠죠?
https://babylon.explorers.guru/

 

Babylon Blockchain Explorer - Main Network Overview

Get insights into Babylon network via Nodes.Guru blockchain explorer. Track the latest block, staking APR, inflation rate, your stake and more.

babylon.explorers.guru

위 사이트에 접속하셔서
 

왼쪽에 사람모양(Validators)를 누른 뒤 동그라미친 부분에 본인이 아까 생성했던 moniker 이름을 넣어주세요.
만약 안뜨신다면 30분에서 1시간 정도 뒤에 뜨는 것을 확인하실 수 있습니다.



그러면 이렇게 Inactive로 뜨는 걸 확인하실 수 있는데요.

그 이유는 바빌론 지갑안에 노드를 구동할 토큰이 더는 부족해서라고 합니다.
👉상위 밸리데이터 80등까지만 Active로 상태가 유지된다고.... 대충 190bbn이 필요하다고 합니다.
참고로, Faucet 1회당 1bbn임...

아무튼 그래도 이미 노드는 생성됐고  Wrapped Create Validator 해쉬는 발생한 것을 확인했다면 노드 검증 완료입니다!


이번엔 이렇게 바빌론체인 노드 운용에 대해 알아보았습니다.
 
이번껀 좀 복잡하긴 했는데, 만약 잘 안된다 싶으시면 무지성으로 복붙메타가시면 됩니다!
 
어쨌든 복붙만 잘해도 돌아가게 되거든요!
 
참고로 지갑은 코스모스기반의 지갑이기때문에 나중에 import할 수 있을 것으로 보여지니까 지갑주소랑 키값 꼭 잃어버리지 마시기 바라겠습니다.
 
그럼 모두 수고하셨습니다~~

소식과 내용을 빠르고 다양하게 접하고 싶으시다면 아래 그림(텔레그램)을 클릭해주세요!!

 

Designed by JB FACTORY