[发明专利]一种区块链智能合约消息发布订阅方法有效

专利信息
申请号: 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。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202011063262.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top