数字货币交易的执行方法及装置和电子设备与流程

文档序号:19996011发布日期:2020-02-22 02:44阅读:474来源:国知局
数字货币交易的执行方法及装置和电子设备与流程

本说明书实施例涉及数字货币领域,尤其涉及一种数字货币交易的执行方法及装置和电子设备。



背景技术:

目前,基于电子账户实现的移动支付已经十分普遍,然而这种支付方式本质上还只是一种支付工具,是一种对现有法定货币的信息化过程,还不能称作严格意义上的数字货币。

而所谓数字货币(digitalcurrencyelectronicpayment,简称dcep),通常是由中央银行发行或中央银行授权发行的,以密码学技术作为技术支撑,以代表具体金额的加密数字串为表现形式的法定货币。与传统的移动支付相比,数据货币其本身就是法定货币,也可以不再需要与电子账户相关联,因此数字货币已经不仅仅只是支付工具。

基于数字货币现有的发行制度,通常遵循从中央银行到运营机构的双层投放体系;其中,运营机构通常是指中央银行许可的诸如商业银行、第三方支付机构(比如alipay)等拥有发行数字货币的权利的机构。运营机构可以向中央银行申请数字货币的发行额度,并基于申请到的发行额度通过中央银行部署在运营机构的前置加密机来“发行”数字货币,然后再基于“发行”的数字货币面向普通用户提供与数据货币相关的兑换服务;比如,普通用户可以选择将个人的电子账户余额兑换为数字货币,或者将持有的数字货币兑换为电子账户余额。



技术实现要素:

本说明书实施例提供的一种数字货币交易的执行方法及装置和电子设备:

根据本说明书实施例的第一方面,提供一种数字货币交易的执行方法,所述方法包括:

获取待执行的数字货币交易;

基于所述待执行的数字货币交易的交易内容,生成与所述数字货币交易中的各个参与方对应的交易执行指令;其中,所述交易执行指令包含有指令优先级,所述指令优先级指示所述交易执行指令在生成的与各个参与方对应的交易执行指令中的执行顺序;

根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令进行排序,并按照排序后的顺序依次执行各个交易执行指令以完成所述数字货币交易。

可选的,所述待执行的数字货币交易包括多笔数字货币交易;

所述生成与所述数字货币交易中的各个参与方对应的交易执行指令,包括:

基于所述待执行的数字货币交易的交易时间,对所述多笔数字货币交易进行排序;

按照排序后的交易顺序,依次生成与所述多笔数字货币交易中的各笔数字货币交易中各个参与方对应的交易执行指令。

可选的,所述根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令进行排序,包括:

根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令标记依赖指令;

基于为生成的各交易执行指令标记的依赖指令,确定各交易执行指令之间的依赖关系,并基于确定出的依赖关系对生成的各交易执行指令分配排序号。

可选的,所述交易执行指令标记的依赖指令,包括一个或者多个;被标记了相同的依赖指令的多个交易执行指令,具有相同的排序号。

可选的,所述数字货币交易中的各个参与方包含:数字货币的转出账户和转入账户;生成的所述交易执行指令,包括与转出账户对应的交易执行指令和与转入账户对应的交易执行指令;其中,与转出账户对应的交易执行指令的指令优先级,高于与转入账户对应的交易执行指令;

根据所述优先级为生成的与所述数字货币交易中各个参与方对应的交易执行指令标记依赖指令,包括:

针对与所述多笔数字货币交易中的任一数字货币交易,将生成的与该任一数字货币交易包含的转出账户对应的交易执行指令,标记为与该任一数字货币交易包含的转入账户对应的交易执行指令的依赖指令;

确定所述多笔数字货币交易中,是否存在交易时间早于所述任一数字货币交易,并且包含的转入账户为所述任一数字货币交易包含的转出账户的目标数字货币交易;

如果是,将生成的与所述目标数字货币交易包含的转入账户对应的交易执行指令,标记为与所述任一数字货币交易包含的转出账户对应的交易执行指令的依赖指令;

如果否,不为与所述任一数字货币交易包含的转出账户对应的交易执行指令标记依赖指令。

可选的,所述与转出账户对应的交易执行指令包括,从转出账户中拆分出与交易金额等额的数字货币的执行指令;所述与转入账户对应的交易执行指令包括,将拆分出的数字货币确权给所述转入账户的执行指令。

根据本说明书实施例的第二方面,提供一种数字货币交易的执行装置,所述装置包括:

获取单元,获取待执行的数字货币交易;

生成单元,基于所述待执行的数字货币交易的交易内容,生成与所述数字货币交易中的各个参与方对应的交易执行指令;其中,所述交易执行指令包含有指令优先级,所述指令优先级指示所述交易执行指令在生成的与各个参与方对应的交易执行指令中的执行顺序;

执行单元,根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令进行排序,并按照排序后的顺序依次执行各个交易执行指令以完成所述数字货币交易。

可选的,所述待执行的数字货币交易包括多笔数字货币交易;

所述生成单元,包括:基于所述待执行的数字货币交易的交易时间,对所述多笔数字货币交易进行排序;按照排序后的交易顺序,依次生成与所述多笔数字货币交易中的各笔数字货币交易中各个参与方对应的交易执行指令。

可选的,所述执行单元中根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令进行排序,包括:

根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令标记依赖指令;基于为生成的各交易执行指令标记的依赖指令,确定各交易执行指令之间的依赖关系,并基于确定出的依赖关系对生成的各交易执行指令分配排序号。

可选的,所述交易执行指令标记的依赖指令,包括一个或者多个;被标记了相同的依赖指令的多个交易执行指令,具有相同的排序号。

可选的,所述数字货币交易中的各个参与方包含:数字货币的转出账户和转入账户;生成的所述交易执行指令,包括与转出账户对应的交易执行指令和与转入账户对应的交易执行指令;其中,与转出账户对应的交易执行指令的指令优先级,高于与转入账户对应的交易执行指令;

所述执行单元中根据所述优先级为生成的与所述数字货币交易中各个参与方对应的交易执行指令标记依赖指令,包括:

针对与所述多笔数字货币交易中的任一数字货币交易,将生成的与该任一数字货币交易包含的转出账户对应的交易执行指令,标记为与该任一数字货币交易包含的转入账户对应的交易执行指令的依赖指令;确定所述多笔数字货币交易中,是否存在交易时间早于所述任一数字货币交易,并且包含的转入账户为所述任一数字货币交易包含的转出账户的目标数字货币交易;如果是,将生成的与所述目标数字货币交易包含的转入账户对应的交易执行指令,标记为与所述任一数字货币交易包含的转出账户对应的交易执行指令的依赖指令;如果否,不为与所述任一数字货币交易包含的转出账户对应的交易执行指令标记依赖指令。

可选的,所述与转出账户对应的交易执行指令包括,从转出账户中拆分出与交易金额等额的数字货币的执行指令;所述与转入账户对应的交易执行指令包括,将拆分出的数字货币确权给所述转入账户的执行指令。

根据本说明书实施例的第五方面,提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为上述任一项数字货币交易的执行方法。

本说明书实施例,提供了一种数字货币交易的执行方案,将数字货币交易拆分为各个参与方对应的交易执行指令,并且生成每条交易执行指令的执行优先级;通过执行优先级指示所述交易执行指令在生成的与各个参与方对应的交易执行指令中的执行顺序,对生成的与所述数字货币交易中各个参与方对应的交易执行指令进行排序;按照排序后的顺序依次执行各个交易执行指令以完成所述数字货币交易。如此,通过交易执行指令的排序结果,就可以使得数字货币交易能够追溯数字货币流通的整个生命周期,同时可以满足并发处理,便于数字货币的可控匿名流通。

附图说明

图1是本说明书一实施例提供的发行数字货币的示意图;

图2是本说明书一实施例提供的数字货币交易的执行方法的流程图;

图3a-3b是本说明书一实施例提供的交易执行指令排序的示意图;

图4是本说明书一实施例提供的数字货币交易的执行装置的硬件结构图;

图5是本说明书一实施例提供的数字货币交易的执行装置的模块示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先介绍本说明书涉及到的一些技术概念:

数字货币通常是由中央银行发行或中央银行授权发行的,以密码学技术作为技术支撑;以代表具体金额的加密数字串为表现形式的法定货币。

数字货币发行机构:所有dc/ep的发行机构均为中央银行。

数字货币运营机构:dc/ep的运营机构通常为中央银行许可的具有发行dc/ep的权利的第三方运营机构;例如,商业银行,第三方支付平台等第三方运营机构,可以在中央银行的许可下,取得dc/ep的发行权利。

请参见图1,图1为本说明书示出的一种发行数字货币的示意图。

基于dc/ep现有的发行制度,通常遵循从中央银行到运营机构的双层投放体系。所谓双层投放体系,是指中央银行将发行dc/ep的权利授权给运营机构,充分利用运营机构现有成熟的it基础设施和服务体系,来面向广大用户群体发行和“投放”数字货币。

如图1所示,在上述双层投放体系下,运营机构在取得中央银行的dc/ep发行许可后,可以向中央银行申请发行dc/ep的额度。而中央银行在审批通过后,可以向运营机构返回运营机构取得的发行额度的额度凭证;例如,中央银行返回的额度凭证,通常可以是一串加密的字符串。

其中,运营机构所取得的dc/ep的发行额度,通常取决于运营机构在中央银行缴纳的准备金的额度。例如,采用双层投放体系,取得dc/ep的发行许可的运营机构,可以在中央银行开户准备金账户,并可以按照发行额度的100%向中央银行缴纳准备金。

请继续参见图1,各个具有dc/ep发行权利的运营机构之间,可以通过中央银行部署的互联互通设备进行互联互通。除此之外,中央银行还可以在各个具有dc/ep发行权利的运营机构,部署前置加密机;例如,中央银行可以将前置加密机部署在各个运营机构的机房中。

其中,上述前置加密机,具体用于进行与数字货币相关的加密操作。运营机构可以通过调用该前置加密机,将中央银行下发的额度凭证作为调用参数提交给前置加密机,来将运营机构取得的dc/ep的发行额度,“兑换”成大额的dc/ep;

例如,运营机构在将额度凭证提交给前置加密机之后,前置加密机可以对运营机构提交的额度凭证进行校验,并在校验通过后,由前置加密机为该运营机构创建与该运营机构的发行额度匹配的dc/ep,并将创建的dc/ep返回给运营机构。

需要说明的是,上述前置加密机的具体形态可以是一台搭载的安全运算环境的硬件设备;在该硬件设备搭载的安全运算环境中,可以维护中央银行的公私钥对等数据,该安全运算环境可以承担dc/ep发行过程中所涉及的一些列的加密操作。

当然,在实际应用中,上述前置加密机具体也可以是由中央银行开发完成的加密软件,在本说明书中不进行特别限定;也即,本说明书中描述的前置加密机,具体可以是一台硬件设备,也可以是一台逻辑设备。

当运营机构在将取得的dc/ep的发行额度,“兑换”成大额的dc/ep之后,可以将该大额的dc/ep在运营机构的数据库中进行存储,并基于数据库中存储的该大额的dc/ep,面向普通用户提供与数据货币相关的兑换服务;比如,普通用户可以选择将个人的电子账户余额兑换为数字货币,或者将持有的数字货币兑换为电子账户余额。

请继续参见图1,对于普通用户而言,可以在运营机构可以开通数字货币钱包,并可以将个人的电子账户余额兑换成为数字货币,在数字货币钱包中进行维护。

假设运营机构的数据库中存储的大额dc/ep的金额为1万元,用户使用电子账户余额发起兑换1000元dc/ep的操作;此时运营机构可以调用中央银行部署的前置加密机,并将1万元的dc/ep,以及需要置换的金额1000元和9000元作为调用参数,提交给前置加密机。

前置加密机则可以向运营机构返回两张金额分别为1000元和9000元的dc/ep。而运营机构在收到前置加密机返回的两张dc/ep后,可以将数据库中存储的原有的1万元dc/ep相关的数据记录删除,并在数据库中重新插入一张面额为9000元的dc/ep的数据记录,同时将面额为1000元的dc/ep记录到该用户的名下。

其中,用户名下的数字货币,通常是以数字货币列表的形式存储在运营机构的数据库中;而用户在运营机构开通的数字货币钱包中,可以仅维护该数字货币列表的标识;例如,在一个例子中,用户名下的数字货币,可以以用户资产列表的形式存储在运营机构的数据库中;而在用户的数字货币钱包中可以仅维护该用户资产列表的asset-id。

在实际应用中,用户可以通过客户端向运营机构的服务端发送与dc/ep相关的交易请求,与运营机构的服务端进行交互,来完成与dc/ep相关的交易;

例如,与dc/ep相关的交易,可以包括将个人的电子账户余额兑换为dc/ep的交易、将持有的dc/ep兑换为电子账户余额、或者向其它用户转账dc/ep的交易,等等。

在相关技术中,由于数字货币交易过程中存在不同操作类型、不同数字货币钱包间的数字货币处理;因此追溯数字货币交易过程一般采用多次重试机制。所述多次重试是指重复多次执行数字货币交易。但是,多次重试交易由于需要重复执行同一交易,会引起大量的额外资源开销,效率较低。

为此,本说明书提供了一种数字货币交易的执行方案,将数字货币交易拆分为各个参与方对应的交易执行指令,并且生成每条交易执行指令的执行优先级;通过执行优先级指示所述交易执行指令在生成的与各个参与方对应的交易执行指令中的执行顺序,对生成的与所述数字货币交易中各个参与方对应的交易执行指令进行排序;按照排序后的顺序依次执行各个交易执行指令以完成所述数字货币交易。如此,通过交易执行指令的排序结果,就可以使得数字货币交易能够追溯数字货币流通的整个生命周期,同时可以满足并发处理,便于数字货币的可控匿名流通。

拓扑排序,使得数字货币的交易能够追溯数字货币流通的整个生命周期,同时可以满足并发处理,便于数字货币的可控匿名流通。

以下可以参考图2所示的一种数字货币交易的执行方法,所述方法可以应用在数字货币交易系统对应的服务端,所述方法包括以下步骤:

步骤210:获取待执行的数字货币交易;

步骤220:基于所述待执行的数字货币交易的交易内容,生成与所述数字货币交易中的各个参与方对应的交易执行指令;其中,所述交易执行指令包含有指令优先级,所述指令优先级指示所述交易执行指令在生成的与各个参与方对应的交易执行指令中的执行顺序;

步骤230:根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令进行排序,并按照排序后的顺序依次执行各个交易执行指令以完成所述数字货币交易。

举例说明,假设某待执行的数字货币交易生成的交易执行指令包括:指令1、指令2和指令3;如果指令2的优先级最高、指令3的优先级次高,指令1的优先级最低;那么排序顺序即为指令2、指令3、指令1。

顺序执行过程为:从优先级最高的指令2开始执行,在指令2执行完成后,执行剩余指令中优先级最高的指令3,在指令3执行完成后,执行剩余指令中优先级最高的指令1,在指令1执行完成后,该数字货币交易即执行完成。

该实施例中,对于每个交易执行指令还可以包括参与方对应的数字货币钱包账户、数字货币钱包的操作类型、数字货币钱包中数字货币的操作金额。

在一实施例中,所述指令优先级指示各个参与方对应的交易执行指令的执行顺序中所述交易执行指令的前一交易执行指令;

按照排序后的顺序依次执行各个交易执行指令以完成所述数字货币交易,通过如下方式迭代执行:

遍历待执行的交易执行指令的优先级,从无前一交易执行指令的初始交易执行指令开始执行;

每次执行完交易执行指令后,删除记录该执行完的交易执行指令的优先级。

以数字货币的转账交易a-d为例,a数字货币钱包转账5元给d数字货币钱包。

针对该数字货币交易a-d,可以生成针对a和d的2个交易执行指令,如下表1所示:

表1

交易执行指令1表示的是,a数字货币钱包,需要从持有的数字货币中准备出一个或多个总计面值为5元的数字货币,并且无前一交易执行指令的优先级;

交易执行指令2表示的是,d数字货币钱包,将准备出的面值为5元的数字货币确权给d数字货币钱包;并且前一交易执行指令为交易执行指令1。

从无前一交易执行指令的交易执行指令1开始执行,在交易执行指令1执行完后,删除交易执行指令2的优先级中的交易执行指令1;

此时交易执行指令2也成为了无前一交易执行指令的交易执行指令,因此之后执行的是交易执行指令2。

在实际应用中,随着业务发展,可能存在并发的待执行的数字货币交易。因此,还需要针对多笔数字货币交易提供方案。

其中,如果多笔数字货币交易之间并不存在交集,那么这些数字货币交易可以并行执行,每笔数字货币交易可以按照图1所示实施例的方式执行。

而,如果多笔数字货币交易之间存在交集,那么数字货币交易就不是简单的先后执行顺序,交易执行指令不仅需要关注自身数字货币交易执行顺序,还需要关注存在交集的其它数字货币交易的执行顺序,也就是说对于存在交集的交易执行指令需要确定在不同数字货币交易之间的相对执行顺序,从而最终确定全局执行顺序。

针对存在交集的多笔数字货币交易,所述交集可以是指不同数字货币交易中存在同一参与方的情况,本说明书还提供了以下实施例:

具体地,所述待执行的数字货币交易包括多笔数字货币交易;

基于所述待执行的数字货币交易的交易时间,对所述多笔数字货币交易进行排序;

按照排序后的交易顺序,依次生成与所述多笔数字货币交易中的各笔数字货币交易中各个参与方对应的交易执行指令;

根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令标记依赖指令;

基于为生成的各交易执行指令标记的依赖指令,确定各交易执行指令之间的依赖关系,并基于确定出的依赖关系对生成的各交易执行指令分配排序号;

按照排序号依次执行各个交易执行指令以完成所述数字货币交易。

该实施例中,通过引入依赖指令,根据交易执行指令之间的依赖关系,来确定交集的执行指令的相对执行顺序。

其中,所述交易执行指令标记的依赖指令,包括一个或者多个;被标记了相同的依赖指令的多个交易执行指令,具有相同的排序号。

对于排序号相同的交易执行指令可以并发执行,以及各个没有在先依赖的交易执行指令可以并发执行,如此在确保了数字货币交易处理可追溯的情况下,还保证了交易并发处理的能力。

以下例举所述数字货币交易中的各个参与方包括数字货币的转出账户和转入账户;生成的所述交易执行指令包括与转出账户对应的交易执行指令和与转入账户对应的交易执行指令;其中,与转出账户对应的交易执行指令的指令优先级,高于与转入账户对应的交易执行指令。

进一步的,根据所述优先级为生成的与所述数字货币交易中各个参与方对应的交易执行指令标记依赖指令,包括:

针对与所述多笔数字货币交易中的任一数字货币交易,将生成的与该任一数字货币交易包含的转出账户对应的交易执行指令,标记为与该任一数字货币交易包含的转入账户对应的交易执行指令的依赖指令;

确定所述多笔数字货币交易中,是否存在交易时间早于所述任一数字货币交易,并且包含的转入账户为所述任一数字货币交易包含的转出账户的目标数字货币交易;(目标数字货币交易可以为多个,这种情况下,可以为任一数字货币交易包含的转出账户对应的交易执行指令标记多个依赖指令);

如果是,将生成的与所述目标数字货币交易包含的转入账户对应的交易执行指令,标记为与所述任一数字货币交易包含的转出账户对应的交易执行指令的依赖指令;

如果否,不为与所述任一数字货币交易包含的转出账户对应的交易执行指令标记依赖指令。

其中,所述与转出账户对应的交易执行指令包括,从转出账户中拆分出与交易金额等额的数字货币的执行指令;所述与转入账户对应的交易执行指令包括,将拆分出的数字货币确权给所述转入账户的执行指令。例如,可以通过确定参与方对应的数字货币钱包账户、数字货币钱包的操作类型、数字货币钱包中数字货币的操作金额;如果所述操作类型为付款,从付款方对应的数字货币钱包中拆分出与操作金额等额的数字货币;如果所述操作类型为收款,将付款方拆分出的与操作金额等额的数字货币确权给收款方对应的数字货币钱包。

举例说明,沿用上述数字货币的转账交易a-d,再加上另一数字货币的转账交易d-c,d数字货币钱包转账5元给c数字货币钱包。

针对数字货币交易d-c,可以生成针对d和c的2个交易执行指令,如下表2所示:

表2

由于数字货币交易a-d和数字货币交易d-c存在相同的数字货币钱包d,因此这两个交易可以合并为一个待执行的数字货币交易。假设这两个交易的时序为数字货币交易a-d在先,数字货币交易d-c在后;则数字货币钱包d作为同一参与方,基于时序可以确定需要指令3需要在指令2完成后才能执行,则可以重构1、2、3、4的优先级,如下表3所示:

表3

从无依赖指令的交易执行指令1开始执行,在交易执行指令1执行完后,删除交易执行指令2的依赖指令中的交易执行指令1;

此时交易执行指令2也成为了无依赖指令的交易执行指令,因此之后执行的是交易执行指令2;在交易执行指令2执行完后,删除交易执行指令3的依赖指令中的交易执行指令2;

此时交易执行指令3也成为了无依赖指令的交易执行指令,因此之后执行的是交易执行指令3;在交易执行指令3执行完后,删除交易执行指令4的依赖指令中的交易执行指令3;

此时交易执行指令4也成为了无依赖指令的交易执行指令,因此之后执行的是交易执行指令4;在交易执行指令4执行完后,该数字货币交易就全部执行完成。

以再列举一个较为复杂的示例,

1、第一笔交易1为:数字货币钱包a向数字货币钱包d付款5元,整理数字货币钱包d;该交易时间最早;

生成的交易执行指令即为指令1、指令2和指令3;

指令1表示数字货币钱包a准备5元;指令2表示数字货币钱包d收款5元;指令3表示数字货币钱包d整理数字货币。

2、第二笔交易2为:数字货币钱包b向数字货币钱包d付款5元;交易2时间晚于交易1;

生成的交易执行指令包括指令4、指令5和指令6;

指令4表示数字货币钱包b准备5元;指令4表示数字货币钱包d收款5元;指令6表示数字货币钱包d整理数字货币。

3、第三笔交易3为:数字货币钱包d向数字货币钱包e付款10元;交易3时间晚于交易2;

生成的交易执行指令包括指令7、指令8和指令9;

指令7表示数字货币钱包d准备10元;指令8表示数字货币钱包e收款10元;指令9表示数字货币钱包e整理数字货币。

如图3a所示的,同一交易下不同指令的优先级的顺序的示意图:

交易1,指令3优先级是晚于指令2,指令2优先级是晚于指令1,指令1优先级最高;

交易2,指令6优先级是晚于指令5,指令5优先级是晚于指令4,指令4优先级最高;

交易3,指令9优先级是晚于指令8,指令8优先级是晚于指令7,指令7优先级最高。

同一参与方在不同交易下的交易执行指令的优先级的顺序:

交易1和交易3存在同一参与方d,d涉及的指令包括指令2、7;由于指令7的交易3晚于指令2的交易1;因此,指令7的优先级是晚于指令2;

交易2和交易3存在同一参与方d,d涉及的指令包括指令5、7;由于指令7的交易3晚于指令5的交易2;因此,指令7的优先级是晚于指令5。

将上述图3a所示同一交易下不同指令的优先级的顺序,结合同一参与方在不同交易下的交易执行指令的依赖指令,即可以得到图3b所示所有交易执行指令之间的依赖指令,确定所有指令的依赖指令如下表4所示:

表4

由于指令1和4属于无依赖指令的初始交易执行指令;因此指令1和4可以并行执行;

并且,指令1执行完成后,可以执行指令2;指令4执行完成后,可以执行指令5;

指令2执行完后,可以执行指令3;指令5执行完成后,可以执行指令6;

在指令2和5都执行完后,可以执行指令7,并顺序执行指令8和9;

需要说明的是,指令7的执行只需要等待指令2和5的完成,而无需等待指令3或6的完成,交易3的执行无需等待在前交易1和2全部指令都执行完才执行,而是等待同一参与方d在前交易1和2中的指令2和5执行完就可以执行,无需等待指令3和6。

可见,同一数字货币钱包下的多笔数字货币交易之间的优先级是按照这些数字货币交易的交易时间确定的;但是后一交易依赖前一的交易的节点是这个相同参与方,即在上一交易中该相同参与方的指令执行完毕后,就可以执行后一交易中该相同参与方的交易,而无需等待前一交易中所有指令都执行完毕。如此,当发生多条交易时,通过并行执行可以提升执行效率。

综上所述,本说明书通过提供一种数字货币交易的执行方案,将数字货币交易拆分为各个参与方对应的交易执行指令,并且生成每条交易执行指令的执行优先级;通过执行优先级指示所述交易执行指令在生成的与各个参与方对应的交易执行指令中的执行顺序,对生成的与所述数字货币交易中各个参与方对应的交易执行指令进行排序;按照排序后的顺序依次执行各个交易执行指令以完成所述数字货币交易。如此,通过交易执行指令的排序结果,就可以使得数字货币交易能够追溯数字货币流通的整个生命周期,同时可以满足并发处理,便于数字货币的可控匿名流通。

与前述数字货币交易的执行方法实施例相对应,本说明书还提供了数字货币交易的执行装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机业务程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书数字货币交易的执行装置所在设备的一种硬件结构图,除了图4所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据数字货币交易的执行实际功能,还可以包括其他硬件,对此不再赘述。

请参见图5,为本说明书一实施例提供的数字货币交易的执行装置的模块图,所述装置对应了图2所示实施例,所述装置包括:

获取单元310,获取待执行的数字货币交易;

生成单元320,基于所述待执行的数字货币交易的交易内容,生成与所述数字货币交易中的各个参与方对应的交易执行指令;其中,所述交易执行指令包含有指令优先级,所述指令优先级指示所述交易执行指令在生成的与各个参与方对应的交易执行指令中的执行顺序;

执行单元330,根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令进行排序,并按照排序后的顺序依次执行各个交易执行指令以完成所述数字货币交易。

可选的,所述待执行的数字货币交易包括多笔数字货币交易;

所述生成单元320,包括:基于所述待执行的数字货币交易的交易时间,对所述多笔数字货币交易进行排序;按照排序后的交易顺序,依次生成与所述多笔数字货币交易中的各笔数字货币交易中各个参与方对应的交易执行指令。

可选的,所述执行单元330中根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令进行排序,包括:

根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令标记依赖指令;基于为生成的各交易执行指令标记的依赖指令,确定各交易执行指令之间的依赖关系,并基于确定出的依赖关系对生成的各交易执行指令分配排序号。

可选的,所述交易执行指令标记的依赖指令,包括一个或者多个;被标记了相同的依赖指令的多个交易执行指令,具有相同的排序号。

可选的,所述数字货币交易中的各个参与方包含:数字货币的转出账户和转入账户;生成的所述交易执行指令,包括与转出账户对应的交易执行指令和与转入账户对应的交易执行指令;其中,与转出账户对应的交易执行指令的指令优先级,高于与转入账户对应的交易执行指令;

所述执行单元330中根据所述优先级为生成的与所述数字货币交易中各个参与方对应的交易执行指令标记依赖指令,包括:

针对与所述多笔数字货币交易中的任一数字货币交易,将生成的与该任一数字货币交易包含的转出账户对应的交易执行指令,标记为与该任一数字货币交易包含的转入账户对应的交易执行指令的依赖指令;确定所述多笔数字货币交易中,是否存在交易时间早于所述任一数字货币交易,并且包含的转入账户为所述任一数字货币交易包含的转出账户的目标数字货币交易;如果是,将生成的与所述目标数字货币交易包含的转入账户对应的交易执行指令,标记为与所述任一数字货币交易包含的转出账户对应的交易执行指令的依赖指令;如果否,不为与所述任一数字货币交易包含的转出账户对应的交易执行指令标记依赖指令。

可选的,所述与转出账户对应的交易执行指令包括,从转出账户中拆分出与交易金额等额的数字货币的执行指令;所述与转入账户对应的交易执行指令包括,将拆分出的数字货币确权给所述转入账户的执行指令。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上图5描述了数字货币交易的执行装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

获取待执行的数字货币交易;

基于所述待执行的数字货币交易的交易内容,生成与所述数字货币交易中的各个参与方对应的交易执行指令;其中,所述交易执行指令包含有指令优先级,所述指令优先级指示所述交易执行指令在生成的与各个参与方对应的交易执行指令中的执行顺序;

根据所述优先级对生成的与所述数字货币交易中各个参与方对应的交易执行指令进行排序,并按照排序后的顺序依次执行各个交易执行指令以完成所述数字货币交易。

在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-onlymemory,缩写:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)、快闪存储器、硬盘或者固态硬盘。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

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