基于区块链的网络通信系统、方法、设备及存储介质与流程

文档序号:27036895发布日期:2021-10-24 06:26阅读:112来源:国知局
基于区块链的网络通信系统、方法、设备及存储介质与流程

1.本技术涉及计算机技术领域,具体而言,涉及一种基于区块链的网络通信系统、方法、设备及存储介质。


背景技术:

2.目前,区块链技术在可信存储、物流、食品溯源和供应链金融等领域已成功应用,但是区块链的链式顺序结构,严重限制其交易吞吐量,以至于区块链无法有效承载足够大的用户量与交易规模。
3.在相关技术中,利用区块链的二层网络架构(比如比特币的闪电网络、以太坊的状态通道以及等离子二层网络(plasma))在一定程度上提高区块链的容量,但是二层网络架构存在子链作弊、数据存储消耗大等问题。例如,以太坊的等离子二层网络为例,子链用户需要在主网上部署一个“根智能合约”(root smart contract),同时需要将合约内的所有交易内容均记录一遍,使得数据存储空间消耗增大;当仅在二层网络内交易时,将主网内的通用资产先映射到各个合约内的非同质化通证(non

fungible token,nft)资产,若需要转回主网交易,则需要再将nft转换为通用资产,使得网络交易过程繁琐,非常费时,从而使子链用户能够利用转换时间差进行作弊。


技术实现要素:

4.本技术实施例的目的在于提供一种基于区块链的网络通信系统、方法、设备及存储介质,旨在解决当前区块链的网络通信过程存在子链用户作弊的问题。
5.第一方面,本技术实施例提供了一种基于区块链的网络通信系统,包括客户端、区块链的信使节点和链端节点;
6.客户端,用于向目标信使节点发送合约执行请求,合约执行请求包括智能合约的目标全局变量;
7.信使节点,用于对客户端发送的合约执行请求进行验证,并在合约执行请求验证成功后,将合约执行请求转发至链端节点;
8.链端节点,用于执行信使节点转发的合约执行请求,对智能合约的目标全局变量进行变更操作,得到合约执行结果。
9.在本实施例中,向区块链引入信使节点作为监控全局变量的中继节点,并通过客户端在发起请求时将目标信使节点作为接收对象,由目标信使节点对客户端发起的请求验证成功后,再转发至链端节点,从而由信使节点控制全局变量的访问,从而根本上防止链端用户的作弊行为。
10.在一实施例中,客户端包括:
11.调用模块,用于调用预设的变量映射函数,变量映射函数包含多个全局变量与多个信使节点之间的对应关系;
12.第一确定模块,用于根据变量映射函数,确定全局变量对应的目标信使节点;
13.发送模块,用于将合约执行请求发送至目标信使节点。
14.在本实施例中,通过变量映射函数确定全局变量对应的目标信使节点,从而使客户端能够将合约执行请求发送至目标信使节点,以获得信使节点的授权,进而访问链端节点。
15.在一实施例中,信使节点包括:
16.验证模块,用于对合约执行请求的签名数据进行合法性验证;
17.第二确定模块,用于若签名数据合法,则确定目标全局变量是否与目标信使节点对应;
18.判定模块,用于若目标全局变量与目标信使节点对应,则合约执行请求验证成功。
19.在本实施例中,通过确定签名数据的合法性以及目标全局变量与接收该合约执行请求的目标信使节点的对应关系,从而能够对该合约执行请求进行授权,以使客户端能够通过该合约执行请求访问链端节点。
20.在一实施例中,信使节点还包括:
21.加入模块,用于在合约执行请求验证成功后,将合约执行请求加入到目标信使节点的预设优先队列;
22.第一转发模块,用于将预设优先队列中的合约执行请求依次转发至链端节点。
23.在本实施例中,将合约执行请求加入到预设优先队列,能够防止合约执行请求重复转发或者漏转发,同时保证合约执行请求转发的实时性。
24.在一实施例中,客户端还包括:
25.获取模块,用于获取预设的智能合约;
26.配置模块,用于配置智能合约的处理逻辑中的各个全局变量和局部变量的访问属性;
27.第一部署模块,用于将配置好的智能合约部署到区块链的主网。
28.在本实施例中,通过配置智能合约的处理逻辑,并将智能合约部署到区块链主网,从而是区块链中的链端节点均能够得到智能合约的处理逻辑,并基于该处理逻辑对合约执行请求的全局变量进行处理。
29.在一实施例中,链端节点还包括:
30.第二部署模块,用于将预设的变量映射函数部署到信使合约中,变量映射函数包含多个全局变量与多个信使节点之间的对应关系;
31.映射模块,用于基于信使合约,将全局变量映射到对应的信使节点。
32.在本实施例中,由于全局变量和信使节点都有很多个,所以通过变量映射函数部署到信使合约中,使得客户端需要访问某个目标全局变量时均能够得知从哪个信使节点获得访问授权,进而提高整个系统的处理速度;同时相比于背景技术中子链用户需要在主网上部署一个“根智能合约”(root smart contract),同时需要将合约内的所有交易内容均记录一遍,使得数据存储空间消耗增大,本实施例只需要一个信使合约,几乎不占用数据存储空间,降低存储空间的占用率。
33.在一实施例中,链端节点还包括返回模块,用于将合约执行结果返回至信使节点;
34.信使节点还包括第二转发模块,用于接收链端节点返回的合约执行结果,并将合约执行结果转发至客户端。
35.在本实施例中,通过信使节点原路返回合约执行结果至客户端,保证数据链路的正确性。
36.第二方面,本技术实施例提供了一种基于区块链的网络通信方法,应用于区块链的信使节点,方法包括:
37.监听客户端发送的合约执行请求,并对合约执行请求进行验证;
38.若合约执行请求验证成功,则将合约执行请求转发至区块链的链端节点;
39.接收链端节点根据合约执行请求返回的合约执行结果,并将合约执行结果转发客户端。
40.第三方面,本技术实施例提供了一种计算机设备,包括存储器及处理器,存储器用于存储计算机程序,处理器运行计算机程序以使计算机设备执行上述第二方面的基于区块链的网络通信方法。
41.第四方面,本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序,计算机程序被处理器执行时实现上述第二方面的基于区块链的网络通信方法。
42.需要说明的是,上述第二方面至第四方面的有益效果请参见上述第一方面的相关描述,在此不再赘述。
附图说明
43.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
44.图1为本技术实施例提供的基于区块链的网络通信系统的结构示意图;
45.图2为本技术实施例提供的客户端的结构示意图;
46.图3为本技术实施例提供的信使节点的结构示意图;
47.图4为本技术另一实施例提供的客户端的结构示意图;
48.图5为本技术实施例提供的链端节点的结构示意图;
49.图6为本技术另一实施例提供的基于区块链的网络通信系统的结构示意图;
50.图7为本技术实施例提供的基于区块链的网络通信方法的流程示意图;
51.图8为本技术实施例提供的计算机设备的结构示意图。
具体实施方式
52.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
53.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
54.如相关技术记载,利用区块链的二层网络架构(比如比特币的闪电网络、以太坊的状态通道以及等离子二层网络(plasma))在一定程度上提高区块链的容量,但是二层网络架构存在子链作弊、数据存储消耗大等问题。例如,以太坊的等离子二层网络为例,子链用户需要在主网上部署一个“根智能合约”(root smart contract),同时需要将合约内的所
有交易内容均记录一遍,使得数据存储空间消耗增大;当仅在二层网络内交易时,将主网内的通用资产先映射到各个合约内的非同质化通证(non

fungible token,nft)资产,若需要转回主网交易,则需要再将nft转换为通用资产,使得网络交易过程繁琐,非常费时,从而使子链用户能够利用转换时间差进行作弊。
55.针对上述现有技术中的问题,本技术提供了一种基于区块链的网络通信系统,通过向区块链引入信使节点作为监控全局变量的中继节点,并通过客户端在发起请求时将目标信使节点作为接收对象,由目标信使节点对客户端发起的请求验证成功后,再转发至链端节点,从而由信使节点控制全局变量的访问,从而根本上防止链端用户的作弊行为。
56.参见图1,图1示出了本技术实施例提供的一种基于区块链的网络通信系统的实现结构示意图。如图1所示,网络通信系统包括客户端101、区块链的信使节点102和链端节点103;
57.客户端101,用于向目标信使节点发送合约执行请求,合约执行请求包括智能合约的目标全局变量。
58.在本实施例中,客户端为对区块链读操作或写操作等交互行为以实现网络交易的电子设备,如智能手机和笔记本电脑等。目标信使节点为区块链的多个信使节点中的一个,其能够主动监听和控制全局变量的访问。全局变量为链上的智能合约里可供各个节点访问的状态变量,其与信使节点相对应,也就是说,若要对全局变量进行读写操作,则需要对应的目标信使节点授权。合约执行请求为实现对区块链中的智能合约变量进行读操作或写操作的请求。可选地,在客户端发起合约执行请求时,基于待访问的目标全局变量确定其对应的而目标信使节点,以将合约执行请求发送至目标信使节点进行验证和授权。
59.信使节点102,用于对客户端发送的合约执行请求进行验证,并在合约执行请求验证成功后,将合约执行请求转发至链端节点。
60.在本实施例中,信使节点作为监控全局变量的中继节点,当合约执行请求包含待访问的全局变量时,则需要对合约执行请求的合法性进行验证,保证区块链交易过程的安全性。以及由目标信使节点对客户端发起的请求验证成功后,再转发至链端节点,从而由信使节点控制全局变量的访问,从而根本上防止链端用户的作弊行为。
61.链端节点103,用于执行信使节点转发的合约执行请求,对智能合约的目标全局变量进行变更操作,得到合约执行结果。
62.在本实施例中,链端节点为区块链的数据处理节点,基于预先广播到主网的智能合约中的处理逻辑对目标全局变量进行处理,得到对应的合约执行结果。
63.在一实施例中,在图1实施例的基础上,图2示出了本技术一实施例提供的客户端的结构示意图。如图2所示,客户端101包括:
64.调用模块201,用于调用预设的变量映射函数,变量映射函数包含多个全局变量与多个信使节点之间的对应关系;
65.第一确定模块202,用于根据变量映射函数,确定全局变量对应的目标信使节点;
66.发送模块203,用于将合约执行请求发送至目标信使节点。
67.在本实施例中,变量映射函数为分配全局变量与信使节点之间的映射关系的函数,其可以是随机算法函数。可选地,客户端调用变量映射函数map_variables_to_nodes()计算出合约执行请求应该发往的目标信使节点的公钥,并基于该公钥将合约执行请求
发送至目标信使节点,其中可以基于上述随机算法函数计算出全局变量对应的信使节点,并获取该信使节点的公钥。
68.本实施通过变量映射函数确定全局变量对应的目标信使节点,从而使客户端能够将合约执行请求发送至目标信使节点,以获得信使节点的授权,进而访问链端节点对目标全局变量进行变更操作。
69.在一实施例中,在图1实施例的基础上,图3示出了本技术一实施例提供的信使节点的结构示意图。如图3所示,信使节点102包括:
70.验证模块301,用于对合约执行请求的签名数据进行合法性验证;
71.第二确定模块302,用于若签名数据合法,则确定目标全局变量是否与目标信使节点对应;
72.判定模块303,用于若目标全局变量与目标信使节点对应,则合约执行请求验证成功。
73.在本实施例中,签名数据为客户端的私钥、公钥和签名证书等信息对合约执行请求进行签名加密得到的数据。可选地,通过对合约执行请求进行解析,当签名数据与客户端的私钥、公钥和签名证书一致时,则可以确定该合约执行请求的签名数据合法。进一步地,由于信使节点与全局变量存在对应关系,所以确定目标全局变量与接收该目标全局变量的信使节点是否相对应,以保证合约执行请求能够得到信使节点给予的访问链端节点的权限。
74.在一实施例中,如图3所示,信使节点102还包括:
75.加入模块304,用于在合约执行请求验证成功后,将合约执行请求加入到目标信使节点的预设优先队列;
76.第一转发模块305,用于将预设优先队列中的合约执行请求依次转发至链端节点。
77.在本实施例中,示例性地,所有信使节点均开启一个线程用于不断地监听来自客户端的全局变量“写”请求(即合约执行请求),通过该线程对请求的基本内容(如目标全局变量等请求内容)和签名数据进行校验,若合法,则将元数据(包括合约执行请求、客户端公钥、客户端ip地址端口地址,以及当前需要等待的请求数)加入到预设优先队列,并将信使节点受理该请求的受理回执发给客户端。信使节点开启另一个线程循环读取易俗河优先队列中的“写”请求,并依次将写请求发给链端节点。本实施例将合约执行请求加入到预设优先队列,能够防止合约执行请求重转发或者漏转发,同时保证合约执行请求转发的实时性。
78.在一实施例中,在图1实施例的基础上,图4示出了本技术另一实施例提供的客户点的结构示意图。如图4所示,客户端101还包括:
79.获取模块401,用于获取预设的智能合约;
80.配置模块402,用于配置智能合约的处理逻辑中的各个全局变量和局部变量的访问属性;
81.第一部署模块403,用于将配置好的智能合约部署到区块链的主网。
82.在本实施例中,智能合约为预先编写好的区块链合约,其包含多种状态变量,状态变量分为全局变量和局部变量,局部变量为其所属节点本身控制的变量,全局变量为链上的智能合约里可供各个节点访问的状态变量,任何节点均可访问,也就是说,全局变量的访问需要有先来后到的控制,因此配置智能合约的处理逻辑中各个全局变量和局部变量的访
问属性,访问数据包括客户端可直接访问和客户端不可直接访问。可选地,通过配置智能合约的节点将该智能合约广播到区块链的全网,其中区块封装节点将该智能合约打包到新区块中,并全网广播,从而实现智能合约部署到主网。
83.本实施例通过配置智能合约的处理逻辑,并将智能合约部署到区块链主网,从而是区块链中的链端节点均能够得到智能合约的处理逻辑,并基于该处理逻辑对合约执行请求的全局变量进行处理。
84.在一实施例中,在图1实施例的基础上,图5示出了本技术一实施例提供的链端节点的结构示意图。如图5所示,链端节点103还包括:
85.第二部署模块501,用于将预设的变量映射函数部署到信使合约中,变量映射函数包含多个全局变量与多个信使节点之间的对应关系;
86.映射模块502,用于基于信使合约,将全局变量映射到对应的信使节点。
87.在本实施例中,由于全局变量和信使节点都有很多个,所以通过变量映射函数部署到信使合约中,使得客户端需要访问某个目标全局变量时均能够得知从哪个信使节点获得访问授权,进而提高整个系统的处理速度;同时相比于背景技术中子链用户需要在主网上部署一个“根智能合约”(root smart contract),同时需要将合约内的所有交易内容均记录一遍,使得数据存储空间消耗增大,本实施例只需要一个信使合约,几乎不占用数据存储空间,降低存储空间的占用率。
88.上述信使合约是负责分配全局变量给信使节点的规则合约,区块链的全网只有一个。信使合约内包括上述变量映射函数和各个信使节点的访问地址。可选地,链端节点(通常是管理节点)将变量映射函数封装到新区块中,并全网广播,以完成信使合约的部署。
89.在一实施例中,在图1实施例的基础上,图6示出了本技术另一实施例提供的网络通信系统的结构示意图。如图6所示,链端节点103还包括返回模块601,用于将合约执行结果返回至信使节点;信使节点102还包括第二转发模块602,用于接收链端节点返回的合约执行结果,并将合约执行结果转发至客户端。
90.在本实施例中,当链端节点返回合约执行结果后,其将元数据(如合约执行结果和写请求的哈希)发给客户端。
91.参见图7,图7示出了本技术实施例提供的一种基于区块链的网络通信方法的实现流程图。本技术实施例中下述的基于区块链的网络通信方法可应用于区块链的信使节点,该信使节点可部署在计算机设备上,计算机设备包括但不限于平板电脑、桌上型计算机、超级计算机、物理服务器和云服务器等计算机设备。本技术实施例的基于区块链的网络通信方法,包括步骤s701至s703,详述如下:
92.步骤s701,监听客户端发送的合约执行请求,并对合约执行请求进行验证;
93.步骤s702,若合约执行请求验证成功,则将合约执行请求转发至区块链的链端节点;
94.步骤s703,接收链端节点根据合约执行请求返回的合约执行结果,并将合约执行结果转发客户端。
95.在上述步骤s701至步骤703中,对合约执行请求的签名数据进行合法性验证;若签名数据合法,则确定目标全局变量是否与目标信使节点对应;若目标全局变量与目标信使节点对应,则合约执行请求验证成功。在合约执行请求验证成功后,将合约执行请求加入到
目标信使节点的预设优先队列;将预设优先队列中的合约执行请求依次转发至链端节点。可以理解的是,上述步骤s701至步骤s703的步骤描述可参见图1至图6实施例的相关描述,在此不再赘述。
96.图8为本技术一实施例提供的计算机设备的结构示意图。如图8所示,该实施例的计算机设备8包括:至少一个处理器80(图8中仅示出一个)处理器、存储器81以及存储在所述存储器81中并可在所述至少一个处理器80上运行的计算机程序82,所述处理器80执行所述计算机程序82时实现上述任意方法实施例中的步骤。
97.所述计算机设备8可以是平板电脑、桌上型计算机、超级计算机、物理服务器和云服务器等计算设备。该计算机设备可包括但不仅限于处理器80、存储器81。本领域技术人员可以理解,图8仅仅是计算机设备8的举例,并不构成对计算机设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
98.所称处理器80可以是中央处理单元(central processing unit,cpu),该处理器80还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
99.所述存储器81在一些实施例中可以是所述计算机设备8的内部存储单元,例如计算机设备8的硬盘或内存。所述存储器81在另一些实施例中也可以是所述计算机设备8的外部存储设备,例如所述计算机设备8上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器81还可以既包括所述计算机设备8的内部存储单元也包括外部存储设备。所述存储器81用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
100.另外,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述任意方法实施例中的步骤。
101.本技术实施例提供了一种计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现可实现上述各个方法实施例中的步骤。
102.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每
个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
103.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
104.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
105.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
106.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
107.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1