首先明白:软分叉升级主要是在原有的主链上增加共识规则。 软分叉的目的是为了让老版本的客户端能够兼容。我们人为设定一个开始时间和结束时间,表示在这个范围内,我们进行软分叉升级,我们规定每到2016的整数倍作为一个升级的周期,那么在这个周期..
2018-02-23
BIP9允许部署多个向后兼容的软分叉,通过旷工在一个目标周期内投票,如果达到激活阈值nRuleC..
2018-02-21
综述本提案目标是:改变区块版本中 version字段的含义,允许同时部署多个向后兼容的更改(或称..
2018-02-20
BIP9允许部署多个向后兼容的软分叉,通过旷工在一个目标周期内投票,如果达到激活阈值nRuleChangeActivationThreshold,就能成功的启用该升级。在实现方面,通过重定义区块头信息中的version字段,将version字段解释为bit vector,每一个bit可以用来跟踪一个独立的部署,在满足激活条件之后,该部署将会生效,同时该b..
综述本提案目标是:改变区块版本中 version字段的含义,允许同时部署多个向后兼容的更改(或称软分叉)。该功能的实现依赖于将 version字段解释为bit vector,每个bit位可以用来跟踪一个独立的更改。在每个目标周期统计部署该bit位的区块的个数,一旦部署达成共识或超时(失败),接下来有一个暂停期,之后该bit 位可以被以后新的规则变化重新使..
概述Bitcoin Cash 源码中,POW功能模块,主要提供两个函数,供上层进行调用: GetNextWorkRequired: 获取下个块的工作量(即难度) CheckProofOfWork: 检查块的工作量是否合法。 true:合法; false:不合法。下面是详细分析获取下个块的难度1234567891011121314151617181920..
2018-02-19
具有代表性的货币是用于任何没有内在价值但可以交换定义数量的商品(通常是黄金或白银)的代币的术语。 本节将讨论如何使用 satoshis 作为代表性货币,更一般地说,使用satoshis来代表所有权 - 例如股票,债券,实物,其他加密货币和“ICO”(初始货币产品) 被比特币社区命名为“彩色货币”。 我相信,以太坊最近的成功不是由复杂的合同(有一个问题是..
2018-02-17
比特币的能力是有限的。同时,智能合约可能是资源密集型的。所以即使比特币一直支持基本的智能合约功能,但这两者从来都不是天作之合。 但是由 Blockstream 的数学家 Andrew Poelstra 带头研究的最近一个话题可以帮助解决这个问题。 最近他在 “ Scaling Bitcoin Stanford” 演讲中提及的关键内容,“无脚本脚本”有可能..
Version 0.1, 2018-01-19 - 草案供讨论 讨论草案为了讨论这个草案,附加说明包含在标题草案的标题中。这些打算从这个文件的finalalized版本被删除。可选规则由RULE OPTION表示,其中预期将在工作组内达成共识之后采用所呈现的选项。 引言本文档描述了重新激活几个脚本操作码的建议要求。 2011年,在OP_LSHIFT和OP..
2018-02-16
Jeff Dean, Sanjay Ghemawat leveldb库提供了一个持久性的键值存储,键和值是任意字节数组。keys 根据用户指定的比较器功能在 key-value store 内排序。 Opening A Database(创建并打开数据库)leveldb 数据库具有与文件系统目录相对应的名称。所有数据库的内容都存储在这个目录下。如有必要创..
2018-02-15
前两篇介绍了UXTO表示以及CCoinViewCache的使用:Bitcoin UTXO代码分析(一):UTXO的相关表示和Bitcoin UTXO代码分析(二):CCoinsViewCache,这篇文章主要介绍UTXO和其他模块的交互:新块被激活的时候如何更新UTXO,内存池中的交易和UTXO如何交互,以及UTXO的存储。 Blockchain激活Bl..
2018-02-14
在上一篇Bitcoin UTXO代码分析(一):UTXO的相关表示中,简要说明了UTXO在Bitcoin是使用那些类表示的,这篇文章继续分析下UTXO的标记和花费。 CCoinsViewCache类有几个重要的方法,下面介绍下主要方法的使用 Coin处理方法获取其中获取Coin的方法是: 12345678910111213141516CCoinsMa..
2018-02-09