Blockchain

mempool 是如何納入區塊雜湊計算的?

  • August 7, 2016

所以我一直在閱讀關於如何計算隨機數的資訊。有一個部分我不明白。所以有一個記憶體池,每個節點(或挖礦節點)取該記憶體池的一部分(或全部),計算一個默克爾根,並與一個隨機數結合,得到一個具有一定難度級別的雜湊。

mempool(或其中的一部分)是不是先被挖礦軟體轉換成hash,然後進入nonce計算?

在探勘區塊時對交易的排序方式有要求嗎?

節點可以選擇區塊中的交易順序嗎?節點是否可以自由選擇它想要的任何交易順序,還是必須按時間順序選擇?

(隨意編輯問題,我盡力解釋它)

網路中的每個節點都有一個mempool. 包含未確認的mempool交易。每個都mempool可能略有不同,因為它們構成了網路中所有未確認交易的子集:有些可能沒有被中繼到節點,所以他不知道它們,節點所有者設置了更高的值minTxRelayFee並過濾掉了一些交易費用低,或節點所有者為他的mempool.

無論如何,以上所有內容對於任何礦工節點也是如此。當礦工試圖找到一個區塊時,他們會從他們的mempool. 從這些交易中,他們建構了一個 Merkle 樹。Merkle 樹允許整個交易數據僅由Merkle 根表示。這個 Merkle 根是區塊頭的一部分。

礦工可以自由選擇要包含哪些交易,只要交易有效,他們也可以按照他們想要的任何順序排列它們。由於現在可用於確認的交易通常比區塊空間多,礦工通常會選擇使礦工可以賺取的費用最大化的交易。

因此,礦工選擇了一些交易並創建了一個 Merkle 樹來包含它們。他們將其與塊頭的其他部分結合起來:時間戳、對前一個塊的引用、難度聲明和nonce. 這nonce是一個任意數字,因此礦工可以使用所有其他數據建構一個候選區塊,然後通過循環遍歷所有可能的隨機數值來多次嘗試該候選區塊。

每次嘗試,他們都會將塊頭放入散列算法並接收數據的摘要或散列。如果這個雜湊滿足難度陳述,礦工已經找到了一個新塊並將其中繼到網路。

引用自:https://bitcoin.stackexchange.com/questions/47926