区块链-数据区块

目录: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