Transactions

在一個區塊中包含交易 - 規則和時間/技術方面

  • September 11, 2019

我對下一個已解決的塊中包含的塊和交易有疑問。

讓我們從理論上假設有新傳播的求解塊。

現在有: tx0 和 tx1 - 不包含在傳播的塊中,交易時間早於解決的塊。

Tx2 – 在解決前一個塊後 10 秒傳播

Tx3 - 在解決前一個塊後 60 秒傳播

礦工是否只使用 Tx0 和 tx1,進行雜湊並開始探勘(已經有這些雜湊)還是(我認為不是這種情況)正在添加在這個“10 分鐘”視窗中傳播的那些 tx2 和 tx3?

大概他們需要重新開始,但這意味著當礦工收到關於另一個礦工解決的新區塊的資訊停止工作時,將所有交易形成他正在解決的區塊,所有交易在池中(tx0 和 tx1在我的範例中),檢查已解決塊中已經存在的交易需要所有提醒 tx 進行雜湊並開始解決。那是對的嗎?

所以基本上我的問題是,下一個塊是否只包括在解決目前塊之前和礦工開始找到目前塊之後傳播的那些交易(所以在這個“10分鐘視窗”或有一些其他規則?我試圖找到文件中的解決方案但沒有成功。(如果有人知道一些來源,我將不勝感激)

最好的祝福

本質上沒有真正的規則,只有各種優化。

ASIC速度很快。他們可以在幾秒鐘內燒掉給定區塊的全部 2^32 個可能的 nonce,這需要礦工使用 coinbase 交易中的額外 nonce 欄位來生成新的區塊頭(因為改變 coinbase 交易會改變 merkle 根)並嘗試再次。

這個過程可以並行完成——礦工可以在檢查第 N 個塊頭的 2^32 個 nonce 值時,通過更改 coinbase 交易中的額外 nonce 來準備 N+1 個塊頭。

同樣,交易選擇也可以並行完成——可以在礦工對前一個區塊模板進行操作時創建一個新的區塊模板,並且當礦工在用盡 nonce 後換出前一個區塊時,可以簡單地使用新模板的區塊頭空間(除非他們找到一個有效的塊,在這種情況下必須再次更新模板)。

這就是大多數礦池所做的——區塊模板的生成是由礦池並行完成的,它們會不斷地將更新的區塊模板傳遞給所有礦工。這使他們能夠在潛在區塊中快速包含高費用交易,同時仍確保他們始終在尋找解決方案。

採礦實際上沒有任何“重新開始”,因為採礦實際上是免費的,就像彩票一樣,不像比賽。更新事務列表時不會失去任何內容,除了製作新列表所需的可忽略不計的處理量和通信它的頻寬。

礦工將在處理時包含額外的交易,通常在幾秒鐘內 - 延遲只是為了節省頻寬和 cpu 將更新的塊數據發送到他們的硬體。

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