比特币源码解析(8)
来源:互联网 发布:深入浅出数据分析 下载 编辑:程序博客网 时间:2024/05/24 01:01
0x00 摘要
共识机制一直以来都是区块链研究领域的热点,比特币采用的是POW机制,通过大量的算力来解决一个困难性问题从而产生新的区块,而正因为产生新的区块需要大量的算力,网络中的节点才相信最长的链是最可靠的,这种最长链原则也是比特币中共识的原理。
0x01 Consensus
// src/consensus/params.hnamespace Consensus {enum DeploymentPos{ DEPLOYMENT_TESTDUMMY, DEPLOYMENT_CSV, // Deployment of BIP68, BIP112, and BIP113. DEPLOYMENT_SEGWIT, // Deployment of BIP141, BIP143, and BIP147. // NOTE: Also add new deployments to VersionBitsDeploymentInfo in versionbits.cpp MAX_VERSION_BITS_DEPLOYMENTS};/** * Struct for each individual consensus rule change using BIP9. */struct BIP9Deployment { /** Bit position to select the particular bit in nVersion. */ int bit; /** Start MedianTime for version bits miner confirmation. Can be a date in the past */ int64_t nStartTime; /** Timeout/expiry MedianTime for the deployment attempt. */ int64_t nTimeout;};/** * 影响共识的参数 */struct Params { uint256 hashGenesisBlock; // 创世区块的hash int nSubsidyHalvingInterval; // 奖励减半时间间隔 /** Block height and hash at which BIP34 becomes active */ int BIP34Height; // 区块高度 uint256 BIP34Hash; // 区块hash /** Block height at which BIP65 becomes active */ int BIP65Height; /** Block height at which BIP66 becomes active */ int BIP66Height; /** * 在2016个区块中至少要有多少个区块被矿工确认,规则改变才能生效 * 在BIP9上线时还使用(nPowTargetTimespan / nPowTargetSpacing)值 * Examples: 1916 for 95%, 1512 for testchains. */ uint32_t nRuleChangeActivationThreshold; uint32_t nMinerConfirmationWindow; BIP9Deployment vDeployments[MAX_VERSION_BITS_DEPLOYMENTS]; /** POW参数 */ uint256 powLimit; // 难度 bool fPowAllowMinDifficultyBlocks; //是否允许最低难度 bool fPowNoRetargeting; // 不调整难度 int64_t nPowTargetSpacing; // 区块产生平均时间 int64_t nPowTargetTimespan; // 难度调整时间 int64_t DifficultyAdjustmentInterval() const { return nPowTargetTimespan / nPowTargetSpacing; } uint256 nMinimumChainWork; // 当前难度最小值 uint256 defaultAssumeValid; // 在此区块之前的区块都认为是有效的};} // namespace Consensus
阅读全文
0 0
- 比特币源码解析(8)
- 比特币源码解析(1)
- 比特币源码解析(2)
- 比特币源码解析(3)
- 比特币源码解析(4)
- 比特币源码解析(5)
- 比特币源码解析(6)
- 比特币源码解析(7)
- 比特币源码解析(9)
- 比特币源码解析(11)
- 比特币源码解析(12)
- 比特币源码解析(13)
- 比特币源码解析(14)
- 比特币源码解析(15)
- 比特币源码解析(16)
- 比特币源码解析(17)
- 比特币源码解析(18)
- 比特币源码解析(19)
- String类,StringBuffer类和StringBuilder类区别
- BMC IPMI常用命令
- 深度学习:循环神经网络RNN
- UVA 424
- 思维题:UVa1334-Ancient Cipher
- 比特币源码解析(8)
- 格子刷油漆--蓝桥杯国赛历年真题
- 哈夫曼树与哈夫曼编码
- jrpofile的使用
- hdu1556——树状数组水题练习(区间更新单点求和)
- SecureCRT中文乱码问题解决方案
- ACM算法:树状数组(详细)
- C++ SOCKET通信模型(六)同步epoll
- UVA 748