链上信使协议AMOP(Advanced Messages Onchain Protocol)系统旨在为联盟链提供一个安全高效的消息信道,联盟链中的各个机构,只要部署了区块链节点,无论是共识节点还是观察节点,均可使用AMOP进行通讯,AMOP有如下优势:
AMOP功能使用请参照Java SDK AMOP.

以银行典型IDC架构为例,各区域概述:
AMOP的消息收发基于话题(Topic)订阅机制,订阅者首先订阅一个话题,发送者往该话题发送消息,订阅者即可收到。
发送方式和内容
总共支持两种传播方式:
单播:仅随机发送给一个指定话题的订阅者。
多播:发送给所有指定话题的订阅者。
发送内容:
在普通的配置下,任何一个订阅了某topic的接收者都能接受到发送者推送的消息。但在某些场景下,发送者只希望特定的接收者能接收到消息,不希望无关的接收者能任意的监听此topic。在此场景下,需要使用私有话题功能。
私有话题:对于特定的话题,发送者配置好期望的接受者的公钥,仅该公钥所对应的订阅者才能接收该私有话题的消息。
私有话题功能是自FISCO BCOS 2.1.0 之后新增的。使用过程如下:
1:接收者使用生成公私钥脚本生成公私钥文件,私钥保留,公钥给生产者。
2:参考配置案例将配置文件配好。启动接收端和发送端进行收发消息。
重要
注意:AMOP私有话题目前只支持非国密算法,因此生成在生成公私钥文件时,注意使用非国密工具生成。
私有话题的认证流程
假定链外系统1是话题消息发送者(消息发送端),链外系统2是话题订阅者(消息接收端)。私有话题的认证流程如下:

1:链外系统2连接Node2,宣称订阅T1,Node2将T1加入到话题列表,并将seq加1。同时每5秒同步seq到其他节点。
2:Node1收到seq之后,对比本地seq和同步过来的seq,发现不一致,则从Node2获取最新的话题列表,并将话题列表更新到p2p的话题列表,对于还没认证的私有话题,状态置为待认证。Node1遍历列表。针对每一个待认证的私有话题,进行如下操作:
3:如果认证成功,链外系统的一条消息到达Node1之后,Node1会将这条消息转发给Node2,Node2会将消息推送给链外系统2。
发送方式和内容
同样的私有话题支持单播和多播,发送文本和文件。