Używanie szablonu bloku do kopania

Nov 25 2020

Jestem trochę zdezorientowany, jak korzystam z szablonu bloku. Widziałem to pytanie, które skłania mnie do myślenia, że ​​być może muszę wywołać tę funkcję, dopóki nie otrzymam skrótu, który pasuje do trudności. Zasadniczo, jakie są wywołania funkcji, które muszę wykonać, aby wydobyć szablon bloku, aby móc następnie wywołać blok przesyłania.

Przepraszam, jeśli to niejasne pytanie, jestem po prostu dość zdezorientowany.

Widziałem również to pytanie, ale ponownie nie odpowiada ono, jaką funkcję powinienem wywołać.

Dla większego kontekstu wywołuję monero z repozytorium bazel, więc rzeczy są nieco zawiłe i złożone.

Odpowiedzi

2 jtgrassie Nov 26 2020 at 09:52

Jestem trochę zdezorientowany, w jaki sposób używam szablonu bloku ... Zasadniczo, jakie są wywołania funkcji, które muszę wykonać, aby wydobyć szablon bloku, aby móc wywołać blok przesyłania.

Szablon bloku to po prostu szablon bloku, nad którym górnik może wykonać pracę (powtórne haszowanie), aby spróbować znaleźć rozwiązanie (skrót, który spełnia trudność sieci), a następnie przesłać do sieci.

Tak więc najpierw górnik uzyskuje szablon bloku, zazwyczaj przy użyciu metody demona get_block_template .

Następnie górnik odpowiednio aktualizuje przestrzeń jednorazową 1 i wykonuje hash 2 (używając funkcji skrótu RandomX). Jeśli / kiedy wynikowy hash (który jest tylko liczbą) napotka trudności w sieci, mogą przesłać blok do sieci za pomocą metody demona submit_block .

Wreszcie, węzły równorzędne sprawdzają, czy każdy proponowany skrót bloków spełnia trudność sieci. Jeśli żaden inny górnik nie przedstawi prawidłowego bloku (lub łańcucha bloków) z większą ilością wykonanej pracy, po 60 blokach górnik otrzyma nagrodę.

1 przestrzeń nonce może być dowolną kombinacją pola nonce w nagłówku bloku lub w jakimkolwiek zarezerwowanym miejscu transakcji górnika.

2 to, co faktycznie zostaje zaszyfrowane, to blokowy obiekt blob, który jest połączeniem nagłówka bloku, hashem korzenia Merkle transakcji bloków i wariacją liczby txs ( src ). Górnik może albo bezpośrednio użyć zwróconego obiektu blob haszującego bloku, get_block_templatealbo sam skonstruować obiekt blob haszujący blok, używając obiektu blob szablonu bloku. To ostatnie jest wymagane, jeśli górnik zmienia zarezerwowane miejsce górnika tx.