基于区块链的金融交易执行方法及装置、电子设备
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的金融交易执行方法及装置、电子设备。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用
发明内容
本说明书提出一种基于区块链的金融交易执行方法,应用于基于区块链搭建的分布式交易所;所述分布式交易所包括若干分布式部署的交易中心,所述方法包括:
接收连接至本地交易中心的用户客户端提交的交易订单;
将接收到的所述交易订单发送至所述区块链中的其它各交易中心;以及,接收所述其它各交易中心发送的,由连接至所述其它各交易中心的用户客户端提交的交易订单;
对接收到的交易订单进行交易撮合处理生成交易委托账本,并将生成的交易委托账本发送至所述区块链中的其它各交易中心;以及,接收所述其它各交易中心发送的,由所述其它各交易中心对接收到的交易订单进行交易撮合处理生成的交易委托账本;其中,所述交易委托账本包括基于交易订单撮合生成的成交订单;
发起对各交易中心生成的交易委托账本进行共识处理,并执行共识通过的交易委托账本中的成交订单。
可选的,所述分布式交易所中的各交易中心预先进行了时钟校准同步。
可选的,所述接收连接至本地交易中心的用户客户端提交的交易订单之前,包括:
向连接至本地交易中心的用户客户端推送交易行情信息,并记录所述交易行情信息的推送时刻。
可选的,发送至所述区块链中的其它各交易中心的交易订单中,包含所述交易订单的传播时延;其中,所述传播时延表征用户客户端将交易订单发送至连接的交易中心的传播时长。
可选的,所述传播时长为所述行情信息的推送时刻,与所述交易订单的接收时刻之间的时长间隔。
可选的,所述接收连接至本地交易中心的用户客户端提交的交易订单,包括:
接收连接至本地交易中心的用户客户端,在从所述推送时刻作为起始时刻的第一预设时长之内提交的交易订单;
所述接收所述其它各交易中心发送的,由连接至所述其它各交易中心的用户客户端提交的交易订单,包括:
确定将接收到的交易订单发送至区块链中的其它各交易中心的发送时刻;
接收所述其它各交易中心在从所述发送时刻作为起始时刻的第二预设时长之内发送的,由连接至所述其它各交易中心的用户客户端提交的交易订单。
可选的,所述将生成的交易委托账本发送至所述区块链中的其它各交易中心,包括:
确定对接收到的交易订单进行交易撮合处理的开始时刻;
将从所述开始时刻作为起始时刻的第一预设时长之内,生成的交易委托账本发送至所述区块链中的其它各交易中心;
接收所述其它各交易中心发送的,由所述其它各交易中心对接收到的交易订单进行交易撮合处理生成的交易委托账本,包括:
确定将生成的交易委托账本发送至所述区块链中的其它各交易中心的发送时刻;
接收所述其它各交易中心在从所述发送时刻作为起始时刻的第二预设时长之内发送的,由所述其它各交易中心对接收到的交易订单进行交易撮合处理生成的交易委托账本。
可选的,所述第一预设时长大于所述第一预设时长。
可选的,所述交易订单包括买入订单和卖出订单;
所述对接收到的交易订单进行交易撮合处理生成交易委托账本,包括:
对接收到的卖出订单;以及,买入价格大于或者等于所述卖出订单,并且所述传播时延最小的买入订单进行交易撮合处理,生成成交订单;
基于生成的成交订单创建所述交易委托账本。
可选的,所述发起对各交易中心生成的交易委托账本进行共识处理,包括:
将生成的交易委托账本与接收到的由其它各交易中心发送的交易委托账本分别进行比对,以确定各交易中心生成的交易委托账本中的相同数量;
计算所述相同数量与所述分布式交易所中的交易中心总数量的比值;
确定所述比值是否达到预设阈值;如果是,将所述各交易中心生成的交易委托账本中相同的交易委托账本确定为共识通过的交易委托账本。
可选的,还包括:
将共识通过的交易委托账本中的成交订单的执行结果,返回给对应的用户客户端。
可选的,所述分布式交易所包括若干分布在不同地域的交易中心。
本说明书还提出一种基于区块链的金融交易执行装置,应用于基于区块链搭建的分布式交易所;所述分布式交易所包括若干分布式部署的交易中心,所述装置包括:
接收模块,接收连接至本地交易中心的用户客户端提交的交易订单;
发送模块,将接收到的所述交易订单发送至所述区块链中的其它各交易中心;以及,接收所述其它各交易中心发送的,由连接至所述其它各交易中心的用户客户端提交的交易订单;
撮合模块,对接收到的交易订单进行交易撮合处理生成交易委托账本;
所述发送模块进一步:将生成的交易委托账本发送至所述区块链中的其它各交易中心;所述接收模块进一步:接收所述其它各交易中心发送的,由所述其它各交易中心对接收到的交易订单进行交易撮合处理生成的交易委托账本;其中,所述交易委托账本包括基于交易订单撮合生成的成交订单;
执行模块,发起对各交易中心生成的交易委托账本进行共识处理,并执行共识通过的交易委托账本中的成交订单。
可选的,所述分布式交易所中的各交易中心预先进行了时钟校准同步。
可选的,所述发送模块进一步:
在所述接收模块接收连接至本地交易中心的用户客户端提交的交易订单之前,向连接至本地交易中心的用户客户端推送交易行情信息,并记录所述交易行情信息的推送时刻。
可选的,发送至所述区块链中的其它各交易中心的交易订单中,包含所述交易订单的传播时延;其中,所述传播时延表征用户客户端将交易订单发送至连接的交易中心的传播时长。
可选的,所述传播时长为所述行情信息的推送时刻,与所述交易订单的接收时刻之间的时长间隔。
可选的,所述接收模块进一步:
接收连接至本地交易中心的用户客户端,在从所述推送时刻作为起始时刻的第一预设时长之内提交的交易订单;
所述接收模块进一步:
确定将接收到的交易订单发送至区块链中的其它各交易中心的发送时刻;
接收所述其它各交易中心在从所述发送时刻作为起始时刻的第二预设时长之内发送的,由连接至所述其它各交易中心的用户客户端提交的交易订单。
可选的,所述发送模块进一步:
确定对接收到的交易订单进行交易撮合处理的开始时刻;
将从所述开始时刻作为起始时刻的第一预设时长之内,生成的交易委托账本发送至所述区块链中的其它各交易中心;
所述接收模块进一步:
确定将生成的交易委托账本发送至所述区块链中的其它各交易中心的发送时刻;
接收所述其它各交易中心在从所述发送时刻作为起始时刻的第二预设时长之内发送的,由所述其它各交易中心对接收到的交易订单进行交易撮合处理生成的交易委托账本。
可选的,所述第一预设时长大于所述第一预设时长。
可选的,所述交易订单包括买入订单和卖出订单;
所述撮合模块:
对接收到的卖出订单;以及,买入价格大于或者等于所述卖出订单,并且所述传播时延最小的买入订单进行交易撮合处理,生成成交订单;
基于生成的成交订单创建所述交易委托账本。
可选的,所述执行模块:
将生成的交易委托账本与接收到的由其它各交易中心发送的交易委托账本分别进行比对,以确定各交易中心生成的交易委托账本中的相同数量;
计算所述相同数量与所述分布式交易所中的交易中心总数量的比值;
确定所述比值是否达到预设阈值;如果是,将所述各交易中心生成的交易委托账本中相同的交易委托账本确定为共识通过的交易委托账本。
可选的,所述发送模块进一步:
将共识通过的交易委托账本中的成交订单的执行结果,返回给对应的用户客户端。
可选的,所述分布式交易所包括若干分布在不同地域的交易中心。
本说明书还提出一种电子设备,应用于基于区块链搭建的分布式交易所;所述分布式交易所包括若干分布式部署的交易中心,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与基于区块链的金融交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:
接收连接至本地交易中心的用户客户端提交的交易订单;
将接收到的所述交易订单发送至所述区块链中的其它各交易中心;以及,接收所述其它各交易中心发送的,由连接至所述其它各交易中心的用户客户端提交的交易订单;
对接收到的交易订单进行交易撮合处理生成交易委托账本,并将生成的交易委托账本发送至所述区块链中的其它各交易中心;以及,接收所述其它各交易中心发送的,由所述其它各交易中心对接收到的交易订单进行交易撮合处理生成的交易委托账本;其中,所述交易委托账本包括基于交易订单撮合生成的成交订单;
发起对各交易中心生成的交易委托账本进行共识处理,并执行共识通过的交易委托账本中的成交订单。
通过以上技术方案,由于各交易中心可以互相同步本地用户客户端提交的交易订单,并且各交易中心可以通过区块链的共识机制,对各交易中心基于接收到的交易订单进行交易撮合处理生成的交易委托账本达成共识,因此上述分布式交易所中的各交易中心在对交易订单的处理能力上将是对等的,不同的用户客户端通过接入本地的交易中心,均能够得到对等的交易机会;从而,基于区块链技术,将若干分布式在不同地域的交易中心搭建成为分布式交易所,从根本上实现了,对交易中心这一稀缺资源进行分布式部署,使稀缺资源大众化,能够保障用户能够得到公平有效的交易机会。
附图说明
图1是一示例性实施例提供的一种基于区块链的金融交易执行方法的流程图。
图2是一示例性实施例提供的一种分布式交易所的架构图。
图3是一示例性实施例提供的一种电子设备的结构示意图。
图4是一示例性实施例提供的一种基于区块链的金融交易执行装置的框图。
具体实施方式
本说明书中,旨在提出一种基于区块链技术,将若干分布式部署的交易中心搭建成为分布式交易所,以对交易中心稀缺的处理资源进行分散,使稀缺资源大众化,从而可以保障用户能够得到公平有效的交易机会的技术方案。
在实现时,可以基于区块链技术,将若干分布式部署的交易中心搭建成为一个分布式交易所;
例如,在实现时,可以基于区块链技术将分布在不同地域的若干个交易中心搭建成为分布式交易所,从而可以将交易中心稀缺的处理资源分布在不同的地域,使处于不同地域的用户能够得到公平有效的交易机会
对于分布式交易所中的各交易中心而言,可以接收连接至本地的用户客户端提交的交易订单,并将接收到的交易订单同步到其它各交易中心,然后可以对接收到的交易订单进行交易撮合处理,生成交易委托账本。
进一步的,各交易中心还可以将在本地生成的交易委托账本,也同步到其它各交易中心。而各交易中心可以基于通过区块链的共识机制,对各交易中心生成的交易委托账本达成共识,然后执行共识通过的交易委托账本中的成交订单,完成对用户提交的交易订单的撮合成交。
通过以上技术方案,由于各交易中心可以互相同步本地用户客户端提交的交易订单,并且各交易中心可以通过区块链的共识机制,对各交易中心基于接收到的交易订单进行交易撮合处理生成的交易委托账本达成共识,因此上述分布式交易所中的各交易中心在对交易订单的处理能力上将是对等的,不同的用户客户端通过接入本地的交易中心,均能够得到对等的交易机会;从而,基于区块链技术,将若干分布式在不同地域的交易中心搭建成为分布式交易所,从根本上实现了,对交易中心这一稀缺资源进行分布式部署,使稀缺资源大众化,能够保障用户能够得到公平有效的交易机会。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图1,图1是本说明书一实施例提供的一种基于区块链的金融交易执行方法,应用于基于区块链搭建的分布式交易所中的任一交易中心;其中,所述分布式交易所包括若干分布式部署的交易中心,执行以下步骤:
步骤102,接收连接至本地交易中心的用户客户端提交的交易订单;
步骤104,将接收到的所述交易订单发送至所述区块链中的其它各交易中心;以及,接收所述其它各交易中心发送的,由连接至所述其它各交易中心的用户客户端提交的交易订单;
步骤106,对接收到的交易订单进行交易撮合处理生成交易委托账本,并将生成的交易委托账本发送至所述区块链中的其它各交易中心;以及,接收所述其它各交易中心发送的,由所述其它各交易中心对接收到的交易订单进行交易撮合处理生成的交易委托账本;其中,所述交易委托账本包括基于交易订单撮合生成的成交订单;
步骤108,发起对各交易中心生成的交易委托账本进行共识处理,并执行共识通过的交易委托账本中的成交订单。
在本说明书所描述的区块链,具体可以包括私有链、公有链以及联盟链等,在本说明书中不进行特别限定。
例如,在一个场景中,上述区块链具体可以是由若干交易中心的服务端设备作为成员设备组成的一个联盟链。用户可以通过用户客户端接入到上述联盟链中任意一个交易中心的服务端设备,来得到对等的交易机会。
在本说明书中所描述的交易订单,是指用户通过连接至交易中心的用户客户端提交的金融交易订单;例如,股票交易订单、外汇交易订单,等等。
在本说明书中,区块链的运营方可以基于区块链技术,将若干分布式部署的交易中心搭建成为一个分布式交易所。其中,分布式交易所,具体是指由若干分布在不同的物理地域,并且在对交易订单的处理能力对等的交易中心组成的,在架构上呈现一种分布式状态的新型交易所形态。
在示出的一种实施方式中,可以基于区块链技术将分布在不同地域的若干个交易中心搭建成为分布式交易所,从而可以将交易中心稀缺的处理资源分布在不同的地域,使处于不同地域的用户能够得到公平有效的交易机会。例如,在实际应用中,针对某一种具体的金融产品,可以在全球范围内交易人群较为密集的国家或者城市部署交易中心,然后基于区块链技术将各个交易中心搭建成为一个分布式的交易所。
以下以上述区块链为联盟链,基于联盟链将分布在不同地域的交易中心搭建成分布式交易所为例进行说明。在实现时,联盟链的运营方可以预先搭建一个联盟链网络,而分布在不同的地域的交易中心的服务端设备(比如可以是服务器、服务器集群、或者基于服务器集群搭建的交易平台),可以作为联盟链中的联盟成员加入到联盟链网络。
其中,交易中心的服务端设备,作为联盟成员加入至联盟链网络的具体实施过程,在本说明书中不再进行详述,本领域技术人员在将本说明书记载的技术方案付诸实现时,可以参考相关技术中的记载。
在本说明书中,为了确保组成上述分布式交易所的各交易中心,在对交易订单的处理能力上对等:
一方面,需要确保各交易中心的初始数据完全相同;例如,各交易中心可以共同维护完全相同的交易行情数据,以确保各交易中心的初始数据同步。
另一方面,由于各交易中心分布在不同的地域,因此位于不同的交易中心的服务端设备的时钟可能并不同步;在这种情况下,可以预先对各交易中心进行时钟校准同步,来确保位于不同的交易中心的服务端设备之间,可以达成时钟同步;例如,在实际应用中,可以对各交易中心进行时钟校准同步,将各交易中心的任意两台服务端设备之间的同步时间精度,控制在一个能够容忍的误差范围之内;比如,在金融交易领域,可以将各交易中心的任意两台服务端设备之间的同步时间精度控制在1毫秒之内。
请参见图2,图2为本说明书示出的一种基于联盟链搭建的分布式交易所的架构图。
以下将结合图2,以由交易中心1-3等三个位于不同地域的交易中心构成的分布式交易所为例进行说明。
在本说明书中,交易中心1-3均可以接入若干用户客户端,用户可以通过用户客户端向接入的交易中心的服务端设备,提交交易订单,来完成一笔金融交易。
而对于交易中心1-3而言,可以互相同步本地的用户客户端提交的交易订单,来全网络收集接入各交易中心的用户客户端提交的交易订单,对收集到的交易订单进行交易撮合处理生成交易委托账本;进一步的,各交易中心还可以互相同步生成的交易委托账本,来全网络收集由其它各交易中心生成的交易委托账本;然后,可以通过区块链的共识机制,对各交易中心生成的交易委托账本达成共识,并执行达成共识的交易委托账本中的成交订单,使得分布在不同地域的用户客户端通过接入本地的交易中心,均能够得到对等的交易机会。
其中,需要说明的是,各交易中心在接收由连接至本地交易中心的交易客户端提交的交易订单、接收其它各交易中心同步发送的交易订单、向其它各交易中心同步发送生成的交易委托账本、以及接收由其它各交易中心同步发送的生成的交易委托账本时,均可以设置相应的处理超时时长。
例如,在示出的一种实施方式中,各交易中心在接收由连接至本地交易中心的交易客户端提交的交易订单时,可以接收连接至本地交易中心的用户客户端,在从上述交易行情信息的推送时刻T0作为起始时刻的第一预设时长之内提交的交易订单。而各交易中心在接收其它各交易中心同步发送的交易订单时,可以确定将接收到的交易订单发送至其它各交易中心的发送时刻,然后接收其它各交易中心在从上述发送时刻作为起始时刻的第二预设时长之内发送的交易订单。
进一步的,在示出的一种实施方式中,各交易中心在向其它各交易中心同步发送生成的交易委托账本时,可以确定对接收到的交易订单进行交易撮合处理的开始时刻,将从上述开始时刻作为起始时刻的第一预设时长之内,生成的交易委托账本发送至其它各交易中心;相应的,各交易中心在接收由其它各交易中心同步发送的生成的交易委托账本时,可以确定将生成的交易委托账本发送至其它各交易中心的发送时刻,并接收其它各交易中心在从上述发送时刻作为起始时刻的第二预设时长之内发送的交易委托账本。
其中,以上示出的第二预设时长,可以大于上述第一预设时长。也即,在实际应用中,各交易中心在向其它各交易中同步发送交易订单或者交易委托账本时的处理超时时长,可以小于各交易中心在接收由其它各交易中心同步发送的交易订单或者交易委托账本时的处理超时时长。
通过这种方式,可以为各交易中心在全网络收集由其它各交易中心同步发送的交易订单或者交易委托账本时,预留出充足的收集时间。
在以下实施例中,将以上述第一预设时长为10毫秒,上述第二预设时长为100毫秒为例进行说明。
需要强调的是,以上述第一预设时长为10毫秒,上述第二预设时长为100毫秒为例,仅为示例性的。显然,在实际应用中,本领域技术人员可以结合实际的需求,对上述第一预设时长和上述第二预设时长的时长长度进行自定义设置。
请参见图2,在本说明书中,交易中心1-3可以同步的向接入各交易中心的用户客户端推送交易行情信息,使得用户可以通过用户客户端查看到最新的交易行情信息作为交易参考。
其中,上述交易行情信息具体可以包括与金融产品的交易相关,能够作为用户的交易参考的信息;
例如,在实际应用中,以股票交易为例,上述交易行情信息,具体可以包括诸如股票的价格变动等信息。
需要说明的是,各交易中心在向用户客户端同步推送交易行情信息时,可以采用周期性推送的方式;
例如,在实际应用中,交易行情信息的发送周期可以采用微秒级的时间周期(即发送周期可以足够小),从而使得各交易中心可以以近乎实时的方式,向接入各交易中心的用户客户端同步推送交易行情信息。
请继续参见图2,假设交易中心1-3在T0时刻,同步的向接入各交易中心的用户客户端发送了交易行情信息,此时距离各交易中心最近的用户客户端也会优先接收到最新的交易行情信息。各用户可以通过用户客户端查看上述交易行情信息作为交易参考,来了解最新的交易行情,并通过交易客户端将发起的交易订单提交至该交易客户端接入的交易中心。
在示出的一种实施方式中,各交易中心在T0时刻向连接至本地交易中心的用户客户端同步推送了交易行情信息后,可以同时开始计时,在从T0时刻作为起始时刻的10ms之内,接收由连接至本地交易中心的用户客户端提交的交易订单。
也即,各交易中心在T0时刻向连接至本地交易中心的用户客户端同步推送了交易行情信息后,等待10ms,接收由连接至本地交易中心的用户客户端在这10ms内提交的交易订单。而对于各交易中心在从T0时刻作为起始时刻的10ms之外,继续接收到的交易订单,则可以在下一个共识周期进行撮合交易处理。
其中,各交易中心在接收到接入的用户客户端提交的交易订单后,首先可以统计接收到的交易订单的传播延时;上述传播延时,具体用于表征用户客户端在将交易订单发送至接入的交易中心的传播时长。
在示出的一种实施方式中,具体可以用上述T0时刻(即上述交易行情信息的推送时刻),与交易订单的接收时刻之间的时长间隔,来表示该交易订单的传播延时。
在这种情况下,各交易中心在T0时刻向接入的各用户客户端推送交易行情信息的同时,可以记录当前的本地时间戳作为上述交易行情信息的推送时刻;以及,各交易中心在收到用户客户端提交的交易订单时,还可以记录接收到该交易订单的本地时间戳作为该交易订单的接收时刻;然后,各交易中心可以将记录的该交易订单的接收时刻,减去记录的上述交易行情信息的推送时刻,来得到该交易订单,从用户客户端发送至交易中心的传播时长。
当然,在实际应用中,除了以上描述的,利用上述T0时刻,与交易订单的接收时刻之间的时长间隔,来表示该交易订单的传播延时以外,也可以仅利用交易订单的接收时刻来表示该交易订单的传播延时,在本说明书中不再进行特别限定。
在示出的另一种实施方式中,由于在金融交易的场景下,交易订单达到各交易中心的传播时延,是进行交易撮合处理的一个重要的参数,因此各交易中心在将接收到的,由连接至本地交易中心的用户客户端提交的交易订单同步发送至其它各交易中心时,也可以将统计出的各交易订单的传播时延,也一并发送给其它各交易中心。
在这种情况下,各交易中心向其它各交易中心同步发送的交易订单中,除了可以携带交易订单的原始信息以外,还可以携带各交易订单的传播时延。
当然,在实际应用中,各交易订单的传播时延,也可以不与交易订单同步一并发送,而是采用单独发送的方式,在本说明书中不进行特别限定;例如,各交易中心在将接收到的,由连接至本地交易中心的用户客户端提交的交易订单同步发送至其它各交易中心之后,再通过构建单独的消息,再将各交易订单的传播时延同步发送给其它各交易中心。
请继续参见图2,当各交易中心以T0时刻作为起始时刻,等待10ms之后,可以立即将已经接收到的订单信息,同步发送给上述联盟链中的其它各交易中心。
例如,在一种实现方式中,可以采用广播发送的方式,将接收到的由连接至本地交易中心的用户客户端提交的交易订单,广播发送至上述联盟链中的其它各交易中心;比如,以交易中心1为例,交易中心1可以将接收到的由连接至交易中心1的用户客户端提交的交易订单,广播发送至交易中心2和交易中心3。
相应的,对于交易中心1-3中的任一交易中心来说,除了需要将接收到的由连接至本地交易中心的用户客户端提交的交易订单,同步发送至其它各交易中心以外,也可以接收其它各交易中心发送的,由连接至其它各交易中心的用户客户端提交的交易订单。
在示出的一种实施方式中,各交易中心在将接收到的交易订单同步发送至其它各交易中心后,可以同时开始计时,在从T0+10ms时刻(即将接收到的交易订单发送至其它各交易中心的发送时刻)作为起始时刻的100ms之内,由其它各交易中心发送的交易订单。
也即,各交易中心在将接收到的交易订单同步发送至其它各交易中心后,等待100ms,接收由其它各交易中心在这100ms内提交的交易订单。
在本说明书中,各交易中心在将接收到的交易订单同步发送至其它各交易中心,并且等待100ms之后,此时无论各交易中心是否接收到了所有交易中心同步发送的交易订单,都可以立即基于全网收集到的交易订单开始进行交易撮合处理。
其中,对全网收集到的交易订单开始进行交易撮合处理,即为对收集到的交易订单中的买入订单和卖出订单进行撮合,生成最终可以成交的成交订单的过程。
在示出的一种实施方式中,各交易中心在对全网收集到的交易订单进行交易撮合处理时,可以对接收到的卖出订单;以及,买入价格大于或者等于所述卖出订单,并且所述传播时长最小的买入订单进行交易撮合处理,生成成交订单,然后基于生成的成交订单,来进一步生成交易委托账本。也即,交易委托账本中记录的仅为经过撮合可以成交的订单。
在实现时,各交易中心,可以针对收集到的每一笔卖出订单,分别查找买入价格大于或者等于上述卖出订单的卖出价格的买入订单;如果查找到了买入价格大于或者等于上述卖出订单的卖出价格的买入订单,此时买入订单和卖出订单的价格适配,可以基于该卖出订单和该买入订单生成成交订单。如果经过撮合,对于一笔卖出订单,存在价格适配的多笔买入价格完全相同的买入订单,此时可以进一步比较该多笔买入订单的上述传播时延,基于该卖出订单和上述传播实现最小的一笔或者多笔买入订单生成成交订单,
请继续参见图2,在示出的一种实施方式中,各交易中心在等待100ms之后,开始进行交易撮合处理时,可以同时开始计时,在从T0+10ms+100ms时刻(即交易撮合处理的开始时刻)作为起始时刻的10ms之内,本地生成的交易委托账本同步发送至其它各交易中心。
也即,各交易中心从T0+10ms+100ms时刻开始,再等待10ms,将在这10ms之内生成的交易委托账本同步发送至其它各交易中心。
相应的,对于交易中心1-3中的任一交易中心来说,除了需要将本地生成的交易委托账本,同步发送至其它各交易中心以外,也可以接收其它各交易中心发送的交易委托账本。
在示出的一种实施方式中,各交易中心在将本地生成的交易委托账本同步发送至其它各交易中心后,可以同时开始计时,在从T0+10ms+100ms+10ms时刻(即将本地生成的交易委托账本发送至其它各交易中心的发送时刻)作为起始时刻的100ms之内,接收由其它各交易中心同步发送的交易委托账本。
在本说明书中,当各交易中心全网收集到上述联盟链中的各交易中心生成的交易委托账本后,可以基于上述联盟链支持的共识算法,对收集到的交易委托账本进行共识处理。
其中,需要说明的是,在本说明中,上述联盟链采用的共识算法,在本说明书中不再进行特别限定;
例如,在实现时,可以采用诸如pbft、raft等在联盟链应用较为广泛的共识算法,也可以由联盟链的运营方基于实际的业务场景和需求,来定制相应的共识算法。
在示出的一种实施方式中,以上述联盟链采用的共识算法为拜占庭容错(Byzantine Fault Tolerance)系列算法为例,各交易中心在对全网收集到的交易委托账本进行共识时,可以将本地生成的交易委托账本与接收到的由其它各交易中心发送的交易委托账本分别进行比对,来确定各交易中心生成的交易委托账本中相同的交易委托账本的数量;然后,可以进一步计算相同的交易委托账本的数量,与上述分布式交易所中的交易中心的总数量的比值,并确定上述比值是否达到拜占庭容错阈值;如果是,可以将由各交易中心生成的交易委托账本中相同的交易委托账本,确定为共识通过的交易委托账本。
其中,上述拜占庭容错阈值的具体取值,在实际应用中,可以由联盟链的运营方基于实际的需求进行自定义设置;
例如,拜占庭容错系列算法通用的拜占庭容错阈值为2/3,在这种情况下,各交易中心在计算出相同的交易委托账本的数量,与上述分布式交易所中的交易中心的总数量的比值后,可以确定上述比值是否达到2/3;如果是,此时共识达成,可以将由各交易中心生成的交易委托账本中相同的交易委托账本,确定为共识通过的交易委托账本;比如,如果交易中心1-3分别生成的交易委托账本中,交易中心1和交易中心2生成的交易委托账本完全相同,此时相同的交易委托账本的数量与交易中心总数量的比值达到2/3,可以认为共识达成,交易中心1和交易中心2生成的交易委托账本为共识通过的交易委托账本。
在本说明书中,当交易中心1-3完成以上示出的共识过程,可以执行共识通过的交易委托账本中收录的成交订单,然后将共识通过的交易委托账本中的成交订单的执行结果,返回给对应的用户客户端。
通过以上技术方案,由于各交易中心可以互相同步本地的用户客户端提交的交易订单,并且各交易中心可以通过区块链的共识机制,对各交易中心基于接收到的交易订单进行交易撮合处理生成的交易委托账本达成共识,因此上述分布式交易所中的各交易中心在对交易订单的处理能力上将是对等的,分布在不同地域的用户客户端通过接入本地的交易中心,均能够得到对等的交易机会;从而,基于区块链技术,将若干分布式在不同地域的交易中心搭建成为分布式交易所,从根本上实现了,将交易中心这一稀缺资源,分布在不同的地域,使稀缺资源大众化,能够保障处于不同地域的用户能够得到公平有效的交易机会;
例如,传统的交易所均采用中心化的架构,由于交易规则规定,在对由用户提交的买入订单和卖出订单进行撮合成交的过程中,先到达交易所的交易订单会优先处理,也即在物理地域上距离交易所更近的用户,可能会得到优先成交的机会;然而,这种看起来公平的规则,会导致距离交易所较近的位置为稀缺资源,只有少数资金雄厚的机构或者个人才能够得到这种位置。而基于本方案,如果基于区块链技术,将若干分布式在不同地域的交易中心搭建成为分布式交易所,由于分布在不同地域的用户客户端通过接入本地的交易中心,均能够得到对等的交易机会,因此相当于将交易中心这一稀缺资源大众化,使得不同地域的用户能够得到公平有效的交易机会。
与上述方法实施例相对应,本说明书还提供了一种基于区块链的金融交易执行装置的实施例。所述装置可以应用于基于区块链搭建的分布式交易所;所述分布式交易所包括若干分布式部署的交易中心。本说明书的基于区块链的金融交易执行装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书的基于区块链的金融交易执行装置所在电子设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图4是本说明书一示例性实施例示出的一种基于区块链的金融交易执行装置的框图。
请参考图4,所述基于区块链的金融交易执行装置40可以应用在前述图2所示的电子设备中,包括有:接收模块401、发送模块402、撮合模块403和执行模块404。
接收模块401,接收连接至本地交易中心的用户客户端提交的交易订单;
发送模块402,将接收到的所述交易订单发送至所述区块链中的其它各交易中心;以及,接收所述其它各交易中心发送的,由连接至所述其它各交易中心的用户客户端提交的交易订单;
撮合模块403,对接收到的交易订单进行交易撮合处理生成交易委托账本;
所述发送模块402进一步:将生成的交易委托账本发送至所述区块链中的其它各交易中心;所述接收模块401进一步:接收所述其它各交易中心发送的,由所述其它各交易中心对接收到的交易订单进行交易撮合处理生成的交易委托账本;其中,所述交易委托账本包括基于交易订单撮合生成的成交订单;
执行模块404,发起对各交易中心生成的交易委托账本进行共识处理,并执行共识通过的交易委托账本中的成交订单。
在本实施例中,所述分布式交易所中的各交易中心预先进行了时钟校准同步。
在本实施例中,所述发送模块402进一步:
在所述接收模块接收连接至本地交易中心的用户客户端提交的交易订单之前,向连接至本地交易中心的用户客户端推送交易行情信息,并记录所述交易行情信息的推送时刻。
在本实施例中,发送至所述区块链中的其它各交易中心的交易订单中,包含所述交易订单的传播时延;其中,所述传播时延表征用户客户端将交易订单发送至连接的交易中心的传播时长。
在本实施例中,所述传播时长为所述行情信息的推送时刻,与所述交易订单的接收时刻之间的时长间隔。
在本实施例中,所述接收模块401进一步:
接收连接至本地交易中心的用户客户端,在从所述推送时刻作为起始时刻的第一预设时长之内提交的交易订单;
所述接收模块401进一步:
确定将接收到的交易订单发送至区块链中的其它各交易中心的发送时刻;
接收所述其它各交易中心在从所述发送时刻作为起始时刻的第二预设时长之内发送的,由连接至所述其它各交易中心的用户客户端提交的交易订单。
在本实施例中,所述发送模块402进一步:
确定对接收到的交易订单进行交易撮合处理的开始时刻;
将从所述开始时刻作为起始时刻的第一预设时长之内,生成的交易委托账本发送至所述区块链中的其它各交易中心;
所述接收模块401进一步:
确定将生成的交易委托账本发送至所述区块链中的其它各交易中心的发送时刻;
接收所述其它各交易中心在从所述发送时刻作为起始时刻的第二预设时长之内发送的,由所述其它各交易中心对接收到的交易订单进行交易撮合处理生成的交易委托账本。
在本实施例中,所述第一预设时长大于所述第一预设时长。
在本实施例中,所述交易订单包括买入订单和卖出订单;
所述撮合模块403:
对接收到的卖出订单;以及,买入价格大于或者等于所述卖出订单,并且所述传播时延最小的买入订单进行交易撮合处理,生成成交订单;
基于生成的成交订单创建所述交易委托账本。
在本实施例中,所述执行模块404:
将生成的交易委托账本与接收到的由其它各交易中心发送的交易委托账本分别进行比对,以确定各交易中心生成的交易委托账本中的相同数量;
计算所述相同数量与所述分布式交易所中的交易中心总数量的比值;
确定所述比值是否达到预设阈值;如果是,将所述各交易中心生成的交易委托账本中相同的交易委托账本确定为共识通过的交易委托账本。
在本实施例中,所述发送模块402进一步:
将共识通过的交易委托账本中的成交订单的执行结果,返回给对应的用户客户端。
在本实施例中,所述分布式交易所包括若干分布在不同地域的交易中心。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。所述电子设备可以应用于基于区块链搭建的分布式交易所;所述分布式交易所包括若干分布式部署的交易中心;该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的金融交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:
接收连接至本地交易中心的用户客户端提交的交易订单;
将接收到的所述交易订单发送至所述区块链中的其它各交易中心;以及,接收所述其它各交易中心发送的,由连接至所述其它各交易中心的用户客户端提交的交易订单;
对接收到的交易订单进行交易撮合处理生成交易委托账本,并将生成的交易委托账本发送至所述区块链中的其它各交易中心;以及,接收所述其它各交易中心发送的,由所述其它各交易中心对接收到的交易订单进行交易撮合处理生成的交易委托账本;其中,所述交易委托账本包括基于交易订单撮合生成的成交订单;
发起对各交易中心生成的交易委托账本进行共识处理,并执行共识通过的交易委托账本中的成交订单。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的金融交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:
接收连接至本地交易中心的用户客户端提交的交易订单之前,向连接至本地交易中心的用户客户端推送交易行情信息,并记录所述交易行情信息的推送时刻。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的金融交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:
接收连接至本地交易中心的用户客户端,在从所述推送时刻作为起始时刻的第一预设时长之内提交的交易订单;
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的金融交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:
确定将接收到的交易订单发送至区块链中的其它各交易中心的发送时刻;
接收所述其它各交易中心在从所述发送时刻作为起始时刻的第二预设时长之内发送的,由连接至所述其它各交易中心的用户客户端提交的交易订单。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的金融交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:
确定对接收到的交易订单进行交易撮合处理的开始时刻;
将从所述开始时刻作为起始时刻的第一预设时长之内,生成的交易委托账本发送至所述区块链中的其它各交易中心;
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的金融交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:
确定将生成的交易委托账本发送至所述区块链中的其它各交易中心的发送时刻;
接收所述其它各交易中心在从所述发送时刻作为起始时刻的第二预设时长之内发送的,由所述其它各交易中心对接收到的交易订单进行交易撮合处理生成的交易委托账本。
在本实施例中,所述交易订单包括买入订单和卖出订单;
通过读取并执行所述存储器存储的与基于区块链的金融交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:
对接收到的卖出订单;以及,买入价格大于或者等于所述卖出订单,并且所述传播时延最小的买入订单进行交易撮合处理,生成成交订单;
基于生成的成交订单创建所述交易委托账本。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的金融交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:
将生成的交易委托账本与接收到的由其它各交易中心发送的交易委托账本分别进行比对,以确定各交易中心生成的交易委托账本中的相同数量;
计算所述相同数量与所述分布式交易所中的交易中心总数量的比值;
确定所述比值是否达到预设阈值;如果是,将所述各交易中心生成的交易委托账本中相同的交易委托账本确定为共识通过的交易委托账本。
在本实施例中,通过读取并执行所述存储器存储的与基于区块链的金融交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:
将共识通过的交易委托账本中的成交订单的执行结果,返回给对应的用户客户端。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。