System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书实施例属于区块链,尤其涉及一种区块链事件的订阅方法及装置。
技术介绍
1、区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
2、区块内的交易(transactions)在执行时可能产生事件(event),这些事件会被记录在区块中。在区块链的服务化场景下,区块链节点可以由多个服务共同构成,其中成块服务可以将所述事件提供给其他服务使用。
3、在相关技术中,成块服务在生成区块时会在区块头中置入一个布隆过滤器(bloomfilter),以由其他服务利用该过滤器查询区块中是否包含某些类型的事件。如任一其他服务可以从成块服务处拉取某一区块的区块头,再向该区块头中的布隆过滤器输入某一事件类型以检查该区块中是否包含该类型的事件,若布隆过滤器的输出结果为真则继续拉取区块体,并解析该区块以进一步详细检查是否包含上述类型的事件;若输出结果为假则跳过该区块继续拉取下一区块的区块头并判断。
4、可见在相关技术中,在布隆过滤器的输出结果为真时需要拉取完整的区块体。一方面,由于区块体的数据量较大,因此拉取区块体的过程资源开销较大。另一方面,即便输出结果为真,拉取的区块体内也并不一定存在符合要求的事件,即可能出现输出结果为真但从区块体中并未解析到符合要求的事件的情况;另外,解析过程需要遍历区块体中的各个事件,且在解析到符合要求的部分事件后,其他
技术实现思路
1、本专利技术的目的在于提供一种区块链事件的订阅方法及装置。
2、根据本说明书一个或多个实施例的第一方面,提出了一种区块链事件的订阅方法,应用于区块链系统中的区块链节点,所述区块链节点包括第一服务组件、第二服务组件和订阅服务组件,所述方法包括:
3、第二服务组件向所述订阅服务组件发起包含订阅规则的事件订阅请求,以将所述订阅规则注册至所述订阅服务组件;
4、第一服务组件从目标区块包含的事件中确定匹配于订阅规则的当前目标事件,并将所述当前目标事件发布至所述订阅服务组件;
5、所述订阅服务组件向第二服务组件发送所述当前目标事件。
6、根据本说明书一个或多个实施例的第二方面,提出了一种区块链事件的订阅装置,应用于区块链系统中的区块链节点,所述区块链节点包括第一服务组件、第二服务组件和订阅服务组件,所述装置包括:
7、规则注册组件,用于使第二服务组件向所述订阅服务组件发起包含订阅规则的事件订阅请求,以将所述订阅规则注册至所述订阅服务组件;
8、事件发布组件,用于使第一服务组件从目标区块包含的事件中确定匹配于订阅规则的当前目标事件,并将所述当前目标事件发布至所述订阅服务组件;
9、事件发送组件,用于使所述订阅服务组件向第二服务组件发送所述当前目标事件。
10、根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
11、处理器;用于存储处理器可执行指令的存储器;
12、其中,所述处理器通过运行所述可执行指令以实现如第一方面中任一项所述的方法。
13、根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面中任一项所述方法的步骤。
14、根据本说明书一个或多个实施例的第五方面,提出了一种计算机程序产品,包括计算机程序和/或指令,所述计算机程序和/或指令被处理器执行时实现如第一方面中任一项所述方法的步骤。
15、由前述实施例可见,本方案在区块链网络的服务化场景下引入订阅机制,使得区块链节点包括第一服务组件、第二服务组件和订阅服务组件,对于订阅服务组件而言,第一服务组件可视为事件的生产者、第二服务组件可视为事件的消费者。具体由第二服务组件在订阅服务组件处注册订阅规则以订阅符合该规则的事件,在第一服务组件将符合订阅规则的目标事件发布至订阅服务组件后,由订阅服务组件向(订阅所述目标事件的)第二服务组件发送所述目标事件,以实现第二服务组件对该事件的订阅。
16、可以理解的是,作为目标事件的生产者,第一服务组件无需在区块头中置入布隆过滤器,便于生成更简洁、数据量更小的区块头。针对已注册的订阅规则,由第一服务组件自行识别匹配于该规则的目标事件并将其发布至订阅服务组件,并由后者向第二服务组件发送该事件,使得作为目标事件的消费者的第二服务组件既无需拉取区块头进行判断,也无需拉取完整的区块体进行解析,而是在注册完成后直接接收所需的目标事件,显著降低了第二服务组件的资源开销,有助于避免内存和计算资源的浪费,有效提升了第二服务组件获取事件的整体效率。
本文档来自技高网...【技术保护点】
1.一种区块链事件的订阅方法,应用于区块链系统中的区块链节点,所述区块链节点包括第一服务组件、第二服务组件和订阅服务组件,所述方法包括:
2.根据权利要求1所述的方法,
3.根据权利要求2所述的方法,还包括:
4.根据权利要求3所述的方法,
5.根据权利要求3所述的方法,还包括:
6.根据权利要求1所述的方法,第二服务组件维护有所述订阅规则对应的消费方最大高度变量,第二服务组件在当前时刻之前最后一次接收到的匹配于所述订阅规则的前序目标事件属于高度为所述消费方最大高度变量的当前值的区块;
7.根据权利要求1所述的方法,还包括:
8.根据权利要求1所述的方法,第一服务组件获取所述订阅规则,包括:
9.根据权利要求8所述的方法,第一服务组件获取所述目标区块,包括:
10.根据权利要求1所述的方法,所述订阅规则包括满足预设的正则表达式的多个子规则,所述第一服务组件从目标区块包含的事件中确定匹配于订阅规则的当前目标事件,包括:
11.根据权利要求1所述的方法,所述订阅规则
12.一种区块链事件的订阅装置,应用于区块链系统中的区块链节点,所述区块链节点包括第一服务组件、第二服务组件和订阅服务组件,所述装置包括:
13.一种电子设备,包括:
14.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-11中任一项所述方法的步骤。
15.一种计算机程序产品,包括计算机程序和/或指令,所述计算机程序和/或指令被处理器执行时实现如权利要求1-11中任一项所述方法的步骤。
...【技术特征摘要】
1.一种区块链事件的订阅方法,应用于区块链系统中的区块链节点,所述区块链节点包括第一服务组件、第二服务组件和订阅服务组件,所述方法包括:
2.根据权利要求1所述的方法,
3.根据权利要求2所述的方法,还包括:
4.根据权利要求3所述的方法,
5.根据权利要求3所述的方法,还包括:
6.根据权利要求1所述的方法,第二服务组件维护有所述订阅规则对应的消费方最大高度变量,第二服务组件在当前时刻之前最后一次接收到的匹配于所述订阅规则的前序目标事件属于高度为所述消费方最大高度变量的当前值的区块;
7.根据权利要求1所述的方法,还包括:
8.根据权利要求1所述的方法,第一服务组件获取所述订阅规则,包括:
9.根据权利要求8所述的方法,第一服务组件获取所述目标区块,包括:
...【专利技术属性】
技术研发人员:朱煜松,
申请(专利权)人:蚂蚁区块链科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。