區塊鏈是由乙個個相連的區塊(block)組成。區塊很像資料庫的記錄,每次寫入資料,就是建立乙個區塊。
每個區塊包含兩個部分:
hash就是計算機可以對任意內容,計算出乙個長度相同的特徵值。區塊鏈的 hash 長度是256位,不管原始內容是什麼,最後都會計算出乙個256位的二進位制數字。而且可以保證,只要原始內容不同,對應的hash一定是不同的。
區塊體(body):儲存和承載區塊鏈上的各種實際資料
如下圖所示,區塊鏈的鏈式儲存形式:
在區塊鏈上的所有的各種操作和相關的資料,都以交易的形式儲存下來;最終在區塊不可逆的時候會落地儲存到磁碟上,如下圖所示:
如果節點間的區塊不一致,先通過區塊同步到相同的不可逆區塊,然後,按照區塊的序號和其上承載的交易的順序在節點上將交易進行重新執行,一直到所有的不可逆區塊執行完畢,這個時候,節點的狀態記錄能夠與其他節點的狀態達到一致。如下圖所示:最左側與最右側的節點通過重播交易到達與其他節點的狀態一致。
區塊與 hash 是一一對應的,每個區塊的 hash 都是針對」區塊頭」(head)計算的。
區塊頭包含很多內容(包括上乙個區塊的hash、當前區塊體的hash等)。這表示,如果當前區塊的內容變了,或者上乙個區塊的 hash 變了,一定會引起當前區塊的 hash 改變。
假設有人修改了乙個區塊,那麼該區塊的 hash 就變了。為了讓後面的區塊還能連到它,必須同時修改後面所有的區塊,否則被改掉的區塊就會脫離區塊鏈。而hash 的計算本身較為耗時,同時修改多個區塊幾乎不可能發生,除非有人掌握了全網51%以上的計算能力,而這種情況是幾乎不可能發生的。
星河公鏈
6 1 區塊的作用 星河公鏈
區塊的概念 區塊鏈是由乙個個相連的區塊 block 組成。區塊很像資料庫的記錄,每次寫入資料,就是建立乙個區塊。每個區塊包含兩個部分 區塊頭 head 記錄當前區塊的元資訊 區塊頭包含了當前區塊的多項元資訊 生成時間 實際資料 即區塊體 的 hash 上乙個區塊的 hash hash 就是計算機可以...
5 5 區塊索引
超級賬本提供多種區塊索引 block index 方式,以便能夠快速找到區塊。這些方式包括 區塊編號 區塊雜湊 交易編號 同時按區塊編號和交易編號 加 入 會 員 微 信 dedao555 區塊交易編號 交易驗證碼。5.5.1 檔案位置指標 索引的內容是檔案位置指標 file location po...
5 5 區塊索引
超級賬本提供多種區塊索引 block index 方式,以便能夠快速找到區塊。這些方式包括 區塊編號 區塊雜湊 交易編號 同時按區塊編號和交易編號 加 入 會 員 微 信 dedao555 區塊交易編號 交易驗證碼。5.5.1 檔案位置指標 索引的內容是檔案位置指標 file location po...