本文将以比特币创世块为例介绍比特币块的数据结构,阅读本文需要对比特币原理有一定的理解。 一、Block 预览 使用编辑器比如Sublime打开blk00000.dat(如果您不知道.dat文件在哪,可以参考比特币数据目录)。 .dat文件以Little-Endian格式存储Block数据,比如下面的就是创世块的数据:
二、Block结构 Block由5个部分组成,以magic数据开始: 三、魔法数 每个块总是以魔法数开始,正式网络是0xD9B5BEF9,测试网络是0x0709110B。 四、块头部 版本号 目前的块版本号有1和2,在227836及之后的块的版本号都是2,在之前的块有的是2有的是1。 目标值 目标值0x1D00FFFF由两个部分组成:指数0x1D(=29)和尾数0x00FFFF,真实的目标值的大小计算方式是: 目标值=尾数*256指数 所以这里的目标值为: 0xFFFF0000000000000000000000000000000000000000000000000000。 随机数 随机数用于挖矿时生成符合要求的块哈希。 五、交易个数 描述交易个数字节的长度和大小如下表: 如果随机数之后的第一个字节比0xfd小,那么该字节就是交易大小的字节,比如创世块的随机数后的第一个字节是0x01,那么创世块里的交易个数为1。 如果第一个字节是0xfd那么0xfd后面的两个字节就是交易大小的字节,以此类推。 六、交易 每个交易都由6个部分组成 每个交易输入由5个部分组成 上一个交易哈希值 对于coinbase交易不存在上一个交易,所以示例中的值是 0x0000000000000000000000000000000000000000000000000000000000000000 上一个交易的输出位置 对于coinbase它的值总是0xFFFFFFFF 每个交易输出由3个部分组成 输出值 示例中的输出值0x12A05F200转换成十进制大小是5000000000。 输出脚本 输出脚本定义了该交易输出再次被花费的方式。 总结 本文对比特币块数据进行了初步分析,后续的文章将为深入分析块中各个组成部分是如何工作的。 参考(打开需要翻墙) https://en.bitcoin.it/wiki/Category:Technical http://coinlogic.wordpress.com/2014/02/18/the-protocol-1-block/comment-page-1/ —- 文章来源:http://www.yibite.com/blog-23369-471.html 原文链接:无 原文作者:李浩 编译者/作者:李浩 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Block数据解析
2014-08-03 李浩 来源:壹比特
- 上一篇:如何让比特币从早期采用者走向早期大众
- 下一篇:Block交易解析
LOADING...
相关阅读:
- 【默燃EOS周报】Block.one 即将公布新路线图;EOS主网账户超200万2020-08-03
- EOS全网账户量突破200万;Block.one 投票代理“sub2.b1”正式上线(7.28-8.3)2020-08-03
- 【EOS Cannon播报】Block.one创建了一个拥有8500万EOS的新投票代理2020-08-02
- 寻找 DeFi 弄潮儿:Su Zhu 告诉你优秀的加密交易员是如何炼成的?2020-07-31
- EOS错失DeFi首班车:还有希望么?2020-07-29