下载此文档

比特币(区块链)源码分析.doc


文档分类:通信/电子 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
比特币挖矿
挖矿命令 2
块结构 4
创建块 5
奖励比特币 6
SHA256算法加密 8
检验块 9
工作量证明 10
计算算力 12
比特币网络 12
挖矿命令
比特币客户端内嵌了挖矿模块,可以使用相关的命令开e用于扫描块,使块的hash满足POW的要求。
类CBIock继承了CBIockHeader类,增加了交易信息相关的数据。 class CBIock : public CBIockHeader
{
public:
// network and disk
std::vector<CTransaction> vtx; // 交易信息数组
// memory only
mutable std::vector<uint256> vMerkleTree; // Merkle 树 };
Vtx包含了交易信息,用于网络传播、硬盘存储。 vMerkleTree仅仅用于内存。
结构CBIockTemplate定义了块模版,增加了交易费、签各 struct CBIockTemplate
CBIock block; 〃块
std:: vector<int64_t> vTxFees; // 交易手续费
std::vector<int64_t> vTxSigOps; 〃 签名
};
创建块
如果是挖矿创建新块,贝I]先需要从CReserveKey中获取公钥 (CPubKey),然后计算出公钥脚本(CScript),再创建新块。
创建新块的函数是CreateNewBlock函数°
新建块模版CBIockTemplate实例。
建的交易信息添加到新建的块中,数组vTxFeesv vTxSigOps添加值© 如果指定了公钥脚本,则保存到交易信息的vout[0].scriptPubKey中。
计算创建的块的最大值,块最大值在1000与 (MAX_BLOCK_SIZE(1000000)-1000)之间,如果指定了参数”• blockmaxsize",则块最大值设置为指定值,否贝j设置为默认值
DEFAULT_BLOCK_MAX_SIZE(750000)o
计算初建的块禹最小值,块最小值在0与块最大值之间,如果指定了 参数”・blockminsize”,则块最小值设置为指定值,否则设置为默认值0。
计算块优先级值,块优先级值决定了块中包含的高优先级交易信息 的数量,不管支付的交易费是多少。块优先级值的最大值为块最大值,如 果指定了参数"-blockprioritysize\则设置为指定值,否则设置为默认值 DEFAULT_BLOCK_PRIORITY_SIZE(50000)o
遍历丙存池交身信息,组產优先级数组,不处理内存池中的 CoinBaae类型的交易信息、最后的交易信息。计算优尤级、每千字节的 手续费,添加到优先级数组中。(COrphan)
优先级计算公式:
Priority = sum(valuein * age) / modified_txsiz©
每千字节的手续费计算公式:
dFeePerKb = double(nlbtalln-()) / (double(nTxSizG)/ );
遍历优先级数组,把交易信息添加到新建的块中。
添加时注意以下几点:
1、 不添加最高优先级的交易信息。
2、 添加交易信息时, 的总和不能超过最大值MAX_BLOCK_SIGOPS(2DOOO)。
3、 当块大小总和低于块最小值时,可以添加免费的交易信息,当块 大小总和超过块最小值时,不能添加免费的交易信息了,免费的交易信息 是扌旨交易手续费用低于最小ffi(dFeePerKb<CTransaction::nMinTxFee)o
4、 只添加在UTXO集中09交易信息()。
5、 不添加交易信息的接收信息无效的信息(Checklnpu⑸。
然后提交在UTXO集中的交易信息的结果(UpdateCoins)o把交易信 息添加到CBIock的vtx中,计算交易费,添加到vTxFees中,计算签名, 添加到vTxSigOpso如果porphan中含有相同的hash项,则从porphan中 移除,添加到vecPriority中。
计算此块得到的比特币数量、手续我。
初始化块的成员信息。设置hashPrevBlock为上一个块的哈希索弓I。 更新块时间nTimeo设置nBits为下一个需要的POW。设置nNonce为0。 设置vTxSigOps[0]为块的签名数最。
提交UTXO集上的

比特币(区块链)源码分析 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小辰GG
  • 文件大小105 KB
  • 时间2022-04-12