區塊鏈中的挖礦過程
讓我們考慮一個區塊鏈。他們探勘節點正在監聽交易,每個正在建構的是自己的區塊。由於延遲和其他問題,每個礦工都可能以不同的速度建構不同的區塊。在這一點上,我有一些問題:
1)共識算法什麼時候開始?有沒有像計時器?(例如:“共識算法每 10 分鍾啟動一次,目的是在區塊鏈中放入一個新塊”)
2)礦工可以在共識算法開始之前創建多個區塊嗎?例如,它完成了一個塊,在該塊進入共識算法之前,它會創建另一個塊。
共識算法開始時是否考慮所有礦工建構的區塊?如果一些礦工還沒有完成建造?
區塊中的交易順序重要嗎?區塊中的交易是否必須遵守相應“真實”交易的時間順序(A 向 B 發送 9 個比特幣)?
謝謝
沒有按照您的要求開始和停止的“共識算法”。沒有計時器,節點除了塊之外沒有任何通信。
更新區塊鏈(即共識算法)的過程始終在執行,並且每當收到新塊時“喚醒”。它由節點自己執行,因為除了接收新塊之外不需要與其他節點通信。更新區塊鏈僅適用於完整且有效的區塊。
每個節點接收一個新區塊並更新自己對區塊鏈的看法的過程就是共識算法。
由於延遲和其他問題,每個礦工都可能以不同的速度建構不同的區塊。
他們正在建構不同的區塊,因為他們是不同的礦工。每個礦工都在自己獨特的區塊上工作。他們可能沒有在不同高度的塊上工作。
1)共識算法什麼時候開始?有沒有像計時器?(例如:“共識算法每 10 分鍾啟動一次,目的是在區塊鏈中放入一個新塊”)
當它收到一個新塊時,它在一個節點內“開始”。沒有定時器,也不是全網算法。
2)礦工可以在共識算法開始之前創建多個區塊嗎?例如,它完成了一個塊,在該塊進入共識算法之前,它會創建另一個塊。
當然。當一個節點在驗證以前的塊之前收到一個新塊時,新塊被部分驗證(檢查不依賴於以前塊的部分),然後它進入隊列。
- 共識算法開始時是否考慮所有礦工建構的區塊?如果一些礦工還沒有完成建造?
然後那些礦工輸了比賽,一無所獲。共識只關心完整和有效的區塊。無論其他礦工在做什麼都無關緊要,除非他們也廣播了該高度的有效區塊。
- 區塊中的交易順序重要嗎?區塊中的交易是否必須遵守相應“真實”交易的時間順序(A 向 B 發送 9 個比特幣)?
是的,有點。兩個獨立事務的順序無關緊要。如果事務 A 先出現,事務 B(與事務 A 無關)在後,則一個塊可以有 B,然後是 A,這無關緊要。無論如何,塊的重點是建立時間順序。
但是如果交易 B 依賴於 A(所以它花費了 A 的輸出),那麼是的,順序很重要。在這種情況下,B 必須在 A 之後。否則該塊無效,節點將拒絕它。