使用交易重发加速区块链网络中的交易交付的制作方法

文档序号:17850829发布日期:2019-06-11 22:11阅读:153来源:国知局

分布式账本(dls),也可称为共识网络和/或区块链网络,使参与的实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,dls通常被称为区块链网络。区块链网络的示例类型可以包括公有区块链网络、私有区块链网络和联盟区块链网络。公有区块链网络向所有实体开放使用dls,并开放参与共识过程。私有区块链网络针对特定实体提供,该实体集中控制读写权限。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识过程,并包括访问控制层。

在传统的区块链系统中,交易发送过程包括客户端,该客户端生成交易并将该交易发送到区块链节点。该区块链节点获得对一批交易的共识,其后逐个执行这些交易。执行结果被写入新的区块。该过程涉及交易网络传输,主要由客户端将交易通信至区块链节点来完成。在现有的区块链环境中,使用直接网络连接进行通信。

然而,客户端和区块链节点之间的直接网络连接可能不是最佳的。由于其简易性,直接网络连接可能是低效的。网络可能无法适应处理网络的复杂性。例如,网络可能无法处理因网络问题减慢节点之间通信的情况。由于这种低效率,当网络中的两个网络节点需要传输数据时,所建立的直接连接可能不是最快的连接。例如,当两个节点在跨境网络中时,或者当两个节点属于不同的网络运营商时,直接网络连接可能是低效或缓慢的。通常,区块链中交易的传输时间是随机的或未知的。尽管可以使用直接网络连接来解决这些问题,但是解决直接网络连接的更有效解决方案将是有利的。



技术实现要素:

本文的实施方式包括用于改进区块链网络交易的由计算机实施的方法。更具体地,本文的实施方式涉及使用交易重发来加速区块链网络中的交易交付。

在一些实施方式中,操作包括:在区块链交易加速系统中,接收通过区块链中的第一节点发送的第一交易;在所述区块链交易加速系统中,接收为所述第一交易的副本的至少一个第二交易,所述至少一个第二交易由所述第一节点发送到所述区块链中的、与所述第一节点不同的至少一个第二节点;所述区块链交易加速系统执行接收到的交易中的第一个接收到的交易,所述接收到的交易包括所述第一交易和所述至少一个第二交易;以及所述区块链交易加速系统确定所述接收到的交易中的剩余交易与所述第一个接收到的交易相同时,丢弃所述剩余交易。其他实施方式包括相应的系统、装置以及计算机程序,该计算机程序被编码在计算机存储设备上,并且被配置为执行该方法的操作。

这些和其他实施方式可各自可选地包括以下特征中的一个或多个:

第一特征,可与以下任一特征组合,其中,确定所述接收到的交易中的所述剩余交易与所述第一个接收到的交易相同包括:识别每个所述剩余交易的数字签名与所述第一个接收到的交易的数字签名匹配。

第二特征,可与先前或以下特征中的任一特征组合,其中,所述区块链中的所述第一节点和所述区块链中的所述至少一个第二节点处于由不同网络服务供应商提供的不同网络集线器内。

第三特征,可与先前或以下特征中的任一特征组合,还包括:收集关于所述接收到的交易的传输速度统计数据,以确定所述区块链中提供更快交易传输速度的节点。

第四特征,可与先前或以下特征中的任一特征组合,还包括:基于所述传输速度统计数据确定要向给定的传输发送节点发送交易的优选节点集。

第五特征,可与先前或以下特征中的任一特征组合,其中,所述区块链交易加速系统实现在所述区块链内的一个或多个节点中或实现在所述区块链可访问的服务器中。

第六特征,可与先前或以下特征中的任一特征组合,还包括:确定用于发送所述至少一个第二交易的多个第二节点。

本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将促使所述一个或多个处理器按照本文提供的方法的实施方式执行操作。

本文还提供了用于实施本文提供的所述方法的系统。该系统包括一个或多个处理器以及耦接到所述一个或多个处理器并且其上存储有指令的计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令将导致所述一个或多个处理器按照本文提供的方法的实施方式执行操作。

应了解,依据本文的方法可以包括本文描述的方面和特征的任意组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任意组合。

以下在附图和描述中阐述了本文的一个或多个实施方式的细节。根据说明书和附图以及权利要求,本文的其他特征和优点将显而易见。

附图说明

图1描绘了可用于执行本文实施方式的环境的示例。

图2描绘了根据本文实施方式的概念架构的示例。

图3a示出了根据本文实施方式的在区块链中的两个节点之间直接发送交易的路径的示例的框图。

图3b示出了根据本文实施方式的在区块链交易加速系统中用于发送多个转发交易的路径示例的框图。

图4描绘了根据本文实施方式的在区块链网络中使用副本交易的示例过程。

图5示出了根据本文实施方式的在区块链交易加速系统中使用的路径示例的框图,该路径用于使用区块链中的网络加速节点发送的交易。

图6描绘了根据本文实施方式的在区块链网络中使用加速节点来发送交易的示例过程。

图7为根据本文实施方式的区块链交易加速系统的多区块链加速网络的示例的框图。

图8描绘了根据本文实施方式的使用多区块链加速网络的示例过程。

图9描绘了根据本文实施方式装置的模块的示例。

图10描绘了根据本文实施方式装置的模块的示例。

图11描绘了根据本文实施方式装置的模块的示例。

各附图中的相同附图标记表示相同的元件。

具体实施方式

本文的实施方式包括用于改进区块链网络交易的计算机实施方法。更具体地,本文的实施方式涉及使用交易重发来加速区块链网络中的交易交付。

在一些实施方式中,操作包括:在区块链交易加速系统中,接收通过区块链中的第一节点发送的第一交易;在区块链交易加速系统中,接收为该第一交易的副本的至少一个第二交易,所述至少一个第二交易由该第一节点发送到区块链中与第一节点不同的至少一个第二节点;区块链交易加速系统执行接收的交易中的第一接收到的交易,接收的交易包括第一交易和至少一个第二交易;并且区块链交易加速系统确定接收的交易中的剩余交易与第一接收到的交易相同时,丢弃所述剩余交易。

为本文实施方式提供进一步的背景,并且如上所述,分布式账本系统(dls),又可称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体能够安全地、不可篡改地进行交易和存储数据。虽然“区块链”一词通常与货币网络相关联,但是本文所使用的区块链通常指在不指代任何特定用例的情况下的dls。

区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographichash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(merkle)树中。merkle树是一种数据结构,在该树的叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值在该分支的根处连接。此过程沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。声称是存储在树中的交易的哈希值可以通过确定其是否与树的结构一致而被快速验证。

区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。

在公有区块链网络中,共识过程由共识网络的节点控制。例如,数百、数千甚至数百万个实体可以协同运作公有区块链网络,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是关于参与实体的公有网络。在一些示例中,大多数实体(节点)必须对每个区块签名以使该区块有效,并被添加到区块链网络的区块链(分布式帐本)中。示例性公有区块链网络包括利用分布式账本(即区块链)的特定点对点支付网络。如上所述,区块链一词通常用于指代分布式账本,而不特指任何特定的区块链网络。

通常,公有区块链网络支持公开交易。公开交易为公有区块链网络内的所有节点共享,并存储在全局区块链中。全局区块链是跨所有节点复制的区块链。也就是说,所有节点相对于全局区块链处于完全共识状态。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实施共识协议。示例性共识协议包括但不限于工作量证明(pow)(例如,在某些货币网络中实施)、权益证明(pos)和权限证明(poa)。本文进一步引用pow作为非限制性示例。

通常,为特定实体提供私有区块链网络,该特定实体集中控制读写权限。实体控制哪些节点能够参与到区块链网络中。因此,私有区块链网络通常被称为许可网络,其限制允许谁参与网络,以及它们的参与级别(例如,仅在某些交易中)。可以使用各种类型的访问控制机制(例如,现有参与者投票添加新实体,监管机构可以控制许可)。

通常,联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权的节点集控制,一个或多个节点由相应的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是与参与实体相关的私有网络。在一些示例中,每个实体(节点)必须对每个区块签名,以使区块有效并被添加到区块链中。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须对每个区块签名,以使区块有效并被添加到区块链中。

本文参考公有区块链网络进一步详细描述了本文实施方式,该公有区块链网络在参与实体之间是公有的。然而,可以预期,本文实施方式可以在任何适当类型的区块链网络中实现。

鉴于以上背景,本文进一步详细描述了本文的实施方式。更具体地,并且如上所述,本文的实施方式使用交易重发来加速区块链网络内的交易交付。在第一示例中(参考图3a-图4描述),因为一些交易路径可以更快,可以重复交易以降低交易抵达的速度,这可以提高交易的整体执行效率。在第二示例中(参考图5-图6描述),可以在区块链网络中使用网络加速节点来加速节点转发交易,这可以提高交易传播速率。在第三示例中(参考图7-图8描述),可以建立可为不同区块链系统提供一致的网络加速服务的公共节点加速网络。公共节点加速网络的建立可以降低成本,例如,通过节省与针对每个区块链系统实施专用加速网络相关的成本。

图1描绘了可用于执行本文实施方式的环境100的示例。在一些示例中,示例性环境100使实体能够参与到区块链网络102中。区块链网络102可以是公有区块链网络、私有区块链网络或联盟区块链网络。示例性环境100包括计算设备106、108以及网络110。在一些示例中,网络110包括局域网(lan)、广域网(wan)、因特网或其组合,并且连接网络站点、用户设备(例如,计算设备)和后台系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。在一些示例中,网络110使得与区块链网络102通信以及在区块链网络102内部进行通信成为可能。通常,网络110表示一个或多个通信网络。

在所描绘的示例中,计算系统106、108可以各自包括能够作为节点参与至区块链网络102中的任何适当的计算系统。示例性计算设备包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备以及智能电话。在一些示例中,计算系统106、108承载一个或多个由计算机实施的服务,用于与区块链网络102进行交互。例如,计算系统106可以承载第一实体(例如,参与者a)的由计算机实施的、例如交易管理系统的服务,第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他参与者)的交易。计算系统108可以承载第二实体(例如,参与者b)的由计算机实施的、例如交易管理系统的服务,例如,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他参与者)的交易。在图1的示例中,区块链网络102被表示为节点的点对点网络(peer-to-peernetwork),且计算系统106、108分别提供参与区块链网络102的第一实体和第二实体的节点。

图2描绘了根据本文实施方式的概念架构200的示例。示例性概念架构200包括分别对应于参与者a、参与者b和参与者c的参与者系统202、204、206。每个参与者(例如,用户、企业)参与到作为点对点网络提供的区块链网络212中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如图中进一步详述,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。

在所描绘的示例中,每个参与者系统202、204、206分别由参与者a、参与者b和参与者c提供或代表参与者a、参与者b和参与者c,并且在区块链网络中作为各自的节点214发挥作用。如这里所使用的,节点通常是指连接到区块链网络212且使相应的参与者能够参与到区块链网络中的个体系统(例如,计算机、服务器)。在图2的示例中,参与者对应于每个节点214。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者系统202、204、206使用协议(例如,超文本传输协议安全(https))和/或使用远程过程调用(rpc)与区块链网络212通信或通过区块链网络212进行通信。

节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识过程(例如,作为将区块添加到区块链216的监视节点),而其他节点214不参与此共识过程。作为另一示例,一些节点214存储区块链216的完整的副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应系统内存储的区块链数据。在图2的示例中,参与者系统202、204、206存储区块链216的相应的完整副本216'、216”、216”'。

区块链(例如,图2的区块链216)由一系列区块组成,每个区块存储数据。示例性数据包括表示两个或更多个参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以存储在区块链中(例如,文档、图像、视频、音频)。示例性交易可以包括但不限于有价物的交换(例如,资产、产品、服务、货币)。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能改变。

在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度哈希值(也作为字符串数据提供)的过程。不可能对哈希值进行去哈希处理(un-hash)以获取交易数据。哈希处理可确保即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。示例性哈希函数包括但不限于输出256位哈希值的安全哈希算法(sha)-256。

多个交易的交易数据被哈希处理并存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此过程,直到针对所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为merkle根哈希值,并存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致merkle根哈希值发生变化。

通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并竞相将区块添加到区块链中。这样的节点被称为矿工(或监视节点)。上文介绍的pow用作非限制性示例。

矿工节点执行共识过程以将交易添加到区块链中。尽管多个矿工节点参与共识过程,但只有一个矿工节点可以将区块写入区块链。也就是说,矿工节点在共识过程中竞相将他们的区块添加到区块链中。更详细地,矿工节点周期性地从交易池中收集待处理的交易(例如,最多达到区块中可包括的交易数量的预定限制,如果有的话)。交易池包括来自区块链网络中的参与者的交易消息。矿工节点创建区块,并将交易添加到区块中。在将多个交易添加到区块之前,矿工节点检查所述多个交易中是否有任一已经包含在区块链的区块中。如果有交易已包含在另一个区块中,则该交易将被丢弃。

矿工节点生成区块头,对区块中的所有交易进行哈希处理,并将所得的哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(merkle根哈希值)。将此哈希值添加到区块头中。矿工还确定区块链中最近的区块的哈希值(即,添加到区块链中的最后一个区块)。矿工节点还向区块头添加随机数(nonce)和时间戳。在挖矿过程中,矿工节点尝试查找满足所需参数的哈希值。矿工节点不断更改随机数,直到找到满足所需参数的哈希值。

区块链网络中的每个矿工都试图找到满足所需参数的哈希值,并且以这种方式彼此竞争。最终,矿工节点之一找到满足所需参数的哈希值,并将其通告给区块链网络中的所有其他矿工节点。其他矿工节点验证该哈希值,如果确定为正确,则验证区块中的每个交易,接受该区块,并将该区块附加到他们的区块链副本中。以这种方式,区块链的全局状态在区块链网络内的所有矿工节点上是一致的。上述过程是pow共识协议。

参考图2提供了非限制性示例。在此示例中,参与者a想要向参与者b发送一定数量的货币。参与者a生成交易消息(例如,包括发送方、接收方和数值字段),并将交易消息发送到区块链网络,从而将交易消息添加到了交易池中。区块链网络中的每个矿工节点创建一个区块,从交易池中取出所有交易(例如,最多达到可添加到区块的交易数量的预定限制,如果有的话),并将交易添加到区块。以这种方式,参与者a发布的交易被添加到矿工节点的区块中。

在一些区块链网络中,用密码学来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密处理。示例性加密处理包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密过程。在对称加密中,同一密钥可用于多个节点,因此每个节点都可以对交易数据进行加密/解密。

非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。一个节点可以使用另一个节点的公钥来加密数据,并且该加密的数据可以使用所述另一个节点的私钥解密。例如,再次参考图2,参与者a可以使用参与者b的公钥来加密数据,并将加密数据发送给参与者b。参与者b可以使用其私钥来解密该加密数据(密文)并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥解密。

非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以根据参与者a的该数字签名来确认该消息是由该节点发送的。数字签名也可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者a将向参与者b发送消息。参与者a生成该消息的哈希值,然后使用其私钥加密该哈希值以提供为加密哈希值的数字签名。参与者a将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者b。参与者b使用参与者a的公钥解密该数字签名,并提取哈希值。参与者b对该消息进行哈希处理并比较哈希值。如果哈希值相同,参与者b可以确认该消息确实来自参与者a,且未被篡改。

在一些实施方式中,例如,如果节点a发送相同交易的多个副本,则可以实现区块链中的节点之间的更快通信。例如,除了节点a向节点b(例如,目的地节点)发送交易,节点a还可以将该交易的副本发送到至少一个其他节点。例如,第三节点可能能够提供(或导致)更快的网络传输。例如,如果第三节点能够在直接来自节点a的传输之前发起对网络节点b的传输的最终交付完成,则可以实现更快的网络传输。通常,发送到第三节点的交易可以被交付给节点b,但是也可能存在附加的中间节点。以这种方式进行的交易复制可以利用区块链网络的重放和转发功能。交易复制通过传播同一交易的副本,还可以帮助防止对区块链网络的重复攻击(例如,恶意软件或未经授权的访问)。由于区块链网络的这些特征,交易可以尽可能快地被交付到目的地节点。更快地交付交易的好处是在目的地节点处更快地执行交易。

图3a示出了用于在区块链中的两个节点之间直接发送(或交付)的交易的路径300的示例的框图。例如,路径300可以用于由节点a302发送到节点b304以供节点b304执行的交易。在一些情况下,可以使用节点a302和节点b304之间的直接通信306来发送交易。照此,图3a可以表示用于在区块链中从一个节点向另一个节点发送交易的传统技术。但是,由于区块链使用的网络的不确定性,区块链中节点之间的连接可能存在不足。例如,如果节点不在同一网络上,或者如果区块链节点部署在不同的国家,则网络的直接连接(例如,直接通信306)可能不是交易的最快可能路径。

图3b是示出在区块链交易加速系统320中发送多个转发交易时使用的路径的示例的框图。区块链交易加速系统320可以通过例如使用参考本文中其他附图(例如,如图1-图2)描述的组件来实现。

区块链交易加速系统320可以改进使用单个通信路径的系统(例如,如图3a所示没有多个交易转发)。又如,如图3b所示,节点a302和节点b304之间的直接通信306仍然可以用于交易。然而,除了使用直接通信306,交易还可以被复制并发送到附加节点308-312。例如,为了加速交易交付至节点b304,节点a302还可以通过通信路径314将交易发送到节点x308、节点y310和节点z312。然后,可以由节点x308、节点y310、节点z312通过通信路径316转发交易。当节点a302以这种方式发送同一交易的多个副本(在当前示例中,总共四个交易示例)时,节点a302不知道哪个交易将是第一个抵达节点b304的交易。交易抵达顺序无关紧要,因为节点b304可以被配置为在处理所接收到的第一个交易之后舍弃副本交易。

用作接收节点(以及当前示例中的交易的目的地节点)的节点b304可以接收多个相同的交易。只有第一个交易会被执行。被确定为副本交易的其他交易可以被区块链系统自动识别为无效交易。如此,副本交易不会被执行。

可以以多种方式确定副本交易。例如,如果多个交易具有相同的数字签名,则可以将所述多个交易确定为副本交易。当接收到交易时,例如,可以将该交易的数字签名与最近执行的(或第一个到达的)交易的进行比较。也可以使用其他确定副本交易的方法(例如,使用公共区块链技术)。

随着时间的推移,可以收集并维护统计数据,以便记录和跟踪基于每个节点处发生的传输速度。例如,许多节点可以通过节点x308、节点y310和节点z312来路由交易。例如,如果随着时间的推移,确定节点y310比节点x308和节点z312更快,则节点y310可以成为优选节点。在一些实施方式中,可以维护优选节点的列表,并且当通过多个节点发送交易时,可以首先选择最快的节点。随着时间的推移,区块链系统可以避免使用较慢的节点。

在一些实施方式中,除了速度,还可以基于各种因素来选择所选定的节点。例如,一些节点可能在一天中的不同时间或一周中的几天更快。在另一示例中,可以基于地理位置来避免使用一些节点,即除了所跟踪的传输速度,地理位置也可以作为给定交易的预测传输速度的指标。

在一些实施方式中,可以使用不同的技术来决定要发送多少个副本交易以及哪些节点将用于发送这些副本交易。例如,区块链系统可以向可访问发送节点的每个集线器发送单独的副本交易。例如,每个集线器可以对应于不同的服务供应商。随着时间的推移,区块链系统可以构建一个识别最佳和最快供应商的数据库。在一些实施方式中,可以对服务供应商打分,其中对具有为路由副本交易中最快服务供应商的历史的服务供应商打分最高。在一些实施方式中,交易可以分布在若干得分较高的服务供应商上,从而使单个服务供应商不会因流量过多而饱和。

图4描绘了用于在区块链网络中使用副本交易的示例性过程400。可以根据申请的实施方式来执行该过程400。在一些实施方式中,可以使用一个或多个计算设备执行可由计算机执行的一个或多个程序来执行示例性过程400。

过程400可以是区块链交易加速系统的一部分(并在其内进行),该区块链交易加速系统可实现在区块链中的一个或多个节点内或区块链可访问的服务器中。例如,参考图3b描述的区块链交易加速系统320可以实施过程400。

在402,在区块链交易加速系统中,接收到通过区块链中的第一节点发送的第一交易。作为示例,在区块链交易加速系统320内,可利用直接通信306在节点a302和节点b304之间发送交易。方法400从402进入404。

在404,在区块链交易加速系统中,接收到至少一个作为第一交易的副本的第二交易,其中,至少一个第二交易由第一节点发送到区块链中的至少一个与第一节点不同的第二节点。作为示例,区块链交易加速系统320可以将交易(已经发送到节点b304)的副本发送到一个或多个附加节点308-312。可以使用通信路径314来发送交易的副本。

在一些实施方式中,区块链中的第一节点和区块链中的至少一个第二节点可以处于由不同网络服务供应商提供的不同网络集线器内。例如,节点a302和节点b304可以处于例如在不同地区或国家的分离的、不同的网络集线器中,或者使用不同的网络服务供应商。

在一些实施方式中,方法400还可以包括确定用于发送至少一个第二交易的多个第二节点。例如,区块链交易加速系统320可以选择附加节点308-312中的要向其发送交易副本的特定节点。方法400从404进入406。

在406,区块链交易加速系统执行已接收交易中的第一个接收到的交易,已接收交易包括第一交易和至少一个第二交易。例如,节点b304可以执行通过通信路径306和通信路径316第一个到达的交易。第一个到达的交易可取决于哪条通信路径最快。方法400从406进入408。

在408,在区块链交易加速系统确定所接收交易中剩余的交易与第一个接收到的交易相同时,舍弃所述剩余的交易。例如,节点b304可以接收第一个接收到的交易的一个或多个副本。节点b304可以确定剩余的(非第一个接收到的)交易是副本交易。然后,节点b304可以舍弃副本交易。

在一些实施方式中,确定所接收交易中的剩余交易与第一个接收到的交易相同的操作包括识别与第一个接收到的交易的数字签名匹配的每个剩余交易的数字签名。例如,节点b304可以通过比较交易的数字签名并确定存在匹配的数字签名,来确定剩余的(非第一个接收到的)交易是副本交易。在408之后,方法400可以结束。

在一些实施方式中,方法400还可以包括收集对所接收交易的传输速度统计数据,以确定区块链中提供更快交易传输速度的节点。例如,随着时间的推移,区块链交易加速系统320可以确定一个或多个附加节点308-312提供了比其他节点更快的交易交付速度。区块链交易加速系统320可以随时间存储并跟踪交易交付速度信息。

在一些实施方式中,方法400可以进一步包括:对于给定的传输发送节点,基于传输速度统计数据确定要向其发送交易的优选节点集。例如,在选择用哪个附加节点308-312来发送副本交易时,区块链交易加速系统320可以使用识别最快交易交付节点的统计数据。

在一些情况下,区块链网络节点之间的直接连接可能不总是区块链网络节点之间的最快交易路径。例如,节点a可以位于一个国家,而节点b可以位于不同的国家。由于位于不同国家(或其他地区),节点的位置会造成或促成网络不稳定。从节点a发送到节点b的交易可涉及复杂因素,包括例如与不同网络供应商相关联的因素。因此,节点a和节点b之间的直接连接可能很慢或不稳定。交易交付的速度和可靠性可能受例如网络供应商处理的大量流量的影响。例如,如果使用如节点a和节点b之间直接连接的同一网络传输大量数据,则可能对区块链网络的交易执行效率产生不利的影响。如前文参考图3a和图4所述,通过发送多个交易可以改善交易执行效率的一些问题。在一些实施方式中,可以通过在区块链中使用网络加速节点来提高交易执行效率。

图5是示出了区块链交易加速系统500中使用的路径示例的框图,该路径用于使用区块链中的网络加速节点发送的交易。如路径中的箭头所示,节点a502是交易的发送方,并且节点b504是交易的预期接收方。节点a502和节点b504可以例如分别位于不同的网络区域中,诸如局域网1506和局域网2508。节点a502和节点b504能够直接通信,例如,使用作为区块链网络的一部分的通信信道510。然而,使用提供高速通信的通信路径512,使得交易的更快传输成为可能并且可以发生。因此,从节点a502到节点b504的交易传输可以使用至少包括转送节点a'514和转送节点b'516的转发节点。在一些实施方式中,转送节点a'514可以将交易直接转发到节点b504而不通过转送节点b'516转发交易。

转送节点可以服务网络区域中的多个节点。例如,可将一个或多个常规节点(如节点a502和节点c518)分配给转送节点a'514。每个常规节点可以访问同一网络区域或不同网络区域中的多个转送节点。然而,在当前示例中,节点a/a'和节点b/b'可以各自属于它们自己的网络区域。在这种情况下,基于转送节点的使用,传输速度可以更快,从而在a'和b'之间提供高速网络通信。

通过有效地在网络加速节点之间建立高速链接,加速节点的使用可以加快交易的网络传输速率。网络加速节点之间的高速链接可以提高区块链系统的整体交易执行效率。

例如,可以将加速节点设计为不涉及(或基本上不涉及)交易的内容或处理。照此,加速节点组可以用作传输网络,这在国际区块链网络中尤其有用。在一些实施方式中,加速节点可以作为服务提供,诸如提供给公共实体的第三方加速网络。所发送的、使用加速节点的传输网络的任意给定交易都可以使用该网络的多个部分。例如,给定交易可以仅使用几个加速节点,包括为给定交易的交付提供最短或最快路径的加速节点。

在一些实施方式中,可以使用最短路径算法来选择要用于给定交易的加速节点。最短路径算法可使用关于每个加速节点的信息及其与发送交易相关的统计数据,该统计数据包括传输速度。最短路径算法使用的一些信息可以包括或基于时刻(time-of-day)信息和地理信息。例如,在区块链网络中的不存在时刻流量的夜间时段中,c国的加速节点可能更快。

图6描绘了使用加速节点在区块链网络中发送交易的过程600的示例。可以根据本文实施方式来执行过程600。在一些实施方式中,可以使用一个或多个计算设备执行一个或多个计算机可执行程序来执行示例性过程600。

过程600可以是区块链交易加速系统的一部分(并且在其内实施),该区块链交易加速系统被实现在区块链中的一个或多个节点处或区块链可访问的服务器中。例如,参考图5描述的区块链交易加速系统500可以进行过程600。

在602,利用区块链交易加速系统,将由第一节点产生的第一交易发送至区块链中的加速节点,其中,第一交易被发送至该加速节点而不是直接发送到作为第一交易的预期接收方的第二节点,且第一节点、第二节点以及加速节点是不同的节点。例如,使用区块链交易加速系统500,可以将交易从节点a502发送至为加速节点的转送节点a'514。例如,区块链交易加速系统500可以选择转送节点a'514,而非直接向节点b504发送交易。选择决策可以基于例如通信通道512比通信通道510更快(或可能更快)的事实。

在一些实施方式中,区块链中的第一节点和区块链中的第二节点位于不同的网络中。例如,节点a502和节点b504可以分别处于为不同网络区域的局域网1506和局域网2508中。

在一些实施方式中,加速节点可以被配置为将交易转发到不同网络中的一个或多个特定加速节点。作为示例,转送节点a'514可以在区块链交易加速系统500中配置为专用加速节点。

在一些实施方式中,方法600还可包括基于确定使用加速节点的预期交易交付时间比直接将交易发送到第二节点的预期交易交付时间要快来选择加速节点。例如,区块链交易加速系统500可以基于使用转送节点a'514作为加速节点比(或可能比)直接将交易发送到节点b504更快的事实来选择转送节点a'514。方法600从602进入604。

在604,区块链交易加速系统将交易从加速节点转发至第二节点。例如,转送节点a'514可以通过通信路径512将交易转发到节点b504。

在一些实施方式中,将交易从加速节点转发到第二节点可以包括使用接收方加速节点。例如,转送节点a'514可以通过通信路径512将交易转发到接收方加速节点,如作为局域网2508中的加速节点的转送节点b'516。接收方加速节点(例如,转送节点b'516)可以将交易转发到第二节点(例如,节点b504)。方法600从604进入606。

在606,由第二节点执行交易。作为示例,节点b504可以执行所接收的交易。在606之后,方法600可以结束。

在一些实施方式中,方法600还可包括使用交易交付时间统计数据和根据交易交付时间统计数据选择加速节点。例如,区块链交易加速系统500可以收集(例如,使用通信信道512)已交付交易的统计数据,以确定区块链中提供更快交易交付时间的加速节点。然后,区块链交易加速系统500可以选择具有更快的交易交付时间的加速节点,例如,转送节点a'514。

在一些实施方式中,可使用先前描述的技术的组合来发送交易,包括发送同一交易的多个副本和使用加速节点。例如,发送节点可以将交易的副本发送到预期的接收方节点。为了减少交易的交付时间,发送节点还可以将交易的副本发送到一个或多个其他节点,包括普通(非加速节点)和加速节点。在一些实施方式中,所提供的加速节点网络也可用于改善交易的传输时间。

图7是区块链交易加速系统700的多区块链加速网络702的示例的框图。例如,多区块链加速网络702可作为公共节点加速网络,为包括区块链704在内的不同区块链系统提供统一的网络加速服务。该多区块链加速网络702可以减少或消除为每个区块链系统建立专用加速网络的成本。

区块链704的给定区块链中的节点708可以与多区块链加速网络702中的加速节点706通信。由于网络的不确定性,使用加速节点706作为加速网络中的传输节点,可能比节点之间的直接通信更有效。因此,区块链系统可以依赖于由多区块链加速网络702提供的高速信息转发网络。

对于不同的区块链系统,对节点之间通信的需求可以是相同的,因此多区块链系统可以重复使用同一多区块链加速网络702。这可以提高多区块链加速网络702的再利用性,并降低或消除多个区块链系统中的网络建设成本。由于区块链系统可能具有大量的通信需求,因此可以节省成本。由于网络不确定性,节点之间直接通信的效率可能低于使用网络加速节点的间接通信的效率。

图8描绘了使用多区块链加速网络的过程800的示例。可以根据申请的实施方式来执行过程800。在一些实施方式中,可以使用一个或多个计算设备执行一个或多个计算机可执行程序来执行示例性过程800。

过程800可以是区块链交易加速系统的一部分(且在其内实施),该区块链交易加速系统实现在区块链的一个或多个节点中或区块链可访问的服务器中。例如,参考图7描述的区块链交易加速系统700可以进行过程800。

在802,在区块链交易加速系统中,提供对可由多个区块链访问的、多区块链加速网络的访问。数个区块链可包括诸如第一区块链704a以及第二区块链704b。多区块链加速网络包括多个加速节点。每个加速节点可由多个区块链中的至少一个区块链内的至少一个节点访问。例如,在区块链交易加速系统700中,提供了对多区块链加速网络702的访问,该多区块链加速网络可被区块链704访问。多区块链网络702包括数个加速节点706,每个加速节点可被区块链704中的至少一个节点708访问。方法800从802进入804。

在804,在第一加速节点处,从多个区块链中的第一区块链内的第一节点接收待转发的交易。作为示例,在第一加速节点706a处,从第一区块链704a中的第一节点708a接收待转发的交易710。方法800从804进入806。

在806,待转发的交易由第一加速节点转发到第二节点。例如,交易710可以由第一加速节点706a转发到第二节点。第二节点例如可以是第二区块链704b中的节点708b。在另一示例中,第二节点可以是第二加速节点706b。第一区块链704a中的第一节点708a和第二区块链704b中的第二节点708b可以位于不同的网络中。在806之后,方法800可以结束。

在一些实施方式中,方法800还可以包括使用已交付交易的统计数据来选择加速节点。例如,区块链系统可以收集由区块链704发送和接收的已交付交易的统计数据,和使用多区块链加速网络702的已交付交易的统计数据。统计数据可以用于确定多区块链加速网络702中提供更快交易交付时间的加速节点706。例如,在确定加速节点706具有最快的交易交付时间之后,区块链交易加速系统700可以选择该加速节点706来转发交易。

在一些实施方式中,方法800还可以包括用于允许区块链订阅多区块链加速网络的步骤。例如,可以从第三区块链704c接收订阅多区块链加速网络702的请求。然后可以向第三区块链704c提供对多区块链加速网络702的访问。

在一些实施方式中,方法400、600和800的部分可以组合使用。例如,区块链交易加速系统420、500和700可以是或用作一个集体区块链交易加速系统,其使用副本交易和加速节点的组合来加速区块链中的交易的交付。集体区块链交易加速系统使用哪种技术的决策可以基于例如网络健康和流量的情况等的实时信息以及其他因素。

图9描绘了根据本文实施方式的装置900的模块的示例。装置900可以是被配置为利用交易重发(例如,在联盟区块链网络或其他区块链类型网络中)来加速区块链网络中的交易交付的装置的实施示例。装置900可以对应于上述实施方式,并且装置900包括以下:第一接收器或第一接收单元902,用于在区块链交易加速系统中接收通过区块链中的第一节点发送的第一交易;第二接收器或第二接收单元904,用于在区块链交易加速系统中接收作为第一交易的副本的至少一个第二交易,第一节点将至少一个第二交易发送至区块链中不同于第一节点的至少一个第二节点;执行器或执行单元906,用于通过区块链交易加速系统来执行所接收交易中的第一个接收到的交易,其中,所接收交易中包括第一交易和至少一个第二交易;以及舍弃器或舍弃单元908,用于在区块链交易加速系统确定所接收交易中的剩余交易与第一个接收到的交易相同时,舍弃剩余的交易。

在先前实施方式中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实施设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或这些设备的任意组合。

对于装置中每个单元的功能和角色的实施过程,可以参考前一方法中相应步骤的实施过程。为简单起见,这里省略了细节。

由于装置实施基本上对应于方法实施,对于相关部分,可以参考方法实施中的相关描述。先前描述的装置实施仅是示例。被描述为单独部分的单元可以是或不是物理上分离的,并且显示为单元的部分可以是或不是物理单元,可以位于一个位置,或者可以分布在多个网络单元上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域普通技术人员无需付出创造性劳动就能理解和实现本文的实施方式。

再次参见图9,它可以被解释为示出了能够使用交易重发来加速区块链网络中的交易交付的装置的内部功能模块和结构。执行装置可以是被配置为使用交易重发来加速区块链网络中的交易交付的装置的示例。

图10描绘了根据本文实施方式的装置1000的模块的示例。装置1000可以是被配置为使得利用加速节点(例如,在联盟区块链网络或其他区块链类型网络中)能够加速区块链网络中的交易交付的装置的实施示例。装置1000可以对应于上述实施方式,并且装置1000包括:发送器或发送单元1002,用于使用区块链交易加速系统将第一节点生成的第一交易发送到区块链中的加速节点,其中,第一交易被发送到加速节点而不是直接发送到作为第一交易的预期接收方的第二节点,并且第一节点、第二节点和加速节点是不同的节点;转发器或转发单元1004,用于通过区块链交易加速系统将所述交易从加速节点转发到第二节点;以及执行器或执行单元1006,用于通过区块链交易加速系统,由第二节点执行所述交易。

在先前实施方式中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实现设备是计算机,计算机可以是个人计算机、膝上型计算机、移动电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或这些设备的任意组合。

对于装置中各个单元的功能和角色的实施过程,可以参考前一方法中相应步骤的实施过程。为简单起见,这里省略了细节。

由于装置实施基本上对应于方法实施,对于相关部分,可以参考方法实施中的相关描述。先前描述的装置实施仅是示例。被描述为单独部分的单元可以是或不是物理上分离的,并且显示为单元的部分可以是或不是物理单元,可以位于一个位置,或者可以分布在多个网络单元上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域普通技术人员无需付出创造性劳动就能理解和实现本文的实施方式。

再次参见图10,它可以被解释为示出了能够使用加速节点加速区块链网络中的交易交付的装置的内部功能模块和结构。执行装置可以是被配置为使用加速节点加速区块链网络中的交易交付的装置的示例。

图11描绘了根据本文实施方式装置1100的模块的示例。装置1100可以是被配置为使用全局加速节点(例如,在联盟区块链网络或其他区块链类型网络中)来提高区块链交易速度的装置的实施示例。装置1100可以对应于上述实施方式,并且装置1100包括以下:供应器或供应单元1102,用于在区块链交易加速系统中提供对可由多个区块链访问的多区块链加速网络的访问,多区块链加速网络包括多个加速节点,每个加速节点可被多个区块链中的至少一个区块链内的至少一个节点访问;接收器或接收器单元1104,用于在第一加速节点处从多个区块链中的第一区块链内的第一节点接收待转发的交易;转发器或转发单元1106,用于通过第一加速节点将所述交易转发给第二节点。

在先前实施中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实现设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板电脑、可穿戴设备或这些设备的任意组合。

对于装置中各个单元的功能和角色的实施过程,可以参考前一方法中相应步骤的实施过程。为简单起见,这里省略了细节。

由于装置实施基本上对应于方法实施,对于相关部分,可以参考方法实施中的相关描述。先前描述的装置实施仅是示例。被描述为单独部分的单元可以是或不是物理上分离的,并且显示为单元的部分可以是或不是物理单元,可以位于一个位置,或者可以分布在多个网络单元上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域普通技术人员无需付出创造性劳动就能理解和实现本文的实施方式。

再次参见图11,它可以被解释为示出了使用全局加速节点来提高区块链交易速度的装置的内部功能模块和结构。执行装置可以是被配置为使用全局加速节点来提高区块链交易速度的装置的示例。

本文中描述的主题、动作以及操作的实施可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实现,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施可以实现为一个或多个计算机程序,例如,一个或多个计算机程序指令模块,编码在计算机程序载体上,用于由数据处理装置执行或控制数据处理装置的操作。载体可以是有形的非暂态计算机存储介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电、光或电磁信号,其被生成来编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。

术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或者多处理器或计算机。数据处理装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)、asic(专用集成电路)或gpu(图形处理单元)。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。

计算机程序也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或演绎性语言、说明或程序性语言;它可以配置为任何形式,包括作为独立程序,或者作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由通信数据网络互联的在一个或多个位置的一台或多台计算机。

计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件;或者多个协调文件,例如,存储一个或多个模块、子程序或代码部分的多个文件。

本文中描述的过程和逻辑流程可由一台或多台计算机执行一个或多个计算机程序进行,以进行通过对输入数据进行运算并生成输出的操作。过程和逻辑流程也可以由例如fpga、asic、gpu等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。

适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。

通常,计算机还将包括或可操作地耦接至一个或多个大容量存储设备,以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备。大容量存储设备可以是例如,磁盘、磁光盘或光盘或固态驱动器。但是,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一个设备中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或例如通用串行总线(usb)闪存驱动器的便携式存储设备,仅举几例。

为了提供与用户的交互,本文中描述的主题的实施方式可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,lcd(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向该计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应从web浏览器收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)轮流发送文本消息或其他形式的消息并接收来自用户的响应消息来与用户交互。

本文使用与系统、装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。

虽然本文包含许多具体实施细节,但是这些不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施方式的具体特征的描述。在本文多个单独实施方式的上下文中描述的多个特定特征也可以在单个实施方式中的组合实现。相反,在单个实施方式的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。

类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在一些情况下,多任务和并行处理可能是有利的。此外,上述实施方式中的各种系统模块和组件的划分不应被理解为所有实施方式中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或者打包成多个软件产品。

已经描述了主题的特定实施方式。其他实施方式在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

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