全节点是指维持包含全部交易信息的完整区块链的节点。更加准确地说,这样的节点应当被称为完整区块链节点”。在比特币发展的早期,所有节点都是全节点;当前的比特币核心客户端也是完整区块链节点。但在过去的两年中...
精通比特币(50):新节点如何发现比特币网络?
当新的网络节点启动后,为了能够参与协同运作,它必须发现网络中的其他比特币节点。新的网络节点必须发现至少一个网络中存在的节点并建立连接。由于比特币网络的拓扑结构并不基于节点间的地理位置,因此各个节点之间...
精通比特币(49):比特币传播网络
虽然比特币P2P网络服务于各种各样的节点类型的一般需求,但是对于比特币挖矿节点的专门需求,它显示出太高的网络延迟。 比特币矿业公司正在进行时间敏感的竞争,以解决工作证明问题,并扩大块状。在参加比赛时,...
精通比特币(48):扩展比特币网络
运行比特币P2P协议的比特币主网络由大约5000-8000个运行着不同版本比特币核心客户端(Bitcoin Core)的监听节点、以及几百个运行着各类比特币P2P协议的应用(例如Bitcoin Cla...
精通比特币(47):比特币网络中的节点类型及角色
尽管比特币P2P网络中的各个节点相互对等,但是根据所提供的功能不同,各节点可能具有不同的角色。每个比特币节点都是路由、区块链数据库、挖矿、钱包服务的功能集合。 比特币网络节点,具有所有四...
精通比特币(46):P2P网络架构
比特币采用了基于国际互联网(Internet)的P2P(peer-to-peer)网络架构。 P2P是指位于同一网络中的每台计算机都彼此对等,各个节点共同提供网络服务,不存在任何“特殊”...
精通比特币(45):具有流量控制的脚本
比特币脚本的一个更强大的功能是流量控制,也称为条件条款。您可能熟悉使用构造IF ... THEN ... ELSE的各种编程语言中的流控制。比特币条件条款看起来有点不同,但是基本上是相同的结构。 &n...
精通比特币(44):针对费用狙击(Fee Sniping)的时间锁定
费用狙击是一种理论攻击情形,矿工试图从将来的块(挑选手续费较高的交易)重写过去的块,实现“狙击”更高费用的交易,以最大限度地提高盈利能力。 例如,假设存在的最高块是块#100,000。如...
精通比特币(43):中位时间过去Median-Time-Past
作为激活相对时间锁定的一部分,时间锁定(绝对和相对)的“时间”方式也发生了变化。在比特币中,墙上时间(wall time)和共识时间之间存在微妙但非常显著的差异。 比特币是一个分散的网络...
精通比特币(42):相对时间锁
nLocktime和CLTV都是绝对时间锁定,它们指定绝对时间点。下面的两个时间锁定功能是相对时间锁定,它们将消耗输出的条件指定为从块链接中的输出确认起的经过时间。 相对时间锁是有用的,...