摘要增加一个新的消息类型–“feefilter”,用于告知 peer 不要向该节点发送低于指定费率的交易的“inv”。 动机为了防止未开采的低费用的攻击和一些垃圾邮件的交易,Bitcoin Core 0.12中引入了有限 mempool..
2018-03-13
block headers 以 80 字节的格式进行序列化,然后作为比特币工作量验证算法的一部分..
2018-03-12
摘要该BIP主要描述了广义的 off-chain 合约谈判的脚本。 总结hash 时间锁定合约(..
2018-03-11
block headers 以 80 字节的格式进行序列化,然后作为比特币工作量验证算法的一部分进行哈希处理,使序列化头部格式成为共识规则的一部分。 bytes name 数据类型 描述 4 version int32_t block version 指示要遵循哪一组块验证规则 32 previous block header hash..
摘要该BIP主要描述了广义的 off-chain 合约谈判的脚本。 总结hash 时间锁定合约(HTLC)是一种脚本,允许指定方(“卖方”)通过公开 hash 的原始信息来花费资金。 在退款情况下,它还允许第二方(“买方”)在超时达到后花费这笔资金。 该脚本采用以下形式: 1234567OP_IF [HASHOP] <digest> ..
摘要这个BIP描述了比特币脚本系统中一个新的标准交易类型,定义了额外的验证规则,但是只能适用于新的交易。 动机pay-to-script-hash脚本类型的目的是将构建交易的成本从发送交易方转嫁到赎回方。 它的好处是允许交易发起者能够构建各种交易,不管多么复杂,只需要使用20字节固定长度的哈希,这个足够短的hash能够通过扫描二维码或者简单的复制粘贴完成..
bitcoin 代码中大量使用 boost::signal, boost::signal 实现了信号与槽的事件通知机制,或者说是一种消息的发布与订阅机制, signal 类型是一个可调用类型,slot 就是callback 对象,或者说事件的订阅者,signal 实例是一个可调用对象,调用signal 对象,就相当于发布了相应的事件, signal ..
2018-03-08
utxo的刷盘逻辑主要在txdb.cpp中实现,主要是 CoinsViewDB::batchwrite这个函数。下面我们来分析一下: 12345678910111213141516171819202122232425262728bool CCoinsViewDB::BatchWrite(CCoinsMap &mapCoins, const uin..
2018-03-01
Version 0.1, 2018-01-19 - 草案供讨论 讨论草案为了讨论这个草案,附加说明包含在标题草案的标题中。这些打算从这个文件的finalalized版本被删除。可选规则由RULE OPTION表示,其中预期将在工作组内达成共识之后采用所呈现的选项。 引言本文档描述了重新激活几个脚本操作码的建议要求。 2011年,在OP_LSHIFT和OP..
本文主要从整体逻辑方面,抽象 txdb 模块的代码构建逻辑。 首先 txdb 模块主要是用来实现 block 和 utxo 两个模块的落盘逻辑,所以我们将分为两个大的部分,来对其逻辑一一梳理。 原始数据块首先,我们通过网络接收到原始块,进行块文件存储。 访问块数据文件块文件通过以下方式访问: CDiskTxPos:一个 struct,CDiskTxPo..
2018-02-26
本小节主要介绍 txdb 以及其所引用到的代码中一些常量所表示的含义在 txdb.cpp中,我们能够看到其定义了很多 char 类型的常量: 12345678910static const char DB_COIN = 'C';static const char DB_COINS = 'c';static const char DB_BLOCK_FILE..
2018-02-25
概述现在的许多节点不会用另一个花费相同输入的交易来代替其流量的任何交易,使得花费者难以调整其先前发送的交易以处理意外的确认延迟或执行其他有用的替换。 此处所述的 opt-in full Replace-by-Fee (opt-in full-RBF) signaling 政策允许消费者向交易添加信号,表明他们希望能够在未来取代该交易。为了响应这个信号, ..
2018-02-23