한국어
뉴스

슈퍼 스테이커 풀

title: 퀀텀아이콘슈퍼스테이커 2021.08.26 02:10 조회 수 : 491 추천:1

 

Super Staker에 대한 오프라인 스테이킹 주소 위임은 Proof-of-Stake 알고리즘에 따라 지불금을 제공합니다. 블록 보상은 편차가 큰 예상 시간을 기반으로 합니다. 이 슈퍼 스테이커 풀의 지불금은 풀 에 대한 위임된 주소 비율 기여도에 따라 매일 지급됩니다 . 이 풀은 100% 수수료 스테이킹 풀에 대한 개념 증명으로, Qtum 지분 증명, 슈퍼 스테이커 및 블록 보상이 작동하는 방식을 기반으로 단순한 데이터 구조 및 노드 인터페이스 기능을 수행합니다.

 

이 슈퍼 스테이커 풀은 Testnet Stake-A-Thon (2020년 7월 25일 ~ 8월 24일) 기간 동안 공식 풀로 운영되었으며 그 이후로 Testnet에서 거의 지속적으로 운영되었습니다.

 

TL;DR 풀 지불 관리자는 Qtum Super Staker와 함께 작동하는 Python 스크립트입니다. 풀에 위임된 주소(100% 수수료 포함)는 풀에서 자신의 몫에 따라 매일 지불금을 받습니다. 이 블로그에서는 풀을 운영하는 데 사용되는 데이터 구조, 설계 절충안 및 알고리즘에 대해 설명합니다.

 

 

솔로 스테이커 대 풀

 

솔로 스테이커 또는 위임된 주소는 UTXO 잔액으로 지분을 확보하고 지분 증명 알고리즘을 기반으로 블록 보상을 획득합니다. 이는 상당한 변동으로 보상 사이에 며칠 또는 몇 주를 의미할 수 있습니다(지갑 크기에 따라 다름). "예상 시간"은 많은 블록 보상에 대한 장기 평균으로 볼 수 있습니다.

 

대조적으로, 풀은 다음을 기반으로 매일 모든 대리인에게 지불합니다.

 

각 블록 보상이 획득될 때 위임된 주소는 풀을 공유합니다.

 

매일 풀에서 블록 보상으로 획득한 금액입니다.

 

풀 요금을 뺀 후 최소 금액 0.001 QTUM 또는 "풀쉐어"가 다음날로 이월됩니다.

 

이 풀링 방식의 경우 주소는 100% 수수료로 슈퍼 스테이커에게 위임되어야 합니다. Super Staker는 풀에 대한 전체 블록 보상을 받고 PPM(Pool Payout Manager — Python 스크립트)은 각 풀 구성원의 몫(수수료 제외)을 계산하여 매일의 끝에서 보냅니다.

 

100% 슈퍼 스테이커 수수료로 이 풀은 완전히 신뢰할 수 없는 풀이 아닙니다 (대부분의 풀에서와 같이). 비록 Qtum 주소 위임은 비 구속적이 지만(대리인이 코인을 완전히 제어할 수 있음). 풀이 모든 블록 보상을 유지하고 일일 지불금을 지급하지 않으면 위임된 주소가 위임을 제거하거나 코인을 다른 슈퍼 스테이커에게 보낼 수 있습니다.

 

풀 설정 고려 사항

 

다음으로 풀에 대한 몇 가지 설정 고려 사항을 검토합니다.

 

허영 주소

 

좋은 가상 주소를 선택하려면 다음 명령을 사용하십시오.

 

keypoolrefill 500000

dumpwallet "/home/jack/Desktop/Addresses/1"

 

500,000개의 주소를 얻고 수십 번 정도 명령을 실행합니다. 이것은 상당한 양의 데이터를 생성하지만 glogg 와 같은 로그 편집기를 사용하여 흥미로운 주소를 검색할 수 있습니다 . "qPool"을 검색하면 사용된 주소가 "qPoolFF..."였습니다.

 

슈퍼 스테이커 설정

 

기본 슈퍼 스테이커는 최소 크기가 100 QTUM인 위임된 주소에 대해 UTXO를 스테이킹합니다. 나는 풀이 작은 위임자에게 친숙하고 최소 UTXO 크기를 25 QTUM으로 설정하기를 원했습니다. qtumd Super Staker의 시작 스크립트는 다음과 같습니다(한 줄입니다).

 

qtumd -testnet -superstaking -stakingminfee=100

-stakingminutxovalue=25 -txindex

 

여기에서 매개변수는 테스트넷 블록체인, 슈퍼 스테이커 수수료 100%, 위임된 주소 최소 UTXO 크기 25 QTUM 및 블록체인의 모든 트랜잭션 ID에 대한 CLI(명령줄 인터페이스) 액세스를 지정합니다.

 

리눅스 박스

 

 

 

 

 

테스트넷 풀은 전용 1kW UPS(무정전 전원 공급 장치)가 있는 고속 Linux 상자(Intel i7 CPU, 16MB RAM, 1TB SSD)에서 실행되었습니다. 프로덕션에서 풀은 클라우드 VPS(가상 사설 서버의 인스턴스)로 실행되어야 합니다.

.

 

소프트웨어 설계 절충안

 

PPM Python 스크립트는 Super Staker Pool을 관리하기 위한 기본 개념 증명 응용 프로그램입니다. 반드시 최고의 데이터 구조나 알고리즘을 가지고 있지는 않지만 qtumd Super Staker를 풀로 실행하는 데 필요한 인터페이스와 알고리즘을 시연하는 데는 잘 작동합니다.

 

다음으로 풀에 대한 몇 가지 디자인 문제와 해결 방법을 검토합니다. 코드 및 문서는 GitHub 리포지토리 에 제공되며 일부 추가 문서 세부 정보는 아래 참조에 제공됩니다.

 

위임 변경

 

Qtum 오프라인 스테이킹과 마찬가지로 풀 위임에 대한 잠금이나 제한이 없습니다. 대리인은 언제든지 풀에 참여하거나 풀을 떠날 수 있으며 언제든지 풀에 대한 할당을 늘리거나 줄일 수 있습니다. 풀 은 해당 블록 보상이 획득될 때 풀의 성숙한 UTXO를 기반으로 모든 블록 보상에 대한 모든 대리인의 풀 셰어를 계산합니다 . 이를 통해 대리인은 낮 동안 풀에 참여하거나 낮 동안 풀을 완전히 종료할 수 있으며 성숙한 UTXO를 위임한 각 블록 보상에 대해 여전히 공정한 풀 셰어를 받을 수 있습니다. 이에 대한 자세한 설명은 아래 참조에서 PPMU(성숙 UTXO당 지불)를 참조하십시오.

 

영구 메모리

 

PPM(또는 qtumd) 시작 간의 poolshare 할당 및 수익을 추적하기 위해 PPM은 각 블록 보상에 대한 파일을 디스크에 씁니다. 이 파일은 해당 블록 단어를 포함하여 각 대리인에게 할당된 poolshare입니다. 다시 시작할 때(PPM, qtumd 등으로 업데이트한 후) PPM은 최신 블록 보상 파일을 로드하여 모든 이전 값을 가져온 다음 풀을 따라잡기 위해 다음 블록을 모두 읽습니다(PPM이 재설정되는 동안 qtumd는 스테이킹을 계속하여 잠재적으로 블록 보상을 획득할 수 있습니다).

 

데이터 구조, 이월

 

테이블(배열)은 대리자와 가중치를 관리하는 데 사용됩니다. 각 블록 보상 후, 각 대리인의 poolshare는 해당 블록 보상에 대한 성숙한 UTXO를 기반으로 계산됩니다. 다음은 25 QTUM에서 최대 90,000 QTUM을 보유한 4명의 대리인이 1.0 QTUM에 대한 풀 블록 보상을 획득하는 것을 보여주는 예입니다. Super Staker의 UTXO가 획득한 블록 보상은 풀 보상에 추가되지 않고 풀 대리인이 획득한 블록 보상만 추가됩니다.

풀 블록 보상
 
 
여기에서 우리는 풀이 1.0 QTUM의 블록 보상을 받는 것을 볼 수 있으며 모든 대리인은 자신의 풀쉐어 값에 가중치가 추가됩니다.
 
이 예에서 바로 뒤따르는 하루가 끝나면 0.001 QTUM(0.001은 사용된 sendmanywithdupes 명령 의 최소 ​​크기)보다 큰 금액에 대해 풀 수수료를 뺀 풀 공유가 지급됩니다 . 0.001 QTUM 미만의 대리인의 경우 해당 금액은 다음과 같이 다음 날로 이월됩니다.
 
새로운 날, 이월
 
여기에서 대리인 Qabc... 25 QTUM이 최소 지불액인 0.001 QTUM(수수료가 공제된 후)을 충족하지 못하여 풀쉐어가 다음날로 이월되었습니다.
 
다음은 최근 지불 거래의 예입니다
https://testnet.qtum.info/tx/19768fdb3ac8f472929d7183ff5fdf85ae8c2f495973a0e67058aae0fba57626
 
25 QTUM 대리인에 대한 계산 예제를 제공하기 위해 2,500 QTUM 크기의 풀에 있는 경우 풀은 0.009 QTUM(12% 수수료 후)의 일일 지불금으로 하루에 약 1개의 블록 보상(현재 ROI에서)을 얻습니다. ). 25 QTUM 위임에 대한 이 지불금은 수학이 선형적으로 확장되기 때문에 더 큰 풀에서 (평균적으로) 동일하게 유지됩니다.
 
풀 이용료
위임을 받으면 수수료를 변경하기가 매우 어려운 일반 슈퍼 스테이커와 달리 풀은 PPM의 구성 파일에서 시작 시 수수료를 쉽게 변경할 수 있습니다. 풀은 일일 지불금(아마도 절반)에 대한 거래 수수료로 인해 더 높은 비용에 직면해 있습니다. 풀 수수료는 프로모션 기간 동안 0 또는 음수 수수료(지급금은 일반 풀쉐어보다 높음)로 설정할 수 있습니다. 위의 예와 Testnet 풀의 경우 수수료는 12%였습니다. 이 풀 수수료 12%는 풀에서 부과하는 수수료이며 100% 위임 수수료와 혼동하지 마십시오.
 
고아
 
풀의 중요한 설계 문제는 고아를 처리하는 것이었습니다 . 개별 노드는 합의에 도달하고 블록을 게시하기 위해 최선을 다하지만 블록을 게시할 때(그리고 스스로에게 블록 보상을 제공할 때) 블록체인에 대해 매우 자기 중심적인 관점을 갖도록 설계되었습니다. 몇 블록 또는 몇 분 후에 자신의 블록 이 고아 임을 알게 됩니다 .
 
PPM은 Python을 통해 CLI(명령줄 인터페이스)를 사용하여 qtumd Super Staker를 모니터링하고 관리합니다. 초기 고아 해결 방법은 qtum.info API 호출을 사용하여 qtumd 노드 인터페이스를 보강하고 질문에 답하는 데 도움을 주려고 시도했습니다. 누가 마지막 블록 보상을 얻었습니까? qtum.info API는 매우 안정적이지만 업그레이드 또는 유지 관리를 위해 오프라인일 수 있으며 연중무휴 슈퍼 스테이커와 잘 맞지 않았습니다.
 
또한 안타깝게도 qtum.info는 자체 노드를 통해 블록체인을 보고 있기 때문에 실시간으로 orphan 블록을 해결할 수 없으며, 노드 자체는 실시간으로 orphan에 대해 알 수 없습니다.
 
자체 게시된 고아 블록은 PPM에 문제가 됩니다. 노드가 합의에 도달하고 블록을 게시할 때마다 PPM은 풀 공유에 블록 보상을 추가하고 각 대리인에 대한 공유를 추가해야 합니다. 모든 블록 보상 공유. 노드는 고아를 정상적으로 되돌릴 수 있지만 PPM에 대해서는 너무 복잡합니다(및 개념 증명 범위를 넘어서). 또한 이 접근 방식은 풀 잔액의 실시간 감소를 보여줍니다. 나는 결국 PPM이 과거를 살아야 한다고 결정했다 .
고아 블록 보상을 되돌리는 것을 방지하기 위해 PPM은 과거에 5개의 블록을 작동 하며 이는 고아가 해결되기에 충분한 시간입니다. 예를 들어, 체인 높이가 1,500,000일 때 PPM은 항상 5블록 뒤에 오는 블록 1,499,995를 처리합니다.
 
웹 모니터
 
PPM은 기본 개념 증명 코드 및 qtumd 인터페이스 기능을 제공합니다. 향후 개선 사항은 풀 모니터링 및 승격을 위한 Flask 웹 페이지를 제공할 것입니다. 이러한 웹 인터페이스는 실시간 풀 크기, 획득한 풀 블록 보상, 풀 수익 및 예상 일일 지불금을 표시할 수 있습니다. 오프라인 스테이킹 위임을 통해 권한이 없기 때문에 사용자 계정을 관리할 필요가 없습니다.
 
참고문헌
1. GitHub 풀 지불 관리자 저장소 https://github.com/JB395/Pool-Payout-Manager
 
2. 리포지토리의 Readme.md 문서 파일:
 
PPM 정보
 
PPM은 100% 수수료 슈퍼 스테이커(풀)로 작동하는 qtumd를 모니터링하고, 지불을 추적 및 수행하고, 이메일을 보내고, 활동을 기록하는 개념 증명 프로그램입니다. PPM은 qtum-cli를 사용하여 qtumd 서버 애플리케이션에 CLI 쿼리를 보내 스테이킹 이벤트를 식별하고 슈퍼 스테이커의 다양한 활동을 기록합니다. PPM은 약 4초마다 새 블록을 확인하는 쿼리를 보내지만 새 블록을 확인하기 전에 5번의 확인을 기다립니다(고아가 정착할 수 있도록). PPM은 qtumd가 실행 중이고 스테이킹이 활성화되어 있어야 하며(스테이킹용으로만 복호화됨) 이 두 조건이 충족될 때까지 오류 루프를 유지합니다.
 
개념 증명으로 PPM은 데이터 저장을 위해 많은 전역 변수와 간단한(선형 검색) 배열(대리인 및 누적 지불금)을 사용합니다. 노드의 데이터 응답은 일반적으로 전역 변수 "data"에 저장되며, 이 변수는 주 프로그램이나 다양한 기능에 의해 구문 분석될 수 있습니다. 주요 배열은 이 슈퍼 스테이커에 대한 대리자를 저장하는 delegateArray[]와 대리인에 대한 각 블록 보상으로 발생한 지불금을 저장하는 poolShareArray[]입니다. 대리인 지불금은 최소 0.001QTUM(구성 가능)에 도달해야 하며 그렇지 않으면 다음 기간에 이월됩니다.
 
성숙 UTXO당 지불(PPMU)
 
위임된 주소는 풀에서 허용하는 최소 크기의 해당 주소의 성숙한 UTXO(가중치)를 해당 블록 보상에 대한 전체 풀 가중치로 나눈 값을 기반으로 각 풀 블록 보상에 대한 지불금을 누적합니다. 개별 풀 구성원은 언제든지 위임된 주소에서 UTXO를 추가하거나 제거할 수 있으며 언제든지 풀에 가입하거나 풀을 탈퇴할 수 있으며 모든 풀 구성원은 각 블록에 대한 성숙한 UTXO 스테이킹에 따라 공정하게 처리됩니다.
 
디렉토리 구성
 
 
 
번호 제목 글쓴이 날짜 조회 수
697 [1월7일] 패트릭 말말말 [47] title: 퀀텀아이콘퀀텀지킴이 2018.01.07 22066
696 하드웨어 지갑 SafePal - Qtum title: 퀀텀아이콘껀텀 2020.03.30 21128
695 [12월24일] 패트릭 말말말 [71] title: 퀀텀아이콘퀀텀지킴이 2017.12.24 17569
694 [12월 18일] 패트릭 말말말 + 추가 [58] title: 퀀텀아이콘퀀텀지킴이 2017.12.18 15623
693 [1월 2일 패트릭 말말말] + 추가 + 수정 [68] title: 퀀텀아이콘퀀텀지킴이 2018.01.02 15276
692 첫번째 대기업 파트너십 확정 [360] [65] title: 퀀텀아이콘퀀텀지킴이 2018.01.07 14992
691 [1월 5일] 패트릭 말말말 [35] title: 퀀텀아이콘QTUMinfo 2018.01.05 12731
690 UBTC 관련 상세정보 [63] title: 퀀텀아이콘퀀텀지킴이 2018.01.04 10562
689 [1월 14일] 패트릭 말말말 [48] title: 퀀텀아이콘퀀텀지킴이 2018.01.14 10300
688 Qiswap 에어드랍 안내 [19] title: 퀀텀아이콘슈퍼스테이커 2021.01.23 9862
687 [1219] 패트릭 말말말 [25] title: 퀀텀아이콘퀀텀지킴이 2017.12.19 9833
686 [패트릭 말말말] 떴네요 [31] 박났네 2018.01.06 9641
685 첫번째 위성 발사 날짜 [48] title: 퀀텀아이콘퀀텀지킴이 2018.01.15 9499
684 TechFest [29-31] [56] title: 퀀텀아이콘퀀텀지킴이 2017.12.26 9009
683 [12월 30일] 패트릭 말말말 [41] title: 퀀텀아이콘퀀텀교주 2017.12.30 8281
682 5만개 노드 회사 공개 [34] title: 퀀텀아이콘퀀텀지킴이 2017.12.28 8138
681 “우주로부터의 기쁨” 에어드랍 이벤트 안내 [162] title: 퀀텀아이콘퀀텀지킴이 2018.02.13 8132
680 [1월 13일] 패트릭 말말말 [38] title: 퀀텀아이콘퀀텀지킴이 2018.01.13 7679
679 UBTC 에어드랍 + 패트릭말말말 [31] title: 퀀텀아이콘퀀텀지킴이 2018.01.04 7672
678 [1월6일] 패트릭 말말말 + 추가 [20] title: 퀀텀아이콘퀀텀지킴이 2018.01.06 7520

퀀텀 뉴스

포인트랭킹

순위 닉네임 포인트
1위 title: 스텔라쿵 캐리커쳐 #1타이어 6772195점
2위 title: 퀀텀아이콘빵먹는곰돌이 5960244점
3위 슈퍼비트 5891300점
4위 지금감사 5822100점
5위 title: 스텔라쿵 캐리커쳐 #1미스릴 5591946점
6위 불꽃 5586800점
7위 title: 퀀텀아이콘봄이 4968550점
8위 밀키웨이 3047900점
9위 빵상 2975450점
10위 대바기 2728250점