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