본문 바로가기
Blockchain/Node

PRYZM 노드 구동

by GrayChoi 2024. 3. 4.
반응형

본인은 전부터 PRYZM 에어드랍을 노리고

Keplr에서 스테이킹을 하고있었다.

 

PRYZM이 벨리데이터로 참여하고 있는 프로젝트들에 스테이킹을 하면

에어드랍을 해준다고 하며 VC도 없고 프라이빗 세일도 없었다 했다.

 

현재 ATOM, TIA, OSMO, INJ, LUNA 토큰을 PRYZM에 Delegate할 수 있다.

 

PRYZM은 총 10억개의 토큰을 공급할 예정이며, 그 중 20%를 스테이킹 한 사람들에게

에어드랍 해준다고 명시되어있다.

 

다른 사람들이 보면 하찮아 보일 $500달러지만

PRYZM 에어드랍 먹여줘..

 

여튼 PRYZM 벨리데이터 노드 돌리면 뭐 준다는 얘기는 못 들은 것 같지만...

그리고 노드들이 활성화 된지 좀 오래되었고 현재 등록된 벨리데이터만 1,073개이다.

그래도 뭐 혹시 모르니까 가보자고!

여기는 바빌론과는 다르게 Active 되는 벨리데이터 수가 70명이다.

 

Minimum requirements to join the Pryzm testnet

- CPU: 4 core 2.5GHz or higher

- RAM: 8GB or higher

- Storage: 500GB or higher (SSD recommended)

- Operating System: Linux

 

Minimum requirements for validators

- CPU: 8 core 2.5GHz or higher

- RAM: 16GB or higher

- Storage: 1TB or higher (SSD recommended)

- Operating System: Linux

 

주의 : 글이 상당히 길며 해야하는 것이 상당히 많음

초보자 기준 하나라도 잘못 입력하면 어디가 오류인지

찾지 못할 가능성이 높음

 

 


 

 

VPS 준비

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

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

감사합니다.

 

위 사양에 따르면 벨리데이터를 돌리기 위해서 최소 8코어 + 16기가 램과 1TB SSD가 필요하다.

Contabo의 VPS 3 사양이 적당하다고 생각하며

본인은 어짜피 Active 상태에는 못 들어갈 것이라고 생각해 VPS 2로 돌리려고 한다.

 

Image는 Apps & Panels 에서 Docker - Ubuntu 22.04 버전을 선택한 후

아래 5번의 비밀번호 설정을 한 후 Next를 누르면 된다.

 

1. 업데이트 및 툴 설치

sudo apt -q update

sudo apt -qy install curl git jq lz4 build-essential fail2ban ufw

sudo apt -qy upgrade

 

2. Go 설치

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

rm -rf /usr/local/go && tar -C /usr/local -xzf go1.22.0.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.0.linux-amd64.tar.gz

 

 

3. MONIKER 세팅

// name 안에 자신이 원하는 이름을 작성하세요 예시) MONIKER="GrayChoi"
MONIKER="name"

 

4. Binaries 다운로드

cd $HOME

wget https://storage.googleapis.com/pryzm-zone/core/0.11.1/pryzmd-0.11.1-linux-amd64

sudo mv pryzmd-0.11.1-linux-amd64 pryzmd

sudo chmod +x pryzmd

 

5. Set up Cosmovisor

mkdir -p $HOME/.pryzm/cosmovisor/genesis/bin

mv pryzmd $HOME/.pryzm/cosmovisor/genesis/bin/

sudo ln -s $HOME/.pryzm/cosmovisor/genesis $HOME/.pryzm/cosmovisor/current -f

sudo ln -s $HOME/.pryzm/cosmovisor/current/bin/pryzmd /usr/local/bin/pryzmd -f

go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest

 

6. 서비스 생성

sudo tee /etc/systemd/system/pryzm.service > /dev/null << EOF
[Unit]
Description=pryzm 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/.pryzm"
Environment="DAEMON_NAME=pryzmd"
Environment="UNSAFE_SKIP_BACKUP=true"
 
[Install]
WantedBy=multi-user.target
EOF

 

7. 서비스 실행

sudo systemctl daemon-reload
sudo systemctl enable pryzm

 

8. 노드 세팅

pryzmd config chain-id indigo-1
pryzmd config keyring-backend test
pryzmd config node tcp://localhost:23257
pryzmd init $MONIKER --chain-id indigo-1

위와같은 화면이 나와야 정상이다.

 

9. Genesis & addrbook 다운로드

curl -Ls https://snap.nodex.one/pryzm-testnet/genesis.json > $HOME/.pryzm/config/genesis.json
curl -Ls https://snap.nodex.one/pryzm-testnet/addrbook.json > $HOME/.pryzm/config/addrbook.json

 

10. 시드 및 가스 가격 세팅

sed -i -e "s|^seeds *=.*|seeds = \"d1d43cc7c7aef715957289fd96a114ecaa7ba756@testnet-seeds.nodex.one:23210\"|" $HOME/.pryzm/config/config.toml

sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.015upryzm,0.01factory/pryzm15k9s9p0ar0cx27nayrgk6vmhyec3lj7vkry7rx/uusdsim\"|" $HOME/.pryzm/config/app.toml

 

11. Prunning 세팅

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/.pryzm/config/app.toml

 

12. 포트 설정

sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:23258\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:23257\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:23260\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:23256\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":23266\"%" $HOME/.pryzm/config/config.toml

sed -i -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:23217\"%; s%^address = \":8080\"%address = \":23280\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:23290\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:23291\"%; s%:8545%:23245%; s%:8546%:23246%; s%:6065%:23265%" $HOME/.pryzm/config/app.toml

 

13. 스냅샷 다운로드

curl -L https://snap.nodex.one/pryzm-testnet/pryzm-latest.tar.lz4 | tar -Ilz4 -xf - -C $HOME/.pryzm

다운로드하는데 시간이 좀 걸린다.

[[ -f $HOME/.pryzm/data/upgrade-info.json ]] && cp $HOME/.pryzm/data/upgrade-info.json $HOME/.pryzm/cosmovisor/genesis/upgrade-info.json

 

14. 프리즘 노드 시작

sudo systemctl start pryzm

sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl software-properties-common && 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 && sudo apt update && sudo apt-cache policy docker-ce && sudo apt install -y docker-ce

업데이트 및 설치 중간에

File '/usr/share/keyrings/docker-archive-keyring.gpg' exists. Overwrite? (y/N)

라는게 나오면 y 입력 후 엔터를 치면 된다.

 

mkdir -p ~/.docker/cli-plugins/ && curl -SL https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose && chmod +x ~/.docker/cli-plugins/docker-compose

 

15. 지갑 생성

pryzmd keys add wallet

위 명령어 입력 후 나오는 지갑주소와 니모닉을 저장한다.

 

Pryzm Testnet Faucet

위 링크로 접속 후 위에서 받은 주소 지갑을 입력하여

테스트넷 토큰을 청구한다.

 

16. 파일 다운로드 및 pull Pryzm feeder 이미지

cd $HOME && mkdir -p $HOME/pryzmfeeder && cd $HOME/pryzmfeeder && wget https://storage.googleapis.com/pryzm-zone/feeder/config.yaml https://storage.googleapis.com/pryzm-zone/feeder/init.sql https://storage.googleapis.com/pryzm-zone/feeder/docker-compose.yml

docker pull europe-docker.pkg.dev/pryzm-zone/core/pryzm-feeder:0.3.4

docker pull timescale/timescaledb:2.13.0-pg16

 

17. 설치

apt install net-tools

netstat -antp | grep pryzm

23257 포트가 Listen 되어있는지 확인한다.

 

18. 벨리데이터 주소 확인

pryzmd keys show wallet --bech val -a

위 명령어 입력 후 나오는 주소를 저장한다.

 

19. config.yaml 수정

nano config.yaml

feeder: 지갑 주소

feederMnemonice: 니모닉

validator: 방금 위에서 명령어 입력하고 나온 주소

+

chain:아래의

rpcUrl: "http://localhost:23257"

wsUrl: "ws://localhost:23257" 로 변경해준다.

또한 맨 아래 부분에서

- id: "uatom"의

lcdUrl:을 "https://testnet-cosmos-api.pryzm.zone/"로 변경해준다.

 

그 후 Ctrl + x, Y, 엔터로 나오면 된다.

 

20. postgres 설치 및 실행

sudo apt install postgresql postgresql-contrib

Y 입력

 

sudo service postgresql start

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'postgres';" -c "\q" && psql -U postgres -h localhost -W -c "\i $HOME/pryzmfeeder/init.sql"

Password: 에는 postgres를 입력한다.

 

21. Pryzm 상태 확인

service pryzm status

위 그림과 같은 화면이 나오면 성공이다.

나올 때는 Ctrl + c를 눌러주면 된다.

 

22. 노드 동기화 확인

pryzmd status | jq .SyncInfo

 위 화면과 같이 "catching_up": 이 true가 아닌 false 값이 나와야 블록 동기화가 완료된 상태가 된다.

 

23. 벨리데이터 생성

pryzmd tx staking create-validator \
  --pubkey $(pryzmd tendermint show-validator) \
  --amount 1000000upryzm \
  --moniker "<name of your moniker>" \
  --identity "keybase-id" \
  --details "<any comment you want here>" \
  --website "<Your site>" \
  --security-contact "<Your contact info>" \
  --chain-id indigo-1 \
  --from wallet \
  --commission-rate "0.05"\
  --commission-max-rate "0.20" \
  --commission-max-change-rate "0.01" \
  --min-self-delegation "1" \
  --gas-adjustment 1.4 \
  --gas auto \
  --gas-prices 0.015upryzm

--moniker에는 원하는 이름

--identity에는 그냥 아무거나

--details에도 아무거나

--website에는 자기 트위터나 웹사이트 주소

--security-contact에는 이메일 등 주소

이 다섯개만 아래를 참고해서 수정하면된다.

y 입력 후 엔터

 

제대로 입력하면 tx hash가 생성된다.

 

 

pryzmd query staking validator <valoper_addresse> --chain-id indigo-1

위에서 pryzmd keys show wallet --bech val -a 명령어를 통해 얻었던 벨리데이터 주소를

<valoper_adresse>에 입력한다.

 

pryzmd tx oracle delegate-feed-consent <your pryzm wallet address> --fees 2000factory/pryzm15k9s9p0ar0cx27nayrgk6vmhyec3lj7vkry7rx/uusdsim,3000upryzm --from wallet

자신의 pryzm 주소를 <your  pryzm wallet address>에 입력한다.

 

apt install screen
// Y 입력

screen -S pryzmfeeder

docker run --name=pryzm-feeder --network host --restart=always -v "$(pwd)/config.yaml:/app/config.yaml" -v "$(pwd)/logs:/app/logs" europe-docker.pkg.dev/pryzm-zone/core/pryzm-feeder:0.3.4

Ctrl a + d 로 밖으로 나올 수 있다.

 

nano config.yaml

위 사진처럼 serverPort를 49156으로 변경해준다.

 

Ctrl + x, Y, 엔터

 

여기까지 긴 글 쫓아오느라 고생이 많았다.

 

잘 쫓아오면 벨리데이터가 잘 생성된 것을 확인할 수 있으며

inactive 상태로 되어있다.

 

Active 상태로 들어가려면 적어도 8511개 이상 스테이킹을 해야한다.

 

Node Science의 Medium글을 참고해서 작성했다.

 

했으니까 "먹여줘"

 

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


 

 

노드 대행 및 기타 문의

graychoi0920@gmail.com

 

 

노드그레이

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

t.me

 

반응형

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

CESS 스토리지 노드 지갑 주소 변경  (1) 2024.03.14
Dusk 노드 업그레이드 가이드  (1) 2024.03.14
[SOON] Allora 노드 구축  (1) 2024.03.04
Babylon 근황 및 unjail  (69) 2024.03.03
Taiko 노드 구축하기 2편 with intel_SGX  (5) 2024.03.03

댓글