基于区块链的交易执行方法及装置、电子设备与流程

文档序号:15146254发布日期:2018-08-10 20:29阅读:169来源:国知局

本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的交易执行方法及装置、电子设备。



背景技术:

区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,利用区块链技术来搭建去中心化系统,并在区块链的分布式数据库中收录各种执行程序进行自动执行,已在众多的领域中广泛的进行应用;例如,在金融科技领域,利用区块链技术搭建p2p支付平台,并在区块链上发布诸如智能合约等执行程序,可以在不经过银行等金融机构的前提下,实现不同的用户之间的点对点安全支付。



技术实现要素:

本说明书提出一种基于区块链的交易执行方法,包括:

区块链的节点设备接收到目标交易;其中,所述目标交易中的至少部分交易内容包括存储在与所述区块链对接的第三方存储系统中的目标内容的内容摘要;

向所述第三方存储系统查询与所述内容摘要对应的目标内容,并对所述目标内容进行内容校验;

如果所述目标内容校验通过,基于所述目标交易中的交易内容执行所述目标交易,并在所述目标交易执行完毕后在所述区块链的分布式数据库中存储所述目标交易。

可选的,所述第三方存储系统中存储了所述目标内容与所述目标内容的内容摘要之间的对应关系;

所述向所述第三方存储系统查询与所述内容摘要对应的目标内容,包括:

将所述内容摘要作为查询索引向所述第三方存储系统发起查询,以查询与所述内容摘要对应的目标内容。

可选的,所述对所述目标内容进行内容校验,包括:

基于预设的摘要算法计算所述目标内容的内容摘要;

确定计算得到的内容摘要与所述目标交易中的所述目标内容的内容摘要是否一致;

如果计算得到的内容摘要与所述目标交易中的所述目标内容的内容摘要一直,确定针对所述目标内容的校验通过。

可选的,所述第三方存储系统包括中心化的内容可寻址存储cas系统;或者,分布式的cas存储系统。

可选的,所述区块链包括由若干成员区块链组成的联盟链中的任一成员区块链。

可选的,所述第三方存储系统为所述联盟链与所述区块链存在数据跨链引用关系的其它成员区块链。

可选的,所述联盟链为基于各成员区块链之间的数据跨链引用关系构建的有向无环图dag结构。

本说明书还提出一种基于区块链的交易执行装置,包括:

接收模块,接收到目标交易;其中,所述目标交易中的至少部分交易内容包括存储在与所述区块链对接的第三方存储系统中的目标内容的内容摘要;

查询模块,向所述第三方存储系统查询与所述内容摘要对应的目标内容,并对所述目标内容进行内容校验;

执行模块,如果所述目标内容校验通过,基于所述目标交易中的交易内容执行所述目标交易,并在所述目标交易执行完毕后在所述区块链的分布式数据库中存储所述目标交易。

可选的,所述第三方存储系统中存储了所述目标内容与所述目标内容的内容摘要之间的对应关系;

所述查询模块:

将所述内容摘要作为查询索引向所述第三方存储系统发起查询,以查询与所述内容摘要对应的目标内容。

可选的,所述执行模块进一步:

基于预设的摘要算法计算所述目标内容的内容摘要;

确定计算得到的内容摘要与所述目标交易中的所述目标内容的内容摘要是否一致;

如果计算得到的内容摘要与所述目标交易中的所述目标内容的内容摘要一直,确定针对所述目标内容的校验通过。

可选的,所述第三方存储系统包括中心化的内容可寻址存储cas系统;或者,分布式的cas存储系统。

可选的,所述区块链包括由若干成员区块链组成的联盟链中的任一成员区块链。

可选的,所述第三方存储系统为所述联盟链与所述区块链存在数据跨链引用关系的其它成员区块链。

可选的,所述联盟链为基于各成员区块链之间的数据跨链引用关系构建的有向无环图dag结构。

本说明书还提出一种电子设备,包括:

处理器;

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

其中,通过读取并执行所述存储器存储的与基于区块链的基于区块链的交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:

接收到目标交易;其中,所述目标交易中的至少部分交易内容包括存储在与所述区块链对接的第三方存储系统中的目标内容的内容摘要;

向所述第三方存储系统查询与所述内容摘要对应的目标内容,并对所述目标内容进行内容校验;

如果所述目标内容校验通过,基于所述目标交易中的交易内容执行所述目标交易,并在所述目标交易执行完毕后在所述区块链的分布式数据库中存储所述目标交易。

通过以上实施例,通过在向区块链发布的交易的交易内容中携带存储在与该区块链对接的第三方存储系统中的目标内容的内容摘要,使得区块链中接收到该交易的节点设备,可以基于该内容摘要向第三方存储系统查询对应的目标内容,对目标内容进行内容校验,并在该目标内容校验通过后执行该交易,以及在该交易执行完毕后在区块链的分布式数据库中存储该交易,从而实现了用户可以在向区块链发布的交易中,引用与区块链对接的第三方存储系统中存储的目标内容作为交易内容,可以避免将上述第三方存储系统中存储的目标内容的原始内容同步至区块链中的各节点设备,而造成的在区块链上的数据冗余存储。

附图说明

图1是一示例性实施例提供的一种基于区块链的交易执行方法的流程图。

图2是一示例性实施例提供的一种联盟链的结构示意图。

图3是一示例性实施例提供的一种电子设备的结构示意图。

图4是一示例性实施例提供的一种基于区块链的交易执行装置的框图。

具体实施方式

在传统的区块链交易流程中,交易(transfer)中的交易内容通常全部来自于区块链的分布式数据库(即区块链账本)上存储的数据内容,并不能引用外部存储中存储的数据内容;因此,对于区块链网络中的各节点设备而言,在执行接入区块链的成员用户发布的交易时,交易内容所涉及的数据内容全部来自于链上,进而形成了一种“数据使用闭环”。

而本说明书中则旨在公开一种,在区块链交易(transfer)中引用第三方存储平台中存储的不可变数据内容作为交易内容,来打破区块链的“数据使用闭环”的技术方案。

在实现时,区块链中可以预先与第三方存储系统对接,在第三方存储系统中可以预先存储若干可供在区块链上发布的交易引用的不可变数据内容。而接入区块链的成员用户在向区块链发布交易时,可以在交易中添加上述第三方存储系统中存储的数据内容的内容摘要,来引用上述第三方存储系统中存储的数据内容作为交易内容。

当区块链上的节点设备收到上述成员用户发布的交易时,可以基于该内容摘要向上述第三方存储系统发起查询,来查询与该内容摘要对应的数据内容,并对查询到的数据内容进行内容校验;当内容校验通过,可以基于该交易中的完整交易内容来执行该交易,并在该交易执行完毕后在区块链的分布式数据库中存储该交易。

在以上实施例中,通过在向区块链发布的交易的交易内容中携带存储在与该区块链对接的第三方存储系统中的目标内容的内容摘要,使得区块链中接收到该交易的节点设备,可以基于该内容摘要向第三方存储系统查询对应的目标内容,对目标内容进行内容校验,并在该目标内容校验通过后执行该交易,以及在该交易执行完毕后在区块链的分布式数据库中存储该交易,从而实现了用户可以在向区块链发布的交易中,引用与区块链对接的第三方存储系统中存储的目标内容作为交易内容,可以避免将上述第三方存储系统中存储的目标内容的原始内容同步至区块链中的各节点设备,而造成的在区块链上的数据冗余存储。

下面通过具体实施例并结合具体的应用场景对本说明书进行描述。

请参考图1,图1是本说明书一实施例提供的一种基于区块链的交易执行方法,应用于区块链中的节点设备,执行以下步骤:

步骤102,区块链的节点设备接收到目标交易;其中,所述目标交易中的至少部分交易内容包括存储在与所述区块链对接的第三方存储系统中的目标内容的内容摘要;

步骤104,向所述第三方存储系统查询与所述内容摘要对应的目标内容,并对所述目标内容进行内容校验;

步骤106,如果所述目标内容校验通过,基于所述目标交易中的交易内容执行所述目标交易,并在所述目标交易执行完毕后在所述区块链的分布式数据库中存储所述目标交易。在本说明书描述的区块链,具体可以包括所支持的区块链交易中,可以引用与区块链对接的第三方存储系统中存储的不可变数据内容作为交易内容的任意类型的区块链网络。

例如,在一个场景中,上述区块链具体可以是一个由若干成员区块链组成的联盟链中的任一成员区块链。在该联盟链中,各个成员区块链中支持的区块链交易中,均可以跨链引用其它成员区块链中存储的数据内容作为交易内容。

上述第三方存储系统,包括面向区块链提供可靠的数据存储服务的cas(content-addressable-storage,内容可寻址存储)存储平台。所谓内容可寻址,是指不再采用数据在存储系统中的存储偏移量进行寻址,而是依靠数据的内容来进行寻址。

在cas存储平台中,可以将存储的数据内容的内容摘要(比如针对数据内容进行hash计算得到的内容hash值),作为原始的数据内容的查询索引,并保存查询索引与原始的数据内容之间的对应关系,从而数据查询方可以通过将内容摘要作为查询索引,从cas存储平台中查询对应的原始数据内容。

其中,在实际应用中,上述第三方存储系统可以包括传统的中心化的cas(content-addressable-storage,内容可寻址存储)系统;或者,也可以包括去中心化的分布式的cas系统;

例如,在一个场景中,上述区块链具体可以是一个由若干成员区块链组成的联盟链中的任一成员区块链。而上述第三方存储系统,具体可以是部署在联盟链中的,可以与联盟链中的各成员区块链对接的诸如基于oss(objectstorageservice,对象存储服务)架构的分布式系统。

或者,在另一个例子中,也可以将上述联盟链中的除了上述区块链以外的与该区块链存在数据跨链引用关系的其它成员区块链,作为与该区块链对接的第三方存储系统,来实现各成员区块链之间的数据跨链引用。

以下以上述区块链为由若干成员区块链组成的联盟链中的成员区块链为例,并结合“第三方存储系统部署”、“交易内容引用”、“交易内容寻址”以及“交易执行”,对本说明书的技术方案进行详细说明。

1)第三方存储系统部署

在本说明书中,运营方可以预先搭建一个由若干成员区块链构成的联盟链。在该联盟链中,每一个成员区块链都是该联盟链中的一个联盟成员。而上述区块链具体可以是该联盟链中的任一成员区块链。

联盟链的运营方,还可以在联盟链中部署第三方存储系统,与联盟链中的各个成员区块链进行对接,面向各成员区块链提供可靠的数据存储服务。

例如,上述第三方存储系统可以面向各成员区块链提供持续可靠的api访问接口,使得联盟链中的各个成员区块链可以通过访问该api访问接口,与上述第三方存储系统进行对接。

其中,在联盟链中部署第三方存储系统时,可以针对联盟链部署一个全局的第三方存储系统,也可以针对联盟链中的各成员区块链分别部署一个独立的第三方存储系统,在本说明书中不进行特别限定。

在本说明书中,上述第三方存储系统,可以是支持内容可寻址的cas存储系统。在实际应用中,上述第三方存储系统可以是传统的中心化的cas系统,也可以是分布式的cas系统。

其中,上述分布式的cas系统,可以包括传统的中心化的分布式系统,以及去中心化的分布式系统。

在示出的一种实施方式中,上述第三方存储系统,具体可以是部署在联盟链中的,可以与联盟链中的各成员区块链对接的诸如基于oss架构的中心化的分布式系统。

在示出的另一种实施方式中,上述第三方存储系统,也可以是去中心化的分布式系统。在实现时,可以将上述联盟链中除了上述区块链以外的与该区块链存在数据跨链引用关系的其它成员区块链,作为与该区块链对接的第三方存储系统。即联盟链中的任一成员区块链可以作为与另一成员区块链对接的第三方存储系统,来实现数据的跨链引用。

举例而言,在一种场景下,运营方可以基于实际的业务需求来搭建联盟链,并赋予联盟链中的各成员区块链不同的业务角色;即联盟链对应一个完整的业务流程,而各成员区块链可以分别对应上述完成的业务流程中的一个子流程。

例如,在一个例子中,以运营方基于“在线租房交易”这一业务需求搭建的联盟链为例,组成该联盟链中的各成员区块链中可以包括“交易链”、“认证链”以及“数据链”。其中,“交易链”、“认证链”以及“数据链”可以分别对应“在线租房交易”这一业务流程中的一个子流程;比如,“数据链”用于维护租房用户的实名数据;“认证链”用于完成针对用户的租房实名认证;而“交易链”用于完成在线的租房交易。

然后,运营方可以基于各成员区块链之间的单向的数据跨链引用关系,在业务层面将联盟链构建成一张dag(directedacyclicgraph,有向无环图)结构的拓扑图。

其中,需要说明的是,各成员区块链之间的单向的数据跨链引用关系,通常取决于实际的业务需求,在本说明书中不进行特别限定。

例如,请参见图2,图2为一个例子中示出的dag结构的联盟链的示意图。

如图2所示,仍以运营方基于“在线租房”这一业务需求搭建的联盟链为例,组成该联盟链中的各成员区块链中可以包括“交易链”、“认证链”以及“数据链”。其中,“数据链”用于维护租房用户的实名数据,用户可以通过在“数据链”上发布交易将个人的实名数据存储在“数据链”的分布式数据库中;“认证链”用于引用发布在“数据链”上的用户的实名数据完成针对用户的租房实名认证,用户可以通过在“认证链”上发布交易完成个人的实名认证,并将实名认证结果发布在“认证链”的分布式数据库;而“交易链”用于引用发布在“认证链”上的针对用户的实名认证结果,用户可以通过在“交易链”上发布交易完成在线租房交易,并将交易结果发布在“认证链”的分布式数据库。

通过将与上述联盟链中的任一目标成员区块链存在数据跨链引用关系的其它成员区块链,作为与该目标成员区块链对接的分布式存储平台,一方面可以在业务层面实现各个成员区块链之间的跨链数据引用;另一方面,由于作为第三方存储系统的成员区块链不再需要将上述被引用的目标内容的原始内容,同步至上述目标成员区块链中的各个节点设备,而且上述目标成员区块链中也不再需要存储上述被引用的目标内容的原始内容;因此,对于上述目标成员区块链而言,不再需要对该目标成员区块链中存储的目标内容的原始内容,与作为第三方存储系统的成员区块链同步的被引用的目标内容进行额外的数据关联,仅通过被引用的目标内容的内容摘要,就可以实现被引用的目标内容在两个不同的区块链上的数据关联,可以保证上述目标成员区块链所引用的目标内容和作为第三方存储系统的成员区块链上存储的上述被引用的目标内容,在业务语义上的一致性。

2)交易内容引用

在本说明书中,对于需要接入联盟链的用户,可以预先在联盟链中进行用户注册,取得联盟链返回的一对公钥和私钥。当注册完成后,联盟链可以为用户创建一个对应的账户对象。

而对于注册完成的用户而言,可以通过联盟链中各个成员区块链提供的api接口,接入各个成员区块链,通过向各个成员区块链中发布基于持有的私钥签名后的交易,在各个成员区块链中完成对应的业务操作。比如,以图2中示出的联盟链中的“交易链”为例,用户可以通过在该“交易链”中发布交易,来完成在线的租房交易。

在实现时,联盟链的运营方可以面向接入联盟链的成员用户开发客户端软件(比如app),而成员用户可以通过客户端软件按照联盟链所支持的标准的交易格式,来组装交易数据,并通过调用各个成员区块链提供的api接口,将组成的交易数据发布至联盟链中由成员用户指定的目标成员区块链中进行执行。

其中,在成员用户通过客户端软件组装的交易数据中,可以携带成员用户指定的交易内容,并且这些交易内容中的至少部分交易内容,可以利用内容摘要来进行替代。

在示出的一种实施方式中,成员用户在通过客户端软件来组装需要在上述目标成员区块链上执行的交易数据时,可以通过客户端软件来填写交易内容;而客户端软件可以解析成员用户填写的交易内容,来确定成员用户填写的交易内容是否存在已经在与上述目标成员区块链对接的第三方存储系统中存储。

如果成员用户填写的交易内容中存在已经在上述第三方存储系统中存储的交易内容时,可以向上述第三方存储系统查询这部分交易内容对应的内容摘要(即查询索引),或者按照与上述第三方存储系统所支持的相同的内容摘要算法,针对这部分交易内容重新计算内容摘要,然后将该内容摘要填充到标注的交易格式中;

例如,在实现时,可以在联盟链支持的标准的交易格式中,扩展出一个用于携带交易内容的内容摘要字段,客户端软件按照标准的交易格式组装交易数据时,可以将所有已经在上述第三方存储系统中存储的交易内容的内容摘要,填充至该内容摘要字段。

3)交易内容寻址

在本说明书中上述目标成员区块链中与该注册完成的成员用户对接的节点设备,在收到该用户基于私钥发布的该笔交易后,首先可以基于该用户持有的私钥对应的公钥对该用户进行身份认证;

例如,在实际应用中,用户可以基于持有的私钥对发起的交易进行签名,区块链中的节点设备可以基于该用户持有的私钥对应的公钥,对签名进行认证;如果签名认证通过,此时针对该用户的身份认证通过。

当身份认证通过后,该节点设备可以对接收到的交易中所携带的交易内容进行解析,以确定该交易中携带的交易内容中是否存在内容摘要;

例如,节点设备可以通过解析标准的交易格式中所扩展出的用于携带交易内容的内容摘要字段是否为空值,来确定该交易中携带的交易内容中是否存在内容摘要。

如果该交易中携带的交易内容中存在内容摘要,表明该交易中的部分交易内容为引用上述第三方存储系统中已经存储的数据内容,在这种情况下,为了获取该交易中携带的完整的交易内容,该节点设备可以向与上述目标成员区块链对接的第三方存储系统查询与该内容摘要对应的目标内容。

在实现时,该节点设备可以构建一个查询请求,将上述内容摘要作为查询索引,携带在该查询请求中,然后将该查询请求提交给上述第三方存储系统,而上述第三方存储系统在收到该查询请求后,可以从该查询请求中读取查询索引,然后基于该查询索引,遍历本地存储的数据内容和内容摘要之间的对应关系,来查询与上述查询索引对应的目标内容,并将查询到的目标内容返回给上述节点设备。

其中,需要说明的是,在实际应用中,在上述查询请求中除了可以携带作为查询索引的内容摘要以外,为了便于快速的查询到与内容摘要对应的目标内容,在该查询请求中还可以携带一些辅助查询参数;

例如,以与上述目标成员区块链对接的第三方存储系统,为上述联盟链中与该目标成员区块链存储数据跨链引用关系的其它成员区块链为例,在这种情况下,由于作为第三方存储系统的其它成员区块链中所保存的被引用的数据内容以及对应的内容摘要,通常已经以区块的形式被存储在区块链的分布式数据库中;因此,为了方便查询,在上述查询请求中,还可以携带上述内容摘要所在的成员区块链的编号、区块号等等作为辅助查询参数。

4)交易执行

在本说明书中,当该节点设备从与上述目标成员区块链对接的第三方存储系统查询到与接收到的交易中所携带的内容摘要对应的目标内容后,该节点设备可以基于该交易中所携带的完整的交易内容,在该目标成员区块链中执行该笔交易。

首先,该节点设备可以针对查询到的该目标内容进行内容校验,以确保查询到的目标内容,与上述内容摘要对应的数据内容是否一致。

在实现时,该节点设备可以重新计算查询到的该目标内容的内容摘要,然后将重新计算得到的内容摘要,与接收到的上述交易中携带的内容摘要进行匹配,以确定重新计算得到的内容摘要,与接收到的上述交易中携带的内容摘要是否一致;

如果二者一致,此时针对查询到的该目标内容的内容校验通过,该节点设备接收到的该交易为有效交易,该节点设备可以获取该交易中携带的完整的交易内容;

反之,如果二者不一致,此时针对查询到的该目标内容的内容校验不通过,在这种情况下,存储在上述第三方存储系统中的原始的被引用的目标内容,可能由于系统的不可靠性发生了修改更新,此时该交易为无效交易,该节点设备可以直接终止该交易即可。

其中,需要说明的是,该节点设备可以重新计算查询到的该目标内容的内容摘要时,该目标内容的数据结构、对该目标内容执行的编码方式、以及所采用的摘要算法,均需要与上述第三方存储系统保持一致,以确保该节点设备和上述第三方存储系统在针对相同的目标内容进行内容摘要计算时,能够得到相同的计算结果。

进一步的,该节点设备还可以基于上述目标成员区块链所支持的共识算法,对一段时间内收到的有效交易(即通过内容校验的交易)进行共识处理,并在共识处理完成后,基于交易中携带的完整的交易内容,在该目标成员区块链中来执行该笔交易。

其中,上述联盟链中的各个成员区块链所支持的共识算法,在本说明书中不进行特别限定,各个成员区块链支持的共识算法可以相同,也可以不同。

需要说明的是,在本说明书中,上述节点设备在基于获取到的交易中的完整的交易内容在上述目标成员区块链中来执行该笔交易时,通常可以包括以下两种情形:

在一种情形下,成员用户在上述目标成员区块链中发布的交易,具体可以是通过调用发布在上述目标成员区块链中的智能合约,来自动执行的交易。例如,上述交易具体可以是通过调用智能合约在区块链中完成在线价值转移(比如跨境转账)的交易。

在这种情况下,该智能合约中可以预先声明与交易相关的可供调用的执行程序;例如,该执行程序具体可以是与智能合约中声明的交易条件相关的可执行代码、函数等等;而该交易中所携带的交易内容,将作为调用该智能合约的输入参数。节点设备在获取到上述交易中携带的交易内容后,可以将发起针对上述智能合约的调用,将这些输入参数提交至上述智能合约中声明的执行程序中进行执行,来完成该笔交易。

在另一种情形下,成员用户在上述目标成员区块链中发布的交易,具体可以是上述目标成员区块链所支持的标准交易类型。对于标准的交易类型,可以在不调用智能合约的情况下完成交易的执行;例如,上述交易具体可以是上述目标成员区块链所支持的诸如“存证交易”等标准的交易类型。比如,如图2中所示出的“数据链”,用户可以通过向“数据链”发布一笔“存证交易”,将个人的实名信息,存储在“数据链”的分布式数据库中,一旦发布完成该用户的实名信息将无法被篡改。

在这种情况下,该节点设备在执行该笔交易时,首先可以对该交易进行有效性验证;如果经过有效性验证确认该笔交易有效,该节点设备可以进一步将该交易在该目标成员区块链中进行广播,将该交易同步至该目标成员区块链中的其它各节点设备,由其它各节点设备对该交易进行有效性验证;如果该目标成员区块链中的大多数(比如51%)的节点设备,经过有效性验证确认该笔交易有效,此时该笔交易执行完毕。

在本说明书中,当节点设备在执行完毕接收到的交易后,可以进一步将该交易在该目标成员区块链的分布式数据库中进行存储。

其中,区块链的分布式数据库所记录的信息通常包括交易log以及交易state组成。

交易log,用于存储交易日志,由一个个区块(block)按照发生顺序串联而成,是分布式数据库中的交易记录;

交易state,用于存储分布式数据库中记录的交易所导致的状态变化;例如,区块链通常由很多小的对象组成(比如账户对象、合约对象以及资产对象等等),没在区块链的分布式数据库中提交一笔交易,该笔交易在执行完毕后,与该交易相关的状态都会同步的发生更新;比如,以在区块链中提交的在线转账交易为例,该笔交易在执行完毕后,与本次转账相关的账户对象的余额会同步的发生更新。

在这种情况下,当节点设备在执行完毕接收到的交易,进一步将该交易在该目标成员区块链的分布式数据库中进行存储时:

一方面,可以将该笔交易写入生成的区块中存储在该目标成员区块链的分布式数据库中的交易log中;

另一方面,可以在交易state中对该笔交易所导致的相关对象的状态变化进行更新;比如,仍以在区块链中提交的在线转账交易为例,该笔交易在执行完毕后,可以在交易state中对与本次转账相关的账户对象的余额进行更新。

在以上实施例中,由于可以第三方存储系统中存储被引用数据的原始内容,而区块链中可以仅存储被引用数据内容的内容摘要,区块链在执行交易或者进行交易回溯时,再基于该内容摘要从第三方存储系统中读取被引用数据的原始内容:

一方面,可以避免将上述第三方存储系统中存储的目标内容的原始内容同步至区块链中的各节点设备,而造成的在区块链上的数据冗余存储;

例如,以与目标区块链对接的第三方存储系统为与该区块链存在数据跨链引用关系的其它区块链为例,假设该其它区块链包括5个节点设备,而该目标区块链包括50个节点设备;如果仍然采用将该其它区块链中存储的被引用数据内容同步至该目标区块链的方式,则需要将该被引用数据内容同步分别同步至该目标区块链中的50个节点,从而造成该被引用数据内容在该目标区块链中的大量冗余;而如果该目标区块链仅存储上述被引用数据内容的内容摘要,那么对于上述其它区块链而言,则不再需要将上述被引用数据内容分别向上述50个节点设备分别进行同步,从而可以显著降低上述目标区块链的数据存储冗余。

另一方面,可以显著提升区块链的存储性能;

例如,在实际应用中,如果上述被引用的数据内容是一些诸如图片、视频等较大的媒体文件,直接将这些媒体文件存储在上述目标成员区块链中,可能会降低区块链网络的存储性能;因此,通过这种方式,在某种程度上也可以提升上述目标成员区块链的数据存储性能。

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

图4是本说明书一示例性实施例示出的一种基于区块链的交易执行装置的框图。

请参考图4,所述基于区块链的交易执行装置30可以应用在前述图2所示的电子设备中,包括有:接收模块401、查询模块402和执行模块403。

接收模块401,接收到目标交易;其中,所述目标交易中的至少部分交易内容包括存储在与所述区块链对接的第三方存储系统中的目标内容的内容摘要;

查询模块402,向所述第三方存储系统查询与所述内容摘要对应的目标内容,并对所述目标内容进行内容校验;

执行模块403,如果所述目标内容校验通过,基于所述目标交易中的交易内容执行所述目标交易,并在所述目标交易执行完毕后在所述区块链的分布式数据库中存储所述目标交易。

在本实施例中,所述第三方存储系统中存储了所述目标内容与所述目标内容的内容摘要之间的对应关系;

所述查询模块402:

将所述内容摘要作为查询索引向所述第三方存储系统发起查询,以查询与所述内容摘要对应的目标内容。

在本实施例中,所述执行模块403进一步:

基于预设的摘要算法计算所述目标内容的内容摘要;

确定计算得到的内容摘要与所述目标交易中的所述目标内容的内容摘要是否一致;

如果计算得到的内容摘要与所述目标交易中的所述目标内容的内容摘要一直,确定针对所述目标内容的校验通过。

在本实施例中,所述第三方存储系统包括中心化的内容可寻址存储cas系统;或者,分布式的cas存储系统。

在本实施例中,所述区块链包括由若干成员区块链组成的联盟链中的任一成员区块链。

在本实施例中,所述第三方存储系统为所述联盟链与所述区块链存在数据跨链引用关系的其它成员区块链。

在本实施例中,所述联盟链为基于各成员区块链之间的数据跨链引用关系构建的有向无环图dag结构。

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

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

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

与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。

在本实施例中,通过读取并执行所述存储器存储的与基于区块链的交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:

接收到目标交易;其中,所述目标交易中的至少部分交易内容包括存储在与所述区块链对接的第三方存储系统中的目标内容的内容摘要;

向所述第三方存储系统查询与所述内容摘要对应的目标内容,并对所述目标内容进行内容校验;

如果所述目标内容校验通过,基于所述目标交易中的交易内容执行所述目标交易,并在所述目标交易执行完毕后在所述区块链的分布式数据库中存储所述目标交易。

在本实施例中,所述第三方存储系统中存储了所述目标内容与所述目标内容的内容摘要之间的对应关系;

通过读取并执行所述存储器存储的与基于区块链的交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:

将所述内容摘要作为查询索引向所述第三方存储系统发起查询,以查询与所述内容摘要对应的目标内容。

在本实施例中,通过读取并执行所述存储器存储的与基于区块链的交易执行的控制逻辑对应的机器可执行指令,所述处理器被促使:

基于预设的摘要算法计算所述目标内容的内容摘要;

确定计算得到的内容摘要与所述目标交易中的所述目标内容的内容摘要是否一致;

如果计算得到的内容摘要与所述目标交易中的所述目标内容的内容摘要一直,确定针对所述目标内容的校验通过。

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

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

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

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