一种电力市场交易状态确认方法、装置、设备和存储介质与流程

文档序号:32508960发布日期:2022-12-10 06:58阅读:55来源:国知局
一种电力市场交易状态确认方法、装置、设备和存储介质与流程

1.本发明涉及电力系统自动化技术领域,尤其涉及一种电力市场交易状态确认方法、装置、设备和存储介质。


背景技术:

2.区块链技术作为一种全新的分布式基础架构记账技术,以其巧妙的技术设计和数据治理方式,能够为多方协作提供信任基础。区块链技术和电力交易的碰撞,在电力交易领域,能够构筑可信、透明、高效的平台,为市场成员提供互信、自治、灵活的交易模式与体验,提升能源互联网的价值创造能力。
3.在现有的基于区块链的电力交易技术中,有两种交易状态确认的实现途径,第一种是利用区块链上原生的智能合约实现一个交易合约,所有用户通过合约进行调用,但是由于区块链公式算法的局限性,在高并发交易的情况下,可能会导致交易状态确认慢的情况;第二种是利用应用层作为区块链和电力交易者的中间件,通过应用层来协调和转发交易者的电力交易,可以做到提速的效果,但是这样就降低了区块链本身的可信度,操作透明度降低。因此,如何在不降低区块链本身可信度的基础上,提高电力交易在高并发下的交易状态确认效率,是本领域技术人员亟待解决的技术问题。


技术实现要素:

4.本发明提供了一种电力市场交易状态确认方法、装置、设备和存储介质,用于在不降低区块链本身可信度的基础上,提高电力交易在高并发下的交易状态确认效率。
5.有鉴于此,本发明第一方面提供了一种电力市场交易状态确认方法,包括:
6.对电力交易流程进行抽象化,将电力交易流程抽象为有向无环图,存储在区块链上,其中,有向无环图中的节点为交易流程节点,边为流程转移的方向;
7.将在每个电力交易流程节点发生的交易信息,以每个交易为存储单位存储在区块链上;
8.在发生新的电力交易时,判断新的电力交易的处理对象是发生在预置时间前的电力交易,还是最近k次的交易,其中,k为交易者处理交易需求数量;
9.若新的电力交易的处理对象是发生在预置时间前的电力交易,则通过区块链网络读取所有链上交易,通过新的电力交易信息回放已完成的电力交易,形成当前交易全局状态,读取最新的交易序号,并根据当前交易全局状态来完成交易;
10.若新的电力交易的处理对象是最近k次的交易,则直接读取最新的电力交易信息,根据电力交易的有效交易区间,获取有效交易区间内的电力交易信息,根据有效交易区间内的电力交易信息完成交易,其中,k《k,k为最近交易流程有效电力市场交易状态数量;
11.在每次完成交易后,根据有向无环图和最新的交易序号,更新链上的最近k次交易流程有效电力市场交易状态,并存储在区块链中。
12.可选地,每个电力交易在区块链中存储的表现形式为:
13.extrai=(indexi,statei,tradeinfoi)
14.其中,extrai为第i个电力交易的额外信息,indexi为第i个电力交易的交易序号,statei为第i个电力交易对应的最近k次交易流程有效电力市场交易状态,tradeinfoi为第i个电力交易的业务信息。
15.可选地,电力交易的有效交易区间为:
16.fi=[index
i-k+1,indexi],k≥0
[0017]
其中,fi为第i个电力交易的有效交易区间。
[0018]
可选地,第i个电力交易对应的最近k次交易流程有效电力市场交易状态statei在区块链中以位图的形式进行存储,存储形式为:
[0019]
statei=[byte1,byte2,byte3,

,bytek]
[0020]
其中,bytek为最新交易状态,byte1为最早交易状态,byte2为byte1的下一次交易状态,byte3为byte2的下一次交易状态。
[0021]
本发明第二方面提供了一种电力市场交易状态确认装置,包括:
[0022]
流程抽象化模块,用于对电力交易流程进行抽象化,将电力交易流程抽象为有向无环图,存储在区块链上,其中,有向无环图中的节点为交易流程节点,边为流程转移的方向;
[0023]
交易信息存储模块,用于将在每个电力交易流程节点发生的交易信息,以每个交易为存储单位存储在区块链上;
[0024]
新交易判断模块,用于在发生新的电力交易时,判断新的电力交易的处理对象是发生在预置时间前的电力交易,还是最近k次的交易,其中,k为交易者处理交易需求数量;
[0025]
第一交易处理模块,用于若新的电力交易的处理对象是发生在预置时间前的电力交易,则通过区块链网络读取所有链上交易,通过新的电力交易信息回放已完成的电力交易,形成当前交易全局状态,读取最新的交易序号,并根据当前交易全局状态来完成交易;
[0026]
第二交易处理模块,用于若新的电力交易的处理对象是最近k次的交易,则直接读取最新的电力交易信息,根据电力交易的有效交易区间,获取有效交易区间内的电力交易信息,根据有效交易区间内的电力交易信息完成交易,其中,k《k,k为最近交易流程有效电力市场交易状态数量;
[0027]
交易更新模块,用于在每次完成交易后,根据有向无环图和最新的交易序号,更新链上的最近k次交易流程有效电力市场交易状态,并存储在区块链中。
[0028]
可选地,每个电力交易在区块链中存储的表现形式为:
[0029]
extrai=(indexi,statei,tradeinfoi)
[0030]
其中,extrai为第i个电力交易的额外信息,indexi为第i个电力交易的交易序号,statei为第i个电力交易对应的最近k次交易流程有效电力市场交易状态,tradeinfoi为第i个电力交易的业务信息。
[0031]
可选地,电力交易的有效交易区间为:
[0032]fi
=[index
i-k+1,indexi],k≥0
[0033]
其中,fi为第i个电力交易的有效交易区间。
[0034]
可选地,第i个电力交易对应的最近k次交易流程有效电力市场交易状态statei在区块链中以位图的形式进行存储,存储形式为:
[0035]
statei=[byte1,byte2,byte3,

,bytek]
[0036]
其中,bytek为最新交易状态,byte1为最早交易状态,byte2为byte1的下一次交易状态,byte3为byte2的下一次交易状态。
[0037]
本发明第三方面提供了一种电力市场交易状态确认设备,所述设备包括处理器以及存储器:
[0038]
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
[0039]
所述处理器用于根据所述程序代码中的指令执行第一方面任一种所述的电力市场交易状态确认方法。
[0040]
本发明第四方面提供了计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面任一种所述的电力市场交易状态确认方法。
[0041]
从以上技术方案可以看出,本发明提供的电力市场交易状态确认方法具有以下优点:
[0042]
本发明提供的电力市场交易状态确认方法,以有向无环图的方式将复杂的电力交易流程抽象为若干个不同的阶段性流程,将每次电力交易的交易信息写入到区块链中,在发生新的电力交易时,判断新的电力交易的处理对象是发生在预置时间前的电力交易,还是最近k次的交易,对于新的电力交易的处理对象是发生在预置时间前的电力交易的情况,以历史回放的方式读取最新的交易序号,根据当前交易全局状态来完成交易,当新的电力交易的处理对象是最近k次的交易时,直接读取最新的电力交易信息,根据有效交易区间内的电力交易信息完成交易,在每次完成交易后,更新链上的最近k次交易流程有效电力市场交易状态,并存储在区块链中,实现了在不降低区块链本身可信度的基础上,提高电力交易在高并发下的交易状态确认效率。
[0043]
本发明提供的电力市场交易状态确认方法只基于区块链的交易本身,可以规避在区块链的智能合约层的实现而导致的性能不足的问题,在交易并发较时优势比较明显,有效的降低交易状态确认时间,有利于电力交易业务在区块链上业务的发展和落地。同时在电力交易应用层上,该方法实现复杂度低,数据查验方便,电力交易效率提升明显。
[0044]
本发明提供的电力市场交易状态确认方法能适用于已有的电力市场交易模式中,比如实时交易、挂牌交易、集合竞价交易或者自定义交易类型等。
[0045]
本发明提供的电力市场交易状态确认装置、设备和存储介质,用于执行本发明提供的电力市场交易状态确认方法,其原理和达到的技术效果与本发明提供的电力市场交易状态确认方法相同,在此不再进行赘述。
附图说明
[0046]
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0047]
图1为本发明中提供的一种电力市场交易状态确认方法的流程示意图;
[0048]
图2为本发明中提供的电力市场交易状态确认方法的交易流程抽象化为有向无环图的示意图;
[0049]
图3为本发明中提供的一种电力市场交易状态确认装置的结构示意图。
具体实施方式
[0050]
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0051]
为了便于理解,请参阅图1,本发明中提供了一种电力市场交易状态确认方法的实施例,包括:
[0052]
步骤101、对电力交易流程进行抽象化,将电力交易流程抽象为有向无环图,存储在区块链上,其中,有向无环图中的节点为交易流程节点,边为流程转移的方向。
[0053]
需要说明的是,本发明实施例中,首先将不同电力交易类型的流程,如电力交易类型为实时电力交易,核心流程包括卖方报价、买方出价、卖方撤销出价和交易结束几个状态流程。定义电力交易的状态流程为pi,在交易流程中,这些状态流程会发生流转,比如pi→
pj,j>i。因为交易流程必然会有结束状态,且不可能会有回环交易状态转移(如pi→
pj→…→
pk→
pi),可以根据这些状态流程抽象化为dag(directed acyclic graph),即有向无环图,如图1所示。因此,可以得到一张表示电力交易流程的流转图:
[0054]
g(v,e)
[0055]
其中,v为抽象的交易流程,v∈[1,n],表示1到n个交易流程,用图的节点表示,e为图的边,表示流程转移的方向。将流程本身以图的方式存储在区块链上,以便交易者作为在区块链上交易流程流转的根据。对于每一笔电力交易,都是对应某个电力交易ti对应的交易状态的转移,每次转移必须是dag中的边e,即都是合法的pi→
pj,j>i的转移。
[0056]
步骤102、将在每个电力交易流程节点发生的交易信息,以每个交易为存储单位存储在区块链上。
[0057]
需要说明的是,本发明实施例中,在存储电力交易的交易信息时,以区块链上每个电力交易ti为存储单位,将电力交易ti的交易信息存储到区块链上。在存储电力交易ti的交易信息时,除了电力交易ti本身需要的信息(即业务信息)外,还需要将电力交易ti的交易序号和最近k次交易流程有效电力市场交易状态一同存储在额外信息extrai上,即:
[0058]
extrai=(indexi,statei,tradeinfoi)
[0059]
其中,extrai为第i个电力交易的额外信息,indexi为第i个电力交易的交易序号,statei为第i个电力交易对应的最近k次交易流程有效电力市场交易状态,k的取值可依据实际应用场景设定,tradeinfoi为第i个电力交易的业务信息。
[0060]
对于交易序号indexi,即在区块链中的逻辑交易序列号,为单调递增函数,为了保持交易的正确性,对于发生两个区块链交易前后,交易发起者本身需要保证:
[0061]
index
i-index
i-1
=1
[0062]
对于不满足以上条件的交易,视为无效。
[0063]
每个电力交易中的statei都是对前k个交易状态的总结。statei在extrai中可以以位图的形式进行存储,比如最近第k次的交易,可以用一个字节的二进制形式表示其在g中所处的位置,因为很多交易流程所需的流程数量很少,即v∈[1,n]所表示的区间很小。因
此,statei可以用字节数组来表示:
[0064]
statei=[byte1,byte2,byte3,

,bytek]
[0065]
其中,bytek为最新交易状态,byte1为最早交易状态,byte2为byte1的下一次交易状态,byte3为byte2的下一次交易状态。
[0066]
因为一个byte能表示256个整数,在交易流程总状态比较小时,可以用二进制压缩的方式,比如把一个byte按照二进制分为4个部分,每个部分可以表示4个交易状态。可以大大减少存储交易信息所消耗的空间,扩大了最近有效交易大小k能覆盖的范围,从而提高确认交易状态的范围。比如,如果k=4,i=10,statei=[1,2,3,4],则说明,在第10次交易方式的是转移4状态的转移,前面三次,即第7、8、9次交易分别发生的是1、2、3状态的转移。
[0067]
tradeinfoi为第i个电力交易的业务信息,对应于此次交易流程中的必要电力交易业务信息,比如买方买入报价为a的b类型电力资源。
[0068]
步骤103、在发生新的电力交易时,判断新的电力交易的处理对象是发生在预置时间前的电力交易,还是最近k次的交易,其中,k为交易者处理交易需求数量。
[0069]
需要说明的是,在发生新的电力交易时,处理交易的方式可能有两种,第一种是需要对发生较为久远(即预置时间前,如一个月前或一年前等)的电力交易进行处理,第二种是需要快速对最近k次的交易进行处理。因此,在发生新的电力交易时,需要判断新的电力交易的处理对象是发生在预置时间前的电力交易,还是最近k次的交易。如果是第一种,则执行步骤104,如果是第二种,则执行步骤105。
[0070]
步骤104、若新的电力交易的处理对象是发生在预置时间前的电力交易,则通过区块链网络读取所有链上交易,通过新的电力交易信息回放已完成的电力交易,形成当前交易全局状态,读取最新的交易序号,并根据当前交易全局状态来完成交易。
[0071]
需要说明的是,如果是需要对发生较为久远的交易进行处理,则在发生交易之前,需要通过区块链网络读取所有链上交易ti的交易信息,通过tradeinfoi来准确地回放已经完成的交易,这一部分主要是通过index
i-index
i-1
=1来保证,并形成当前交易全局状态localtradestate,比如,从初始交易序列tradeinfoi为a类电报价b数量c卖主d,买主e买入序列号为1的a类电,x类电价报价z数量y买主f,

,这样的信息进行重放,能够得知全市场的电量交易情况。在发生新的电力交易时,最新的ti一定会发生在最新的区块链区块latestblock中,从区块链区块latestblock中读取最新的交易序号indexi,并根据当前交易全局状态localtradestate来完成所需要进行的交易。
[0072]
步骤105、若新的电力交易的处理对象是最近k次的交易,则直接读取最新的电力交易信息,根据电力交易的有效交易区间,获取有效交易区间内的电力交易信息,根据有效交易区间内的电力交易信息完成交易,其中,k《k,k为最近交易流程有效电力市场交易状态数量。
[0073]
需要说明的是,如果是需要进行快速对最近k次的交易进行处理,则直接读取最新的电力交易信息,通过最新的电力交易信息确定电力交易的有效交易区间fi的信息,快速处理报价,找到感兴趣的标的和合适价格进行交易。可以大大加速交易者的交易速度,而不受限历史交易信息的回放的限制。
[0074]
对于电力交易的有效交易区间fi,有:
[0075]fi
=[index
i-k+1,indexi],k≥0。
[0076]
步骤106、在每次完成交易后,根据有向无环图和最新的交易序号,更新链上的最近k次交易流程有效电力市场交易状态,并存储在区块链中。
[0077]
需要说明的是,在每次完成交易后,交易应用需要更新最新的ti的extrai的状态,即区间fi←fi-1
的状态转移。对于statei,可知fi和f
i-1
所表示的区间的差异为fi比f
i-1
多了ti这个电力交易,而fi比f
i-1
少了t
i-k
这个电力交易,所以,在ti的statei的更新中,需要对statei数组左移一个单位,变为:
[0078]
statei=[byte2,byte3,

,bytek,newbyte]
[0079]
然后将最后一个元素newbyte设定为最新的状态。如果最新的状态发生的是业务的转移,则最后一个元素设定为非交易状态,为:
[0080]
statei=[byte2,byte3,

,bytek,notatrade]。
[0081]
然后将更新后的statei存储到区块链中。
[0082]
本发明提供的电力市场交易状态确认方法,以有向无环图的方式将复杂的电力交易流程抽象为若干个不同的阶段性流程,将每次电力交易的交易信息写入到区块链中,在发生新的电力交易时,判断新的电力交易的处理对象是发生在预置时间前的电力交易,还是最近k次的交易,对于新的电力交易的处理对象是发生在预置时间前的电力交易的情况,以历史回放的方式读取最新的交易序号,根据当前交易全局状态来完成交易,当新的电力交易的处理对象是最近k次的交易时,直接读取最新的电力交易信息,根据有效交易区间内的电力交易信息完成交易,在每次完成交易后,更新链上的最近k次交易流程有效电力市场交易状态,并存储在区块链中,实现了在不降低区块链本身可信度的基础上,提高电力交易在高并发下的交易状态确认效率。
[0083]
本发明提供的电力市场交易状态确认方法只基于区块链的交易本身,可以规避在区块链的智能合约层的实现而导致的性能不足的问题,在交易并发较时优势比较明显,有效的降低交易状态确认时间,有利于电力交易业务在区块链上业务的发展和落地。同时在电力交易应用层上,该方法实现复杂度低,数据查验方便,电力交易效率提升明显。
[0084]
本发明提供的电力市场交易状态确认方法能适用于已有的电力市场交易模式中,比如实时交易、挂牌交易、集合竞价交易或者自定义交易类型等。
[0085]
本发明中还提供了一种电力市场交易状态确认装置的实施例,包括:
[0086]
流程抽象化模块,用于对电力交易流程进行抽象化,将电力交易流程抽象为有向无环图,存储在区块链上,其中,有向无环图中的节点为交易流程节点,边为流程转移的方向;
[0087]
交易信息存储模块,用于将在每个电力交易流程节点发生的交易信息,以每个交易为存储单位存储在区块链上;
[0088]
新交易判断模块,用于在发生新的电力交易时,判断新的电力交易的处理对象是发生在预置时间前的电力交易,还是最近k次的交易,其中,k为交易者处理交易需求数量;
[0089]
第一交易处理模块,用于若新的电力交易的处理对象是发生在预置时间前的电力交易,则通过区块链网络读取所有链上交易,通过新的电力交易信息回放已完成的电力交易,形成当前交易全局状态,读取最新的交易序号,并根据当前交易全局状态来完成交易;
[0090]
第二交易处理模块,用于若新的电力交易的处理对象是最近k次的交易,则直接读取最新的电力交易信息,根据电力交易的有效交易区间,获取有效交易区间内的电力交易
信息,根据有效交易区间内的电力交易信息完成交易,其中,k《k,k为最近交易流程有效电力市场交易状态数量;
[0091]
交易更新模块,用于在每次完成交易后,根据有向无环图和最新的交易序号,更新链上的最近k次交易流程有效电力市场交易状态,并存储在区块链中。
[0092]
每个电力交易在区块链中存储的表现形式为:
[0093]
extrai=(indexi,statei,tradeinfoi)
[0094]
其中,extrai为第i个电力交易的额外信息,indexi为第i个电力交易的交易序号,statei为第i个电力交易对应的最近k次交易流程有效电力市场交易状态,tradeinfoi为第i个电力交易的业务信息。
[0095]
电力交易的有效交易区间为:
[0096]fi
=[index
i-k+1,indexi],k≥0
[0097]
其中,fi为第i个电力交易的有效交易区间。
[0098]
第i个电力交易对应的最近k次交易流程有效电力市场交易状态statei在区块链中以位图的形式进行存储,存储形式为:
[0099]
statei=[byte1,byte2,byte3,

,bytek]
[0100]
其中,bytek为最新交易状态,byte1为最早交易状态,byte2为byte1的下一次交易状态,byte3为byte2的下一次交易状态。
[0101]
本发明中还提供了一种电力市场交易状态确认设备的实施例,所述设备包括处理器以及存储器:
[0102]
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
[0103]
所述处理器用于根据所述程序代码中的指令执行前述的电力市场交易状态确认方法实施例中的电力市场交易状态确认方法。
[0104]
本发明中还提供了一种计算机可读存储介质的实施例,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述的电力市场交易状态确认方法实施例中的电力市场交易状态确认方法。
[0105]
本发明提供的电力市场交易状态确认装置、设备和存储介质,用于执行本发明提供的电力市场交易状态确认方法,其原理和达到的技术效果与本发明提供的电力市场交易状态确认方法相同,在此不再进行赘述
[0106]
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1