[发明专利]一种区块链智能合约消息发布订阅方法有效
申请号: | 202011063262.4 | 申请日: | 2020-09-30 |
公开(公告)号: | CN112214802B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 夏琦 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F21/64 | 分类号: | G06F21/64;G06F9/455 |
代理公司: | 电子科技大学专利中心 51203 | 代理人: | 周刘英 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 区块 智能 合约 消息 发布 订阅 方法 | ||
1.一种区块链智能合约消息发布订阅方法,其特征在于,该方法在JVM虚拟机环境下执行,合约文件以JAR文件形式部署在以JAVA为开发语言的区块链平台上,且智能合约以接口的形式被程序调用;该方法在JVM虚拟机环境下的执行主要包括以下步骤:
S1)合约创建
S11)在该智能合约消息发布订阅方法中,有一类智能合约会发送带有特定主题的信息到其它智能合约,称此类合约为合约A;另一类智能合约通过设定订阅主题来接收推送消息,称之为合约B,合约A、B分别作为该方法的推送方和订阅方;
S12)智能合约S用来维护一张映射表,该表记录了合约B以及合约B中订阅的相关主题;
S13)任何一个合约B可以订阅多个主题的信息;
S2)消息推送
S21)作为推送方的合约A在执行过程中,遇到有主题字段的上下文时,会触发消息推送事件,并对智能合约S发起调用;
S22)智能合约S根据所维护的映射表,检查是否有订阅该主题的合约B;
S23)若检索到符合条件的合约B,则合约S通过调用合约B中的方法,将合约A发来的对应主题的信息推送到合约B;否则,合约S对合约A的调用不做处理;
S3)主题策略
参与订阅方案的智能合约S需要共同维护一张主题表,用来记录该订阅方案中的可被订阅的主题,合约A仅对表中的主题触发消息推送事件,同时合约B订阅的主题必须存在于该主题表中;
其中,所述步骤S2)具体包括:
1)合约A在执行过程中,如果遇到带有主题字段的上下文,会自动触发emit函数,该函数主要功能是将上下文以(“topic”,“message”)键值对的形式发送到合约S;
2)合约S收到(“topic”,“message”)键值对,会调用本地的check方法,该方法用来检查收到的topic是否储存在本地的映射表中,若存在则返回true,否则返回false;
3)当check函数返回true值,则合约S需要调用订阅该主题的合约B中的handle方法,将从合约A收到的message信息通过handle方法发送给合约B,至此合约B接收到订阅主题的相关推送信息;
4)在该订阅方案中,对合约A、合约B以及智能合约S中函数的调用都将以数据的形式记录到区块链,且不可篡改。
2.根据权利要求1所述的区块链智能合约消息发布订阅方法,其特征在于,所述步骤S1)中所述合约A是储存在区块链上的智能合约,由任何节点创建,该合约实例具有确定的地址以及相应的变量、方法,合约A是执行任意流程的智能合约。
3.根据权利要求2所述的区块链智能合约消息发布订阅方法,其特征在于,所述步骤S1)中所述合约B由消息的订阅方创建,且在加入订阅方案时需要指定订阅主题,并根据该主题接收订阅消息。
4.根据权利要求3所述的区块链智能合约消息发布订阅方法,其特征在于,所述步骤S1)中所述智能合约S在该方法中的合约A与合约B确定时由代码创建生成,智能合约S的实质是维护一张订阅方与订阅主题的映射表,用来接收合约A发送的消息,并匹配主题转发给合约B。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011063262.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:自适应频偏跟踪装置以及接收机
- 下一篇:一种奥沙利铂的纯化方法