首页 / 专利库 / 银行与财务事项 / 货币 / 数字货币 / 加密货币 / 比特币 / 最近交易在区块链网络上的快速传播

最近交易在链网络上的快速传播

阅读:481发布:2020-05-16

专利汇可以提供最近交易在链网络上的快速传播专利检索,专利查询,专利分析的服务。并且一种用于在互连 节点 的网络上促进 区 块 链 交易的快速分发的专用(“商户”)节点,所述互连节点的子集是通过 覆盖 网络互连的商户节点。所述商户节点包括 存储器 ,所述存储器存储构造为分布式散列表的分布式存储池的 指定 部分,所述分布式存储池包含等待确认的待定交易。所述商户节点通过以下方式操作:接收包括交易标识符的交易;对所述交易标识符进行散列以获得密钥;使用所述密钥确定所述交易是否存储在所述分布式存储池中,如果没有,则将所述交易作为所述待定交易存储在所述分布式存储池中;和使用点对点连接将所述交易发送到除所述商户节点以外的节点集合。本 发明 可与 比特币 区块链或替代物结合使用。,下面是最近交易在链网络上的快速传播专利的具体信息内容。

1.一种在用于实现链的互连节点的网络中促进区块链交易的分发的专用网络节点,所述专用网络节点的子集是通过覆盖网络互连的所述专用网络节点,所述专用网络节点包括:
处理器;
存储器,存储构造为分布式散列表的分布式存储池的指定部分,所述分布式存储池包含等待确认的待定交易;
网络接口;和
区块链专用网络节点应用程序,包含处理器可执行指令,当所述指令由所述处理器执行时,使得所述处理器:
接收交易,包括交易标识符;
对所述交易标识符进行散列以获得密钥;
使用所述密钥确定所述交易是否存储在所述分布式存储池中,如果没有,则将所述交易作为所述待定交易存储在所述分布式存储池中;和
使用点对点连接将所述交易发送到除所述专用网络节点以外的节点集合。
2.根据权利要求1所述的专用网络节点,其中,所述存储器还存储关于包含所述交易并包括在所述区块链中的区块的确认数量的数据,并且其中,当所述确认数量达到最小数量时,所述指令使得所述处理器从所述分布式存储池中移除所述交易。
3.根据权利要求2所述的专用网络节点,其中,所述关于所述确认数量的数据是随着添加到所述区块链的每个新区块而更新的所述确认数量的计数,或者是包括所述交易的区块的区块号。
4.根据权利要求1至3中任一项所述的专用网络节点,其中,所述存储器还存储专用网络节点信誉表,所述专用网络节点信誉表包括任何检测到的新的相邻商户节点的标识符和基于新的相邻专用网络节点的检测到的活动的所述新的相邻专用网络节点的相关得分。
5.根据权利要求4所述的专用网络节点,其中,所述指令用于使所述处理器更新所述新的相邻专用网络节点的分数,并确定所述新的相邻专用网络节点的分数已经低于限,并因此将所述新的相邻专用网络节点指定为恶意节点并隔离所述新的相邻专用网络节点。
6.根据权利要求1至5中任一项所述的专用网络节点,其中,所述分布式存储池的所述指定部分与存储在另一所述专用网络节点上的所述分布式存储池的第二部分部分地重叠。
7.根据权利要求1至5中任一项所述的专用网络节点,其中,每个所述专用网络节点存储所述分布式存储池的相应指定部分,并且其中,所述相应指定部分部分地重叠,使得每个所述待定交易存储在至少两个所述专用网络节点中,而不是所有所述专用网络节点中,并且可选地,其中每个所述待定交易包括在所述分布式存储池的不超过两个所述相应指定部分中。
8.一种用于促进涉及连接到用于实现区块链的网络的多个节点的区块链转移的计算机实现的方法,其中,所述多个节点的子集是专用网络节点,所述专用网络节点存储包含等待确认的待定交易的分布式存储池,所述分布式存储池被实现为所述专用网络节点之间的分布式散列表,其中,所述方法包括:
接收交易,包括交易标识符;
对所述交易标识符进行散列以获得密钥;
使用所述密钥确定所述交易是否存储在所述分布式存储池中,如果没有,则将所述交易作为所述待定交易存储在所述分布式存储池中;和
使用点对点连接将所述交易发送到除所述专用网络节点以外的节点集合。
9.根据权利要求8所述的方法,还包括确定包含所述交易并包括在所述区块链中的区块的确认数量,当所述确认数量达到最小数量时,从所述分布式存储池中移除所述交易。
10.根据权利要求9所述的方法,其中,将所述交易存储在所述存储池中包括将所述交易与包括所述交易的区块的确认数量相关联地存储,并且其中,存储在所述存储池中的所述交易的确认数量随着添加到所述区块链的每个新区块而更新。
11.根据权利要求9所述的方法,其中,将所述交易存储在所述存储池中包括将所述交易与包括所述交易的区块的区块号相关联地存储,并且其中,确定所述确认数量包括确定所述区块链的当前区块号,并且将所述当前区块号与包括所述交易的区块的区块号进行比较。
12.根据权利要求8至11中任一项所述的方法,还包括检测新的相邻专用网络节点,在专用网络节点信誉表中存储所述新的相邻专用网络节点的标识符,以及基于检测到的所述新的相邻专用网络节点的活动来更新所述专用网络节点信誉表中所述新的相邻商户节点的分数。
13.根据权利要求12所述的方法,还包括确定所述新的相邻专用网络节点的分数已经低于门限,并因此将所述新的相邻专用网络节点指定为恶意节点并隔离所述新的相邻专用网络节点。
14.根据权利要求8至13中任一项所述的方法,其中,所述一个专用网络节点存储所述分布式存储池的一部分,并且其中,存储在所述一个专用网络节点的分布式存储池的一部分与存储在另一所述专用网络节点的分布式存储池的第二部分部分地重叠。
15.根据权利要求8至13中任一项所述的专用网络节点,其中,每个所述专用网络节点存储所述分布式存储池的相应指定部分,并且其中,所述相应指定部分部分地重叠,使得每个所述待定交易存储在至少两个所述专用网络节点中,而不是所有所述专用网络节点中,并且可选地,其中每个所述待定交易包括在所述分布式存储池的不超过两个所述相应指定部分中。
16.一种非暂时性处理器可读介质,存储处理器可执行指令以参与多个参与节点之间的区块链交易,其中,当所述处理器可执行指令由所述参与节点之一中的处理器执行时,使得所述处理器执行权利要求8至15中任一项所述的方法。

说明书全文

最近交易在链网络上的快速传播

技术领域

[0001] 本发明主要涉及分布式分类帐(区块链)网络,具体涉及用于提高区块链网络的性能和/或增加可以通过网络执行转移的速度的加密执行的方法和系统。

背景技术

[0002] 在本文中,使用术语“区块链(Blockchain)”来包括所有形式的电子的、基于计算机的分布式分类账(Distributed Ledgers)。这包括但不限于基于共识的区块链和交易链技术、许可及未许可的分类账、共享分类账及其变型。虽然也已经提出并开发了其他区块链实施方案,但是区块链技术最广为人知的应用是比特币分类账(Bitcoin Ledger)。虽然出于方便和说明的目的,本文中涉及的是比特币(Bitcoin),但应当指出的是,本发明不限于与比特币区块链一起使用,其他的区块链实施方式和协议也落入本发明的范围内。
[0003] 区块链是基于共识的电子分类账,该分类账实现为由区块组成的基于计算机的去中心化的分布式系统,而区块由交易组成。每个交易(Tx)是对区块链系统中参与者之间的数字资产的控制的转移进行编码的数据结构,包括至少一个输入和至少一个输出。每个区块包含前一区块的散列,如此,这些区块被链接在一起,以创建一个永久的、不可更改的所有交易的记录,这些交易自区块链诞生之始写入区块链。交易包含小程序,这些小程序称为脚本,嵌入至所述交易的输入和输出中,这些小程序指定了如何以及由谁来访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
[0004] 接收新交易的网络节点将迅速尝试将该交易推送到网络中的其他节点。在将新交易传输到其他节点之前,该交易会被“验证(Validated)”,这意味着将根据一组标准对新交易进行检查,以确保该交易符合根据适用的区块链协议进行适当交易的基本要求。
[0005] 为了将交易写入区块链,节点(“矿工(Miner)”)将该交易合并到一个区块中,该节点旨在收集交易并将所述交易形成区块。然后,矿工试图完成与该节点相关的“工作量证明(Proof of Work)”。整个区块链网络中的矿工竞相成为第一个组装交易区块并完成该区块相关工作量证明的人。成功的矿工将其已确认的区块添加到区块链中,并且该区块通过网络传播,以便维护区块链副本的其他节点可以更新其记录。接收区块的节点还“验证”该区块及其中的所有交易,以确保其符合协议的正式要求。
[0006] 与区块链实施相关的瓶颈之一是与等待矿工完成确认交易区块并将该交易区块添加到区块链的工作量证明相关联的延迟。以比特币系统为例,按照设计,该系统需要花费大约10分钟来确认区块并将其添加到区块链中。同时,未确认交易累积在存储池(本文称为“存储池(Mempool)”)中,所述存储池的近似完整的副本保存在网络中的每个节点上。对比特币架构的分析表明,凭借其10分钟的区块确认吞吐量,根据典型交易和区块的大小以及所述累积的未确认交易可以并入新区块中的速度,该系统可以每秒处理约3笔新的未确认交易。
[0007] 使用基于区块链的网络(如比特币)启用或促进广泛的加密安全保护的交换将是有利的。这种交换可以涉及例如信用卡交易的支付处理。然而,大约每秒3次的交易吞吐量不足以处理这种电子支付,目前所述电子支付的交易量约为每秒50,000次。因此,希望找到一种解决目前限制区块链处理大量交易能的速度和可扩展性限制的方法。
[0008] 现在已经设计出这样的解决方案。

发明内容

[0009] 因此,根据本发明,提供了如所附权利要求中定义的方法和设备。
[0010] 本申请描述并公开了能够通过专用商户节点网络快速传播区块链交易(TX)的方法和设备,所述专用商户节点网络设计成实现快速/提高交易处理速度的区块链。术语“交易(Transaction)”可以解释为意指“区块链交易”,即Tx)而不是金融意义上的交易。为了最小化网络流量并减轻存储容量限制,等待合并到区块中的待定交易的存储池(“Mempool”)可以作为分布式存储池存储在专用(商户)节点中,所述分布式存储池通过分布式散列表(Distributed HashTable,简称DHT)实现。由商户节点接收的新交易可以对其标识符进行散列,所述商户节点可以评估所述新交易是否已经存储在分布式存储池中。如果没有,则可以使用适用的DHT协议将其存储在适当的一个或多个商户节点的分布式存储池中。商户节点可以使用常规的点对点连接向普通非商户节点发送交易Tx;然而,商户节点不需要将交易发送给所有其他商户节点。
[0011] 在附加或替代方面,本申请描述了一种在用于实现区块链的互连节点的网络上促进区块链交易的(快速)分发的专用网络节点,所述互连节点的子集是通过覆盖网络互连的所述专用网络节点。在下文中,仅出于方便起见,术语“专用网络节点(Specialised Network Node)”可以与术语“SN”或“商户节点(merchant node)”互换使用。
[0012] 在一些实施中,使用专用网络节点的覆盖网络来实现和管理DHT形式的存储池可以提供优于在所有网络节点处实现存储池的计算速度和传播速度优势。此外,在区块链节点的常规网络的覆盖网络中使用专用网络节点避免了在区块链节点的全网络中实现DHT存储池(通过在每个节点存储和维护一小部分DHT)的复杂性以及可能的速度和可靠性并发症。这种结构可以允许非专用节点通过专用节点之一快速查询存储。更有利的是,专用网络节点在更新DHT之后,使用点对点通信发起向覆盖网络外部的非专用节点的传播,以确保覆盖网络外部的节点(例如挖掘节点)能够在需要时维护部分或完整的存储池,。从示例实施方式的描述中显而易见的是,通过本申请的各个方面可以实现其他速度和存储优势。
[0013] SN节点可以包括处理器;存储构造为分布式散列表的分布式存储池的指定部分的存储器,所述分布式存储池包含等待确认的待定交易;网络接口;和包含处理器可执行指令的区块链SN节点应用程序。当所述指令被执行时,使得所述处理器接收包括交易标识符的交易;对所述交易标识符进行散列以获得(加密)密钥;使用所述密钥确定所述交易是否存储在所述分布式存储池中,如果没有,则将所述交易作为所述待定交易存储在所述分布式存储池中;和使用点对点连接将所述交易发送到除所述SN节点以外的节点集合。
[0014] 在一些实施中,所述存储器还存储关于包含所述交易并包括在所述区块链中的区块的确认数量的数据,并且其中,当所述确认数量达到最小数量时,所述指令使得所述处理器从所述分布式存储池中移除所述交易。在一些示例中,所述关于所述确认数量的数据是随着添加到所述区块链的每个新区块而更新的所述确认数量的计数,或者是包括所述交易的区块的区块号。
[0015] 在一些实施中,所述存储器还存储SN节点信誉表,所述SN节点信誉表包括任何检测到的新的相邻SN节点的标识符和基于新的相邻商户节点的检测到的活动的所述新的相邻商户节点的相关得分。在一些示例中,所述指令用于使所述处理器更新所述新的相邻SN节点的分数,并确定所述新的相邻SN节点的分数已经低于限,因此,将所述新的相邻SN节点指定为恶意节点并隔离所述新的相邻SN节点。
[0016] 在一些实施中,所述分布式存储池的指定部分与存储在另一所述SN节点上的所述分布式存储池的第二部分部分地重叠。
[0017] 在一些实施中,每个所述SN节点可以存储所述分布式存储池的相应指定部分,并且所述相应指定部分可以部分地重叠,使得每个所述待定交易存储在至少两个所述SN节点中,而不是所有所述SN节点中。可选地,其中每个所述待定交易包括在所述分布式存储池的不超过两个所述相应指定部分中。
[0018] 附加地或替代地,本申请可以提供一种计算机实现的方法,用于促进涉及连接到用于实现区块链的网络的多个节点的区块链转移(例如交易),其中,所述多个节点的子集是SN节点,所述SN节点存储包含等待确认的待定交易的分布式存储池,所述分布式存储池被实现为所述SN节点之间的分布式散列表。所述方法(可以在SN节点之一处实现)可以包括接收包括交易标识符的交易;对所述交易标识符进行散列以获得密钥;使用所述密钥确定所述交易是否存储在所述分布式存储池中,如果没有,则将所述交易作为所述待定交易存储在所述分布式存储池中;和使用点对点连接将所述交易发送到除所述SN节点以外的节点集合。
[0019] 附加地或替代地,本申请可以提供一种非暂时性处理器可读介质,存储处理器可执行指令以参与多个参与节点之间的区块链交易,其中,当所述处理器可执行指令由所述参与节点之一中的处理器执行时,使得所述处理器执行本文所述的一种或多种方法。附图说明
[0020] 参考本文描述的实施例,本发明的这些和其他方面将变得显而易见并得以阐明。现在仅通过示例并参考附图来描述本发明的实施例,其中:
[0021] 图1示出了具有商户(SN)节点的覆盖网络的示例节点网络。
[0022] 图2示出了说明在分布式存储池中存储新交易的过程的序列图。
[0023] 图3以流程图的形式示出了在区块链网络中传播交易的一种示例方法。
[0024] 图4以框图形式示出了M节点的简化示例。
[0025] 图5示出了说明新节点加入M网络的示例的序列图。
[0026] 图6示意性地示出了M节点注册表的示例。
[0027] 图7示出了示例存储池数据条目。

具体实施方式

[0028] 在本申请中,术语“和/或”旨在涵盖所列元素的所有可能的组合和子组合,包括任何一个单独列出的元素、任何子组合或所有元素,并且不一定排除附加元素。
[0029] 在本申请中,短语“……或……中的至少一个”旨在覆盖任何一个或多个所列元素,包括任何一个单独列出的元素、任何子组合、或所有元素,不一定排除任何其他元素,并且不一定要求具有所有元素。
[0030] 首先参考图1,图1以框图形式示出了与区块链相关联的示例网络,其在本文中可称为区块链网络100。区块链网络100是一个点对点的开放式会员网络,任何人都可以加入,无需邀请,无需经其他会员同意。运行区块链协议(区块链网络100在区块链协议下运行)实例的分布式电子设备可以参与区块链网络100。这种分布式电子设备可以称为节点102。例如,区块链协议可以是比特币协议或其他加密货币
[0031] 运行区块链协议并形成区块链网络100的节点102的电子设备可以是各种类型的,包括例如计算机(如台式计算机、笔记本电脑平板电脑服务器)、移动设备(如智能手机)、可穿戴计算机(如智能手表)、或其他电子设备。
[0032] 区块链网络100的节点102使用合适的通信技术彼此连接,该通信技术可以包括有线和无线通信技术。在许多情况下,区块链网络100至少部分地在互联网上实现,并且一些节点102可以位于地理上分散的位置
[0033] 节点102维护区块链上所有交易的全局分类账,该分类账被分组为区块,每个区块包含链中前一个区块的散列。全局分类账是分布式分类账,每个节点102可以存储全局分类账的完整副本或部分副本。节点102影响全局分类账的交易由其他节点102验证,从而保持全局分类账的有效性。本领域的普通技术人员将会理解实现和操作(例如使用比特币协议)区块链网络的细节。
[0034] 每个交易通常具有一个或多个输入和一个或多个输出。嵌入到输入和输出中的脚本指定了如何以及谁可以访问所述交易的输出。交易的输出可以是作为交易结果的值被转移到的地址。然后,该值与该输出地址相关联,作为未花费的交易输出(Unspent Transaction Output,简称UTXO)。随后的交易可以将该地址作为输入,以花费或分散该值。
[0035] 节点102可以根据其功能而具有不同的类型或类别。已经提出了与节点102相关联的四个基本功能:钱包、挖掘、全区块链维护和网络路由。这些功能可能有所不同。节点102可具有多个功能。例如,“全节点”(“Full Node”)提供了所有四种功能。轻量级节点,例如可以在数字钱包中实现,并且可以仅具有钱包和网络路由功能。数字钱包可跟踪区块头,而不是存储全区块链,区块头在查询区块时用作索引。节点102使用面向连接的协议(例如传输控制协议(Transmission Control Protocol,简称TCP/IP))相互通信。
[0036] 本申请提出并描述了节点的附加类型或类别:商户节点(Merchant Node)104(本文有时称为“M节点”104)。M节点104旨在专注于交易的快速传播。M节点不存储全区块链,并且不执行挖掘功能。从这个意义上讲,M节点与轻量级节点或钱包类似。但是,M节点包括附加功能以实现交易的快速传播。M节点104的操作重点是未确认交易的快速验证和传播,特别是传播到其他M节点104,未确认交易被从这些M节点快速推送到区块链网络100中的其他节点102。为了便于实现此功能,允许M节点104进行更多数量的传入连接,特别是传出连接,否则,这些连接可能会被允许用于管理协议下的节点102。
[0037] M节点104可统称为商户网络106(Merchant Network,简称“M-net”)(或“M网络”106)。术语“商户”可解释为“专用的”。尽管为了便于说明,在图1中示出为物理上不同的网络,但是所述M节点104可以集成到区块链网络100中。每个M节点104都是区块链网络100中的一个专用节点,满足特定的硬件和性能能力,确保其能够执行M节点104的功能。也就是说,M网络106可视为区块链网络100内的一个子网,并通过区块链网络分布。M节点可设置用于执行一个或多个专用功能或服务。
[0038] 为了使M网络106可靠地运行,并且能够在一定的安全级别上提供服务,M节点104需要保持对整个M网络106的良好概览,因此需要建立有效的路由协议。每当M节点104接收到启动交易时,M节点104需要将交易广播给其他几个M节点104以及其他节点102。在M网络106环境下,这相当于寻找多旅行商问题(Multiple Traveling Salesman Problem,简称MTSP)的解决方案。有许多解决方案可以解决多旅行商问题,其中任何一个方案都可运用于M网络106。每个M节点104都以某种最新的形式运行路由优化。
[0039] 在一些实施中,M网络106实现为去中心化的IP多播类型的网络。也就是说,为了使传入交易能够快速扩散到区块链网络100,可以使用多播来确保交易在整个M网络106中快速广播,从而使得所有M节点104专注于将交易转发到区块链网络100中的其他节点102。
[0040] 多播网络架构允许同时向一组目的节点分发数据的可能性,无需为每个对接收信息感兴趣的节点复制数据。如果节点想要接收多播传输,那么节点加入多播组(注册阶段),此后该节点将能够接收通过多播组发送的所有数据。IP多播不需要具备有多少个接收器的先验知识就能扩展到更大的接收器群,通过仅要求源发送一次数据包,就可以有效地利用网络基础结构。对于多播网络的性质,由于与大量其他节点同时通信,因此使用面向连接的协议(如TCP)是不切实际的。据此,使用无连接协议。
[0041] 一些区块链网络(例如比特币)使用TCP进行节点对节点的通信。使用TCP发送的数据包具有相关联的序列号,该序列号用于排序。除此之外,TCP协议在建立连接和终止连接时都涉及三次握手过程。通过TCP发送的数据包有相关的开销,所述数据包具有相关联的序列号和一个三次握手协议。建立连接时,传输了128–136字节,而关闭连接花费160字节。因此,包传输中的握手成本高达296字节。此外,当节点接收新交易时,该节点通过包含交易散列的库存(INV)消息通知其他节点。接收INV消息的节点检查该交易的散列是否已经被看到过;如果没有看到过,则该节点将通过发送获取数据(GETDATA)消息来请求交易。交易从节点A传输到节点B所需的时间为T1=verification+TCP(inv+getdata+tx),其中,TCP()表示由TCP握手程序引入的时间开销。
[0042] M节点104可用于使用TCP与运行现有协议(如比特币)的其他节点102通信。然而,M节点可使用无连接协议(如用户数据报协议(User Datagram Protocol,简称UDP))实现在多播情况下从M节点104到M节点104的通信,甚至更合适地从M节点104到多个M节点104通信。与TCP不同,UDP不涉及握手协议,因此M节点104能够更快地传播交易。这也可以避免恶意节点不发送实际交易而是通过发送重复的INV消息来绑其他节点。
[0043] UDP的轻量级特性与某些权衡相关联。错误检查较少,也没有错误恢复。在一些实施方式中,可以通过将错误恢复、排序和重新传输作为应用层的功能来在应用级别克服UDP的这些限制。把错误检查放在应用级别消除了网络的开销。
[0044] 在一个示例情况下,区块链网络100上的常规节点102生成其希望通过M网络106(例如基于商户的支付)处理的交易。常规节点可以将交易发送到M节点104,然后该M节点使用多播将交易广播到其他M节点104,或者如果常规节点知道M节点104的IP多播地址,则可以将交易直接发送到多个M节点104。在一些示例中,M网络106的所有M节点104都是单个多播地址的成员,因此发送到该地址的所有交易都被所有M节点104接收。然而,在一些情况下,可能有多个与M网络106相关联的多播地址,并且接收M节点104可以从路由信息中评估是否需要将交易进一步广播到其他多播地址,以将交易传播到全M网络106。
[0045] 多播有助于确保新交易快速初始传播到所有M节点104;但是,多播解决方案并不一定解决由增加的交易吞吐量引起的区块链网络100的可扩展性问题。网络100中的每个节点102通常都维护一个存储池,该存储池包含其已经看到的未确认的交易,这些交易还没有被完成工作量证明的矿工合并到区块链。支付处理中使用的交易数量的显著增长会增加每个存储池中存储的交易数量。因此,尽管M网络106中的节点能够几乎同时接收新的交易,但是所述节点对于大型且快速变化的存储池可能具有存储能力的限制。
[0046] 为了解决这个问题,本申请提出所述M节点104可以使用通过分布式散列表(Distributed Hash Table,简称DHT)实现的共享存储池,作为使用多播的替代。
[0047] 假设交易(TX)的平均大小为500字节,交易速率为大约104个交易/秒,则M网络106可以接收大约400GB的每日传入数据。所有这些数据都需要在未确认交易的存储池中存储不同的时间。因此,M网络106需要大量存储空间和快速存储数据的能力。为了不对每个单独的M节点104提出太多的要求,M节点104实现一个依赖于DHT的共享存储池。不是让每个M节点104将所有传入的交易保存在自己的存储池中,而是每个M节点104只存储总数的某一部分,以及存储其余部分的散列和相关密钥值。
[0048] DHTs是一类去中心化的分布式系统,允许在节点之间对密钥集进行成员划分,能够以有效且优化的方式仅向给定密钥的所有者发送消息。网络的每个节点都可以看作是散列表阵列的一个单元。DHTs旨在管理大量节点,允许新节点加入网络,旧节点离开网络或崩溃,而不损害共享数据的完整性。DHTs确保去中心化(没有中央机构,也没有中央协调)、可扩展性(系统具有数百万节点的高效行为)和容错性(系统可靠,能够管理加入和离开网络或崩溃的节点)。网络中的每个节点可以只与少数其他节点保持联系,因此在出现变化或新数据时,网络不会过载。
[0049] 这种概念同样可应用于UTXO数据库,该数据库包含区块链上所有未花费的输出的集合。可以使用DHT构建UTXO数据库,以便在一组节点之间共享内容。
[0050] 许多可能的DHT结构和协议可用于实现M网络106的共享存储池。一个例子是PastryTM,此外还有许多其他的例子。PastryTM是一种旨在维护覆盖网络的协议,该网络能够在分布式系统上存储和传输信息。PastryTM网络中的每个节点都分配有一个128位标识符,该标识符用于指示节点在圆形节点标识符(ID)空间中的位置(范围从0到2128-1)。当节点加入网络时,随机分配该ID。每个节点维护一个路由表、一个邻域集和一个叶集。
[0051] 在确定稳定的DHT的尺寸时,需要考虑的一个因素是确保整个网络的鲁棒性和可靠性所需的副本数量。如前所述,节点可以加入和离开网络,这不应影响数据的可用性。如果存储交易A的节点离开网络,则有必要在网络的另一部分中找到交易A。在现有的区块链网络中(例如比特币),网络的数量或区块链副本的数量等于网络中全节点的数量(平均5000个副本),但这影响了可扩展性。
[0052] 在目前提出的M网络106中,存储池不是在每个M节点104上完全复制的,而是通过DHT来实现。为了提供可靠性,可将DHT实现为具有一些重叠;即每个交易数据项都在多个M节点104中复制,尽管不是在每个M节点104中都复制。例如,可将DHT实现为指定最少数量的2个副本,同时假设两个节点之间的完全独立性为 这将可能导致
两个节点在任何给定时间内同时停机。
[0053] 现在参考图2,图2示出了说明将新交易存储在分布式存储池204中的过程200的序列图。分布式存储池204使用DHT实现。该过程200包括:节点102将交易发送到M节点104。M节点104根据所述实现来对交易或交易ID进行散列以获得密钥值。密钥值指示该M节点104或多个M节点104(在复制数据的情况下),交易存储在所述M节点或多个M节点。然后,M节点104将交易存储在分布式存储池204中,可包括:基于密钥值和M网络106中M节点104的指定ID,将交易路由到要存储交易的正确的M节点104。根据所涉及的DHT协议,M节点104可能会收到应答(acknowledgement)。
[0054] 现在还参考图3,图3以流程图的形式示出了在区块链网络中传播交易的一个示例方法300。所述方法300由M节点104(图1)实现。M节点104在操作302中从常规节点接收新交易。M节点104可以执行某些验证操作以验证交易的真实性。
[0055] 如操作304所示,可以对交易进行散列以生成用于交易的密钥。密钥可以指示在DHT中交易应存储的位置,该位置可以在当前M节点104以外的其他节点上。M节点104评估交易是否已存在于操作306的DHT中。基于组成M网络106(图1)的M节点104之间的密钥空间划分,每个M节点104具有一部分存储的交易。在一些实现中,密钥空间在参与的M节点104之间划分。划分可能涉及重叠,以使得网络可以弹性的复制。在一些实施中,例如使用PastryTM,每个M节点104都分配了唯一的密钥或ID号码,交易可以基于交易密钥值的接近度存储在所述M节点104或多个M节点104(在需要复制的情况下)。M节点104可以在本地具有交易的存储部分以及其余部分的散列或密钥值。因此,M节点104能够基于操作306中的本地数据来评估新交易是否存在于DHT中。
[0056] 如果交易不在DHT中,那么在操作308中,M节点104根据其密钥值将交易存储在DHT中。一般来说,这可以采取put(k,tx)操作的形式,其中k是密钥值,tx是交易。适用的DHT路由协议确保交易发送到并存储在适当的M节点104。基于所选择的实现方式,DHT可以根据分布式散列表的各种协议来操作。使用DHT在M网络106中存储交易避免了在M网络106中使用库存/获取数据(INV/GETDATA)消息来将交易路由到每个M节点104。
[0057] 在本示例的操作310中,M节点104可根据区块链网络100的正常交易转发协议将交易发送到区块链网络100中的常规节点102。例如,到普通节点的通信可以使用TCP进行节点对节点的连接。
[0058] 现在参考图4,图4以框图形式示出了M节点400的简化示例。本示例中的M节点400包括处理器402、网络接口404和存储器406。可以使用任何合适的计算硬件来实现所述M节点400,所述计算硬件具有网络连接性和足够的处理与存储资源来执行本文描述的功能。所述M节点400可包括处理器可执行指令以实现本文描述的功能。在一些情况下,处理器可执行指令可称为区块链商户节点应用程序420,但可以理解,基于硬件和操作系统,指令可以在一个或多个模块、应用程序、脚本、或其他编程结构中实现。处理器402可包括多核处理器和/或多个处理器。
[0059] 存储器406部分地基于其DHT密钥值(即M节点ID)存储数据,所述数据包括基于DHT的存储池410的指定部分。在此示例实现方式中,存储器406还存储路由表412、邻域集414和叶集416。路由表412包含M网络内特定路由目的地的列表,当节点接收到数据包时,会参考路由表以了解将数据发送到何处。路由表412还可包含有关每个目的地与M节点400之间的距离的信息。邻域集414(例如基于邻近度量(ping延迟))包含关于接近的M节点的信息。叶集416包含数字上接近的M节点。如果M节点的密钥值(节点ID)在数字上接近,那么所述节点在数字上接近。存储器406还包括M节点信誉表418,这将在下文中进一步说明。
[0060] 为了提供可扩展性,除了使用DHT实现存储池之外,M网络还允许节点加入M网络。图5示出了序列图500,该序列图示出了新节点504加入M网络的示例,其中,存储池被实现为DHT 506。新节点504需要具有至少一个已经是M网络一部分的M节点的地址,以便该新节点可以将其加入请求直接发送到其中一个M节点。信号图500示出了新节点504向M节点502发送加入DHT(m-node.address)请求的示例。M节点502可以执行某些验证动作,这可能涉及查询新节点504。例如,M网络可以具有一组与加入其指定给M节点502的M网络相关联的最低标准。举例来说,该标准可包括可用的最小处理资源、可用的最小空闲内存或连接性要求。
[0061] 假设M节点502完成为检验新节点504而执行的任何验证操作,那么M节点根据控制DHT操作的任何DHT协议,将加入请求(Joinrequest())转发到DHT 506。DHT 506与新节点504通信,以向新节点504提供路由表,密钥值(节点ID)和任何其他数据,以使新节点504能够充当M网络中的新M节点。
[0062] 应当理解的是,节点能够轻易加入M网络造成了恶意节点也容易加入网络。为了识别和隔离潜在的恶意节点,本申请提供了M节点存储M节点信誉表418。图6示意性地示出了用于跟踪和更新节点行为排名的M节点信誉表418的示例。
[0063] 当新节点加入网络时,该节点可以被添加到M节点信誉表418中,如节点ID字段602所示。在一些实现方式中,该表418还可以包括加入时间604。该表418还包括该M节点的分数606或评级。
[0064] 分数606可以根据某些行为指标向上或向下调整。例如,如果M节点未能转发交易,保持一段时间的静默,用被确定为非交易性的流量淹没M网络,或者以其他方式参与负面行为,那么该M节点的排名可能被降低或递减。如果节点的分数低于预设的最小值,那么可以将该节点从M网络中排除。
[0065] 维护在特定M节点上的M节点信誉表418可仅限于跟踪其邻居的分数,而不是全M网络。因此,当新M节点在t时刻加入网络时,其邻居的M节点信誉表不包含有关新节点的任何信息,但是从t时刻开始,所述邻居开始建立新节点的信誉,将信息存储在节点注册表中。例如,如果新节点是静默节点,这意味着该节点不传输通过网络接收到的信息,那么所有邻居都开始在其各自的M节点信誉表中记录此行为(例如给新节点的ID分配负值)。在一定时间t+n之后,如果知道新节点的所有节点的M节点信誉表都包含负值,那么节点可决定隔离新节点并将新节点从网络禁止。
[0066] 现在参考图7,图7示出了示例存储池数据条目700。M网络的分布式存储池中的交易可能需要等待相当长的时间才能被确认,即在被合并到添加到区块链并被确认的区块中之前。当足够数量的后续区块添加到其上方的区块链中时,该区块被视为“已确认”,这样,使得扭转链中的增长并删除区块以更改为不同的分支或分叉在计算上是不可行的。
[0067] 由于存储池的大小和灵活性以及交易量,给定交易可能比某些区块链实现方式(例如比特币)中的交易的未确认时间更长。在传统的比特币实现方式中,一旦将交易合并到区块中,该交易便从存储池中删除。这意味着,如果该区块最终成为孤立块,那么该区块中的所有交易都会在网络上重新传输。在快速交易网络的情况下,这可能不切实际,或者可能导致对某些交易的确认的长时间延迟。
[0068] 因此,在一些实现方式中,存储池可以跟踪已并入交易的区块的确认数量,即在并入了交易的区块之后添加到区块链的区块的数量。只有在确认的预定数量发生后,交易才会从存储池中删除。预定数量可以是4、5、6、7或对于给定实现方式的任何合适的数量。如图7所示,存储池数据条目700可构建为包括交易ID字段702、交易字段704和确认数量(Number ofConfirmations,简称NoC)字段706。在另一实现方式中,存储池数据条目700可以简单地记录区块数量,而不跟踪NoC。根据区块链的当前区块数量,该存储池数据条目可以从区块数量中评估发生了多少次确认。
[0069] 一旦发生必要数量的确认,交易就可以安全地从存储池中删除。这样,在孤立区块的情况下不会有交易损失,并且在必要数量的确认之后,交易将被永久删除。
[0070] 本发明的一个或多个实施例可描述为提供一种改进的区块链实现的方法和系统。它可以通过区块链网络提高操作速度,例如写入操作、交换或转移。也可以提供本发明的其他优点。
[0071] 应当理解的是,本文描述的设备和过程以及实现所描述的用于配置视频特征提取器的方法/过程的任何模块、例程、过程、线程、应用或其他软件组件可使用标准计算机编程技术和语言来实现。本申请不限于特定处理器、计算机语言、计算机编程惯例、数据结构或其他这类实施细节。
[0072] 应当说明的是,上述实施例说明而非限制本发明,在不脱离本发明的由所附权利要求限定的范围的情况下,本领域技术人员将能够设计出许多替代性实施例。在权利要求中,括号中的任何附图标记不应解释为对权利要求的限制。词语“包括(Comprising)”和“包括(Comprises)”等并非在整体上排除其他元件和步骤的存在,尽管这些元件和步骤并没有在任何权利要求或说明书中列出。在本说明书中,“包括(Comprises)”意指“包括(Includes)或由......组成(Consists of)”,“包括(Comprising)”意指“包括(Including)或由......组成(Consisting of)”。元件的单数引用不意味着排除这些元件的复数引用,反之亦然。本发明可以借助包括若干不同元件的硬件,以及借助适当编程的计算机来实施。在列举了若干装置的设备权利要求中,这些装置中的若干个可以由硬件的同一个部件来体现。不争的事实是,在相互不同的从属权利要求中列举了某些方法,并不代表这些方法的结合不能获得有益效果。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈