掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链智能合约的电力数据存储方法和系统

文献发布时间:2023-06-19 12:07:15


一种基于区块链智能合约的电力数据存储方法和系统

技术领域

本发明涉及区块链智能合约技术领域,具体而言,涉及一种基于区块链智能合约的电力数据存储方法和系统。

背景技术

现有技术中无论是新能源、电力或燃气方面,在公司与客户输送能源及服务的同时,经常出现以下痛点:

1、电表/燃气表/能源量化设备等收集到的数据丢失,造成非常大的经济损失;

2、能源量化数据更新不及时、丢失,用户使用实际数据和公司收集到的量化数据有偏差,产生分歧;

3、在涉及到信息费用交易时,用户跟公司双方都可能对对方的数据真实性产生怀疑,双方都无法确定数据内容和来源的真实性。

发明内容

为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种基于区块链智能合约的电力数据存储方法和系统。

本发明的实施例是这样实现的:

第一方面,本发明实施例提供一种基于区块链智能合约的电力数据存储方法,包括以下步骤:

获取电力数据;

通过Solidity编程语言将电力数据编写合约代码,经由web3.js到达智能合约编译器,智能合约编译器产生EVM字节码与合约二进制可执行码;

向前端反馈EVM字节码与合约二进制可执行码;

在搭建的节点集群上部署合约的编译内容,并打包在区块链上的交易哈希以及应用程序二进制接口;

合约成功部署后,向前端反馈合约账户地址;

前端调用智能合约,通过合约账户地址、应用程序二进制接口以及nonce实现与合约交互,其中,nonce指交易数,每次合约调用后会自动数值加一。

这样的方法,将合约以数字化的形式写入区块链中,因区块链的特性,数据将无法删除、修改,只能新增,整个过程透明可跟踪,保证了历史的可追溯性;因行为将被永久记录,可极大程度避免恶意行为对合约正常执行的干扰;去中心化,避免了中心化因素的影响,提高智能合约在成本效率方面的优势;当满足合约内容时,将自动启动智能合约的代码,既避免了手动过程,同时又保障了发行者无法违约;由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。nonce指交易数,每次合约调用后会自动数值加一,以防止交易重复。

基于第一方面,在本发明的一些实施例中,还包括:将合约账户地址添加到合约的访问权限列表。

基于第一方面,在本发明的一些实施例中,当合约被调用时,先检索访问权限列表,如果合约账户地址位于列表之中,则可根据触发条件与响应规则执行合约逻辑,运行分布式存证功能;如果不满足列表的设定条件,则合约调用失败。

基于第一方面,在本发明的一些实施例中,实时更新访问权限列表。

第二方面,本发明实施例提供一种基于区块链智能合约的电力数据存储系统,其特征在于,包括:

获取模块:用于获取电力数据;

编译模块:用于通过Solidity编程语言将电力数据编写合约代码,经由web3.js到达智能合约编译器,智能合约编译器产生EVM字节码与合约二进制可执行码;

合约反馈模块:用于向前端反馈EVM字节码与合约二进制可执行码;

合约部署模块:用于在搭建的节点集群上部署合约的编译内容,并打包至区块链上的交易哈希以及应用程序二进制接口;

地址反馈模块:用于合约成功部署后,向前端反馈合约账户地址;

智能合约调用模块:用于前端调用智能合约,通过合约账户地址、应用程序二进制接口以及nonce实现与智能合约交互,其中,nonce指交易数,每次智能合约调用后会自动数值加一。

基于第二方面,在本发明的一些实施例中,还包括:

添加权限模块,用于将合约账户地址添加到合约的访问权限列表。

基于第二方面,在本发明的一些实施例中,还包括:

检索权限模块:用于当合约被调用时,先检索访问权限列表,如果合约账户地址位于列表之中,则可根据触发条件与响应规则执行合约逻辑,运行分布式存证功能;如果不满足列表的设定条件,则合约调用失败。

基于第二方面,在本发明的一些实施例中,还包括:

更新模块:用于实时更新访问权限列表。

第三方面,本发明实施例提供一种电子设备,其特征在于,包括:

存储器,用于存储一个或多个程序;

处理器;

当上述一个或多个程序被上述处理器执行时,实现基于区块链智能合约的电力数据存储方法。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现基于区块链智能合约的电力数据存储方法。

本发明实施例至少具有如下优点或有益效果:

第一方面,本发明实施例提供一种基于区块链智能合约的电力数据存储方法,包括以下步骤:获取电力数据;通过Solidity编程语言将电力数据编写合约代码,经由web3.js到达智能合约编译器,智能合约编译器产生EVM字节码与合约二进制可执行码;向前端反馈EVM字节码与合约二进制可执行码;在搭建的节点集群上部署合约的编译内容,并打包在区块链上的交易哈希以及应用程序二进制接口;合约成功部署后,向前端反馈合约账户地址;前端调用智能合约,通过合约账户地址、应用程序二进制接口以及nonce实现与合约交互,其中,nonce指交易数,每次合约调用后会自动数值加一。

第二方面,本发明实施例提供一种基于区块链智能合约的电力数据存储系统,其特征在于,包括:获取模块:用于获取电力数据;编译模块:用于通过Solidity编程语言将电力数据编写合约代码,经由web3.js到达智能合约编译器,智能合约编译器产生EVM字节码与合约二进制可执行码;合约反馈模块:用于向前端反馈EVM字节码与合约二进制可执行码;合约部署模块:用于在搭建的节点集群上部署合约的编译内容,并打包至区块链上的交易哈希以及应用程序二进制接口;地址反馈模块:用于合约成功部署后,向前端反馈合约账户地址;智能合约调用模块:用于前端调用智能合约,通过合约账户地址、应用程序二进制接口以及nonce实现与智能合约交互,其中,nonce指交易数,每次智能合约调用后会自动数值加一。

这样的方法和系统,将合约以数字化的形式写入区块链中,因区块链的特性,数据将无法删除、修改,只能新增,整个过程透明可跟踪,保证了历史的可追溯性;因行为将被永久记录,可极大程度避免恶意行为对合约正常执行的干扰;去中心化,避免了中心化因素的影响,提高智能合约在成本效率方面的优势;当满足合约内容时,将自动启动智能合约的代码,既避免了手动过程,同时又保障了发行者无法违约;由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。nonce指交易数,每次合约调用后会自动数值加一,以防止交易重复。既避免了手动过程,同时又保障了发行者无法违约;由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。nonce指交易数,每次合约调用后会自动数值加一,以防止交易重复。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明一种基于区块链智能合约的电力数据存储方法的流程图;

图2为本发明一种基于区块链智能合约的电力数据存储方法的流程图;

图3为本发明一种基于区块链智能合约的电力数据存储系统的结构示意图;

图4为本发明一种基于区块链智能合约的电力数据存储系统的结构示意图。

图标:1、获取模块;2、编译模块;3、合约反馈模块;4、合约部署模块;5、地址反馈模块;6、智能合约调用模块;7、添加权限模块;8、检索权限模块;9、更新模块。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本申请所提供的实施例中,应该理解到,所揭露的方法和系统,也可以通过其它的方式实现。系统实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的系统和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备,可以是个人计算机,服务器,或者网络设备等,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明实施例的描述中,还需要说明的是,除非另有明确的规定和限定,若出现术语“安装”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

实施例

请参照图1和图2,第一方面,本发明实施例提供一种基于区块链智能合约的电力数据存储方法,包括以下步骤:

S10:获取电力数据;

S20:通过Solidity编程语言将电力数据编写合约代码,经由web3.js到达智能合约编译器,智能合约编译器产生EVM字节码与合约二进制可执行码;

S30:向前端反馈EVM字节码与合约二进制可执行码;

S40:在搭建的节点集群上部署合约的编译内容,并打包在区块链上的交易哈希以及应用程序二进制接口;

S50:合约成功部署后,向前端反馈合约账户地址;

S60:前端调用智能合约,通过合约账户地址、应用程序二进制接口以及nonce实现与合约交互,其中,nonce指交易数,每次合约调用后会自动数值加一。

这样的方法,将合约以数字化的形式写入区块链中,因区块链的特性,数据将无法删除、修改,只能新增,整个过程透明可跟踪,保证了历史的可追溯性;因行为将被永久记录,可极大程度避免恶意行为对合约正常执行的干扰;去中心化,避免了中心化因素的影响,提高智能合约在成本效率方面的优势;当满足合约内容时,将自动启动智能合约的代码,既避免了手动过程,同时又保障了发行者无法违约;由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。nonce指交易数,每次合约调用后会自动数值加一,以防止交易重复。

在本发明的一些实施例中,还包S70:将合约账户地址添加到合约的访问权限列表。

具体的,S80:当合约被调用时,先检索访问权限列表,如果合约账户地址位于列表之中,则可根据触发条件与响应规则执行合约逻辑,运行分布式存证功能;如果不满足列表的设定条件,则合约调用失败。

这样设置的目的在于,能够实现角色与权限的逻辑分离。例如:C是可以运行在以太坊平台上的智能合约;u C ser是以太坊网络中被授权的合法用户,是合约C的部署者;ui ser是合约C的调用者。智能合约成功部署后,u C ser将拥有对合约数据的控制权限,可根据电力数据内容将交易发送方与接收方长度为20位的账户地址添加到合约C的访问权限列表。智能合约被u i ser调用时,首先检索预置的访问权限列表,如果u i ser位于列表之中,则可根据触发条件与响应规则执行合约逻辑,运行分布式存证功能;如果u i ser不满足列表的设定条件,则合约调用失败。通过上述方法能够实现角色与权限的逻辑分离。

示例性的,在本发明的一些实施例中,实时更新访问权限列表。

请参照图3和图4第二方面,本发明实施例提供一种基于区块链智能合约的电力数据存储系统,其特征在于,包括:

获取模块1:用于获取电力数据;

编译模块2:用于通过Solidity编程语言将电力数据编写合约代码,经由web3.js到达智能合约编译器,智能合约编译器产生EVM字节码与合约二进制可执行码;

合约反馈模块3:用于向前端反馈EVM字节码与合约二进制可执行码;

合约部署模块4:用于在搭建的节点集群上部署合约的编译内容,并打包至区块链上的交易哈希以及应用程序二进制接口;

地址反馈模块5:用于合约成功部署后,向前端反馈合约账户地址;

智能合约调用模块6:用于前端调用智能合约,通过合约账户地址、应用程序二进制接口以及nonce实现与智能合约交互,其中,nonce指交易数,每次智能合约调用后会自动数值加一。

这样的系统,将合约以数字化的形式写入区块链中,因区块链的特性,数据将无法删除、修改,只能新增,整个过程透明可跟踪,保证了历史的可追溯性;因行为将被永久记录,可极大程度避免恶意行为对合约正常执行的干扰;去中心化,避免了中心化因素的影响,提高智能合约在成本效率方面的优势;当满足合约内容时,将自动启动智能合约的代码,既避免了手动过程,同时又保障了发行者无法违约;由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。nonce指交易数,每次合约调用后会自动数值加一,以防止交易重复。

基于第二方面,在本发明的一些实施例中,还包括:

添加权限模块7,用于将合约账户地址添加到合约的访问权限列表。

基于第二方面,在本发明的一些实施例中,还包括:

检索权限模块8:用于当合约被调用时,先检索访问权限列表,如果合约账户地址位于列表之中,则可根据触发条件与响应规则执行合约逻辑,运行分布式存证功能;如果不满足列表的设定条件,则合约调用失败。

这样设置的目的在于,能够实现角色与权限的逻辑分离。例如:C是可以运行在以太坊平台上的智能合约;u C ser是以太坊网络中被授权的合法用户,是合约C的部署者;ui ser是合约C的调用者。智能合约成功部署后,u C ser将拥有对合约数据的控制权限,可根据电力数据内容将交易发送方与接收方长度为20位的账户地址添加到合约C的访问权限列表。智能合约被u i ser调用时,首先检索预置的访问权限列表,如果u i ser位于列表之中,则可根据触发条件与响应规则执行合约逻辑,运行分布式存证功能;如果u i ser不满足列表的设定条件,则合约调用失败。通过上述方法能够实现角色与权限的逻辑分离。

示例性的,在本发明的一些实施例中,还包括:

更新模块9:用于实时更新访问权限列表。

第三方面,本发明实施例提供一种电子设备,其特征在于,包括:

存储器,用于存储一个或多个程序;

处理器;

当上述一个或多个程序被上述处理器执行时,实现基于区块链智能合约的电力数据存储方法。例如实现S10:获取电力数据;S20:通过Solidity编程语言将电力数据编写合约代码,经由web3.js到达智能合约编译器,智能合约编译器产生EVM字节码与合约二进制可执行码;S30:向前端反馈EVM字节码与合约二进制可执行码;S40:在搭建的节点集群上部署合约的编译内容,并打包在区块链上的交易哈希以及应用程序二进制接口;S50:合约成功部署后,向前端反馈合约账户地址;S60:前端调用智能合约,通过合约账户地址、应用程序二进制接口以及nonce实现与合约交互,其中,nonce指交易数,每次合约调用后会自动数值加一。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现基于区块链智能合约的电力数据存储方法。例如实现S10:获取电力数据;S20:通过Solidity编程语言将电力数据编写合约代码,经由web3.js到达智能合约编译器,智能合约编译器产生EVM字节码与合约二进制可执行码;S30:向前端反馈EVM字节码与合约二进制可执行码;S40:在搭建的节点集群上部署合约的编译内容,并打包在区块链上的交易哈希以及应用程序二进制接口;S50:合约成功部署后,向前端反馈合约账户地址;S60:前端调用智能合约,通过合约账户地址、应用程序二进制接口以及nonce实现与合约交互,其中,nonce指交易数,每次合约调用后会自动数值加一。

综上,本发明的实施例第一方面,本发明实施例提供一种基于区块链智能合约的电力数据存储方法,包括以下步骤:获取电力数据;通过Solidity编程语言将电力数据编写合约代码,经由web3.js到达智能合约编译器,智能合约编译器产生EVM字节码与合约二进制可执行码;向前端反馈EVM字节码与合约二进制可执行码;在搭建的节点集群上部署合约的编译内容,并打包在区块链上的交易哈希以及应用程序二进制接口;合约成功部署后,向前端反馈合约账户地址;前端调用智能合约,通过合约账户地址、应用程序二进制接口以及nonce实现与合约交互,其中,nonce指交易数,每次合约调用后会自动数值加一。

第二方面,本发明实施例提供一种基于区块链智能合约的电力数据存储系统,其特征在于,包括:获取模块1:用于获取电力数据;编译模块2:用于通过Solidity编程语言将电力数据编写合约代码,经由web3.js到达智能合约编译器,智能合约编译器产生EVM字节码与合约二进制可执行码;合约反馈模块3:用于向前端反馈EVM字节码与合约二进制可执行码;合约部署模块4:用于在搭建的节点集群上部署合约的编译内容,并打包至区块链上的交易哈希以及应用程序二进制接口;地址反馈模块5:用于合约成功部署后,向前端反馈合约账户地址;智能合约调用模块6:用于前端调用智能合约,通过合约账户地址、应用程序二进制接口以及nonce实现与智能合约交互,其中,nonce指交易数,每次智能合约调用后会自动数值加一。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

相关技术
  • 一种基于区块链智能合约的电力数据存储方法和系统
  • 一种基于区块链智能合约的文件分布式存储方法
技术分类

06120113176159