基于区块链的交易处理方法和装置

文档序号:1954505 发布日期:2021-12-10 浏览:24次 >En<

阅读说明:本技术 基于区块链的交易处理方法和装置 (Transaction processing method and device based on block chain ) 是由 韩喆 陈聪明 于 2021-09-24 设计创作,主要内容包括:本公开披露了一种基于区块链的交易处理方法,所述区块链上部署有第一智能合约,所述第一智能合约用于管理目标交易的多个参与方中的至少一个参与方的服务时间窗口,所述至少一个参与方的服务时间窗口用于指示所述至少一个参与方能够参与所述目标交易的时间,所述至少一个参与方包括第一参与方,所述方法包括:从所述第一参与方接收所述第一智能合约的第一调用请求,所述第一调用请求用于设置所述第一参与方的服务时间窗口;根据所述第一调用请求,设置所述第一参与方的服务时间窗口。(The present disclosure discloses a transaction processing method based on a blockchain, on which a first intelligent contract is deployed, the first intelligent contract being used for managing a service time window of at least one participant of a plurality of participants of a target transaction, the service time window of the at least one participant being used for indicating a time at which the at least one participant can participate in the target transaction, the at least one participant including a first participant, the method comprising: receiving a first invocation request of the first intelligent contract from the first participant, the first invocation request being used for setting a service time window of the first participant; and setting a service time window of the first participant according to the first calling request.)

基于区块链的交易处理方法和装置

技术领域

本公开涉及区块链技术领域,具体涉及一种基于区块链的交易处理方法和装置。

背景技术

目前,在涉及多方参与的区块链交易的场景中,有些交易的推进过程,需要依赖参与方在链下进行操作。这种情况下,区块链仅在链上确保参与方对交易进行了确认,而每个参与方的确认过程,依赖于参与方在内部系统中完成安全审查流程,并提交到区块链上以推进交易状态。

如果交易的链上状态推进需要参与方进行确认时,参与方的链下服务却不可用,例如,不在参与方可以提供服务的时间窗口内,会导致交易长时间不会受理,进而,大量未完成的交易会导致链上交易阻塞。

发明内容

有鉴于此,本公开提供一种基于区块链的交易处理方法和装置,以避免因不在参与方的服务时间窗口内而导致的链上交易阻塞。

第一方面,提供一种基于区块链的交易处理方法,所述区块链上部署有第一智能合约,所述第一智能合约用于管理目标交易的多个参与方中的至少一个参与方的服务时间窗口,所述至少一个参与方的服务时间窗口用于指示所述至少一个参与方能够参与所述目标交易的时间,所述至少一个参与方包括第一参与方,所述方法包括:从所述第一参与方接收所述第一智能合约的第一调用请求,所述第一调用请求用于设置所述第一参与方的服务时间窗口;根据所述第一调用请求,设置所述第一参与方的服务时间窗口。

第二方面,提供一种基于区块链的交易处理方法,所述区块链上部署有第一智能合约,所述第一智能合约用于管理目标交易的多个参与方中的至少一个参与方的服务时间窗口,所述至少一个参与方的服务时间窗口用于指示所述至少一个参与方能够参与所述目标交易的时间,所述至少一个参与方包括第一参与方,所述方法应用于所述第一参与方,所述方法包括:向所述区块链发送所述第一智能合约的第一调用请求,所述第一调用请求用于设置所述第一参与方的服务时间窗口。

第三方面,提供一种基于区块链的交易处理装置,所述区块链上部署有第一智能合约,所述第一智能合约用于管理目标交易的多个参与方中的至少一个参与方的服务时间窗口,所述至少一个参与方的服务时间窗口用于指示所述至少一个参与方能够参与所述目标交易的时间,所述至少一个参与方包括第一参与方,所述装置包括:第一接收单元,被配置为从所述第一参与方接收所述第一智能合约的第一调用请求,所述第一调用请求用于设置所述第一参与方的服务时间窗口;设置单元,被配置为根据所述第一调用请求,设置所述第一参与方的服务时间窗口。

第四方面,提供一种基于区块链的交易处理装置,所述区块链上部署有第一智能合约,所述第一智能合约用于管理目标交易的多个参与方中的至少一个参与方的服务时间窗口,所述至少一个参与方的服务时间窗口用于指示所述至少一个参与方能够参与所述目标交易的时间,所述至少一个参与方包括第一参与方,所述装置应用于所述第一参与方,所述装置包括:发送单元,被配置为向所述区块链发送所述第一智能合约的第一调用请求,所述第一调用请求用于设置所述第一参与方的服务时间窗口。

第五方面,提供一种基于区块链的交易处理装置,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现如第一方面或第二方面所述的方法。

第六方面,提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,能够实现如第一方面或第二方面所述的方法。

第七方面,提供一种计算机程序产品,包括可执行代码,当所述可执行代码被执行时,能够实现如第一方面或第二方面所述的方法。

本公开实施例提供的技术方案,通过在区块链上部署第一智能合约,以保证能够在区块链上对目标交易的各参与方的服务时间窗口进行管理,从而可以避免因不在参与方的服务时间窗口内而导致的链上交易阻塞。

附图说明

图1为本公开实施例提供的区块链系统的示例图。

图2为本公开实施例提供的涉及多方参与的交易的示意图。

图3为本公开实施例提供的一系统架构的示例图。

图4为本公开实施例提供的第一智能合约的示例图。

图5为本公开实施例提供的基于区块链的交易处理方法的流程示意图。

图6为本公开实施例提供的设置第一参与方的服务时间窗口的流程示意图。

图7为本公开实施例提供的查询第一参与方的服务时间窗口的流程示意图。

图8为本公开实施例提供的另一系统架构的示例图。

图9为本公开一实施例提供的基于区块链的交易处理装置的结构示意图。

图10为本公另一开实施例提供的基于区块链的交易处理装置的结构示意图。

图11为本公开又一实施例提供的基于区块链的交易处理装置的结构示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。

区块链是一种以密码学技术为基础的分布式链式存储记账技术。区块链技术可以通过去中心化或多中心化的方式对大量数据进行组织和维护,具有分布式、不可篡改性、可溯源、安全可信等特点,因而在多个领域得到广泛应用。

图1是本公开实施例提供的区块链系统的示例图。如图1所示,区块链系统100可以包括区块链用户端(简称用户端)110和区块链网络120。区块链网络120可以包括多个区块链节点(简称节点),例如,图1中的节点120-A、节点120-B、节点120-C、......、节点120-N。

用户端110和/或区块链网络120中的节点可以包括各类计算设备,例如智能电话、台式计算机、或服务器等。在一些实施例中,服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的,也可以是分布式的。在一些实施例中,服务器可以在云平台上执行。

用户端110是可以使用区块链服务的终端。用户端110可以链接至区块链网络120中的某一节点以获取区块链服务。在一些实施例中,用户端110可以通过发起区块链交易(简称交易,也可称为请求)的方式获取区块链服务,即用户端110可以生成交易并将生成的交易发送至区块链网络120。

区块链网络120中的节点可以接收区块链网络120中广播的交易。接收到交易之后,区块链节点可以根据交易内容进行相关操作,即执行交易。例如,在账户间转移资金(或资产)以执行汇款交易。又如,对区块链数据进行查询以执行查询数据的交易。或者,调用(或执行)区块链上部署的智能合约以执行调用智能合约的交易。

智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。智能合约本质是一段运行在区块链网络中的代码,用于完成用户所赋予的业务逻辑。

智能合约可以包含有关交易的信息,只有在满足要求后才会执行结果操作。智能合约可以执行可追溯、不可逆转和安全的交易。

如前文所述,区块链具有不可篡改、安全可信等特点,因此,在区块链上进行交易,可以解决交易参与方相互信任的问题。基于此,区块链可以作为涉及多方参与的交易场景中一个重要的发展方向。例如,区块链可以被广泛应用于资金调拨(例如汇款交易)、贸易金融、设备租赁等涉及多方参与、天然具有不信任的交易场景中。

下面结合图2,对涉及多方参与的区块链交易进行简单介绍。在图2所示的场景中,交易可以具有多个参与方。例如,多个参与方可以包括参与方A,参与方A可以是交易的发起方。多个参与方还可以包括参与方B、参与方C,参与方B、参与方C可以是交易的推进方或执行方。

以涉及资金调拨的汇款交易为例,参与方A可以是指汇款交易的发起方(例如,某企业的财务系统),参与方B可以是指汇款银行,参与方C可以是指收款银行。参与方A可以向区块链发起汇款请求,请求参与方B从其对应的银行账户中向参与方C的某一银行账户支付一定的资金。在一些实施例中,该汇款交易可以是指跨境汇款。在一些实施例中,该汇款交易可以是指跨行汇款。

以设备租赁为例,参与方A可以是指承租方(例如,某一工厂),参与方B可以是指出租方(例如,某租赁平台),参与方C可以是指供应商。参与方A可以向区块链发起租赁请求,请求参与方B将某一设备租赁给参与方A,实际参与方B接收到该请求后,需要请求参与方C将该设备寄给参与方A。

在这种涉及多方参与的交易场景中,作为一个示例,当所有交易的执行都可以在链上完成时,则理论上可以通过智能合约预先规定触发规则,从而在链上自动完成交易。

作为另一个示例,当区块链负责在链上对交易进行记录,以及对交易状态进行推进,而真实的交易操作需要参与方在链下配合完成时(例如,汇款交易中参与方B在链下向参与方C进行汇款;或者,设备租赁交易中,供应商C在链下将设备寄给参与方A),实际上该交易是无法在链上自动推进的,而是需要参与方调用相关的智能合约接口来推进交易状态。

也就是说,在部分涉及多方参与的交易场景中,由于参与方内部的监管等原因,参与方需要链下对区块链交易进行操作,因此,区块链仅在链上完成交易的可靠性认证,即确保参与方确实对交易进行了确认。而每个参与方的确认过程,依赖于参与方在内部系统中完成安全审查流程,并提交到区块链上自动推进交易状态。在这种情况下,参与方需要调用相关的智能合约接口来推进交易状态。

例如,在涉及资金调拨的场景中,区块链上可以进行交易的可靠性认证,真实的资金调拨还依赖于参与方在链下进行操作时,每笔交易的链上状态都需要参与方进行确认。

然而,如果当交易的链上状态推进需要参与方进行确认时,参与方的链下服务却不可用,例如,不在参与方可以提供服务的时间窗口内,这会导致当前区块链上交易状态可能保持为“已创建,待参与方确认”,直到参与方的业务系统调用智能合约接口进行交易推进后,交易才能正常在链上达到终态。换句话说,一笔交易的完成,需要依赖于每个参与方的服务能力,尤其是可以提供服务的时间窗口。

如果交易发起后,参与方不能及时对交易状态进行确认,会导致交易长时间不会受理,进而,大量未完成的交易会导致链上交易阻塞。

在一些实施例中,交易阻塞会影响客户体验感。例如,在涉及资金调拨的汇款交易中,当参与方A发起汇款交易的请求之后,该汇款交易的发起时间不在参与方C可以提供服务的时间窗口内,导致本次汇款交易的资金被占用,而参与方A并不知晓该情况,也无法使用该笔资金,影响客户体验感。

以涉及资金调拨的场景为例,相关技术中,为了避免交易过程中需要多方确认的情况,可以通过速汇公司来进行交易。速汇公司可以先在对应的收款银行进行账户预存,从而可以将涉及多方参与的交易转变成2笔独立的行内汇款(汇款银行直接进行行内调拨收款,收款银行也直接进行行内调拨汇款)。

采用这种方案,虽然可以通过垫资的方式避免涉及多方的交易,从而可以避免多方确认的问题。但是,采用这种方案时,速汇公司需要提前垫资,对于一些大额的调拨场景而言,速汇公司的垫资成本极高,不具有可行性。

为了解决上述问题,本公开实施例提供一种基于区块链的交易处理方法和装置,以避免因不在参与方的服务时间窗口内而导致的链上交易阻塞。

图3是本公开实施例提供的一系统架构的示例图。如图3所示,系统300可以包括第一参与方310、第二参与方320和区块链330。第一参与方310和第二参与方320都属于目标交易的多个参与方中的一个。

第一参与方310可以是目标交易的推进方或执行方。在一笔目标交易的完成过程中,可以有多个第一参与方310推进或执行该目标交易。

在完成目标交易的过程中,第一参与方310可以在链下对该目标交易进行操作。此外,第一参与方310还可以对该目标交易进行确认,然后将确认结果提交到区块链上以自动推进目标交易的状态。

第二参与方320可以是目标交易的发起方。例如,第二参与方320可以在区块链上发起一笔汇款交易。

第一参与方310和第二参与方320可以是区块链上的用户端。第一参与方310和第二参与方320可以以交易的形式向区块链330(或称区块链网络)发送智能合约的调用请求,通过区块链330中的所有节点调用并执行相应的智能合约。

第一参与方310和第二参与方320可以和区块链330进行通信。在一些实施例中,第一参与方310和第二参与方320之间不用直接通信。

区块链330中可以部署有第一智能合约,第一智能合约可以用于管理目标交易的多个参与方中的至少一个参与方的服务时间窗口,其中,至少一个参与方的服务时间窗口可以用于指示该至少一个参与方能够参与目标交易的时间。例如,第一智能合约可以用于管理第一参与方310的服务时间窗口。

在一些实施例中,第一智能合约可以包含2个主要接口。其中调用第一接口可以设置自己的服务时间窗口,例如,第一参与方310可以通过第一接口设置自己的服务时间窗口。调用第二接口可以查询第一参与方的服务时间窗口,例如,第二参与方320可以通过第二接口查询第一参与方310的服务时间窗口。

下面结合图4,给出第一智能合约的一个示例。第一智能合约可以包括第一接口(或称为,设置服务时间窗口的接口,setupServiceTimeWindow)和第二接口(或称为,查询服务时间窗口的接口,queryServiceTimeWindow)。第一智能合约还可以包括存储的链上持久化数据。

第一参与方可以调用第一接口以创建或更新自己的服务时间窗口的信息。第一智能合约接收到第一接口的调用请求时,可以根据该调用请求对应创建或更新链上持久化数据的内容。

本公开对第一智能合约中存储的链上持久化数据的内容不做具体限定。作为一个示例,第一智能合约中核心的链上持久化数据可以包括每个第一参与方的服务时间窗口的信息以及服务时间窗口内的循环规则(loop_order)。

第一参与方的服务时间窗口的信息可以参见图4所示的“链上持久化数据关联关系”部分。第一参与方的服务时间窗口的信息可以包含一系列时间片信息(TimeSlice),以及这些时间片的组合信息组成的服务时间窗口(ServiceTimeWindow)。

如图4所示,每个时间片可以包含一对起止时间和对应时区,该起止时间即为对应的第一参与方的服务时间窗口。例如,在图4中表示时间片的表格中,id为1的这一行可以表示第一参与方的服务时间窗口为时区GMT+8(东八区)对应的9:00-16:00。

第一参与方或第二参与方可以调用第二接口以查询某第一参与方的服务时间窗口,以确认该第一参与方在某个时间点是否可以提供服务。

当调用第一智能合约的第二接口时,第一智能合约可以动态解析每条服务时间窗口对应的规则。解析结束后,可以先判断待匹配的时间点(例如,目标交易的发起时间、当前时间点等)中的当前天和时间片中的日期匹配(day_match)规则是否匹配。如果匹配之后,进一步将待匹配的时间点和时间片中的起止时间进行匹配。如果均匹配,则可以认为待匹配的时间点和时间片相匹配,进而可以知道每条服务时间窗口是否匹配。

在一些实施例中,可以在创建第一智能合约时,直接将日期匹配的规则写入第一智能合约中。在一些实施例中,可以在第二接口添加入参,让第一参与方自己规定自己对应的日期匹配规则。例如周末(weekend)和工作日(weekday)的判断规则是通用的,可以直接写在第一智能合约的逻辑中,而各种节假日会动态变化,可以让第一参与方自定义设置。

下面结合图5,对本公开实施例提供的基于区块链的交易处理方法进行详细描述。本公开实施例提供的基于区块链的交易处理方法可以应用于图3所示的系统架构中。图5所示的方法是站在第一参与方和区块链交互的角度进行描述的。

在步骤510,第一参与方向区块链发送第一智能合约的第一调用请求。

第一调用请求可以用于设置第一参与方的服务时间窗口。在一些实施例中,第一调用请求中可以包括第一参与方的服务时间规则。服务时间规则可以用于表示第一参与方能够提供服务的时间,作为一个示例,服务时间规则可以表示某一时间段服务可用或服务不可用,例如,服务时间规则可以采用下面任意一种形式或其组合:“每周六12:00至每周日18:00不可用”,“美国节假日不可用”,或者“各工作日9:00-18:00可用”。

在一些实施例中,第一参与方可以通过调用第一智能合约中的接口来发送第一调用请求。例如,第一参与方可以调用第一智能合约中的第一接口,以设置自己的服务时间窗口。

在步骤520,区块链根据第一调用请求,设置第一参与方的服务时间窗口。

接收到第一参与方发送的第一调用请求之后,区块链可以根据第一调用请求,设置该第一参与方的服务时间窗口。例如,当区块链中未存储该第一参与方的服务时间窗口时,区块链可以根据第一调用请求在区块链中创建该第一参与方的服务时间窗口;或者,当区块链中已存储有该第一参与方的服务时间窗口时,区块链可以根据第一调用请求,更新区块链中已存储的该第一参与方的服务时间窗口。

参见图6,在一些实施例中,区块链接收到第一参与方发送的第一调用请求之后,可以对第一参与方的权限进行校验,确认该第一调用请求是否是对应的第一参与方发送的,从而确保每个第一参与方只能调用接口来设置自己在区块链上的服务时间窗口。

作为一种实现方式,第一调用请求中可以包括第一参与方的数字签名,即第一参与方在发送第一调用请求时可以使用自己在区块链上的账户的私钥进行数字签名,区块链接收到该第一调用请求之后,可以基于第一智能合约中存证的该第一参与方的公钥,对第一调用请求中的数字签名进行校验,其中,该公钥为第一参与方生成该数字签名时使用的私钥所对应的公钥。如果第一调用请求中的数字签名校验通过,则可以确认该第一调用请求是对应的第一参与方发送的,该第一参与方可以设置自己在区块链上的服务时间窗口。

在一些实施例中,对第一参与方的权限校验通过后,区块链还可以对第一参与方提交的服务时间窗口的规则合法性进行校验。例如,可以校验第一参与方的服务时间窗口的规则是否在自己的支持范围;或者,可以校验第一参与方的服务时间窗口的时间点是否合法;又如,可以校验第一参与方的服务时间窗口中对应的节假日是否已在第一智能合约中维护(比如,第一智能合约中需要预先录入例如美国节假日对应的具体时间)。

当第一参与方的权限和第一参与方的服务时间窗口的规则合法性均通过校验时,区块链可以基于第一参与方发送的第一调用请求,设置第一参与方的服务时间窗口;当第一参与方的权限或第一参与方的服务时间窗口的规则合法性没有通过校验时,区块链可以拒绝设置第一参与方的服务时间窗口,同时向第一参与方返回调用失败的结果。

本公开实施例通过在区块链上部署第一智能合约,保证能够在区块链上对目标交易的各参与方的服务时间窗口进行管理,从而可以避免因不在参与方的服务时间窗口内而导致的链上交易阻塞。

在一些实施例中,多个参与方还包括第二参与方,第二参与方可以向区块链发送第一智能合约的第二调用请求。该第二调用请求可以用于查询第一参与方的服务时间窗口。

图7为本公开实施例提供的查询第一参与方的服务时间窗口的流程示意图。如图7所示,当第二参与方需要在区块链上查询第一参与方的服务时间窗口时,第二参与方可以通过调用第一智能合约的第二接口进行查询。区块链接收到第二参与方的第二调用请求后,可以向第二参与方返回第一参与方的服务时间窗口的查询结果。在一些实施例中,如果目标交易涉及多个第一参与方,第二参与方可以通过调用第一智能合约的第二接口,统一查询该多个第一参与方的服务时间窗口。

作为一个示例,向第二参与方发送的第一参与方的服务时间窗口的查询结果可以是该第一参与方的服务时间窗口。区块链可以直接向第二参与方返回第一参与方的服务时间窗口,使得第二参与方可以根据该服务时间窗口确定何时在区块链上发起交易。

作为另一个示例,第二调用请求中可以包括目标交易的发起时间,例如可以是当前时间点,或者也可以是某个计划发起交易的时间点。在这种情况下,向第二参与方发送的第一参与方的服务时间窗口的查询结果可以用于指示目标交易的发起时间是否位于该第一参与方的服务时间窗口。作为一种实现方式,区块链基于该第二调用请求查询第一参与方的服务时间窗口后,还可以判断该目标交易的发起时间是否位于该第一参与方的服务时间窗口。当该目标交易的发起时间位于该第一参与方的服务时间窗口内时,区块链向第二参与方返回的查询结果例如可以是服务可用;当该目标交易的发起时间位于该第一参与方的服务时间窗口之外时,区块链向第二参与方返回的查询结果例如可以是服务不可用。

作为一种实现方式,可以将智能合约和时间计算相结合,利用智能合约动态计算的特性,对服务时间窗口进行动态展开和动态计算,以判断目标交易的发起时间是否位于第一参与方的服务之间窗口。具体地,区块链从第二参与方接收到第一智能合约的第二调用请求之后,可以按照目标交易的发起时间,将第一参与方的服务时间窗口动态展开为时段,并判断该目标交易的发起时间是否位于所述时段内,然后根据判断结果向第二参与方返回第一参与方的服务时间窗口的查询结果。

下面给出区块链判断目标交易的发起时间是否位于第一参与方的服务时间窗口的一个示例。

例如,第二参与方在发送第二调用请求时,可以输入目标交易的发起时间:2021-07-18 15:00。区块链接收到该第二调用请求后,首先可以查询区块链中存储的第一参与方的服务时间窗口,然后将该第一参与方的服务时间窗口按照该输入的目标交易的发起时间进行展开。例如,查询到第一参与方的服务时间窗口为“各工作日9:00-18:00或者每周日12:00-20:00可以提供服务”,由于目标交易的发起时间2021-07-18这一天为周日,则工作日的服务时间窗口不生效。那么按照目标交易的发起时间将该第一参与方的服务时间窗口可以展开为2012-07-18 12:00-2021-07-18 20:00。将第一参与方的服务时间窗口展开为时段后,区块链可以自动判断该目标交易的发起时间是否在第一参与方的服务时间窗口展开后的这一时段内,并根据判断结果向第二参与方返回第一参与方的服务时间窗口的查询结果。例如,在该示例中,2021-07-18 15:00在2012-07-18 12:00-2021-07-18 20:00这个时段内,则可以向第二参与方返回服务可用的查询结果。

第二参与方在发起目标交易前,可以先查询该目标交易涉及的所有第一参与方的服务时间窗口,当该目标交易的发起时间在所有第一参与方的服务时间窗口内时再发起目标交易,可以避免因第一参与方的服务不可用导致的交易阻塞,进而提高链上交易处理的时效。

在一些实施例中,区块链上还可以部署有第二智能合约,该第二智能合约可以用于执行目标交易。第二智能合约例如可以是汇款交易的智能合约,或者可以是租赁交易的智能合约。

第二参与方可以向区块链发送第一交易执行请求,该第一交易执行请求可以用于请求第一参与方执行目标交易。第二参与方可以通过调用第二智能合约发起第一交易执行请求。

例如,在图8所示的系统架构中,第二智能合约可以与第一智能合约自动关联,因此,第二智能合约可以调用第一智能合约以查询第一参与方的服务时间窗口。当第二参与方通过调用第二智能合约发起第一交易执行请求时,第二智能合约接收到该第一交易执行请求后,可以对该目标交易进行解析以确认参与该目标交易的第一参与方。解析完成第一参与方后,第二智能合约可以直接调用第一智能合约,以查询该第一交易执行请求的发起时间是否位于第一参与方的服务时间窗口,如果第一交易执行请求的发起时间位于第一参与方的服务时间窗口之外,终止该目标交易,以避免交易阻塞;如果第一交易执行请求的发起时间位于第一参与方的服务时间窗口内,则继续推进该目标交易。

通过将第二智能合约自动关联第一智能合约,第二智能合约可以直接调用第一智能合约以查询第一参与方的服务时间窗口,从而可以将服务时间窗口和链上的第二智能合约自动组合,进一步减少用户的交互成本。

上文结合图1至图8,详细描述了本公开的方法实施例,下面结合图9至图11,详细描述本公开的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。

图9是本公开一实施例提供的基于区块链的交易处理装置的示意性结构图。图9的交易处理装置900可以应用于区块链(或区块链网络中的节点)。其中,该区块链上部署有第一智能合约,该第一智能合约用于管理目标交易的多个参与方中的至少一个参与方的服务时间窗口。至少一个参与方的服务时间窗口用于指示该至少一个参与方能够参与目标交易的时间。至少一个参与方包括第一参与方,该交易处理装置900可以包括第一接收单元910和设置单元920。下面对这些单元进行详细介绍。

第一接收单元910可以被配置为从第一参与方接收第一智能合约的第一调用请求,该第一调用请求用于设置第一参与方的服务时间窗口。

设置单元920可以被配置为根据第一调用请求,设置第一参与方的服务时间窗口。

可选地,多个参与方包括第二参与方,交易处理装置900还可以包括第二接收单元和发送单元。第二接收单元可以被配置为从第二参与方接收第一智能合约的第二调用请求,该第二调用请求用于查询第一参与方的服务时间窗口。发送单元可以被配置为向第二参与方发送第一参与方的服务时间窗口的查询结果。

可选地,第二调用请求中包括目标交易的发起时间,查询结果用于指示目标交易的发起时间是否位于第一参与方的服务时间窗口。

可选地,多个参与方包括第二参与方,交易处理装置900还包括第三接收单元、调用单元和终止单元。第三接收单元可以被配置为从第二参与方接收第一交易执行请求,该第一交易执行请求用于请求第一参与方执行目标交易。调用单元可以被配置为响应于第一交易执行请求,调用第一智能合约,以查询该第一交易执行请求的发起时间是否位于第一参与方的服务时间窗口。终止单元可以被配置为如果第一交易执行请求的发起时间位于第一参与方的服务时间窗口之外,终止目标交易。

可选地,区块链上部署有第二智能合约,该第二智能合约用于执行目标交易。

可选地,交易处理装置900还包括第一校验单元和第二校验单元。第一校验单元可以被配置为对第一参与方的权限进行校验。第二校验单元可以被配置为对第一参与方的服务时间窗口的规则合法性进行校验。设置单元920可以进一步被配置为响应于该权限和规则合法性校验通过,设置第一参与方的服务时间窗口。

可选地,第一调用请求中包括第一参与方的数字签名,第一校验单元可以进一步被配置为基于第一智能合约中存证的第一参与方的公钥,对该数字签名进行校验,其中,该公钥为第一参与方生成数字签名时使用的私钥对应的公钥。

图10是本公开另一实施例提供的基于区块链的交易处理装置的示意性结构图。该区块链上部署有第一智能合约,该第一智能合约用于管理目标交易的多个参与方中的至少一个参与方的服务时间窗口。其中,至少一个参与方的服务时间窗口用于指示该至少一个参与方能够参与目标交易的时间。至少一个参与方包括第一参与方,图10的交易处理装置1000可以应用于第一参与方。交易处理装置1000可以包括发送单元1010。下面对发送单元1010进行详细描述。

发送单元1010可以被配置为向区块链发送第一智能合约的第一调用请求,该第一调用请求用于设置第一参与方的服务时间窗口。

可选地,区块链上部署有第二智能合约,该第二智能合约用于执行目标交易。

可选地,第一调用请求中包括第一参与方的数字签名,该数字签名是第一参与方使用私钥生成的。

图11是本公开又一实施例提供的基于区块链的交易处理装置的示意性结构图。图11所示的交易处理装置1100可以是具有计算功能的计算设备,例如,交易处理装置1100可以是服务器。交易处理装置1100可以包括存储器1110和处理器1120。存储器1110可用于存储可执行代码。处理器1120可用于执行所述存储器1110中存储的可执行代码,以实现前文描述的各个方法中的步骤。在一些实施例中,该交易处理装置1100还可以包括网络接口1130,处理器1120与外部设备的数据交换可以通过该网络接口1130实现。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

本领域普通技术人员可以意识到,结合本公开实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。

在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:自动化交易数据生成方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!