目录:http://www.javashuo.com/article/p-nitsjfvy-ey.html网络
数据区块记录了整个比特币网络上的交易记录数据,而且这些数据是被全部比特币节点共享的。spa
比特币的交易记录会保存在数据区块之中,比特 币系统中大约每10分钟会产生一个区块,每一个数据区块通常包含区块头(Header)和区块体(Body)两部分,.net
比特币源代码分析(区块):http://www.javashuo.com/article/p-vpfoinhr-hz.htmlblog
区块头封装了当前的版本号(Version)、前一区 块地址(Prev-block)、时间戳(Timestamp)、随机 数(Nonce)当前区块的目标哈希值(Bits)、Merkle树的根值(Merkle-root)等信息。ci
区块头的结构说明:get
数据项 | 目的 | 大小(字节) |
Version(版本) | 区块版本号 | 4 |
hashPrevBlock(前一区块的Hash) | 前一区块的256位Hash值 | 32 |
hashMerkleRoot Merkle(根节点Hash值) | 基于一个区块中全部交易的256位Hash值 | 32 |
Time(时间戳) | 从1970-01-01 00:00 UTC开始到如今,以秒为单位的当前时间戳 | 4 |
Bits(当前目标的Hash值) | 压缩格式的当前目标Hash值 | 4 |
Nonce(随机数) | 从0开始的32位随机数 | 4 |
区块体中则主要包含交易计数和交易详情。交易详情就是比特币系统中的记帐本,每一笔交易都会被永久地记入数据区块中,并且任何人均可以查询。同步
区块体中的Merkle树将会对每一笔交易进行数字签名,如此能够确保每一笔交易都不可伪造且没有重复交易。全部的交易将经过Merkle树的Hash过程产生一个惟一Merkle根值记入区块头。hash
若是你使用的是比特币核心钱包(Bitcoin core),那么每当你打开客户端时,区块数据文件都 会被同步到电脑硬盘中,能够在blocks文件夹下找到 它们。如图2-2所示的.dat文件就是咱们要找的数据区块文件。it