코딩굼벵이
구르는 중
코딩굼벵이
  • 분류 전체보기 (116)
    • [C_C++]이론 공부 (17)
      • 알고리즘 (11)
      • 이론+STL (6)
    • [C_C++]코딩테스트 연습 (45)
      • [프로그래머스] level 1 (26)
      • [프로그래머스] level 2 (5)
      • [백준] 일반 문제 (12)
      • 기타 (2)
    • Solana (28)
      • Documentation (9)
      • Validator - 공부 (10)
      • Validator - 실행 (devnet & te.. (6)
      • 그 외 (3)
    • React (4)
    • Linux (2)
    • Javascript (2)
    • 블록체인 기반 핀테크 및 응용 SW 개발 (8)
      • React (1)
      • Javascript (3)
      • Solidity (3)
      • 프로젝트 (1)
    • 기타 (10)

블로그 메뉴

  • 🌟 깃허브
  • 🌿 Portfolio(2021)
  • 홈
  • 태그
  • 방명록

티스토리

최근 글

태그

  • 모니터링
  • 솔라나
  • 밸리데이터
  • Immer #ContextAPI
  • Hooks #React
  • grafana

인기 글

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
코딩굼벵이

구르는 중

Solana/Validator - 공부

[솔라나] 밸리데이터 노드를 메인넷에 올리기 전 유의할 점

2022. 6. 28. 16:03
728x90

그동안 솔라나 밸리데이터를 testnet, devnet 에서 각각 구성해서 돌려보았는데, 메인넷에 올리기 전에는 어떤 점을 염두에 두고 실행을 해야 효율적일지를 생각해볼 수 있었다. 비용이 부담스러워 메인넷에 직접 올리기는 어려울 것 같지만 혼자 묵히는 것보다는 게시하는 게 나을 것 같아 정리해보았다.

  • 밸리데이터는 하루에 최대 1.1 SOL 씩 투표비(voting fee)를 지불한다.
    그러므로 밸리데이터가 잘 돌아가는지 먼저 확인하기 위해, 처음 실행 시 --no-voting 옵션을 걸어줘서 네트워크나 설정 오류 등의 문제점을 먼저 파악 및 해결한 후 해당 옵션을 지우고 실행하는 것이 경제적으로 좋을 것으로 보인다.
  • 밸리데이터에 10 SOL 이상이 없으면 balance 부족 에러가 뜨고, 최소 100 SOL은 셀프 스테이킹해놔야 리더 배정이 가능하다. 안하면 투표비만 빠지고, 밸리데이터에 스테이킹된 Active SOL 이 많아야 리더로 배정 받을 확률이 높아지므로 참고하자.
  • ledger와 accounts 를 받아오는 위치는 각각 다른 SSD를 마운트한 경로면 좋으며, 해당 폴더들은 사용자명으로 접근권한이 있어야 생성 및 삭제가 가능하다. Permission denied 오류에 걸린 경우엔 chmod, chown 등을 설정해 사용자에게 권한을 줄 수 있다.

  • Keybase에 밸리데이터 정보를 등록해야 한다.
  • Ledger 용량이 다 차면 Validator가 에러를 뱉으며 정상적으로 작동하지 못한다.
    나는 아래와 같은 에러를 접했다.
... error: Err(Kind(TimedOut)) thread 'main' panicked at 'Load from snapshot failed:
UnpackError(Io(Custom { kind: Storage Full, error: TarError { desc: 
"failed to unpack `accounts/135351228.511304` into `/home/sol/ledger/accounts/accounts
/135351228.511304`", io: Os { code: 28, kind: StorageFull, message : "No space left on device" }
} }))', ledger/src/bank_forks_utils.rs:233:10

 

원래는 ledger가 다 차면 용량을 늘리거나 백업을 해둬야 한다고 한다. ledger 삭제는 최후의 수단이지만 오류내용 상 snapshots, slots, blocks 등이 손상됐을 가능성이 있어 보여서 나는 그냥 밀었다. 추후 메인넷에서는 어떻게 할지 결정해둬야 할 것으로 보인다.

* ledger를 비우면 당장의 문제는 해결되지만, 내 ledger와 accounts가 없으면 자신의 스냅샷을 받아온 다른 검증자들에게 필요한 shred를 줄 수 없다. 네트워크의 health와 안정성을 위해 모든 사람이 ledger와 accounts를 지우지는 말아야 한다. 모든 사람이 지우면 시작 포인트가 없어지기 때문에 문제가 생긴다고 한다...

  • 모니터링 툴에 측정항목이 표시가 안된다면 validator 실행 파일에 --full-rpc-api 옵션을 걸어보자. devnet에서는 해당 옵션이 없어도 표시가 됐던 것 같은데, testnet에서는 표시가 되지 않아 헤맸었다.
  • 튜토리얼에서 accounts 를 ramdisk 에 저장하게끔 되어있어서 그렇게 설정을 해뒀었는데, 커뮤니티 대화를 서핑하다보니 account를 ramdisk에 저장하지 말란 말이 있었다. 받아온 accounts가 휘발되는 것을 좋지 않게 여겨서였는지 접근이 너무 쉬워서였는지 잘 기억나지는 않는데 좀 더 확인이 필요할 것 같다.
  • 솔라나는 슬랙, 디스코드, 텔레그램 웹훅 api를 지원하기 때문에 메신저 알림을 보낼 수가 있다.
    나는 watchtower와 validator의 정상 작동여부를 확인하는 시스템 데몬을 구성해두었는데, 내용은 아래에 접어두었다.
    더보기
    - watchtower 꺼져있고 validator 켜져있으면 : watchtower를 켠 후 켰다고 슬랙을 보낸다.
    - watchtower와 validator가 둘 다 꺼져있으면 : 5분마다 validator가 꺼져있다고 슬랙을 보낸다.
    - watchtower 켜져있고 validator 꺼져있으면 : watchtower를 끈 후 껐다고 슬랙을 보낸다.

위와 같은 방법으로 서버 내에서 watchtower와 validator가 정상적으로 동작하는지를 확인할 수 있다.
하지만 서버 자체가 다운될 경우 알림이 오지 않기 때문에 다른 서버에서 해당 서버의 health를 체크하고 꺼져서 켜지지 않을 시 해당 밸리데이터를 동작시킬 수 있는 second validator 서버를 두는 것도 좋다고 한다.


그 외 알아두면 좋을 내용

- validator가 catchup 작업을 마친 것은 작업 대기열을 클리어한 것이고, 스냅샷에서 다시 시작했다면 대기열을 건너뛴 것이라고 한다.

- validator 로그 내용 중 grep --ignore-case --extended-regexp -w 'ERROR' ~/log/validator.log 했을 때 나오는

...INFO solana_metrics::metrics] datapoint: replay-stage-mark_dead_slot 
error="error: InvalidBlock(TooFewTicks)" slot=138858056i


는 다른 밸리데이터들 로그에서도 관찰되는 흔한 에러라고 한다. 원인은 정확히 밝혀지지 않은 듯 하다.

- 투표를 열심히 하다 보면 로그에 My Next leader... 같은 내용과 함께 자신이 배정받을 예정인 슬롯을 볼 수 있다. 만약 그 슬롯 시간대에 validator가 delinquent 상태로 들어가면 리더스케줄에서 쫓겨나므로(ㅠㅠ) 노드를 꾸준히 모니터링하는 것이 좋다.

저작자표시 비영리 변경금지 (새창열림)

'Solana > Validator - 공부' 카테고리의 다른 글

[Solana] 밸리데이터 돌릴 때 참고 문서 정리  (0) 2022.06.28
[Solana] 솔라나 밸리데이터를 운영하려면  (0) 2021.12.21
[Solana] 솔라나 벨리데이터 자동 재시작, 모니터링, 디스코드  (0) 2021.11.22
[Solana] Validating - 5. 검증인 정보 게시  (0) 2021.11.08
[Solana] Validating - 4. 벨리데이터 모니터링  (0) 2021.11.05
    'Solana/Validator - 공부' 카테고리의 다른 글
    • [Solana] 밸리데이터 돌릴 때 참고 문서 정리
    • [Solana] 솔라나 밸리데이터를 운영하려면
    • [Solana] 솔라나 벨리데이터 자동 재시작, 모니터링, 디스코드
    • [Solana] Validating - 5. 검증인 정보 게시
    코딩굼벵이
    코딩굼벵이
    구르는 재주 연마 중

    티스토리툴바