我们先从一个问题开始:什么是异步系统,什么是异步代码?异步意味着不是同时发生的,或者不是在同一时间或速度发生。在计算机科学中,异步是指独立于主程序的事件的发生。在异步系统中,操作不是由全局时钟信号协调,而是由事件(系统中的变化)协调。异步系统的可靠运行不依赖于外部信号或消息。
异步系统通常采用模块化框架设计。在这样的系统中,每个模块都可以独立运行,并具有与其他模块通信的能力。异步通信是指数据可以不规则地传输,而不是稳定地传输。常见的例子包括电子邮件或在线论坛,参与者在不同的时间发送消息。
异步网络不向节点提供有关正在发送的信息状态的任何反馈,这可能导致节点具有不同的视图关于网络的整体状态。本质上,节点不必等待其他节点接收它们的消息,这可以提高事务吞吐量。
半同步网络旨在确保网络的全局状态永远不会分裂。如果网络被分区,节点之间的共识会减慢,直到再次恢复。无论是优先考虑一致性还是可用性,都可以设计异步或半同步区块链网络。如果网络想要优先考虑可用性,则添加所有事务而无需任何停机时间。如果网络想要优先考虑一致性,则在确认所有先前的交易之前,某些交易可能不会被处理或暂停。
一些区块链设计使用拜占庭容错(BFT)的实现,称为异步拜占庭容错( aBFT)。即使攻击者控制了近三分之一的网络,它在数学上也能保证最终达成共识。这里所说的异步是指不对时序做任何假设。
希望您在阅读完这篇文章后能够进一步了解什么是异步系统,什么是异步代码。


















