Итак, я читал о том, как вычисляется одноразовый номер. Есть одна часть, которую я не понимаю. Итак, есть мемпул, и каждый узел (или узел майнинга) берет часть (или всю часть) этого мемпула, вычисляет корень меркла и комбинирует его с одноразовым номером, чтобы получить хэш определенного уровня сложности.
Мемпул (или его часть) сначала преобразуется в хеш программным обеспечением для майнинга, а затем входит в вычисление одноразового номера?
Существуют ли требования к порядку транзакций при майнинге блока?
Могут ли узлы выбирать порядок транзакций в блоке? Свободен ли узел выбирать любой порядок транзакций, который он хочет, или он должен выбираться в хронологическом порядке?
(не стесняйтесь редактировать вопрос, я попытался объяснить это как можно лучше)
Каждый узел в сети имеет файл mempool
. mempool
Содержит неподтвержденные транзакции . Каждый из них mempool
может немного отличаться, поскольку они составляют подмножество всех неподтвержденных транзакций в сети: некоторые из них могли не быть переданы узлу, поэтому он не знает о них, владелец узла установил более высокий уровень minTxRelayFee
и отфильтровал некоторые транзакции с низкая комиссия, или владелец узла установил меньший лимит данных для своего домена mempool
.
В любом случае, все вышесказанное верно и для любой майнерской ноды. Когда майнеры пытаются найти блок, они выбирают набор транзакций для подтверждения из своих файлов mempool
. Из этих транзакций они строят дерево Меркла. Дерево Меркла позволяет представить все данные транзакции только корнем Меркла . Этот корень Merkle является частью заголовка блока.
Майнеры могут свободно выбирать, какие транзакции включать, и они также могут размещать их в любом порядке, который они хотят, при условии, что транзакции действительны. Поскольку сейчас для подтверждения доступно больше транзакций, чем места в блоке, майнеры обычно выбирают транзакции, которые максимизируют комиссию, которую майнер может заработать.
Итак, майнеры выбрали несколько транзакций и создали для них дерево Меркла. Они объединяют это с другими частями заголовка блока: отметкой времени, ссылкой на предыдущий блок, описанием сложности и расширением nonce
. Это nonce
произвольное число, поэтому майнеры могут построить блок-кандидат со всеми остальными данными, а затем много раз попробовать этот кандидат, циклически перебирая все возможные значения одноразового номера.
При каждой попытке они помещают заголовок блока в алгоритм хеширования и получают дайджест или хэш данных. Если этот хеш удовлетворяет заявлению о сложности, майнер нашел новый блок и передаст его в сеть.