一种交易执行方法及装置
文献发布时间:2023-06-19 12:07:15
技术领域
本说明书涉及计算机应用领域,尤其涉及一种交易执行方法及装置。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术,具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性。其中,用户可以构建区块链所支持的标准的交易(transaction)并发布至区块链执行,交易中包含的信息被打包进区块,即可完成在区块链中的持久化存证。
在实际应用中,为了防止恶意用户在区块链上滥发交易,可以针对每一笔要执行的交易,均从发起该交易的用户账户中扣取一笔虚拟资源作为费用,并可以进一步将收取的费用发放给参与区块打包的计算设备作为奖励;该机制虽然一定程度上达到了阻拦恶意用户的目的,还激励了区块打包的计算设备,但也提高了新用户在区块链上发起交易的门槛,不利于业务的扩展。
发明内容
有鉴于此,本说明书公开了一种交易执行方法及装置。
根据本说明书实施例的第一方面,公开了一种交易执行方法,应用于区块链上的节点设备,所述方法包括:
接收客户端发送的待执行的目标交易;其中,所述目标交易中携带指示用于扣除执行所述目标交易消耗的虚拟资源的第三方的目标扣费账户的第一账户标识;
从所述第一账户标识指示的目标扣费账户中,扣除与所述目标交易对应的虚拟资源;以及,
执行所述目标交易。
根据本说明书实施例的第二方面,公开了一种交易执行装置,应用于区块链上的节点设备,所述装置包括:
接收模块,接收客户端发送的待执行的目标交易;其中,所述目标交易中携带指示用于扣除执行所述目标交易消耗的虚拟资源的第三方的目标扣费账户的第一账户标识;
扣除模块,从所述第一账户标识指示的目标扣费账户中,扣除与所述目标交易对应的虚拟资源;
执行模块,执行所述目标交易。
以上技术方案中,由于待执行的目标交易中携带有指示用于扣除执行上述目标交易消耗的虚拟资源的目标扣费账户的第一账户标识,因此区块链上的节点设备可以根据上述第一账户标识,从对应的第三方的目标扣费账户中扣除执行目标交易消耗的虚拟资源,而不限于从客户端对应的用户账户中扣除,因此可以降低扣除虚拟资源造成的区块链使用门槛,有利于区块链业务的扩展。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。
图1是本说明书所述交易执行方法的流程示例图;
图2是本说明书所述去中心化应用的运营情景示意图;
图3是本说明书所述去中心化应用场景下交易上链流程的泳道图;
图4是本说明书所述交易执行装置的结构示例图;
图5是本说明书所述用于交易执行的计算机设备的结构示例图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的系统和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
区块链通常是由若干个区块构成,在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
在实际应用中,为了防止恶意用户在区块链上滥发交易,可以针对每一笔要执行的交易,均从发起该交易的用户账户中扣取一笔虚拟资源作为费用,并可以进一步将收取的费用发放给参与区块打包的计算设备作为奖励;
举例而言,在基于以太坊的区块链网络中,上述针对执行交易扣除的虚拟资源被称为燃料Gas,而该燃料Gas则具备一定的价值;在需要执行交易时,就可以根据交易的需要占用的计算资源的多少,从交易的发起方账户中收取对应量的燃料Gas,并将收取的燃料Gas奖励给参与该笔交易对应的区块打包的计算设备。对于试图发起大量的垃圾交易来消耗区块链网络的资源的恶意用户而言,在上述机制的作用下,其必须对应支付大量的燃料Gas才能使上述大量垃圾交易实际“上链”;所以,该机制可以一定程度上阻拦恶意用户。
然而相对应的,该机制也提高了新用户在区块链上发起交易的门槛;对于刚刚加入区块链的新用户而言,其账户中可能并没有足量的燃料Gas,因此其能够发起的交易的种类和数量就可能严重受限,事实上阻拦了新用户使用区块链,因此不利于业务的扩展。
基于此,本说明书提出一种在执行目标交易时,使用不同于作为交易发起方的用户账户的目标扣费账户来完成目标交易对应的虚拟资源的扣除,从而使作为交易发起方的用户账户无需支付目标交易对应的虚拟资源的技术方案。
在实现时,可以在待执行的目标交易中携带两种不同的账户标识,分别用于指示用于作为交易发起方的用户账户,和用于扣除执行所述目标交易消耗的虚拟资源的目标扣费账户;在执行上述目标交易时,即可按照上述两种不同的账户标识,以上述两种账户为主体分别对应完成上述扣除虚拟资源和发起交易的任务。
以上技术方案中,由于待执行的目标交易中携带有指示用于扣除执行上述目标交易消耗的虚拟资源的目标扣费账户的第一账户标识,因此区块链上的节点设备可以根据上述第一账户标识,从对应的第三方的目标扣费账户中扣除执行目标交易消耗的虚拟资源,而不限于从客户端对应的用户账户中扣除,因此可以降低扣除虚拟资源造成的区块链使用门槛,有利于区块链业务的扩展。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图1,图1是本说明书所述交易执行方法的流程示例图;该方法可以应用于区块链上的节点设备,该方法可以包括如下步骤:
S101,接收客户端发送的待执行的目标交易;其中,所述目标交易中携带指示用于扣除执行所述目标交易消耗的虚拟资源的第三方的目标扣费账户的第一账户标识;
S102,从所述第一账户标识指示的目标扣费账户中,扣除与所述目标交易对应的虚拟资源;以及,
S103,执行所述目标交易。
上述区块链,可以包括任意形式的区块链;本领域技术人员可以根据具体需求,结合不同类型的区块链的特性,自行选择本方案所应用的区块链类型。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。
其中,去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者(也可称为区块链中的节点)可以读取链上的数据记录、参与交易、以及竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。
私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
在示出的一种实施方式中,上述区块链可以是联盟链;由于联盟链相对私有链可以提供更高规格的安全性和去中心化程度,相对于纯粹的公有链具有更高的运行效率和更低的运行成本,因此可以作为一种折衷的选择。
在本说明书中,如步骤S101所述,上述区块链节点设备可以首先接收待执行的目标交易;该目标交易中可以携带两种账户标识,具体而言,其中的第二账户标识可以指示用于作为交易发起方的用户账户,而第一账户标识则可以指示用于扣除执行所述目标交易消耗的虚拟资源的目标扣费账户;例如,用户张三希望将自己的账户作为目标交易的发起方,并将李四的账户作为用于扣除执行所述目标交易消耗的虚拟资源的目标扣费账户,就可以将张三自己的账户的标识作为第二账户标识,将李四的账户的标识作为第一账户标识携带在上述目标交易中。
在实际应用中,交易的发起方也可以并非由客户端指定;例如,对于某些具有保密需求的目标交易而言,其交易发起方可以采用区块链系统提供的缺省账户,从而避免泄露客户隐私,在此种情况下,客户端则无需提供作为交易发起方的用户账户;因此,上述客户端发起的目标交易中亦可以不携带上述第二账户标识。
当然可以理解的是,虽然在区块链中通常使用账户的地址作为账户的标识,但在实际应用中,上述第二账户标识和第一账户标识并不一定是区块链上的账户地址明文,也可以是经过加密的密文,从而进一步保证数据的安全性,避免上述目标交易被意外拦截后产生的信息泄露风险。
亦可以理解的是,上述区块链节点设备接收目标交易的过程,可以是从对接到该节点设备的客户端上直接获取到该目标交易,也可以是从对接到该节点设备的服务端上,间接获取到对接到上述服务端的客户端构建的上述目标交易。
举例而言,上述服务端可以是依托于区块链建立的BaaS(Blockchain as aService,区块链即服务)平台,可以避免过多的客户端直接对接到区块链产生的性能和安全性问题,也能以更低的成本为客户端提供区块链相关的服务。
在本说明书中,如步骤S102所述,上述区块链节点设备可以从所述第一账户标识指示的第三方的目标扣费账户中,扣除与上述目标交易对应的虚拟资源;具体而言,与上述目标交易对应的虚拟资源,可以是执行上述目标交易需要消耗的虚拟资源;上述第三方的目标扣费账户,则可以是独立于作为第一方的客户端、以及作为第二方的区块链设备之外的第三方所提供的目标扣费账户;扣除上述虚拟资源的具体方式,可以是从上述第一账户标识指示的目标扣费账户向公共的临时账户中完成一笔转账,也可以是直接将需要扣除的部分虚拟资源从目标扣费账户的资产中删除;也就是说,上述虚拟资源,既可以是与线下资产锚定的、只能在账户之间转移的虚拟代币,也可以是能够直接删除的积分等等,本说明书对此无需进行详细限定。
可以理解的是,虽然前述相关技术中提及,因执行交易而扣除的虚拟资源可以发放给参与区块打包的计算设备,但这仅为一可选设计;例如,上述虚拟资源可以是每天00:00补满100次的交易执行次数,每执行一次交易就将该交易执行次数扣除1,扣完为止,该机制仍然满足上述对于“扣除执行目标交易消耗的虚拟资源”的定义,但区块链的管理人员显然可以规定该次数不可在账户之间转移。
在示出的一具体实施方式中,上述机制下可以预设多个扣费账户,并根据上述第一账户标识从上述多个扣费账户中确定出与该第一账户标识对应的目标扣费账户,再从确定出的目标扣费账户中扣除与上述目标交易对应的虚拟资源;继续以前述用户张三希望在区块链上执行自己构建的交易为例,可以事先约定,如果第一账户标识为“1”,则从李四的账户中扣除对应的虚拟资源,如果第一账户标识为“0”,则从王五的账户中扣除对应的虚拟资源;虽然上述“1”和“0”显然不是区块链上完整的账户地址,但在上述李四和王五的扣费账户已经预设的前提下,亦可作为上述第一账户标识起到指示目标扣费账户的作用。
可以理解的是,如果将上述方案加以推广,例如在张三需要发布大量交易的情况下,可以轮流从预设的多个扣费账户中扣除对应的虚拟资源,可以减少短时间内对于同一个扣费账户的访问次数,有利于改善并发性能。
在示出的一种实施方式中,上述与目标交易对应的虚拟资源的数量,可以通过目标交易中携带的换算关系得到;具体而言,上述目标交易中还携带与上述目标交易对应的虚拟资源,与执行上述目标交易所消耗的上述节点设备的系统资源之间的换算关系;则在扣除与上述目标交易对应的虚拟资源之前,上述区块链设备可以先获取执行上述目标交易所消耗的上述节点设备的系统资源的数量;再基于上述换算关系,将执行上述目标交易所消耗的上述节点设备的系统资源的数量换算得到与上述目标交易对应的虚拟资源的数量。
举例而言,假设目标交易中可以携带诸如“每执行1条指令消耗的系统资源对应X单位的虚拟资源”的换算关系,则只需通过代码分析、执行计数等方式确定出执行目标交易所消耗的上述节点设备的系统资源的数量,就可以进一步换算得到与上述目标交易对应的虚拟资源的数量。
通过此种方式,可以使客户端可以通过调整上述换算关系来控制与上述目标交易对应的虚拟资源的数量,从而行使一部分定价权,在上述虚拟资源是可转移的、具有价值的链上资产的情况下,则可以对于收到上述虚拟资源的计算设备得到合理的激励。
在另一示出的实施方式中,上述与目标交易对应的虚拟资源的数量,还可以通过区块链中预置的价值锚定关系对应的换算关系得到;具体而言,上述节点设备搭载的系统资源可以与在上述区块链上发布的虚拟资源进行了价值锚定;在扣除与上述目标交易对应的虚拟资源之前,上述区块链设备可以先获取执行上述目标交易所消耗的上述节点设备的系统资源的数量;再基于上述价值锚定得到的换算关系,将执行上述目标交易所消耗的上述节点设备的系统资源的数量换算得到与上述目标交易对应的虚拟资源的数量。
举例而言,假设上述价值锚定得到的换算关系为“每消耗1KB存储资源对应Y单位的虚拟资源”,则只需通过代码分析、执行计数等方式确定出执行目标交易所消耗的上述节点设备的存储资源的数量,就可以进一步换算得到与上述目标交易对应的虚拟资源的数量。
通过此种方式,可以使区块链行使定价权,提高区块链作为互联网基础设施的公信度,有利于业务参与方合理预估虚拟资源消耗量。在本说明书中,如步骤S103所述,上述区块链节点设备可以执行上述目标交易;具体而言,区块链节点在与其他节点达成共识并执行上述目标交易时,通常需要记录该目标交易的发起方,因此,在上述目标交易中还携带指示了用户账户的第二账户标识的情况下,即可以将上述目标交易中第二账户标识对应的用户账户作为该交易发起方,以完成对于该目标交易的执行。当然可以理解的是,如前文所述,上述目标交易的发起方账户也可以由区块链本身提供,从而无需要求目标交易中携带上述第二账户标识;本领域技术人员可以根据具体需求以及相关技术文献,进一步完善执行目标交易的细节,本说明书无需进行进一步赘述。
可以理解的是,上述步骤S102与步骤S103的先后执行顺序,本说明书无需进行限定;也就是说,既可以首先执行上述步骤S102,再执行上述步骤S103,也可以首先执行上述步骤S103,再执行上述步骤S102,或者两者同步执行;并且,上述步骤S102与步骤S103在先后执行的情况下,两者之间的时间差也可以根据具体需求进行灵活设计。
举例而言,本领域技术人员在实现上述方案时,既可以要求首先完成步骤S102所述的扣除虚拟资源的操作,再执行步骤S103所述的执行目标交易的操作,从而优先保证虚拟资源的顺利缴付;也可以要求首先完成步骤S103所述的执行目标交易的操作,再执行步骤S102所述的扣除虚拟资源的操作,从而优先保证目标交易的顺利执行。
如前所述,上述方案可以通过将在执行目标交易时扣除虚拟资源的义务从用户自身的账户转移到了其他扣费账户上,从而降低了新用户接入区块链业务的门槛;在实际应用时,在去中心化应用的运营中也可以采用上述方案。
在示出的一种具体实施方式中,请参见图2,图2是本说明书所述去中心化应用的运营情景示意图,在该情景下,多个去中心化应用的客户端(Dapp客户端)可以对接到去中心化应用的服务端(Dapp服务端),而该服务端则可以对接到上述区块链;上述客户端可以包括去中心化应用;上述目标扣费账户,可以包括上述去中心化应用的服务商对应的扣费账户。
举例而言,某去中心化应用的某种业务需要客户端打包若干笔交易通过上述服务端发送至区块链节点并执行,而对于使用该区中心化应用的用户而言,可能并没有足够的用于消耗的虚拟资源;在这种情况下,该去中心化应用的运营商就可以向用户提供其管理的扣费账户作为目标扣费账户使用,从而使用户只需要关心业务,而无需为交易的执行而实际付出对应的虚拟资源,显著改善了用户体验,有利于该去中心化应用的业务扩展。
在示出的一具体实施方式中,可以通过授权和鉴权机制,进一步保证上述目标交易的执行的整个流程中的账户安全;请参见图3,图3是本说明书所述去中心化应用场景下交易上链流程的泳道图;在该流程中,由于上述作为交易发起方的用户账户,包括去中心化应用的用户对应的用户账户;上述目标扣费账户,包括上述去中心化应用的服务商对应的扣费账户,所以在去中心化应用客户端基于业务内容构建出目标交易后,可以将该目标交易发送至去中心化应用的服务端,以使该服务端通过私钥签名的方式授权使用目标扣费账户扣除虚拟资源,第一次签名加密后,该目标交易再返回到去中心化应用客户端,以通过私钥签名授权使用用户账户作为交易法发起方执行目标交易;经过上述授权过程,该目标交易被转发上链后,即可由区块链的节点设备通过公钥解密签名校验的方式完成对于上述两次授权的鉴权,全部通过后,即可继续后续的以用户账户为交易发起方执行目标交易,并从目标扣费账户中扣除对应虚拟资源的操作。
可以理解的是,虽然上述示例采用了去中心化应用的运营情景来说明上述授权和鉴权的过程,但上述授权和鉴权的方案也可以不依赖于上述区中心化应用的相关场景;也就是说,只要上述目标交易中还携带有用于授权将上述第二账户标识对应的用户账户作为交易发起方,执行上述目标交易的第二授权签名,上述区块链节点就可以在上述目标交易中的第二授权签名校验通过的情况下,将上述第二账户标识对应的用户账户作为交易发起方,执行上述目标交易;相对应的,只要上述目标交易中还携带有用于授权从上述第一账户标识指示的目标扣费账户中扣除与上述目标交易对应的虚拟资源的第一授权签名,上述区块链节点就可以在上述目标交易中的第一授权签名校验通过的情况下,从上述第一账户标识指示的目标扣费账户中,扣除与上述目标交易对应的虚拟资源。
继续以前述张三希望在区块链上执行自己构建的交易为例,为其提供扣费账户的李四和王五亦可以自行通过私钥签名的方式,完成对于扣费的授权;类似的,张三自身也可以自行通过私钥签名的方式,来向区块链节点设备证明“以张三的用户账户作为该目标交易的发起方”确为张三本人授权。
因此,上述授权和鉴权的机制,可以在多种场景下有效地保证上述交易执行方案的安全性,避免盗用他人的名义进行交易执行或者虚拟资源扣除的情况。
在示出的一种实施方式中,上述区块链节点设备还可以提供虚拟资源余额不足的告警功能;具体而言,可以首先获取上述目标扣费账户中的虚拟资源余额;如果上述虚拟资源余额小于预设的告警阈值,则可以生成携带上述第一账户标识的告警事件,从而使上述去中心化应用的客户端或服务端响应于上述告警事件,输出上述目标扣费账户中虚拟资源余额不足的告警信息。可以理解的是,上述告警事件的具体推送形式,以及告警信息的具体输出方式,本领域技术人员可以根据具体需求进行设计,本说明书无需进行详细限定。
在示出的一种实施方式中,上述区块链节点设备还可以进一步更新上述的告警阈值;具体而言,该告警阈值可以根据执行目标交易消耗的虚拟资源的预估值而确定;也就是说,在获取到执行目标交易消耗的虚拟资源的预估值后,即可进一步基于该预估值更新上述告警阈值。使用该方案,可以在目标扣费账户中的虚拟资源余额已经不足以、或者即将不足以支持执行目标交易的消耗的情况下,及时地通知上述去中心化应用的客户端或服务端,进而以告警信息的方式输出。
在示出的一种实施方式中,上述虚拟资源的预估值可以是根据目标交易消耗的虚拟资源份数以及虚拟资源单价计算得到的;其中,目标交易消耗的虚拟资源份数可以基于目标交易的内容预测得到,通常越复杂的交易消耗的虚拟资源份数会越多,而上述虚拟资源单价则可以携带在上述目标交易中。
例如,在基于以太坊的区块链中,上述在交易执行时被消耗的虚拟资源被成为燃料Gas,该燃料Gas可以按消耗的燃料份数GasUsed和燃料单价GasPrice计算;假设某笔交易需要消耗的燃料份数GasUsed为60,燃料单价GasPrice为20gwei(gwei为以太坊中的一种价格单位),那么该交易执行时被消耗的Gas的预估值可以是20gwei*60=1200gwei。
在示出的一种实施方式中,上述区块链节点设备还可以在当前的目标扣费账户中的虚拟资源余额不足的情况下,提供备用的账户用于扣费;具体而言,上述目标交易中还可以携带指示与上述目标扣费账户对应的备用账户的第三账户标识;上述区块链节点在确定目标扣费账户中的虚拟资源余额小于预设的告警阈值的情况下,可以将用于扣除执行上述目标交易消耗的虚拟资源的账户,切换为上述第三账户标识对应的备用账户。例如,用户张三发布的目标交易对应的目标扣费账户为“李四的账户”,备用账户为“王五的账户”,如果“李四的账户”中的虚拟资源余额已经低于预设的告警阈值,则可以将用于扣除执行目标交易小号的虚拟资源的账户,切换为备用的“王五的账户”。
当然可以理解的是,上述方案可以也可以进一步嵌套,例如存在不止一个备用账户等等,本领域技术人员可以根据已公开内容进一步完成多个备用账户的详细方案设计,本说明书无需进一步限定。
上述内容即为本说明书针对所述交易执行方法的全部实施例。本说明书还提供了对应的交易执行装置的实施例如下:
图4是本说明书所述交易执行装置的结构示例图;该装置可以应用于区块链节点设备,该装置可以包括如下模块:
接收模块401,接收客户端发送的待执行的目标交易;其中,所述目标交易中携带指示用于扣除执行所述目标交易消耗的虚拟资源的第三方的目标扣费账户的第一账户标识;
扣除模块402,从所述第一账户标识指示的目标扣费账户中,扣除与所述目标交易对应的虚拟资源;
执行模块403,执行所述目标交易。
可以理解的是,上述扣除模块402与执行模块403的调用顺序本说明书无需加以限定,具体的逻辑分析请参见前述对应的方法步骤相关表述,此处不再赘述。
在一种具体实施方式中,上述区块链可以是联盟链;由于联盟链相对私有链可以提供更高规格的安全性和去中心化程度,相对于纯粹的公有链具有更高的运行效率和更低的运行成本,因此可以作为一种折衷的选择。
在示出的一具体实施方式中,上述机制下可以预设多个扣费账户,上述扣除模块402则可以进一步根据上述第一账户标识,从上述多个扣费账户中确定出与上述第一账户标识对应的目标扣费账户,再从目标扣费账户中扣除上述与目标交易对应的虚拟资源;使用此方案,可以减少短时间内对于同一个扣费账户的访问次数,有利于改善并发性能。
在示出的一种具体实施方式中,上述目标交易中还可以携带有用于授权将上述第二账户标识对应的用户账户作为交易发起方执行上述目标交易的第二授权签名,上述执行模块403可以在上述目标交易中的第二授权签名校验通过的情况下,将上述第二账户标识对应的用户账户作为交易发起方,执行上述目标交易;
在示出的一种具体实施方式中,上述目标交易中还可以携带有用于授权从上述第一账户标识指示的目标扣费账户中扣除与上述目标交易对应的虚拟资源的第一授权签名,上述扣除模块402可以在上述目标交易中的第一授权签名校验通过的情况下,从上述第一账户标识指示的目标扣费账户中,扣除与上述目标交易对应的虚拟资源。
在示出的一种具体实施方式中,多个去中心化应用的客户端(Dapp客户端)可以对接到去中心化应用的服务端(Dapp服务端),而该服务端则可以对接到上述区块链;上述客户端即可以包括去中心化应用的客户端;上述目标扣费账户,可以包括上述去中心化应用的服务商对应的扣费账户。
在示出的一种实施方式中,上述装置还可以包括用于提供虚拟资源余额不足的告警功能的告警模块;具体而言,该告警模块可以首先获取上述目标扣费账户中的虚拟资源余额;如果上述虚拟资源余额小于预设的告警阈值,则可以生成携带上述第一账户标识的告警事件,从而使上述去中心化应用的客户端或服务端响应于上述告警事件,输出上述目标扣费账户中虚拟资源余额不足的告警信息。
在示出的一种实施方式中,上述目标交易中还可以携带执行上述目标交易所消耗的上述节点设备的系统资源,与执行上述目标交易所消耗的虚拟资源之间的换算关系;上述装置还可以包括第一换算模块,该模块可以获取执行上述目标交易所消耗的上述节点设备的系统资源的数量;再基于上述换算关系,将执行上述目标交易所消耗的上述节点设备的系统资源的数量换算得到执行上述目标交易所消耗的虚拟资源的数量。
在示出的另一实施方式中,上述节点设备搭载的系统资源可以与在上述区块链上发布的虚拟资源进行了价值锚定;上述装置还可以包括第二换算模块,该模块可以获取执行上述目标交易所消耗的上述节点设备的系统资源的数量;再基于上述价值锚定得到的换算关系,将执行上述目标交易所消耗的上述节点设备的系统资源的数量换算得到执行上述目标交易所消耗的虚拟资源的数量。
在示出的一种实施方式中,上述装置还可以包括切换模块,以实现在当前的目标扣费账户中的虚拟资源余额不足的情况下,提供备用的账户用于扣费;具体而言,上述目标交易中还可以携带指示与上述目标扣费账户对应的备用账户的第三账户标识;上述切换模块在确定目标扣费账户中的虚拟资源余额小于预设的告警阈值的情况下,可以将用于扣除执行上述目标交易消耗的虚拟资源的账户,切换为上述第三账户标识对应的备用账户。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的交易执行方法。
图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的交易执行方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
- 一种电子交易策略的执行方法和分布式交易系统
- 一种交易执行方法、系统及装置