區塊鏈開發專題(數字貨幣的資料結構解析)

來源:互聯網
上載者:User
區塊鏈愛好者(QQ:53016353)
數字貨幣(資料區塊、資料區塊、資料區塊鏈)作為比特幣的核心概念,對於理解比特幣結構起著至關重要的作用。在《什麼是資料區塊》中,編者從資料區塊分布式交易記錄的角度簡單的介紹了資料區塊的概念。今天,編者從資料區塊的程式結構上來詳細的分析資料區塊裡面到底記錄了什麼資訊。


資料區塊檔案的位置
如果你用的是Bitcoin-Qt用戶端,那麼資料區塊的資訊就存在你的電腦裡面。每次當你開啟Bitcoin-Qt,資料區塊都會跟整個P2P網路分散式資料庫同步。根據作業系統的不同,資料區塊目錄blocks一般存放路徑為:


Windows: %APPDATA%\Bitcoin\ 
Linux:~/.bitcoin/ 
Mac OS: ~/Library/Application Support/Bitcoin/ 


開啟資料區塊檔案
我們開啟blocks檔案夾,便可以看到很多名為blkXXX.dat的檔案,這些檔案中儲存了傳說中的資料區塊記錄。




blkXXX.dat檔案在終端下面可以用hexdump開啟。
hexdump -n 10000 -C blk00000.dat


資料區塊結構
hexdump程式把資料區塊檔案轉化為十六進位+ASCII表示,編者解釋一下:每一個資料區塊記錄了六個內容:神奇數、區塊大小、資料區塊頭部資訊、交易計數、交易詳情。在這當中,資料區塊頭部資訊的HASH值是下一個新區塊的HASH值的參考目標數,最後一項交易詳情記錄了該區塊中所有的交易記錄(編者會在以後詳細說明交易記錄的結構)。
資料區塊結構如下圖:


資料區塊頭部結構
資料區塊頭部結構中記錄了:版本號碼、前一個區塊的記錄、Merkle樹的根值、時間戳記、目標特徵值、隨機數。
在比特幣礦工挖礦的過程就是產生新的資料區塊的過程(編者以後會詳細說明),這個過程需要對比前一個資料區塊頭部的HASH值和隨機數,如果滿足一定條件則產生新的區塊。Merkle樹的根值為該區塊中所有被記錄交易的根節點HASH值,中本聰用一個HASH樹來對每一比交易進行數位簽章,以確保每一比交易都不可偽造和沒有重複交易,Merkle樹就是HASH樹的一種。資料區塊頭部結構如下圖:




交易記錄


交易記錄就像一個記賬本一樣,記錄了所有比特幣的交易資訊,每一個比特幣玩家的比特幣收支情況都被永久的嵌入了資料區塊中以供別人查詢,這也就是為什麼每一比比特幣交易都是可以查詢到的。這個這些資料區塊中的交易資料存放在每一個比特幣玩家的用戶端節點中,所有的這些節點則組成了比特幣那及其堅韌的分散式資料庫系統。任何一個節點的資料被破壞都不會影響整個資料庫的正常運轉,因為其它的健康節點中都儲存了完整的資料庫。
在本文中,編者將詳細解析資料區塊中交易記錄的結構。


交易記錄結構
資料區塊的交易記錄中,詳細記載了比特幣的交易記錄和相關細節。其中在比特幣收支詳情裡面,記錄了收支的比特幣地址和merkle節點值等情況,因此收支詳情是交易記錄中最重要的部分。
完整的交易記錄結構如下表格:




比特幣支出和接收交易的結構
在資料區塊中,比特幣支出和接收交易是寫在一起的,整個收支記錄包括很多比記錄。每一比記錄都有自己的索引編號以供查詢。


每一比記錄中包括了產生時間、引用交易的雜湊值、交易記錄索引編號、比特幣支出地址、支出地址數量等細節。每一比收支交易記錄都有一個Merkle節點值,這個hash節點值是整個Merkle樹的一部分,決定了每一個地址都不能重複交易和被偽造。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.