概述当添加一个新消息-“sendheaders”时,比起“inv”消息来,节点更喜欢通过 “headers” 消息来接收新块的广播。 动机自 0.10 引入“headers-first”下载块以来,假设块不能够连接到(有效)头文件链,块..
2018-04-19
门罗币隐私性增强的3个技术要点:环签名( ring signatures):将发送者的输入与其它..
2018-04-05
前两篇文章主要从整体逻辑上对代码进行了梳理,这篇文章将主要讲述网络模块主要的函数,以及其具体实现..
2018-03-26
monero
门罗币隐私性增强的3个技术要点:环签名( ring signatures):将发送者的输入与其它的人的输入进行混合,使确定后续的交易关联变得成倍的困难。隐形地址(stealth addresses):为每个交易生成隐形地址,使除了该交易的发送者和接收者之外的其他人不可能找到该交易的实际发送地址。环机密交易(ring confidential transa..
Bitcoin Cash
前两篇文章主要从整体逻辑上对代码进行了梳理,这篇文章将主要讲述网络模块主要的函数,以及其具体实现。 监听连接:ThreadSocketHandler断开没有使用的节点,首先遍历节点数组vNodesCopy,如果节点标识断开连接(fDisconnect),或者没有任何引用、发送接收消息,则移除节点,关闭socket,添加到断开连接节点数组 (vNodesD..
任务调度器Bitcoin 进程启动后,有一个专门的线程做任务调度, 这些任务根据指定的时刻,执行对应的函数:12345678bool AppInitMain(){ ....... // Start the lightweight task scheduler thread CScheduler::Function serviceL..
2018-03-23
众所周知,比特币网络是采用的P2P网络体系,所以,没有明显的客户端与服务端的区别或者是概念,每一个节点既是自身的客户端,又是其它节点的服务端。 在sync.h中,定义了 CSemaphore,它包装了系统底层的信号量机制,对wait(), try_wait(),post()实现了封装,代码如下: 1234567891011class CSemaphore..
2018-03-22
如今,委内瑞拉的法币几乎一文不值,而且它的现金危机只会越来越糟糕。 在过去几个月里,我们看到这个国家陷入了越来越严重地一场全面的人道主义灾难中,“经济确实处于一个无解的螺旋式下降中”-Steve Hanke说,他是普金斯大学的应用经济学教授。 国家政策导致在过去一年多的时间里通货膨胀率上升了4115%,对应的玻利瓦尔(委内瑞拉货币)在2017年贬值了9..
2018-03-21
Bitcoin
多线程脚本检查启动多线程脚本检查启动代码:123456789101112131415bool AppInitMain(Config &config, boost::thread_group &threadGroup, CScheduler &scheduler) { ... if (nScriptCheckT..
2018-03-19
在梳理代码逻辑之前,首先介绍几个比较重要的结构: CMessageHeader消息头包含的内容: 123456789101112131415class CMessageHeader {public: enum { MESSAGE_START_SIZE = 4, //消息开始字符串,长度4字节,就是告诉..
2018-03-18
go-ethereum中go-event库的使用github.com/ethereum/go-ethereum/event包实现了一个事件发布订阅的库,使用接口主要是event.Feed 类型,以前还有event.TypeMux 类型,看代码注释,说过时了,目前主要使用Feed 类型。 1234567891011121314151617181920212..
2018-03-15
该脚本的格式 锁定脚本: < expiry time > OP_CHECKLOCKTIMEVERIFY OP_DROP OP_DUP OP_HASH160 < pubKeyHash > OP_EQUALVERIFY OP_CHECKSIG 解锁脚本: < sig > < pubKey > 允许一个交易的输出..