mempool 是如何納入區塊雜湊計算的?
所以我一直在閱讀關於如何計算隨機數的資訊。有一個部分我不明白。所以有一個記憶體池,每個節點(或挖礦節點)取該記憶體池的一部分(或全部),計算一個默克爾根,並與一個隨機數結合,得到一個具有一定難度級別的雜湊。
mempool(或其中的一部分)是不是先被挖礦軟體轉換成hash,然後進入nonce計算?
在探勘區塊時對交易的排序方式有要求嗎?
節點可以選擇區塊中的交易順序嗎?節點是否可以自由選擇它想要的任何交易順序,還是必須按時間順序選擇?
(隨意編輯問題,我盡力解釋它)
網路中的每個節點都有一個
mempool
. 包含未確認的mempool
交易。每個都mempool
可能略有不同,因為它們構成了網路中所有未確認交易的子集:有些可能沒有被中繼到節點,所以他不知道它們,節點所有者設置了更高的值minTxRelayFee
並過濾掉了一些交易費用低,或節點所有者為他的mempool
.無論如何,以上所有內容對於任何礦工節點也是如此。當礦工試圖找到一個區塊時,他們會從他們的
mempool
. 從這些交易中,他們建構了一個 Merkle 樹。Merkle 樹允許整個交易數據僅由Merkle 根表示。這個 Merkle 根是區塊頭的一部分。礦工可以自由選擇要包含哪些交易,只要交易有效,他們也可以按照他們想要的任何順序排列它們。由於現在可用於確認的交易通常比區塊空間多,礦工通常會選擇使礦工可以賺取的費用最大化的交易。
因此,礦工選擇了一些交易並創建了一個 Merkle 樹來包含它們。他們將其與塊頭的其他部分結合起來:時間戳、對前一個塊的引用、難度聲明和
nonce
. 這nonce
是一個任意數字,因此礦工可以使用所有其他數據建構一個候選區塊,然後通過循環遍歷所有可能的隨機數值來多次嘗試該候選區塊。每次嘗試,他們都會將塊頭放入散列算法並接收數據的摘要或散列。如果這個雜湊滿足難度陳述,礦工已經找到了一個新塊並將其中繼到網路。