이 글은 아래의 영문 미디움 포스트에 대한 해석을 기반으로 쓴 글입니다.
일단 Validator를 운영하려면
- 좋은 하드웨어가 필요하고
- 집에서는 실행할 수 없고
- 많은 SOL이 필요하다.
Validation이란?
Validator는 DPoS(delecated Proof of Stake; 위임된 지분 증명) 프로토콜을 사용한다.
SOL을 소유한 사람은 누구나 SOL의 일부(or 전체)를 Validator에게 위임할 수 있고, 이로써 검증인은 네트워크에서 '가중치'를 획득해 더 많은 슬롯의 리더로 할당될 수 있고, 투표에 대한 더 많은 보상을 받을 수 있다.
SOL을 위임하면 Validator의 성과나 상태에 관계없이 모든 권한을 보유한다.
위임을 할 때 스테이크 계정을 만들어서 위임을 하게 되는데, 이 계정을 위임하는 것이 곧 스테이킹이다.
실제로 스테이킹/인출 권한은 validator가 아닌, 토큰을 스테이킹하는 '내 계정'에 주어진다.
그리고 이 토큰은 언제든지 위임을 취소하고 인출할 수 있다. 하지만 쿨다운이라는 기간이 있어서 위임 취소를 하면 다음 에포크 쯤에 위임의 비활성화가 완료된 후 인출이 가능하다.
쉽게 말해 위임 취소를 하면 현 에포크에서(deactivating) 한두 에포크가 지나면(deactive) 인출이 가능해진다. (한 에포크는 2~3일)
현재 모든 에포크는 432,000개의 슬롯으로 구성된다. 최근 슬롯들을 기준으로 관찰해보니 이 중 약 96.4%의 슬롯에 블록이 채워져 있었다. solana beach에서 관찰해보니 한 슬롯당 소요시간은 약 0.4초~0.6초 정도 되는 모양이었다. 목표 블록 시간은 0.4초라고 한다.
Validator는 모든 단일 블록에 투표해야하므로 엄청 바쁘다고 한다. 이 투표는 약간의 지연으로도 무효화될 수 있기 때문에, 투표에 성공한만큼 보상을 받는다. 받는 보상은 투표 성공률에 대한 요소와, 네트워크 나머지 부분에 대한 지분도 있다.
즉 네트워크 지분의 1%를 보유한 채로 모든 투표에 성공한 Validator는 1%의 보상을 받는다. 그들이 투표의 80%만 성공하면(미디움 필자는 현재 최고 득표율은 83%로 생각) 다른 모든 사람의 백분율에 따라 더 적게 얻을 가능성이 있다. 성공한 각 투표는 1포인트고, 포인트는 다른 모든 Validator와 합산돼 내 지분으로 가중치가 부여된다고 한다.
어떤 하드웨어가 필요한가
일단 아주 좋은 서버가 필요하다. 솔라나 Validation은 CPU와 디스크 속도에 많이 의존하는, 처리량이 많은 집약적 프로세스다.
Threadripper가 최고고 Ryzen 5950X도 인기 있다고 한다.
코어가 많은 것도 좋지만 기본주파수가 (높은 것이) 좀 더 중요하다.
2.8 GHz 미만의 CPU에서는 네트워크를 따라갈 수 없고, 이상적으로는 3GHz 이상이 필요하다.
AMD의 Epycs 중 일부는 이 요구사항을 충족하지 않으며, 사람들은 이런 요구사항을 실행하려고 한다
또한 128GB RAM과 NVMe 드라이브가 필요하다. 일반 SSD 드라이브나 더 느린 드라이브로 해서 귀찮아지지 말란다(ㅋㅋㅋ..).
NVMe 드라이브의 경우에도 TBW가 중요하긴 하지만, 속도가 전부라고 한다.
Validator는 크게 3가지 구성요소로 구성된다.
- 실행 파일, 구성, 키
- 원장 => 최근 블록체인 기록
(완전한 블록체인은 아니다. 총 원장은 약 15TB로 드라이브에 저장하기에는 너무 크다고 한다.) - 계정 데이터베이스
계정 db는 자주 기록되며 일반적으로 RAMDISK에 저장하는 게 모범사례라고 한다.
즉, NVMe 드라이브가 아닌 휘발성 메모리에 저장된다고 한다.
* 솔라나 공식문서의 하드웨어 권장 사항에서 SSD 디스크 쪽에 계정 db(500GB 이상 권장)가 할당되어 있는데, SSD 마모를 줄이기 위해서 계정 db를 RAM 디스크에서 휘발시키면서 사용하는 게 더 좋은가보다.
** 문서에 관련 내용 나와있음. (하단 링크)
원장은 수백 GB가 필요해서(문서에서는 1TB 이상을 권장) NVMe 드라이브에 저장된다. 성능을 좋게 하려면 OS와 별도의 자체 드라이브에 저장하는 것이 가장 좋다고 한다.
Validator는 수백 mbps를 보내고 받기 때문에 인터넷 연결도 매우 좋아야 한다. 이상적으로는 1 Gbps가 필요하지만 500 mbps 이상으로 안정적이면 작동할 수 있다. 또 한달에 50 TB 이상을 소비하므로 제한이 없고 라인이 형태가 없는지 확인하라고 한다.
이러한 이유로 전문 데이터 센터가 아닌 다른 곳이나 NAT 뒤에서 실행하는 것은 권장하지 않는다고도 한다.
'Solana > Validator - 공부' 카테고리의 다른 글
[Solana] Validating - 5. 검증인 정보 게시 (0) | 2021.11.08 |
---|---|
[Solana] Validating - 4. 벨리데이터 모니터링 (0) | 2021.11.05 |
[Solana] Validating - 3. 스테이킹 (0) | 2021.11.05 |
[Solana] Validating - 2. 투표 계정 관리 (0) | 2021.11.02 |
[Solana] Validating - 1. Validator 시작하기 (0) | 2021.10.21 |