6 1 區塊的作用 星河公鏈

2022-09-23 06:48:11 字數 1020 閱讀 3846

區塊的概念

區塊鏈是由乙個個相連的區塊(block)組成。區塊很像資料庫的記錄,每次寫入資料,就是建立乙個區塊。

每個區塊包含兩個部分:

區塊頭(head):記錄當前區塊的元資訊

區塊頭包含了當前區塊的多項元資訊

生成時間

實際資料(即區塊體)的 hash

上乙個區塊的 hash

......

? hash 就是計算機可以對任意內容,計算出乙個長度相同的特徵值。區塊鏈的 hash 長度是256位,不管原始內容是什麼,最後都會計算出乙個256位的二進位制數字。而且可以保證,只要原始內容不同,對應的 hash 一定是不同的。

區塊體(body):儲存和承載區塊鏈上的各種實際資料

如下圖所示,區塊鏈的鏈式儲存形式:

區塊的作用

記錄區塊鏈上所有操作過程及資料

在區塊鏈上的所有的各種操作和相關的資料,都以交易的形式儲存下來;最終在區塊不可逆的時候會落地儲存到磁碟上,如下圖所示:

維持同一鏈上不同節點間狀態一致性

如果節點間的區塊不一致,先通過區塊同步到相同的不可逆區塊,然後,按照區塊的序號和其上承載的交易的順序在節點上將交易進行重新執行,一直到所有的不可逆區塊執行完畢,這個時候,節點的狀態記錄能夠與其他節點的狀態達到一致。如下圖所示:最左側與最右側的節點通過重播交易到達與其他節點的狀態一致。

區塊hash值防止了對其上交易的修改

區塊與 hash 是一一對應的,每個區塊的 hash 都是針對」區塊頭」(head)計算的。

區塊頭包含很多內容(包括上乙個區塊的hash、當前區塊體的hash等)。這表示,如果當前區塊的內容變了,或者上乙個區塊的 hash 變了,一定會引起當前區塊的 hash 改變。

假設有人修改了乙個區塊,那麼該區塊的 hash 就變了。為了讓後面的區塊還能連到它,必須同時修改後面所有的區塊,否則被改掉的區塊就會脫離區塊鏈。而hash 的計算本身較為耗時,同時修改多個區塊幾乎不可能發生,除非有人掌握了全網51%以上的計算能力,而這種情況是幾乎不可能發生的。

相關鏈結

星河公鏈

6 1 區塊的作用

區塊鏈是由乙個個相連的區塊 block 組成。區塊很像資料庫的記錄,每次寫入資料,就是建立乙個區塊。每個區塊包含兩個部分 hash就是計算機可以對任意內容,計算出乙個長度相同的特徵值。區塊鏈的 hash 長度是256位,不管原始內容是什麼,最後都會計算出乙個256位的二進位制數字。而且可以保證,只要...

區塊回放過程解析 星河公鏈

eos節點為什麼需要區塊回放,回放的過程是怎樣的,回放完畢後結果如何?這些問題我們將在下面逐一講述。區塊回放的前提條件 eos服務節點為什麼需要區塊回放呢?eosio執行主網中,各個服務節點基於區塊保持了狀態一致性。當出現某個節點與其他節點的狀態不一致,無法持續保證一致性的情況下,這個時候就需要進行...

EOS區塊鏈究竟有幾個執行緒 星河公鏈

一 nodeos工作執行緒 nodeso節點的工作執行緒包括 乙個主線程,乙個訊號處理執行緒和兩個執行緒池。主線程 main函式啟動執行緒,該執行緒執行完程式初始化工作後,會呼叫app io service.run 啟動boost asio io service的非同步io服務,通過非同步io方式完...