Blockchain
驗證塊 124724
只是為了我自己的教育目的,我正在寫一些東西來驗證區塊鏈上的塊。我的程式碼中有這一行:
assert coinbase_amount == block_reward + total_tip
它成功了,直到它到達區塊124724,此時它說 coinbase_amount 是 49.99999999 BTC,而 block_reward + total_tip 是 50.01 BTC。(所以,它抱怨說 49.99999999 != 50.01)
我想如果這是真的,那很好,因為我猜那個礦工剛剛把 0.01000001 掉在了地板上。我只是想知道我是否正確解釋了該塊。(這種情況多久發生一次??為什麼?)
謝謝!
assert coinbase_amount == block_reward + total_tip
這是不正確的。實際的共識規則是
coinbase_amount <= block_reward + total_tip
(換句話說:允許礦工燒錢)。我想如果這是真的,那很好,因為我猜那個礦工剛剛把 0.01000001 掉在了地板上。
正確的。
我只是想知道我是否正確解釋了該塊。
確實,這正是發生的事情。
這種情況多久發生一次?為什麼?
由於礦工軟體有問題,通常。區塊 124724 中的案例後來由其假定作者解釋(參見這篇文章),儘管後來還有大約 1000 個其他實例,總共燒掉了大約 19 個 BTC。我在這篇文章中有更多關於這些和其他燒幣案例的資訊。