*以下接口均使用Java语言描述
为特定类型的区块链开发的插件中需要 IBBCService。 一个 IBBCService 实例对应一个特定的区块链网络。 IBBCService 处理与相应区块链网络的所有通信请求
void startup(AbstractBBCContext context);
void shutdown();
AbstractBBCContext getContext();
中继可以通过 IAntChainBridgeDataWriter 将AntChainBridge数据写入区块链。
AntChainBridge数据是AntChainBridge系统在跨链过程中产生的数据。 例如,中继器将跨链消息从发送方链中继到接收方链,消息是一种AntChainBridge数据。 大多数情况下,IAntChainBridgeDataWriter 实例通过区块链 SDK 发送交易来发送 AntChainBridge数据。
AM合约是通信协议栈的最底层合约,负责提供消息的可验证能力,如果存在PTC合约,AM合约会使用PTC合约验证消息证明,但是在本次开源版本中,我们将去掉这部分接口逻辑。
void setupAuthMessageContract();
SDP合约是在协议栈中,是AM合约的上层协议。SDP合约调用AM合约的接口以发送消息,并且实现接口从AM合约接收消息,再传递到上层应用合约。
void setupSDPMessageContract();
针对跨链可认证消息的功能接口。
这里实现和AuthMessage合约的交互能力,主要是配置上层协议合约地址、合法中继地址以及向区块链提交跨链消息。
void setProtocol(String protocolAddress, String protocolType);
CrossChainMessageReceipt relayAuthMessage(byte[] rawMessage);
消息推送合约(SDP)的管理接口。
void setAmContract(String contractAddress);
void setLocalDomain(String domain)
我们可以通过 IAntChainBridgeDataReader 从区块链读取 AntChainBridge数据。
boolean isCrossChainMessageConfirmed(CrossChainMessageReceipt receipt);
在本次开源版本中,主要是AuthMessage合约通过某些手段写在账本中的数据,其中包含了要发出的跨链AuthMessage。
List<CrossChainMessage> readCrossChainMessagesByHeight(long height);
用于读取消息推送合约的接口。
SDP消息合约提供有序消息和无序消息,有序消息的顺序由【发送域名、发送合约、接收域名、接收合约】四者唯一确定,消息的序列号从零依次递增。
long querySDPMessageSeq(String senderDomain, String fromAddress, String receiverDomain, String toAddress);