채굴에 블록 템플릿 사용

Nov 25 2020

블록 템플릿을 사용하는 방법에 대해 약간 혼란 스럽습니다. 난 난이도에 맞는 해시를 얻을 때 까지이 함수 를 호출해야한다고 생각하게 만드는 이 질문 을 보았습니다 . 기본적으로 블록 템플릿을 채굴하기 위해 수행해야하는 함수 호출은 무엇입니까? 그러면 제출 블록을 호출 할 수 있습니다.

이것이 모호한 질문이라면 죄송합니다.

나는 또한 이 질문을 보았지만 다시 호출해야 할 함수에 실제로 대답하지 않습니다.

더 많은 컨텍스트를 위해 bazel 저장소에서 monero를 호출하고 있으므로 상황이 약간 복잡하고 복잡합니다.

답변

2 jtgrassie Nov 26 2020 at 09:52

블록 템플릿을 사용하는 방법에 대해 약간 혼란스러워합니다. 기본적으로 블록 템플릿을 채굴하기 위해 수행해야하는 함수 호출은 무엇입니까? 그러면 제출 블록을 호출 할 수 있습니다.

블록 템플릿은 광부가 작업 (반복 해싱)을 수행하여 솔루션 (네트워크 난이도를 충족하는 해시)을 찾은 다음 네트워크에 제출할 수있는 블록에 대한 템플릿입니다.

따라서 먼저 광부는 일반적으로 데몬 메소드 get_block_template을 사용하여 블록 템플릿을 얻습니다 .

다음으로 광부는 nonce 공간 1을 업데이트하고 해시 2를 수행합니다 (RandomX 해시 함수 사용). 결과 해시 (단지 숫자)가 네트워크 난이도를 충족하면 데몬 메소드 submit_block을 사용하여 블록을 네트워크에 제출할 수 있습니다 .

마지막으로 피어 노드는 제안 된 블록 해시가 네트워크 난이도를 충족하는지 확인합니다. 다른 채굴자가 더 많은 작업이 완료된 유효한 블록 (또는 블록 체인)을 제출하지 않으면 60 블록 후에 채굴자가 보상을받습니다.

1 nonce 공간은 블록 헤더의 nonce 필드 또는 마이너 트랜잭션의 예약 된 공간의 임의 조합 일 수 있습니다.

2 실제로 해시되는 것은 블록 해싱 blob으로, 블록 헤더의 연결, 블록 트랜잭션의 머클 루트 해시 및 txs ( src ) 수의 변수입니다 . 채굴자는 반환 된 블록 해싱 Blob을 직접 사용 get_block_template하거나 블록 템플릿 Blob을 사용하여 블록 해싱 Blob을 직접 구성 할 수 있습니다. 후자는 광부가 광부 tx의 예약 된 공간을 변경하는 경우 필요합니다.