BTC源码分析 区块

Posted 十年区块链

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BTC源码分析 区块相关的知识,希望对你有一定的参考价值。

概念

在《比特币:一种点对点的电子现金系统》中,比特币被设计成完全不依赖任何受信任的第三方金融机构。为了在不需要第三方支持的情况下解决电子货币双重支付问题,中本聪交易记录工作量证明(PoW, proof-of-work)结合在一起,以链表的形式表达,链表结点则是区块(Block)。


区块中包含着众多的交易,同时也包含了时间戳等其他信息。由于交易的哈希值会影响区块的哈希值,前一区块的哈希值会影响后一区块的哈希值,因此形成了一条环环相扣的链。而维系着链强度的,则是工作量证明

数据结构

在bitcoin-0.1.5中,与区块相关的数据结构主要集中在main.h文件中,类图如下:

CBlock int nVersion uint256 hashPrevBlock uint256 hashMerkleRoot uint nTime uint nBits uint nNonce vector<CTransaction> vtx; vector<uint256> vMerkleTree; CTransaction int nVersion vector<CTxIn> vin; vector<CTxOut> vout; int nLockTime

nVersion:区块版本
hashPrevBlock:前一区块的哈希值
hashMerkleRoot:交易的梅克尔树根哈希值
nTime:区块时间戳
nBits:工作量证明的难度
nNonce:被用于寻找符合条件的工作量证明
vtx:区块包含的交易
vMerkleTree:交易哈希值的梅克尔树,本树不会被包含在区块头中

区块哈希:仅计算区块头部的哈希值,即从nVersion字段到nNonce字段

区块生成

以上是关于BTC源码分析 区块的主要内容,如果未能解决你的问题,请参考以下文章

BTC源码分析 交易

区块链教程以太坊源码分析core-state-process源码分析

区块链教程以太坊源码分析core-state源码分析

区块链教程以太坊源码分析core-state-process源码分析

区块链教程以太坊源码分析core-state源码分析

区块链教程以太坊源码分析core-vm-stack-memory源码分析