主页 > imtoken注册 > btc数据结点交易 BTC-网络

btc数据结点交易 BTC-网络

imtoken注册 2023-03-06 07:30:41

2021-08-12

新的交易需要在比特币网络上发布,矿工打包交易的区块也应该在比特币网络上发布。

应用层:比特币区块链网络层:P2P Overlay Network

比特币网络中的P2P网络非常简单,所有节点都是点对点的,没有超级节点。 要加入这个网络,必须至少有一个种子节点(seed node),与种子节点联系,它会通知网络中它所知道的其他节点(有点像构建路由表的过程)。 节点之间通过TCP进行通信,有利于穿透防火墙。 退出网络不需要通知其他节点,直接退出应用程序即可。 其他节点没有听到你的消息,过一段时间就会删除你。

比特币网络的设计原则是简单和稳健,而不是效率。 每个节点维护一个邻居节点的集合。 消息通过泛洪的方式在网络中传播。 当一个节点第一次听到消息时,它会将它传播到所有邻居节点并记录它已经收到它。 消息传出去了。

btc数据结点交易_btc-e交易_btc交易一直未确认

邻居节点的选择是随机的btc数据结点交易,不考虑底层拓扑。 例如,美国的节点可能是中国节点的邻居节点。 这种设计的好处是以牺牲效率为代价来增强健壮性(robust,risk-proof)。

传播新发布的交易

在比特币网络中,每个节点都需要维护一组等待上传到链上的交易。 这个集合中的交易都是要​​写入区块链的合法交易。 当节点第一次收到这个交易时,它会将它写入这个集合并转发给所有的邻居。

btc-e交易_btc数据结点交易_btc交易一直未确认

如果几乎同时在网络上发布了两笔相互冲突的交易,则每个节点可能会根据其所在位置先接收到不同的交易,那么另一笔交易对于本节点来说是非法的,将不会被收录。

BTC-网络

以左边的集合为例,它首先听到了A->B的事务,写入到自己的事务集合中。 接下来,它收到一个新发布的区块,其中包含交易A->B,说明这个交易已经写入区块链,所以必须从它的交易集中删除。

btc交易一直未确认_btc数据结点交易_btc-e交易

风险状况

如果本节点收到的新释放区块中的交易是自己丢弃的A->C的交易怎么办? 此时集合中的A->B也应该被删除,因为检查可以发现此时集合中的事务A->B是非法事务btc数据结点交易,因为它与事务A->相同C 在新发布的块中发生冲突。

也就是说,取决于是接收到A->B交易的节点先获得记账权,还是接收到A->C交易的节点先获得记账权。

btc数据结点交易_btc-e交易_btc交易一直未确认

最大的努力

比特币网络上发布的一笔交易不一定会被所有节点接收到(有的节点可能不按照比特币协议的要求转发,也可能不合法转发,不合法再转发),不同的节点节点接收交易的顺序也很可能不同(网络传输的延迟可能很大)。 这是去中心化系统要面临的实际问题,只能做到最好。

传播新发布的区块

btc交易一直未确认_btc数据结点交易_btc-e交易

类似于新发布交易的传播方式,但每个节点不仅要检查区块内容是否合法,还要检查该区块是否在最长的合法链上。

块越大,它在网络上传播的速度就越慢。 比特币协议要求区块大小不能超过1M,因为比特币网络的效率比较低,一个1M的区块传播到比特币网络可能需要几十秒。 大多数节点。

分类:

技术要点:

相关文章: