一种基于区块链技术的分布式能源交易通信平台、通信方法及通信平台的搭建方法与流程

文档序号:17896049发布日期:2019-06-13 15:59阅读:182来源:国知局
一种基于区块链技术的分布式能源交易通信平台、通信方法及通信平台的搭建方法与流程

本发明涉及分布式能源交易通信平台和通信方法,特别是一种基于区块链技术的分布式能源交易通信平台、通信方法,及通信平台的搭建方法。



背景技术:

随着能源互联网的兴起以及智能电网的持续建设,配网规模不断扩大,配网系统功能日益增多。传统的配网系统仅负责电能的分配,未来逐步增加电能收集、传输、储存等功能,实现与用户直接进行双向交互。在这样的技术背景下,伴随着分布式能源、电动汽车等接入电网,电网中的大量消费者将转变为产消者,促使形成电力的自由双边交易。由于区块链技术的去中心化、透明性、公平性与能源互联网的思想相一致,学术界已在能源交易领域中对区块链技术的应用进行了广泛的研究。

区块链网络是一个去中心化的p2p网络,不存在中心服务器。网络中的每一个节点都安装了统一的区块链客户端以及dapp服务端,即同时作为客户端和服务端。相比较传统配用电通信网络而言,区块链网络具有以下优势:1)分布式数据存储:区块链采用的是分布式存储的技术,因此不存在中心化的数据库;2)信息透明性:任何用户都可以通过具有查询功能的节点查询区块链中的数据;3)高度自治性:区块链以协商一致的规范和协议,自动、安全地交换数据;4)数据不可篡改:各区块内的数据经过哈希算法计算生成哈希值后即被安全存储,除非同时控制超过51%的系统算力,否则对区块链数据的修改是无效的。

在能源交易的应用中,区块链需要通过互联网获取数据,但是根据文献[narayanprusty.区块链项目开发指南[m],机械工业出版社,2018]所述,由于受区块链技术和共识算法的限制,区块链获取外部网络的数据异常复杂。现有的研究大多数采用第三方数据库oraclize服务来使区块链获取来自互联网的数据,但是实现过程具有一定的难度,其必须与以太坊智能合约搭配使用,对智能合约的编写有较高的要求,增加了开发者的开发难度。并且使用oraclize服务需要将数据交付第三方数据库,有造成信息泄露的隐患。关于区块链与互联网数据通信的具体方法,缺少相关研究,除此了上述方法外,未查到公开发表的相关文献资料。

由于在分布式能源交易的应用场景中,区块链需要获取大量的产消者信息,上述通信方法需要依靠互联网上的第三方数据库,在传输海量信息的可靠方面具有不稳定性,因此需要寻求一种有效的方法来实现多信息融合通信方法。



技术实现要素:

针对以上需求,本发明提供了一种基于区块链技术的分布式能源交易通信平台、通信方法,以及该通信平台的搭建方法,实现了分布式能源交易市场中产消者信息的通信传输,达到多信息融合通信的效果,为分布式能源交易市场通信网的建设提供信息支撑。

本发明的技术方案为:

一种基于区块链技术的分布式能源交易通信平台,包括三个互操作的层:硬件层、应用层和区块链层,所述硬件层包括用户的发/用电设备、智能电表和智能终端,所述智能电表安装在发/用电设备上,并与智能终端相连,用于计量并传输电量信息,所述智能终端是应用层和区块链层的物理载体;所述区块链层包括智能合约,所述智能合约为数字形式的交易规则,承载交易信息的接收、运算、存储和反馈功能,用于实现能源分布式交易;所述应用层是由web前端、js后端和python后端构成的分布式应用,用于实现硬件层、应用层和区块链层的相互通信,所述web前端通过智能终端显示用户与交易系统的交互界面,用于接收用户输入的申报信息和交易信息,所述js后端从web前端读取申报信息和交易信息,并远程调用智能合约、输入申报信息和交易信息,所述python后端从智能电表读取电量信息,并远程调用智能合约、输入电量信息。

在区块链层,基于以太坊公共区块链开发平台,采用以太坊原生的数据存储、网络通信方法和共识算法,使用以太坊客户端geth作为区块链用户节点,使用solidity编程语言编写智能合约。

使用html编程语言开发web前端,使用javascript编程语言开发js后端,使用python编程语言开发python后端,所述js后端通过javascript的jquery框架与web前端通信。

所述js后端和python后端均使用远程调用协议json-rpc调用智能合约。

所述用户的发/用电设备不限定用户为单一性的生产者或消费者,允许用户自由转换产消者的身份。

所述智能电表为dtzy208型三相四线费控智能电表,具有1个红外通信接口、1个rs485通信接口和1个载波通信接口,所述智能电表通过rs485转usb接口的转换器,与智能终端连接,智能电表遵循dl/t645-2007通信协议。

一种基于区块链技术的分布式能源交易通信平台的搭建方法,包括以下步骤:

s1:搭建硬件层,将智能电表安装在用户的发/用电设备上,并与智能终端连接起来;

s2:搭建区块链层,安装并运行以太坊客户端geth,搭建以太坊私有链,根据具体的市场交易机制编写智能合约,使用以太坊客户端geth将智能合约部署在以太坊网络;

s3:搭建应用层,将智能合约原代码编译为web3接口代码,编写进js后端和python后端,使用html编程语言开发web前端,使用javascript编程语言开发js后端,使用python编程语言开发python后端。

一种基于区块链技术的分布式能源交易通信方法,包括以下步骤:

s1:用户通过web前端的图形交互界面在智能终端输入申报信息和交易信息,js后端通过jquery框架从web前端获取申报信息和交易信息,js后端通过json-rpc与以太坊客户端geth交互,调用智能合约,将申报信息和交易信息存入区块链中;

s2:运行在智能终端上的python后端读取智能电表的电量信息,python后端通过json-rpc与以太坊客户端geth交互,调用智能合约,将电量信息存入区块链中;

s3:智能合约通过网络广播到区块链中的每一个节点,区块链中的节点将收到的信息保存在内存中,等待新一轮的共识时间,触发对合约的共识和处理;

s4:在共识时间到达时,智能合约根据用户申报信息对交易进行撮合,对于初次使用该平台的新用户,系统给用户提供当前电网电价以供参考;多次交易后,智能合约会记录并定期更新所有用户的个人历史成交电价范围,根据市场交易情况,向用户提供准确的申报建议,用户可以根据此信息进行合理申报;

s5:节点将最近一段时间内处理的所有合约打包成一个合约集合,以默克多树的形式保存在区块中,区块间按照时间顺序形成链式结构。

所述步骤s2包括以下子步骤:

s21:python后端接收智能电表传输的一串16进制报文;

s22:python后端提取报文中与电量有关的字段,进行10进制转码,得到精确到小数点后2位的10进制电量,将这个数字乘以10倍;

s23:python后端选择相应的以太坊账户,调用智能合约,将电量信息存入区块链中。

本发明的基于区块链技术的分布式能源交易通信平台,基于区块链技术的分布式能源交易市场,提供一种产消者的申报信息、交易信息和电量信息的多信息融合通信方法,从而实现电量的自动抄表、自动计量、自动计费过程。

再者,由于本发明的通信方法不依靠互联网上的第三方数据库,无需向第三方数据库发送查询请求并等待接受返回信息,缩短了通信响应时间。

进一步地,区块链能够同时获取用户的实时发/用电需求、以及能源互联网中真实的发/用电量信息,根据信息预测不同时段用户的发/用电情况,综合考虑市场交易情况,为产消者提供准确的申报建议,为产消者制定更加合理的申报策略,实现能源的高效分配、合理利用。

最后,本发明使用本地的分布式应用实现多网协同通信,允许用户在本地以及局域网中,使用本发明所涉及的适用于分布式能源交易的多信息融合通信方法,将用户信息与发/用电设备电量信息分别通过两个不同的通信协议同时传入区块链,以适应分布式能源自由双边交易的应用场景,达到多信息融合通信的效果,适应分布式能源交易市场的复杂性和业务需求多样性,为分布式能源交易市场通信网的建设提供信息支撑。

本发明在技术上消除了互联网连接状态对信息通信的影响,保证了信息通信的完整性和实时性,为日内能源实时交易提供了技术支持,保障了分布式能源交易的正常稳定运行。

附图说明

图1为本发明的分布式能源交易通信平台整体架构图;

图2为本发明的分布式能源交易通信平台三层架构图;

图3为本发明的分布式能源交易通信平台搭建方法流程图;

图4为本发明的智能合约部署与调用流程图;

图5为本发明的分布式能源交易通信方法流程图;

图6为本发明的python后端运行流程图。

具体实施方式

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

参考图1和图2,本发明的一种基于区块链技术的分布式能源交易通信平台,包括三个互操作的层:硬件层、应用层和区块链层,硬件层包括用户的发/用电设备、智能电表和智能终端,此处的用户即电力能源的生产者和消费者(以下简称产消者),智能电表安装在发/用电设备上,并与智能终端相连,用于计量并向智能终端传输电量信息,智能终端为微型计算机,是应用层和区块链层的物理载体,应用层和区块链层均运行在智能终端上。

区块链层包括数据存储、网络通信、共识算法、智能合约,其中,数据存储用于存储区块链中的数据,数据信息以默克尔树的形式保存在区块中,区块间按照时间顺序形成链式结构。网络通信用于连接区块链中的用户节点,实现信息的传播。共识算法提供的共识机制能让网络中的节点通过竞争产生记账节点,达成分布式共识。智能合约为数字形式的交易规则,承载交易信息的接收、运算、存储和反馈功能,用于实现能源分布式交易。

应用层是由web前端、js后端和python后端构成的分布式应用,用于实现硬件层、应用层和区块链层的相互通信。web前端和js后端承载用户交易信息传输的功能,web前端通过智能终端显示用户与交易系统的交互界面,用于接收用户输入的申报信息和交易信息。js后端为web前端与区块链之间的媒介,从web前端读取申报信息和交易信息,并远程调用智能合约、输入申报信息和交易信息。python后端为智能电表与区块链之间的媒介,承载用户电量信息传输的功能,运算在智能终端上的python后端从智能电表读取电量信息,并远程调用智能合约、输入电量信息。

在硬件层,用户的发/用电设备兼容性较好,不限定用户为单一性的生产者或消费者,允许用户自由转换产消者的身份。智能电表为dtzy208型三相四线费控智能电表,具有1个红外通信接口、1个rs485通信接口和1个载波通信接口,智能电表通过rs485转usb接口的转换器,与智能终端连接,以传输发/用电量信息。rs485接口具有良好的抗噪声干扰性,较长的传输距离等优点。智能电表遵循dl/t645-2007《多功能电能表通信规约》及其备案文件,该通信协议为主-从结构的半双工通信方式,手持单元或其它数据终端为主站,多功能电表为从站,从站通过dl/t645-2007协议向主站发送信息。每个多功能电表均有各自的地址编码,通信链路的建立与解除均由主站发出的信息帧来控制。每帧由帧起始符、从站地址域、控制码、数据域长度、数据域、帧信息纵向校验码及帧结束符7个域组成,每部分由若干字节组成。

在区块链层,基于以太坊公共区块链开发平台,采用以太坊原生的数据存储、网络通信方法和共识算法,创建以太坊私有链。使用以太坊客户端geth作为区块链用户节点,参与市场行为。使用solidity编程语言编写图灵完备的智能合约,明确市场产消者的权利和义务,实现信息传输的智能化,使得信息不可篡改。以太坊是目前使用最广泛的公共区块链平台,其底层是一个类似比特币网络的p2p网络平台。智能合约运行在以太坊p2p网络平台,可以接受来自于外部的通信请求,通过触发代码逻辑,进一步反馈信息。

在应用层,使用html编程语言开发web前端,使用javascript编程语言开发js后端,使用python编程语言开发python后端,js后端通过javascript的jquery框架与web前端通信,js后端使用远程调用协议json-rpc调用智能合约,传输交易信息,python后端使用远程调用协议json-rpc调用智能合约,传输电量信息,实现应用层与硬件层、区块链层的数据通信。应用层承载了主要的通信功能,用户使用分布式应用将交易信息、发/用电设备的电量信息同时传入区块链,达成多网协同通信,构成信息物理融合通信系统。

本发明的基于区块链技术的分布式能源交易通信平台,基于区块链技术的分布式能源交易市场,提供一种产消者的申报信息、交易信息和电量信息的多信息融合通信方法,从而实现电量的自动抄表、自动计量、自动计费过程。由于本发明的通信方法不依靠互联网上的第三方数据库,无需向第三方数据库发送查询请求并等待接受返回信息,缩短了通信响应时间。

参考图3和图4,本发明的一种基于区块链技术的分布式能源交易通信平台的搭建方法,包括以下步骤:

s1:搭建硬件层,将三相四线费控智能电表安装在用户的发/用电设备上,并通过rs485转usb接口的转换器,与智能终端连接起来;

s2:搭建区块链层,安装并运行以太坊客户端geth,搭建以太坊私有链,根据具体的市场交易机制编写智能合约,明确市场产消者的权利和义务,使用以太坊客户端geth将智能合约部署在以太坊网络;

s3:搭建应用层,实现硬件层、应用层和区块链层的相互通信:

s31:将智能合约原代码编译为web3接口代码,编写进js后端和python后端,通过以太坊客户端geth调用智能合约,实现智能合约和区块链以外环境的信息通信;

s32:根据具体使用环境,使用html编程语言开发web前端,使用javascript编程语言开发js后端;

s33:根据具体使用环境及所使用的智能电表,使用python编程语言开发python后端。

参考图5,本发明的一种基于区块链技术的分布式能源交易通信方法,包括以下步骤:

s1:用户通过web前端的图形交互界面在智能终端输入申报信息和交易信息,js后端通过jquery框架从web前端获取申报信息和交易信息,js后端通过json-rpc与以太坊客户端geth交互,调用智能合约,将申报信息和交易信息存入区块链中;

s2:运行在智能终端上的python后端读取智能电表的电量信息,python后端通过json-rpc与以太坊客户端geth交互,调用智能合约,将电量信息存入区块链中,具体包括以下步骤(参考图6):

s21:接收:python后端接收智能电表传输的一串16进制报文;

s22:转码:python后端提取报文中与电量有关的字段,进行10进制转码,得到精确到小数点后2位的10进制电量,由于智能合约只能对整数进行运算,因此将这个数字乘以100;

s23:发送:python后端仿照geth控制台智能合约的语法调用格式,选择相应的以太坊账户,调用智能合约,将电量信息存入区块链中。

s3:智能合约通过网络广播到区块链中的每一个节点,区块链中的节点将收到的信息保存在内存中,等待新一轮的共识时间,触发对合约的共识和处理;

s4:在共识时间到达时,智能合约根据用户申报信息对交易进行撮合,对于初次使用该平台的新用户,系统给用户提供当前电网电价以供参考;多次交易后,智能合约会记录并定期更新所有用户的个人历史成交电价范围,根据市场交易情况,向用户提供准确的申报建议,用户可以根据此信息进行合理申报,最终实现能源的高效分配、合理利用。

s5:节点将最近一段时间内处理的所有合约打包成一个合约集合,以默克多树的形式保存在区块中,区块间按照时间顺序形成链式结构。默克多树是一种二叉树,所有的交易信息都被记录在二叉树的叶节点上。

本发明使用本地的分布式应用实现多网协同通信,允许用户在本地以及局域网中,使用本发明所涉及的适用于分布式能源交易的多信息融合通信方法,将用户信息与发/用电设备电量信息分别通过两个不同的通信协议同时传入区块链,以适应分布式能源自由双边交易的应用场景,达到多信息融合通信的效果,适应分布式能源交易市场的复杂性和业务需求多样性,为分布式能源交易市场通信网的建设提供信息支撑。

以上公开的仅为本发明的实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1