一种基于以太坊与智能合约的数据存储系统、方法和装置与流程

文档序号:30584160发布日期:2022-06-29 15:27阅读:288来源:国知局
一种基于以太坊与智能合约的数据存储系统、方法和装置与流程

1.本发明涉及区块链技术领域,更具体地说,它涉及一种基于以太坊与智能合约的数据存储系统、方法和装置。


背景技术:

2.从计算机软件技术的角度来看,区块链是一种由众多节点参与的分布式数据库系统。区块链是去中心化的,所有加入到同一区块链网络的节点都会参与到系统的数据存储当中,而且节点彼此之间的数据将会是同步的。区块链内存储的信息是不可被篡改的,一旦数据写入区块链内,将不可被某一个节点擅自修改或者删除。区块链采用这样一种技术方案,以去中心化的方式由节点集体来维护一个可信任的数据库,对于其中的记录是否为真会由系统所有参与节点来共同认定。
3.区块链2.0基于原有的数字货币特点,在其之上加入可编程的智能合约,使得区块链技术可以运用到更为广泛的业务领域。以太坊是区块链2.0的代表,其目的并不是要创造某一具体的虚拟货币,而是致力于作为一种底层协议,在其之上提供图灵完备语言作为脚本执行。基于这一特点,用户可以在以太坊上创建货币以及包含高级智能合约的去中心化应用。智能合约就是由开发者所编写的一系列在以太坊虚拟机上面运行的代码,一旦被部署到区块上,合约将生效,会根据程序代码自动执行相应的规则逻辑。得益于智能合约,以太坊可以完成很多高级复杂的程序功能。
4.在当前主流的中心化数据存储系统,数据都存储在某些台特定的服务器中,此时如何保证服务器不被入侵,如何保证存储其中的数据不被篡改等问题不可避免地困扰着人们。并且假如服务器被入侵,数据被篡改,用户也难以发现自己的数据遭到了篡改,对于数据篡改的追踪溯源也更是困难。如果数据的安全性得不到保障,用户对所使用系统的信任感也会随之下降。


技术实现要素:

5.本发明的目的是提供一种基于以太坊与智能合约的数据存储系统、方法和装置,使用智能合约与以太坊交易两层不可篡改的保护机制,充分的保障数据的安全性。
6.本发明的上述技术目的是通过以下技术方案得以实现的:一种基于以太坊与智能合约的数据存储系统,包括:
7.私有链,由以太坊节点搭建形成私有链,所述私有链对应的以太坊源码被设置修改,取消非货币交易性业务的交易成本;
8.交互应用,用于连接私有链,以需要存储的数据发起交易并获取交易哈希值;
9.智能合约,部署于所述私有链的可信任节点,用于存储交易哈希值。
10.作为本发明系统的一种优选技术方案,所述智能合约部署在所述私有链的初始节点。
11.作为本发明系统的一种优选技术方案,所述智能合约包括映射类型变量、地址类
型状态变量、构造函数、函数修饰符、修改映射类型变量函数、获取映射类型变量所存数据函数;
12.所述映射类型变量包括键值对类型成员变量,键值对类型成员变量的键为存储数据的序号,键值对类型成员变量的值为交易哈希值;
13.所述地址类型状态变量,用于保存合约创建者的地址;
14.所述构造函数,用于支持合约创建者创建所述智能合约,并上传合约创建者地址;
15.所述函数修饰符,作用于操作键值对成员变量的函数,使其仅可被合约创建者调用;
16.所述获取映射类型变量所存数据函数用于根据键获取对应键值对的值;
17.所述修改映射类型变量函数用于存储新的键值对、判断函数调用者的地址是否与合约创建者地址相同、用于修改映射类型变量所存数据。
18.作为本发明系统的一种优选技术方案,交互应用和私有链的连接方式为远程调用,采用web3j框架在java平台开发以太坊调用程序,交互应用通过开发得到的以太坊程序对私有链进行远程调用。
19.作为本发明系统的一种优选技术方案,交互应用对接有若干上层应用,所述交互应用用于响应所述上层应用的数据存储命令,从上层应用采集需要存储的数据并进行预处理,将预处理后的数据以交易的方式存储到私有链中;所述交互应用用于响应所述上层应用的数据读取命令,从私有链读取得到数据并进行反向处理,将反向处理的数据发送给所述上层应用。
20.作为本发明系统的一种优选技术方案,所述预处理为将初始格式的数据转化为字符串形式,所述反向处理为将字符串形式的数据转化为初始格式。
21.一种基于以太坊与智能合约的数据存储方法,包括如下步骤:
22.由以太坊节点搭建形成私有链;
23.在私有链的可信任节点部署智能合约,对私有链对应的以太坊源码进行修改,取消非货币交易性业务的交易成本;
24.利用交互应用连接私有链,以需要存储的数据发起交易并获取交易哈希值;
25.获取到交易哈希值后,通过智能合约保存交易哈希值。
26.作为本发明方法的一种优选技术方案,所述利用交互应用连接私有链,以需要存储的数据发起交易并获取交易哈希值的过程为:利用交互应用将需要存储的数据封装到一个交易当中,并选取两个可以信任的私有链节点,分别作为交易的发送方和接收方,构造形成一个交易,以远程调用的方式和私有链进行交互,将交易写入区块,获得交易产生的交易哈希值。
27.作为本发明方法的一种优选技术方案,在智能合约部署完成后,保存智能合约地址。
28.一种基于以太坊与智能合约的数据存储装置,包括:处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
29.综上所述,本发明具有以下有益效果:(1)本发明的系统、方法和装置,基于区块链不可篡改、去中心化、公开透明、分布式存储的特点,将数据存储在区块链上。相比于中心化
数据存储系统,在防止数据遭到篡改方面有了显著的功能提升。
30.(2)本发明的系统、方法和装置,首先由交互应用发起以太坊交易,把需要存储的数据存放在交易当中,并获取交易哈希值。然后以存储数据的序号为键,数据存储上链后生成的交易哈希值为值,通过合约部署节点把该键值对添加到智能合约中,达到保存交易哈希值的目的。修改映射类型变量函数设置为仅合约创建者可调用,可保证交易哈希值不被篡改。且根据区块链的特性,根据交易哈希值查询到交易中安全存储的数据,是不可被篡改的,则形成了包括智能合约与以太坊交易两层不可篡改的保护机制,充分的保障了数据的安全性。
31.(3)本发明的系统、方法和装置,采用以太坊作为区块链的节点客户端,连接多个节点组成私有链,并修改其源码使得在私有链上部署合约、调用合约、发送交易等节点行为都无需支付交易手续费,使其更加适合在非交易性的业务场景使用。
附图说明
32.图1是本发明系统、方法的各个模块之间的交互关系示意图;
33.图2是本发明的方法流程图;
34.图3是本发明系统、方法的存储数据过程的时序图;
35.图4是本发明系统、方法的查询数据过程的时序图;
36.图5是本发明方法中的修改以太坊源码取消交易手续费的流程图。
具体实施方式
37.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
38.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
39.本发明提供一种基于以太坊与智能合约的数据存储系统,包括:
40.私有链,由以太坊节点搭建形成私有链,基于区块链的不可篡改、去中心化、公开透明等特点,对存入其中的数据提供具有安全性的保护。
41.私有链对应的以太坊源码被设置修改,取消了非货币交易性业务的交易成本,使得在私有链上部署合约、调用合约、发送交易等节点行为都无需支付gas成本;使其更加适合在非交易性的业务场景使用;gas是用于测量在以太坊区块链上执行特定操作所需的计算工作量的单位,gas成本机制的存在使得在非货币交易型业务系统中需要持续关注非关键性的账户余额,限制了以太坊在非货币交易型业务中的应用,取消这一机制可以让用户可专注于业务,而不必担心交易成本。
42.修改以太坊源码需要达成两个目的:一、不能对交易发起方节点收取gas费用;二、交易发起方账户余额为0时,仍能顺利发起交易。通过保证这两点,实现交易发起方在非货
币交易导向的业务场景中,对货币的概念无感知。从而让用户更加专注于业务本身。
43.交互应用,用于连接私有链,采集来自上层业务应用需要存储的数据,发起以太坊交易,将需要存储的数据存放到交易当中,并获取交易哈希值;
44.具体的,交互应用与以太坊节点连接,以远程调用的方式和以太坊私有链进行交互,同时对接上层应用,根据其业务逻辑,提供相应的功能和方法。
45.智能合约,部署于私有链的可信任节点,一般情况是部署在私有链的初始节点,在智能合约部署完成后,保存智能合约地址,供交互应用以远程调用的方式与其交互。智能合约用于在交互应用得到交易哈希值之后将其存储,智能合约包括映射类型变量,进一步包括具有键值对类型成员变量,键值对类型成员变量的键为存储数据的序号,键值对类型成员变量的值为交易哈希值。
46.具体保存时,将交易哈希值和存储数据的序号对应存放在智能合约具有键值对类型成员变量中,达到保存交易哈希值的目的。
47.智能合约还设置有函数修饰符,函数修饰符作用于操作键值对成员变量,使其仅可被合约创建者调用,可保证交易哈希值不被篡改。且由区块链的特性,根据交易哈希值查询到交易中安全存储的数据,是不可被篡改的,充分保障数据的安全。
48.对应于上述的系统,本发明还提供一种基于以太坊与智能合约的数据存储方法,包括如下步骤:
49.s1、由以太坊节点搭建形成私有链;
50.s2、在私有链的可信任节点部署智能合约,在智能合约部署完成后,保存智能合约地址,对私有链对应的以太坊源码进行修改,取消非货币交易性业务的交易成本;
51.s3、利用交互应用以远程调用和交互的方式连接私有链,利用交互应用发起以太坊交易,将需要存储的数据存放到交易中,并获取交易哈希值;
52.s4、将交易哈希值存放在智能合约具有键值对类型成员变量中,键值对类型成员变量的键为存储数据的序号,值为交易哈希值。
53.对应的,本发明还提供一种基于以太坊与智能合约的数据存储装置,包括:处理器和存储器,存储器存储有处理器可执行的计算机程序,处理器执行计算机程序时实现上述的基于以太坊与智能合约的数据存储方法。
54.实施例一
55.图1为系统中各个模块之间的交互关系示意图,包括私有链、交互应用、智能合约:
56.私有链,由以太坊节点搭建组成,并在修改了以太坊源码,使得在私有链上部署合约、调用合约、发送交易等节点行为都无需支付交易手续费。
57.交互应用,连接私有链上的以太坊节点,以远程调用的方式与其交互,把需要存储的数据存放到以太坊私有链,交互应用发起以太坊交易,把需要存储的数据存放在交易当中,并获取交易哈希值,然后把交易哈希值存储在智能合约当中。
58.交互应用与私有链之间采取远程调用的方式进行交互。以太坊本身官方提供了一系列的json-rpc接口,通过这些接口,应用程序可以通过json的方式远程与以太坊进行交互,执行查询信息、交易、生成区块、部署合约等等操作。json-rpc就是以json为形式的远程调用服务,无状态且轻量级,不依赖于具体的某种编程语言和上下文环境。另外,在json-rpc调用的基础上,有许多封装好的框架,让用户可以直接以程序api的方式进行远程调用,
如此更加方便了应用程序的开发。web3j就是java平台下的一个以太坊远程调用开发框架,其基于java语言,提供了许多功能丰富、调用灵活的api,通过它们的调用就可以与以太坊进行远程交互,执行查询信息、交易、生成区块、部署合约等等操作。通过web3j框架,在java平台开发以太坊调用程序时,相比于基本的json-rpc方式,无需构造http请求、封装json的字符串格式,也无需解析http返回时响应的复杂信息,大大简化了程序复杂度,提高了开发效率。
59.智能合约,在以太坊私有链当中可信任节点上部署,用来存储交易哈希值,创建智能合约,将其部署在可信任的以太坊节点上,一般为私有链的初始节点。部署完成后保存合约地址,供交互应用以远程调用的方式与其交互。智能合约的主要功能为存储交易哈希值。其具有存储键值对的成员变量,键为存储数据的序号,值为数据存储上链后生成的交易哈希值。具有两个合约函数,功能分别为:存储新的键值对;根据键获取某键值对的值。设置函数修饰符,作用于存储新键值对的函数,使其仅可被合约创建者节点调用。
60.图2为本发明实施例一的方法流程图,该方法使用智能合约与以太坊交易两层不可篡改的保护机制,来保障数据的安全性。具体包括如下步骤:
61.步骤1、交互应用采集来自上层业务应用需要存储的数据。上层应用即一般的软件服务系统,类型不受限制,接受业务各种各样。换句话来说,本系统交互应用提供的是一种数据存储服务,可与其他业务系统相结合,并在其中担任数据存储层的角色。
62.当上层业务有数据传输过来后,本系统的交互应用会对数据进行预处理。因为最终存储进私有链的数据为字符串的形式,所以面对接收的复杂类型数据,需要先做数据处理以及格式转换,例如把复杂数据类型转换成json字符串的形式,存储到私有链当中。当上层业务系统需要取数据时,交互应用将从私有链取出json字符串后再将其转换成相应的复杂类型数据格式。
63.步骤2、交互应用发起以太坊交易,把需要存储的数据存放在交易当中,并获取交易哈希值。由区块链的特性,根据交易哈希值查询到交易中安全存储的数据,是不可被篡改的。
64.交易,是指在以太坊中由一个账户向另一个账户发送的消息数据。消息数据可以携带有以太币,也可以没有。在发送交易时,用户需要缴纳一定的交易手续费(gas),通过以太币方式进行支付和消耗。在私有链上,特别是一些与金钱交易无关的系统中,例如本方法以存储数据为目的,交易手续费(gas)作为控制某次交易执行指令的数量上限从而限制计算资源的消耗量的初衷,并没有明显的益处。但却会使用户需要持续关注私有链账户内以太币的剩余情况,甚至如果没有足够的以太币来支付交易手续费,系统内的功能将无法被正常调用。因此在本方法中,修改以太坊的源码,使得在各种交易过程,都无需支付交易手续费。解决了需要持续关注在私有链上无关紧要的以太币剩余数量这一问题。
65.步骤3、交互应用以存储数据的序号为键,数据存储到私有链后生成的交易哈希值为值,通过智能合约部署节点把该键值对添加到智能合约中,达到保存交易哈希值的目的。修改映射类型变量函数设置为仅合约部署节点可修改,只有在合约部署节点才能调用修改映射类型变量函数,则可保证交易哈希值不被篡改。
66.承接上述步骤2,把需要存储的数据放在交易中,发送交易会生成一个交易哈希值,以后再根据这个交易哈希值就能从私有链找到该交易的全部详细信息,同时也包括其
中存储的数据。这一步需要把生成交易哈希值存储到智能合约当中,以后需要用到时同样到智能合约里面去查找。
67.以太坊的智能合约与前文所述交易记录同样,一旦写入到区块链中,将不可被改变。智能合约就是由开发者所编写的一系列在以太坊虚拟机上面运行的代码,一旦被部署到区块上,合约将生效,会根据程序代码自动执行相应的规则逻辑。得益于智能合约,以太坊可以完成很多高级复杂的程序功能。与交易记录同样,智能合约一旦写入上链,将不可被篡改或删除。
68.本发明的智能合约由solidity编程语言编写,包括六个部分:映射类型变量、地址类型状态变量、构造函数、函数修饰符、修改映射类型变量函数、获取映射类型变量所存数据函数。交易哈希值在智能合约中的存储,是存放在一个映射类型的状态变量当中。映射类型变量包含一系列的键值对,其中每对键值对就对应了一个交易哈希值的存储。在某个存储的键值对里,键代表所要存储数据的序号,作为数据的索引号;值代表的就是交易的哈希值。如此一来,就可以形成根据数据的序号与存储数据的交易哈希值一一对应的关系。对于交易哈希值的存储或者查询,都是针对这个映射类型变量进行的。具体是通过合约里的函数,即修改映射类型变量函数、获取映射类型变量所存数据函数:以达成在映射变量里存储新的键值对;根据键获取映射变量里某键值对的值。
69.智能合约本身是不可篡改的,但同样要保证映射变量里键值对数据不可被篡改。因此在合约编写时,做了两步保护,来限定只有合约创建者在合约创建节点可以修改映射类型变量的数据。第一步,设定一个地址类型的状态变量,在构造函数工作时把合约创建者地址保存到这个地质类型状态变量当中,如此在创建者进行合约部署时,构造函数被调用,合约创建者的地址将被永久记录在智能合约当中;第二步,设定了一个函数修饰符,作用为在修改映射类型变量函数调用前,先检查函数调用者的地址是否与第一步设定的地址状态变量相同,以此来判断函数调用者是否为合约创建者,如果是,修改映射类型变量函数进入执行,如果不是,修改映射类型变量函数退出不可执行,将这样一个函数修饰符修饰于在映射变量里存储新键值对的函数,即可保证仅有合约创建者可以改变映射变量里存储的数据。即可保证存储在智能合约内的交易哈希值不可被其他人篡改。
70.本发明实施例的技术方案,基于区块链不可篡改、去中心化、公开透明、分布式存储的特点,将数据存储在区块链上,使用智能合约与以太坊交易两层不可篡改的保护机制,来保障数据的安全性。首先由交互应用发起以太坊交易,把需要存储的数据存放在交易当中,并获取交易哈希值。然后以存储数据的序号为键,数据存储上链后生成的交易哈希值为值,通过合约部署节点把该键值对添加到智能合约中,达到保存交易哈希值的目的。智能合约设置为仅合约部署节点可调用修改函数,可保证交易哈希值不被篡改。且由区块链的特性,根据交易哈希值查询到交易中安全存储的数据,是不可被篡改的。使用智能合约与以太坊交易两层不可篡改的保护机制,充分地保障了数据的安全性。
71.实施例二
72.图3为本发明存储数据过程的时序图。通过该时序图可以得知本方法存储数据时的具体流程。
73.步骤1、交互应用采集来自上层业务应用需要存储的数据。上层应用即一般的软件服务系统,类型不受限制,接受业务各种各样。换句话来说,本系统交互应用提供的是一种
数据存储服务,可与其他业务系统相结合,并在其中担任数据存储层的角色。当上层业务有数据传输过来后,本系统的交互应用会对数据进行预处理。因为最终存储进私有链的数据为字符串的形式,所以面对接收的复杂类型数据,需要先做数据处理以及格式转换,例如把复杂数据类型转换成json字符串的形式。紧接着,交互应用根据上层业务应用的需要,把其传输来的数据封装到一个交易当中,然后选取两个可以信任的节点,分别作为交易的发送方和接收方,构造出一个交易。并以远程调用的方式,与以太坊进行交互,把这个交易实际传输到以太坊。当这个交易被以太坊节点写入区块后,交易将永久生效且不可被篡改,同样包括交易里携带的数据。
74.步骤2、交易被写入区块后,会产生一个交易哈希值。以后通过交易哈希值才可找到对应交易的具体详细信息。交互应用需要在交易哈希值产生后获取到,然后进行下一步的存储操作。
75.步骤3、交互应用得到交易哈希值后,把这个哈希值存储到智能合约当中。具体为交互应用以存储数据的序号为键,数据存储上链后生成的交易哈希值为值,通过合约部署节点把该键值对添加到智能合约中,达到保存交易哈希值的目的。智能合约设置为仅合约部署节点可调用修改映射类型变量函数,可保证交易哈希值不被篡改。
76.图4为本发明查询数据过程的时序图。通过该时序图可以得知本方法查询数据时的具体流程。
77.步骤1、交互应用与以太坊节点中的合约部署节点交互,调用合约的查询交易哈希值函数,根据需要查询数据的序号,在合约存储交易哈希值的映射类型变量中查询序号对应的交易哈希值。
78.步骤2、查询到交易哈希值后,合约部署节点会把这个交易哈希值远程返回给交互应用。
79.步骤3、交互应用有了交易哈希值,就可以与以太坊远程交互,调用其查询交易详细信息的交互接口,根据交易哈希值查询到此哈希值对应交易的详细信息。
80.步骤4、以太坊节点会把这个交易的信息返回给交互应用。交互应用查询到交易的详细信息后,就可以把交易里面携带的需要保密存储的数据取出,再去做进一步的处理。如果处理的是复杂类型数据,可以将从私有链取出json字符串转换成相应的复杂类型数据格式。
81.实施例三
82.本发明实施例提供的一种基于以太坊与智能合约的数据存储方法,采用以太坊作为区块链的节点客户端,连接多个节点组成私有链,并修改其源码使得在私有链上部署合约、调用合约、发送交易等节点行为都无需支付交易手续费,使其更加适合在非交易性的业务场景使用。
83.在以太坊中,当一个交易产生时,消息发送方除了需要扣除交易对应期望转出的金额,还需要支付一定的交易手续费,即gas。gas,即以太坊世界里面的燃料,从用户那里收取的部分费用来维持整个系统的正常运行。gas可以理解为衡量一些动作执行的工作量,作为工作量的手续费支付给网络。通俗来讲,无论是发送交易,还是部署智能合约及调用智能合约,都需要产生gas手续费。
84.因此,对于每一次的交易,发送方都需要设置一些参数,表示自己支付gas的意愿,
包括gasprice和gaslimit。
85.gasprice指的是用户愿意为自己一个单位的gas付出多少以太币,也就是说,根据交易的复杂程度不同,交易每进行一步运算,会根据gasprice的设置不同,在gas数量基础上消耗不同数量的以太币。
86.gaslimit指的是用户愿意为自己当前操作所支付gas的最大数量,最少为21000。由于交易的复杂程度不同,交易最终会执行多少运算在交易前不得而知,具体的实际gas 消耗量,即gasused,需要在交易执行完毕后才可知晓。因此在这里gaslimit就是指交易发送方为本次交易设置的一个gas消耗上限。如果最终得出需要消耗的gas超出了 gaslimit,本次交易将会被取消,而且因为要奖励已经付出劳动的节点,在交易中已经消耗的gas也不会被退还。一个交易中收取的最高手续费即gasprice*gaslimit,如果消耗的gas还未达到gaslimit,也只会按照实际消耗的gas数量收取手续费,即交易手续费=gasprice*gasused。
87.在以太坊源码的执行流程当中,首先会根据gasprice*gaslimit得出一个值mgval。得到mgval后,需要与交易发送方的余额进行比较,如果余额不足,会报出 errinsufficientbalanceforgas异常,如果交易发送方有足够的余额,会在其账户余额中扣除mgval。这里mgval比真实需要扣除的费用要高,因为是按照gaslimit计算的,而实际需要扣除的余额需要按gasused计算,这里多扣除费用在后面计算过程中会补回来。接下来会根据交易数据的字节数,来计算出来实际所需要的gasused,根据合约复杂程度不同,携带的数据量不同,所需要消耗的实际gas数量也就不同。计算出实际消耗的 gasused之后,由gaslimit-gasused得出需要补偿的gas数量。即交易发起者本应被扣除gasused*gasprice数量的手续费,但在先前过程被扣除了gaslimit*gasprice数量的金额,所以在这里会将(gaslimit-gasused)*gasprice数量的金额补充回交易发起者。
88.本发明实施例三的目的是修改以上所述的以太坊源码,使其在交易时所收取交易发送方的交易手续费为0,即取消gas费用。图5为本发明实施例三中的一种基于以太坊与智能合约的数据存储方法修改以太坊源码取消交易手续费的流程图。具体包括如下步骤:
89.步骤1、在进行正式的交易流程之前,以太坊源码会先一步进行判断,用户当前的余额是否足以支付交易手续费,如果余额不足,会报出带有“insufficientfundsforgas*price+value”信息的异常。因此,如果需要取消收取交易手续费gas,在验证到用户的余额不足以支付gas时,也无需抛出异常,因为本发明的目标是交易发送方用户本就无需支付这么一笔交易手续费。即需要修改源码使验证用户余额不足以支付交易手续费gas时也不会抛出异常。
90.步骤2、在计算交易发送方所需支付的交易手续费之前,先把gasprice值置为0,这样经过计算最后得出需要扣除的gasused*gasprice也是0,将不会扣除交易手续费。
91.经过以上步骤,修改以太坊源码,使得在私有链上部署合约、调用合约、发送交易等节点行为都无需支付交易手续费。
92.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1