比特幣交易批次究竟是什麼時候發生的?
我需要一些幫助來理解比特幣內部……
基本思想是:
礦工將 N 筆交易組裝成一個區塊(而不是為每筆交易創建共識)。並對這些交易進行雜湊處理以達成共識。
但是,礦工程式碼何時決定“合併”?礦工程式碼要等待多長時間才能將這些交易傳遞給雜湊函式?
它會等到交易列表達到塊大小限制(1 MB)嗎?
或者它只是等待 X 分鐘?
還是在收到交易費用後立即合併?
白皮書說
每個節點將新交易收集到一個塊中。
儘管可以單獨處理硬幣,但要為轉賬中的每一分錢進行單獨的交易會很笨拙。為了允許價值被分割和組合,交易包含多個輸入和輸出。
但沒有說明它收集了多少,或者它等待收集多長時間……
礦工選擇對他們有商業意義的任何交易。如果他們不想,他們不必包含任何交易。他們可以創建一個不包含交易的區塊(除了向礦工支付區塊獎勵的 coinbase 交易)。
通常,一旦其他人(或他們自己)發布了一個區塊,我希望礦工獲得或建構一個區塊模板,該模板可能包含也可能不包含在其“記憶體池”(mempool)中等待的一堆交易)。然後礦工將執行數万億個不同的隨機數等值,並為每個值計算塊的雜湊值,以查看生成的雜湊值是否小於目前目標。
但是礦工可以隨時開始挖礦。唯一的限制是,如果他們在其他人已經發布了具有區塊編號 N 的不同區塊之後嘗試發佈區塊編號 N,他們只會浪費時間。
礦工將 N 筆交易組裝成一個區塊
這基本上是真的。大多。
(而不是為每筆交易創建共識)。
礦工不會創造共識。
如果願意,礦工可以一次為一項交易創建一個區塊。
礦工程式碼何時決定“合併”?
每當他們想要的時候。
它會等到交易列表達到塊大小限制(1 MB)嗎?
不。
它只是等待X分鐘嗎?
不。
收到交易費用後是否立即合併?
不。
礦工不收取交易費用。當然不是提前。
礦工索取交易費用。他們通過創建一個 coinbase 交易來做到這一點,他們將其作為區塊中的第一筆交易。該交易通常將交易費用金額轉移到礦工錢包的地址中。
除非所有相關人員都認為他們的新區塊符合所有規則,否則他們不能花這筆錢。
一條規則是,在開採另外 100 個區塊之前,他們不能花這筆錢。