Solana/Validator - 실행 (devnet & testnet)

[Devnet] 솔라나 밸리데이터 실행기 1 - cli로 모니터링

코딩굼벵이 2022. 1. 7. 17:11
728x90

데브넷은 메인넷보다 하드웨어 요구사항이 그렇게 높지 않다. 그래서 있는 서버 컴으로 솔라나 밸리데이터를 돌려봤다.

근데 현재 서버컴 cpu 속도가 1.2GHz 밖에 안 나와서... poh speed test도 안하고 스냅샷 다운로드 속도도 느려도 그냥 돌아가는 옵션을 설정해서 실행했다. 입력한 커맨드나 세팅 과정을 다 설명하기엔 무리가 있어서 생략했다.

 

devnet 계정 데이터 용량

 

계정 데이터가 들어가도록 설정해놓은 tmpfs

 

devnet의 현재 계정 데이터는 RAM 16G면 충분하다고 했었는데, 실제로 돌려보니 지금은 훨씬 늘어나서 전혀 아니었다..

지금은 껐다 다시 켜서 할당해놓은 128G중 55G를 사용하고 있는데 돌리다보면 64G 근처로 나오는 것 같더라.

 

+) 이틀 뒤에 보니 66G로 늘어있었다.

 

 

밸리데이터 모니터링

 

# 입력 command
solana-validator --ledger ~/ledger monitor

# 출력
Ledger location: <ledger경로>
Identity: <validator주소>
Genesis Hash: EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG
Version: 1.8.11
Shred Version: 23305
Gossip Address: <ip>:8000
TPU Address: <ip>:8003
⠒ 21:08:52 | Max Slot: 107393035 | Processed Slot: 107393035 | Confirmed Slot: 107393035 | 
Finalized Slot: 107392985 | Snapshot Slot: 107392014 | Transactions: 4138205957 | ◎18.876211415

 

위 출력은 validator가 슬롯을 정상적으로 따라잡았을 때의 나타나는 출력이다.

 

⠙ 00:48:35 | 3456 slots behind | Max Slot: 106104379 | Processed Slot: 106100951 | Confirmed Slot: 106100952 | 
Finalized Slot: 106100919 | Snapshot Slot: 106099374 | Transactions: 4030166633 | ◎18.721276394

 

슬롯을 따라 잡지 못해서 뒤쳐지고 있으면 위처럼 나온다.

 

 

슬롯 모니터링

 

# 입력 command
solana catchup ~/validator-keypair.json --our-localhost

# 출력
<validator주소> has caught up (us:107393067 them:107393065)

 

위 커맨드를 입력했을 때, 밸리데이터가 슬롯을 모두 따라잡았으면 위처럼 출력되고 종료된다.

 

⠄ 3505 slot(s) behind (us:106101787 them:106105292), our node is gaining at 0.2 slots/second 
	(AVG: 0.1 slots/second, ETA: slot 106248997 in 14h 36m 15s)

 

슬롯이 뒤쳐지고 있을 때 위 커맨드를 입력하면 내 밸리데이터가 슬롯을 받아오는 속도를 볼 수 있다. 평균속도가 지속해서 양수면 따라잡을 수 있겠지만, 잘 못 받아오면 점점 뒤쳐진다. 그래서 켠 후 슬롯이 뒤쳐지고 있을 때 며칠 지나서 보면 몇만 슬롯이 뒤쳐져있기도 했다.

 

대역폭은 1Gbps 정도라 돼야할 것 같은데 cpu 클럭이 너무 느려서인지, 내가 설정한 옵션에 문제가 있는지 등은 높은 사양의 전용서버를 대여한 후 testnet에서 실험해보며 알아봐야할 것 같다. 그래도 이런저런 테스트를 하며 며칠에 걸쳐 여러번 껐다 켜봤더니 정상적으로 따라잡더라.

 

솔라나 밸리데이터 목록에서 조회한 내 밸리데이터 (devnet)

 

# 입력 command
solana validators

# 출력 (devnet 밸리데이터 목록)
...
Commission  Last Vote       Root Slot    Skip Rate  Credits  Version  Active Stake
100%        103988778       103988747        -         0      1.8.11  116.8918112 SOL (0.00%)
...

 

위의 command를 입력하면 config set을 devnet인 상태이기 때문에 devnet의 validator 목록이 나온다.

내가 테스트하며 실제로 스테이킹에 사용한 SOL은 1 SOL이다. 대강의 과정은 다른 글에 정리해두었다.

 

 

[Solana] Validating - 3. 스테이킹

솔라나 밸리데이터를 실행하고 나면 스테이킹을 해야한다. 밸리데이터의 스테이킹을 위한 세팅에 대해 공식문서에 나와있는 내용을 위주로 적어봤다. Staking | Solana Docs By default your validator will ha

coding-maggot.tistory.com

 

 

# 입력 command
solana stake-account ~/validator-stake-keypair.json

# 출력
Balance: 1 SOL
Rent Exempt Reserve: 0.00228288 SOL
Delegated Stake: 0.99771712 SOL
Active Stake: 0.99771712 SOL
Delegated Vote Account Address: <투표계정주소>
Stake Authority: <밸리데이터주소>
Withdraw Authority: <밸리데이터주소>

 

밸리데이터의 잔액에서 1 SOL을 빼서 넣었고, 그래서 초기 active stake는 1 SOL도 채 되지 않는다.

그런데 vote가 이루어지고 나서 갑자기 active stake가 100 SOL 이상으로 불었더라. 잠깐 활성화된 사이에 사람들이 스테이킹을 했나...

 

지분을 deactivate 한 후 withdraw all 로 셀프스테이킹한 양만 우선 인출해봤다.

사용한 command는 다음과 같다.

 

# deactivate : 다음 에포크에 undelegated 된다.
solana deactivate-stake --stake-authority ~/validator-keypair.json ~/validator-stake-keypair.json

# stake-account 상태 확인
solana stake-account ~/validator-stake-keypair.json
Balance: 1 SOL
Rent Exempt Reserve: 0.00228288 SOL
Stake account is undelegated

# withdraw
solana withdraw-stake ~/validator-stake-keypair.json ~/validator-keypair.json ALL

 

 

* withdraw ALL로 잔액을 모두 빼내면 해당 스테이크 계정은 사라진다. 해당 파일은 삭제해주자.

 

예상대로 내 셀프스테이킹 지분을 undelegate 해도 잔액은 여전히 115.89409408 SOL 이었다.

궁금해서 디코 커뮤니티에서 찾아봤는데 누가 얼만큼 스테이킹했는지는 조회할 수 있는 방법이 딱히 없는 것 같다.