应用程序区块链接口2025年5月5日 | 阅读 4 分钟 引言区块链网络及其应用可以因为称为应用区块链接口 (ABCI) 的协议而进行通信。它充当了区块链与链下服务或系统之间通信的桥梁。下面我们将简要介绍应用区块链接口。 什么是应用区块链接口 (ABCI)ABCI 将需要在多个平台之间复制的应用与共识引擎(区块链)分离开来。为了确保所有代理的内部状态同步,ABCI 提供了应用逻辑和共识引擎之间的透明通信。需要复制的应用可以用任何编程语言编写,并使用多种技术与每个代理的共识引擎进行交互,例如,使用 Unix 的套接字或 TCP。在此实例中,我们使用 ABCI 在服务代理的代理内部复制 FSM 应用的状态。 Tendermint 项目引入了 ABCI 标准。然而,任何兼容 ABCI 的共识引擎都可以与 ABCI 应用一起使用,例如 Fantom。在本节中,我们将把 Tendermint 作为共识引擎进行讨论。 什么是 TendermintTendermint 是一个程序,允许您在多台计算机上安全可靠地复制应用。它保证拜占庭容错 (BFT) 复制,即它可以容忍任何类型的机器故障,包括恶意故障。 Tendermint 的两个主要技术要素是通用应用接口和一个 区块链 共识引擎。
![]() Tendermint 复制应用 上图简化的图表说明了 Tendermint 如何通过使用 ABCI 层将业务逻辑层(应用)与共识和网络层(Tendermint Core)区分开来,来模块化分布式状态机复制系统。 ABCI 协议ABCI 应用和共识节点之间的通信遵循客户端-服务器模型。必须同时考虑应用要执行的交易的主动执行以及共识节点收到的回调。
共识节点的被动回调ABCI 应用和共识节点之间的请求-响应交互之后,会按照 ABCI 协议指定的顺序调用一系列方法。换句话说,将根据它们的不同功能将与共识层事件相关的各种回调发送给应用,分组如下。
此外,每次连接都会调用 Flush 方法,Echo 方法仅用于 调试。 在创世时,共识节点会主动发出某些请求,如 Info 和 InitChain。而不是依赖内存池中保存的大量交易请求。 主动调用区块链ABCI 应用可以使用 Tendermint RPC 协议将交易发送到 Tendermint 区块链。下面列出的 Tendermint RPC 方法是应用发送交易的方式。
请注意,上述方法接受交易作为输入,即一系列字节。由于交易内容包含在 ABCI 应用逻辑中,共识节点不知道交易内容的含义。这是将共识层与应用层极大解耦的主要特点之一。 下图简要总结了 ABCI 协议。 ![]() ABCI 协议消息流概述 结论ABCI 用于发送、接收消息、执行交易,而区块链将负责数据完整性。因此,这将提高性能和效率。 下一个主题区块链面试题 (2025) |
我们请求您订阅我们的新闻通讯以获取最新更新。