首页 / 专利库 / 计算机网络 / 对等网络 / 面向全局规模的区块链基础设施

面向全局规模的基础设施

阅读:612发布:2020-05-11

专利汇可以提供面向全局规模的基础设施专利检索,专利查询,专利分析的服务。并且本 发明 公开了 区 块 链 技术领域的一种面向全局规模的区块链 基础 设施。ACD是所述Infinet里的一个 原子 单位,它可以部署任意 对等网络 拓扑,实现自我期望的区块链格式和使用专用的共识 算法 来确保它的所有对等体都同意相同的状态;所述Infinet使DApp的拥有者在构造它的逻辑区块链时能够明确且准确地控制应该相信哪些ACD,仅仅是这些被选择的ACD将维持ACD的逻辑区块链,一个Dapp可以做到只要与它选择的ACD达成共识就允许Infinet并行处理DApp。本发明通过将区块链基础设施划分为独立的域来提供自然界限并基于共同合同、地理 位置 分组或其他共识来保持对等体之间状态的一致性,建立具有可扩展性、可控性、独立性的区块链基础设施Infinet。,下面是面向全局规模的基础设施专利的具体信息内容。

1.一种面向全局规模的链系统实现方法,其特征是,包括:
区块链基础设施Infinet,ACD是所述Infinet里的一个原子单位,它可以部署任意对等网络拓扑,实现自我期望的区块链格式和使用专用的共识算法来确保它的所有对等体都同意相同的状态;
所述Infinet使DApp的拥有者在构造它的逻辑区块链时能够明确且准确地控制应该相信哪些ACD,仅仅是这些被选择的ACD将维持ACD的逻辑区块链,一个Dapp可以做到只要与它选择的ACD达成共识就允许Infinet并行处理DApp。
2.根据权利要求1所述的面向全局规模的区块链系统实现方法,其特征是,一个所述ACD代表一个实体,作为Infinet全局基础设施的一部分运营它的本地区块链系统。
3.根据权利要求1所述的面向全局规模的区块链系统实现方法,其特征是,所述Infinet包含多个ACD,所述ACD部署在现有的地理、法律和政治边界内部或穿过边界。
4.根据权利要求1所述的面向全局规模的区块链系统实现方法,其特征是,所述Infinet允许DApp明确控制它自己的碎片构造。
5.根据权利要求1所述的面向全局规模的区块链系统实现方法,其特征是,所述Infinet将DApp定义为一个由客户端发布的交易流,一个ACD使用专有算法在内部验证是否接受该交易,并作为一个整体报告任何本地验证的交易来触发ACD成员间的共识过程;所有ACD成员间的共识通过Eaglet算法来实现。
6.根据权利要求5所述的面向全局规模的区块链系统实现方法,其特征是,所述DApp将交易划分为多个TG,每个所述TG设有一个全局唯一的标识符,所述标识符为:
其中, 为有id的交易,nonce为一个256bit长的客户端生成的加密随机数,g为当前TG的标识符, 为当前TG管理器的指纹,Sig(C)是客户端的签名以证明交易的完整性,并且|表示整篇文章的连接;
客户端通过DApp的分布式服务获取交易 和当前TG管理器的指纹
7.根据权利要求5所述的面向全局规模的区块链系统实现方法,其特征是,所述交易在被提交到区块链之前需要由所有ACD成员进行验证,并容忍最多f个错误ACD成员,一个交易必须收到至少f+1个不同有效ACD成员的认可。
8.一个或多个非暂态计算机可读存储介质,其特征是,所述一个或多个非暂态计算机可读存储介质用于存储计算机可执行代码,包括:
ACD内部交易验证代码和ACD间共识代码,用于计算机系统在ACD中使用分布式服务自动启动新的TG并为每个TG选择一个经理,以实现共识,将交易划分为TG的策略使交易组随着时间的推移自动进行;
用于计算机系统通过更改内部算法数据结构来更新应用程序配置,除此服务,其余服务是只读的,并且所有利益相关者都可以调用它们而不用向网络发出任何实际交易;
用于计算机系统返回当前TG标识符,利益相关者不需要为了开始一个新的TG等待DApp所有者提交交易,由于时钟差异,对等体和客户可以在不同时间观察TG之间的转换;
用于计算机系统返回相应经理的地址,即给每个交易组分配一个全局唯一标识符的代码,通过标识符区分每个交易组;允许DApp所有者在这项服务中实施专有选择算法,允许实体查询给定TG标识符的管理器;
用于计算机系统返回目前由DApp选择的ACD成员列表,一个经理可以验证交易是否已被超过f+1个成员验证,以便它可以将事务放入一个块。

说明书全文

面向全局规模的基础设施

技术领域

[0001] 本发明属于区块链技术领域,具体涉及一种面向全局规模的区块链基础设施。

背景技术

[0002] 区块链起源于中本聪的比特币,作为比特币的底层技术,本质上是一个去中心化的数据库。是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。区块链技术是一种不依赖第三方、通过自身分布式节点进行网络数据的存储、验证、传递和交流的一种技术方案。
[0003] 区块链技术被认为是互联网发明以来最具颠覆性的技术创新,它依靠密码学和数学巧妙的分布式算法,在无法建立信任关系的互联网上,无需借助任何第三方中心的介入就可以使参与者达成共识,以极低的成本解决了信任与价值的可靠传递难题。
[0004] 区块链的分布式性质自然会导致稻草人设计:为了建立全局规模的区块链基础设施,社区只需要招募更多节点来形成全局化p2p系统。然而,这种基于p2p的基础设施的构建方法,使结构受到四个关键限制:(1)缺乏可扩展性和效率:盲目地将地理上分布的对等体添加到p2p系统,减缓了共识的进展;(2)缺乏责任感:p2p系统没有将行动与一个负责的实体相关联的基本能;(3)缺乏可控性:DApp所有者在应用程序时不能选择信任谁;(4)缺乏自主权:所有对等体被要求使用相同的共识算法,同意相同的单一巨型区块链,这阻止了基础设施扩展和技术创新。

发明内容

[0005] 本发明的目的在于提供一种面向全局规模的区块链基础设施,以解决现有技术中基于p2p的基础设施构建方法缺乏可扩展性和效率,缺乏可控性,缺乏独立性的技术问题。
[0006] 为达到上述目的,本发明所采用的技术方案是:一种面向全局规模的区块链系统实现方法,包括:
[0007] 区块链基础设施Infinet,ACD是所述Infinet里的一个原子单位,它可以部署任意对等网络拓扑,实现自我期望的区块链格式和使用专用的共识算法来确保它的所有对等体都同意相同的状态;
[0008] 所述Infinet使DApp的拥有者在构造它的逻辑区块链时能够明确且准确地控制应该相信哪些ACD,仅仅是这些被选择的ACD将维持ACD的逻辑区块链,一个Dapp可以做到只要与它选择的ACD达成共识就允许Infinet并行处理DApp。
[0009] 一个所述ACD代表一个实体,作为Infinet全局基础设施的一部分运营它的本地区块链系统。
[0010] 所述Infinet包含多个ACD,所述ACD部署在现有的地理、法律和政治边界内部或穿过边界。
[0011] 所述Infinet允许DApp明确控制它自己的碎片构造。
[0012] 所述Infinet将DApp定义为一个由客户端发布的交易流,一个ACD使用专有算法在内部验证是否接受该交易,并作为一个整体报告任何本地验证的交易来触发ACD成员间的共识过程;所有ACD成员间的共识通过Eaglet算法来实现。
[0013] 所述DApp将交易划分为多个TG,每个所述TG设有一个全局唯一的标识符,所述标识符为:
[0014]
[0015] 其中, 为有id的交易,nonce为一个256bit长的客户端生成的加密随机数,g为当前TG的标识符, 为当前TG管理器的指纹,Sig(C)是客户端的签名以证明交易的完整性,并且|表示整篇文章的连接;
[0016] 客户端通过DApp的分布式服务获取交易 和当前TG管理器的指纹
[0017] 所述交易在被提交到区块链之前需要由所有ACD成员进行验证,并容忍最多f个错误ACD成员,一个交易必须收到至少f+1个不同有效ACD成员的认可。
[0018] 一个或多个非暂态计算机可读存储介质,所述一个或多个非暂态计算机可读存储介质用于存储计算机可执行代码,包括:
[0019] ACD内部交易验证代码和ACD间共识代码,用于计算机系统在ACD中使用分布式服务自动启动新的TG并为每个TG选择一个经理,以实现共识,将交易划分为TG的策略使交易组随着时间的推移自动进行;
[0020] 用于计算机系统通过更改内部算法数据结构来更新应用程序配置,除此服务,其余服务是只读的,并且所有利益相关者都可以调用它们而不用向网络发出任何实际交易;
[0021] 用于计算机系统返回当前TG标识符,利益相关者不需要为了开始一个新的TG等待DApp所有者提交交易,由于时钟差异,对等体和客户可以在不同时间观察TG之间的转换;
[0022] 用于计算机系统返回相应经理的地址,即给每个交易组分配一个全局唯一标识符的代码,通过标识符区分每个交易组;允许DApp所有者在这项服务中实施专有选择算法,允许实体查询给定TG标识符的管理器;
[0023] 用于计算机系统返回目前由DApp选择的ACD成员列表,一个经理可以验证交易是否已被超过f+1个成员验证,以便它可以将事务放入一个块。
[0024] 与现有技术相比,本发明所达到的有益效果:
[0025] (1)本发明通过将区块链基础设施划分为独立的域来提供自然界限并基于共同合同、地理位置分组或其他共识来保持对等体之间状态的一致性,建立具有可扩展性、可控性、独立性的区块链基础设施Infinet;
[0026] (2)本发明通过区块链域的自治消除了在现有地理和政治边界运营域的法律障碍,可以开拓创新域来部署新技术以优化运营,最终推动区块链技术的创新。附图说明
[0027] 图1是基于地理分布的自治链域组成的Infinet全局规模基础设施;
[0028] 图2是DApp交易流被分为交易组示意图;
[0029] 图3是单模块格式及TG块;
[0030] 图4是由DApp 定义的分布式服务算法;
[0031] 图5是ACD间RPC交互以达成共识的示意图。

具体实施方式

[0032] 下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0033] 一种面向全局规模的区块链系统实现方法,包括区块链基础设施Infinet(无限链),在Infinet,一个基本构建块实现可扩展性、区块链自治、DApp可控性和问责制的能力就是自治链域(ACD)。Infinet全局规模的区块链基础设施分为地理分布式ACD,如图1所示。一个ACD是Infinet里的一个原子单位,代表一个实体(如对等体组织或一个企业),作为Infinet全局基础设施的一部分运营它的本地区块链系统。一个ACD在内部运行区块链系统时具有完全自治权,这意味着它可以部署任意对等网络拓扑,实现自我期望的区块链格式和使用专用的共识算法来确保它的所有对等体都同意相同的状态。如图1所示,ACD X倾向于一个随机连接的对等网络和对等体,依靠Paxos算法达成共识;ACD Y部署一个全网拓扑并且使用一个领导者驱动共识算法(例如PBFT和Raft),而ACD Z构建一个分层网络拓扑来运行基于委托的算法(例如DPoS),其中所有对等体通过复制一组代表的陈述达成共识。
[0034] 在一个成熟阶段,Infinet包含大约接近几千个ACD部署在现有的地理、法律和政治边界内部或者穿过边界。
[0035] 与一个DApp将底层区块链基础设施看作一个黑盒子(即它不能控制其内部操作)的现有提案不同的是,Infinet使DApp的拥有者在构造它的逻辑区块链时能够明确且准确地控制应该相信哪些ACD。仅仅是这些被选择的ACD将维持ACD的逻辑区块链,而没有被选择的ACD并不知道DApp;在图1中,DApp仅能对被其选择的ACD成员可见,例如ACD X,而ACD Z是看不见的。使用术语“逻辑”是因为有DApp感知的区块链格式与实际上的由ACD对等体实施的区块链格式不一样。类似的概念是计算和网络虚拟化。
[0036] 明确的ACD选择实质上会破坏基于每个DApp的Infinet全局基础设施。一个Dapp可以做到只要它选择的ACD达成共识就允许Infinet并行处理DApp。尽管碎片的概念使得改善交易效率在区块链社区引起关注,Infinet是第一个允许DApp明确控制它自己的碎片构造的体系。这种可控性是使得能够实现多种建造安全可信赖的区块链基础设施所必需的的关键功能。
[0037] 首先,可控性自然会导致ACD层次上的问责制:Infinet可以由一个DApp选择的ACD问责它们的行为不端和失败,其允许DApp从未来的运营中排除任何不被信任的ACD。进一步,可控性最终有利于区块链的可用性和安全性,因为DApp可以选择更值得信赖的ACD,以此提供持续的可靠服务。从DApp的度看,对ACD上异质信任的支持至关重要,因为Infinet基础设施在地理上分布的ACD是由技术平和合作能力具有不同水平的不同组织运营的。
[0038] 成为可以登录各种类型DApp的通用区块链基础设施,Infinet将DApp概括为一个由客户发布的交易流,一个可能包含多种方法(例如智能合约代码)的进程,以及一个仅仅能被DApp拥有者选择的一组ACD访问许可状态。一个DApp的过程将交易视为输入和调用对这个DApp状态的读或(和)写。Infinet有责任确保所有选定的ACD查看这个Dapp的状态是一致的。
[0039] Infinet实现这种全局一致性通过以下两种方式:ACD内部交易验证和ACD间共识。特别是,一个DApp的交易被多播到其选定的ACD成员。在第一阶段,在接收到交易之后,仅仅基于自己对等体所看到的状态,一个ACD内部验证是否接受该交易。这个验证过程可能会在所有对等体中引发一轮域内共识。根据域内自治原则,ACD在这一步可以使用专有算法。另外,ACD作为一个整体需要报告任何本地验证的交易来触发第二阶段的ACD间共识过程。
[0040] 在第二阶段,所有ACD成员间的共识通过Eaglet来实现。在很高的层面上,Eaglet依赖来自所有ACD成员的DApp拥有者选择的一个经理。这个经理从ACD跟随者中听取交易报告,将已确认交易打包成块并且与跟随者重复这些块以实现一致性。每个跟随者独立决定是否接受经理基于Eaglet区块链复制规则的块。Eaglet是一个可证明安全算法,确保所有诚信的ACD成员以相同的顺序执行相同的算法,即使一些ACD成员(其中有可能被选为经理)是有缺陷的。自从DApp的程序是具有确定性的,Eaglet确保所有诚信成员看到完全相同的DApp状态。
[0041] 除了安全属性,很大程度上来说,Infinet的共识设计是由以下事实推动的:其全局规模区块链基础设施是通过广域网(WAN)互联的。通过大规模广域网连接的对等方达成共识是具有挑战性的,因为典型的共识算法需要对等方之间大量的信息交换,由于不平凡的网络导致缓慢且不可预测的共识进程。Infinet从以下两个方面提高了广域网内的共识效率。首先,通过解耦域内操作和域间共识,Infinet从不需要消息在来自所有ACD的所有对等体间广播。相反,每个对等体仅仅在第一阶段与来自同一个ACD的对等体通信,通常在地理分布上是相近的。即使是在第二阶段,当ACD间需要通信时,每个ACD作为一个独立单位参与。其次,与比特币和以太坊不同,Infinet里的对等体不需要通过求解计算难题来竞争生成块,这种竞争缓慢且消耗资源。相反在Infinet,只有一个ACD有资格随时生成块。其它的ACD成员仅需要向它报告自己本地验证的交易,进一步驱动Eaglet算法实现ACD间共识。
[0042] ACD间共识协议包括:
[0043] (1)交易准备
[0044] 交易组,Eaglet交易组(TG)的概念促进共识。如图2所示,该DApp将其交易事务划分为若干交易组(TG),并且为每个交易组分配一个增加的标识符。在任何一个TG中,经理是从所有ACD成员中选出来的,并为这个TG推动ACD间共识进展。DApp使用分布式服务,每一段时间发起新的TG并选择经理。在一个TG内交易量取决于TG时间内客户的需求量。交易组看作是Infinet里一个逻辑时钟,使ACD能够在没有额外的共同合作下有效检测过时信息(例如陈旧的经理和交易)。
[0045] 交易ID,为了向DApp发起一个有效交易 客户端需要为其正确构造一个全局唯一标识符为:
[0046]
[0047] 其中, 为有id的交易,nonce为一个256bit长的客户端生成的加密随机数,g为当前TG的标识符, 为当前TG管理器的指纹,Sig(C)是客户端的签名以证明交易的完整性,并且|表示整篇文章的连接;
[0048] 客户端通过DApp的分布式服务获取交易 和当前TG管理器的指纹
[0049] 分布式服务,Infinet引入了分布式服务的概念以确保一个实体(例如客户和ACD成员)可以获取有用的元数据,而不依赖于任何集中的接入点。DApp 的分布式服务是程序的一部分,由来自所有ACD成员的对等体同步执行。该分布式服务本身实现了DApp很少的业务逻辑性。相反,它们是简单的(通常是只读的)RPC,返回一组反映DApp配置的元数据,例如当前的TG标识符和哪个ACD被选为当前的经理。
[0050] (2)交易和块格式
[0051] 链上交易格式。一旦用户请求DApp用正确构造的ID进行交易,该交易在最终提交到区块链之前需要由所有ACD成员进行验证。容忍最多f个错误成员ACD,一个交易必须至少收到f+1个来自不同有效ACD成员的认可。因此,一个确认的链上交易格式如公式(2)所示,Sig(X)是ACD X的签名,以表示对交易的批准,其内容定义了实际的商业行为(例如硬币在客户之间转移)。注意到小组内签名方案是显示交易被至少f+1个ACD成员验证的另一种替代方案,Infinet更喜欢当前设计,保留了强大的ACD独立性。
[0052]
[0053] 其中,content表示交易的具体内容,Sig(Y)表示ACD Y的签名,以表示对交易的批准。
[0054] 块格式。在任何TG g期间,仅被选定的经理被授权生产包含已确认交易的块。由于在一个块中可以打包的最大交易数可能少于TG g中已确认转移交易总数,经理可能在其中产生多个块。为了避免在呈现Eaglet算法时出现歧义,介绍了单模块和TG模块的概念,其中单模块是附加到区块链的实际块,TG模块是包含经理在其时期内产生的所有单模块的虚拟块。图3显示了该格式。
[0055] ·Prev:该字段包含前一个块的哈希值,当前块是建立在上面的。这个字段在当前的TG块第一个单模块中指向前一个的TG区块最后一个单模块。
[0056] ·Entry:该字段存储一对由当前TG标识符组成的和TG块中单模块相对基于单一的索引。
[0057] ·Signature:由经理签名以验证单模块。
[0058] ·Hash:使用当前块中所有先前字段的哈希值在该块后续块的Prev字段中。
[0059] ·ACKs:来自决定接受块的ACD成员的确认清单。一种简单的确认形式由ACD成员通过块的哈希字段计算为签名。另一种选择是依靠集体签名协议(如CoSi),它减小了确认字段大小,却增加了额外的设置开销。
[0060] 单模块仅在以下情况下成立,(1)每个包含的交易至少由f+1个ADC成员签字,并且(2)经理签署的单模块与其Entry字段相对应,即如果块的Entry是(g,k),它必须由TG g选择的经理签字。一个TG块仅仅当它所有单模块都有效并且通过它们Prev和Hash字段正确链接时才会有效。一个TG块的链仅仅当每一个都有效且正确链接时才会有效。
[0061] (3)Eaglet共识算法
[0062] 在很高层面上,Eaglet实现以下共识。在一个TG中,一个经理由所有ACD成员选出来管理属于这个TG的DApp 的交易。经理收到来自跟随ACD的交易报告,将确认交易打包成块,然后在跟随者身上复制这些块来实现一致性。每个TG都有一个专的经理大大简化了共识过程(因此减少了协议开销)仅允许权威信息由经理流向跟随者,而不是相反。
[0063] Eaglet使用分布式服务自动启动新的TG并为每个TG选择一个经理。如图4所示,算法1草绘了Eaglet所需的最小的分布式服务集。
[0064] PushConfig。此服务是DApp所有者的入口点,通过更改内部算法数据结构来更新应用程序配置。例如,所有者可以通过更新members_更改其ACD成员选择,并通过managers_为未来TG调整经理分配。这项服务只能由DApp拥有者调用。由于PushConfig确实改变了DApp状态,因此它不得不通过提交实际交易来调用。除了PushConfig,其余服务是只读的,并且所有利益相关者都可以调用它们而不用向网络发出任何实际交易。
[0065] GetTGIdentifier。调用时,此服务返回当前TG标识符。算法1实现了简单且高度自动化,将交易划分为TG的策略。特别是随着时间的推移,交易组会自动进行,以便新的TG大致每个tg_period_开始。尽管有可能让DApp所有者参与分配TG,避免了这样的设计以确保服务可以自动进行,即利益相关者不需要为了开始一个新的TG等待DApp所有者提交交易。由于时钟差异,对等体和客户可以在不同时间观察TG之间的转换。
[0066] GetTGManager。对于给定TG标识符,此服务返回相应经理的地址(全局唯一指纹)。允许DApp所有者在这项服务中实施专有选择算法,可能考虑到了ACD的声誉。算法1考虑到基本的,基于伪随机性的策略,DApp所有者将离线确定的管理器序列编入managers_,以允许实体查询给定TG标识符的管理器。这项服务进一步施加了只允许查询当前和以前TG的约束,因为DApp所有者可能会为未来的TG更改管理员分配。
[0067] GetACDMembers。当调用时,此服务返回目前由DApp选择的ACD成员列表。鉴于此列表,一个经理可以验证交易是否已被超过f+1个成员验证,以便它可以将事务放入一个块。
[0068] (4)算法假设
[0069] 首先,DApp选择的ACD可能有故障。在拜占庭式的常规故障里,有故障的ACD可能会停止向其他成员ACD发送消息,为无效交易签发批准书并在选为TG经理时停止产生块或产生矛盾块。从早期开始就做出这样的假设,当ACD的信誉系统发展不是很成熟时,DApp所有者可以选择恶意ACD来托管他们的应用程序。随着声誉系统的不断发展并且不受信任的ACD逐渐被排除在系统之外,这样的假设将来可能会放宽。
[0070] 其次,在拜占庭假设下,在诚信ACD之间的消息延迟必须受到限制,否则共识会无法达成。基于Infinet的架构,进一步假设任何两个诚信ACD成员之间的消息延迟是相对于在图4的算法1中定义的TG的长度为界限的,即
[0071] 3Lm+|∈|<tg_period_   (3)
[0072] 其中,Lm是消息延迟时间,∈是诚信ACD成员间最大的时钟差,tg_period_是一个TG块的持续时间。
[0073] 有关消息延迟的假设如下:一方面,多年来互联网的可用性已大大提高。值得注意的是,工业界已经部署了各种地理位置分散的基础架构(通常称为或CDN),大大增加了Internet路径的多样性并且有效地为许多重资产组织提供了四个9可用性,例如行和交易所。同时,网络研究社区不断提高网络可用性——不仅通过解决当前互联网架构任何已经存在的或预期的安全性问题,也通过提出专门为可用性设计的未来互联网架构。因此,给定tg_period_的长度是几十秒,有界等待时间假设不会过于乐观。在极少数情况下,任何ACD都持续无法访问,DApp所有者可以通过PushConfig服务将其从操作中排除来更改其配置。
[0074] 鉴于以上假设,Eagle可证明保证所有由DApp选择的诚信ACD成员在其区块链上达成共识只要满足以下弹性条件:为了容忍最多f个拜占庭ACD成员,DApp所有者需要至少选择3f+1个ACD成员。
[0075] (5)ACD之间的RPC交互
[0076] 在Eaglet中,ACD使用RPC相互通信,并且使用了三种类型的RPC。(i)由跟随ACD发布ReportRPC来发送其交易报告和本地区块链给经理。在TG期间,每个跟随ACD根据其本地状态独立验证交易;(ii)管理员启动WriteRPC以将其区块链复制到独立的跟随ACD,根据规则决定是否接受经理的区块链;(iii)跟随ACD在以下两种情况下将AckRPC多播到其他成员:(a)跟随者决定接受经理的WriteRPC;(b)被证明至少有来自不同成员的2f+1个AckRPC。在第一种情况下,AckRPC包含跟随者自己对经理块的确认,在第二种情况下,AckRPC包含跟随者所有见证的确认。
[0077] 如图5所示,绘制了ACD之间的RPC交互。每个ACD与其他有些许时间差异。∈表示所有诚信ACD之间的最大时钟差,根据网络时间协议在几毫秒内。为TG k选择的经理表示为在图5中,假设ACD Y为 并接收来自追随ACD的ReportRPC。一旦收到ReportRPC, 检查ReportRPC中包含的事务已由跟随ACD正确签名。对于每笔交易(由其ID标识), 等待来自不同ACD的f+1个签名来确认交易。在整个TG k期间,经理可能会收到来自追随者的多轮ReportRPC。
[0078] 当TG k基于 的本地时钟结束(或TG k+1开始)时, 切换为使用所观察到的最新和有效的区块链,并产生这个区块链上的新区块。特别地, 将所有已确认的交易打包为单例块并通过这些块中的Hash和Prev字段正确链接它们。此时,这些单例块中的ACK字段是空的。当 开始生成块时,TG k的ReportRPC可能尚未到达。在这种情况下,这些ReportRPC将被忽略,如图5所示。
[0079] 一旦计算出TG k的所有单例块, 将RPC发给所有其他ACD成员以复制这些块。根据区块链复制规则(BRR),如果有ACD决定接受 的区块链,就将AckRPC多播到其他 生成最后一个单例块的“Hash”字段中包含ACD签名的成员。显然,由于区块链的结构,ACD只需要确认最后一个单例块以接受整个TG块。此外,ACD成员最多应承认一个TG k的TG块,即,如果 于不同的TG块发出多个WriteRPC,ACD应该拒绝这些WriteRPC[0080] 最后一步是可选步骤,并且仅对于见证了来自不同成员(包括自身)至少2f+1个确认的ACD所需要,其中不同成员同意相同TG块。在这种情况下,ACD将对其他成员多播包含所有见证确认的AckRPC。
[0081] 在TG k期间,所选管理器 监听来自其他成员的RPC决定使用哪个区块链及将哪些交易打包成块。TG k结束时, 计算TG k的块并通过RPC复制这些新块到其他ACD上。
[0082] 为了保证上述RPC设计的算法安全性,Eagle必须确保第二轮AckRPC(如果有)是在开始创建新块之前由 接收。结果,假设任何两个诚信ACD之间的消息延迟界限Lm,应该满足公式(3)的条件。
[0083] Eaglet不要求ACD在取得进展前等待ACD成员的三分之二超多数群体的确认。相反,在Eaglet,每个ACD成员都独立进行,仅基于其收到的RPC。Eaglet能够解决任何由拜占庭经理通过以下区块链复制规则造成的冲突。
[0084] (6)区块链复制规则
[0085] 首先,给定两个区块链C1和C2,如果以下两个条件都是正确的则C1比C2更新:(i)C1包含C2的基准区块,同时C1基准区块的TG标识符比C2的基准区块更大;(ii)C1和C2具有相同的基准区块,而C1的最后一个块比C2的最后一个块拥有更高的TG标识符。区块链的基准区块是最后一个至少有2f+1个ACD成员认可的TG块,即基准区块的ACK字段至少包含2f+1个来自不同ACD成员的确认。
[0086] 在Eaglet中,当观察来自其他ACD成员的区块链副本时,ACD使用BRR来确定其行为。特别地,一旦通过RPC接收到ACD 的区块链后,ACD 采取积极行动(行动内容取决于RPC的类型),如果(i) 的区块链比 的更新;(ii)在 的区块链上,所有从 的基准区块开始的区块链是有效且正确链接的(如果 的区块链比 的更新, 的区块链必须包含的基准区块)。否则,ACD 忽略 的区块链。对于ReportRPC, 通过接受并切换到使用的区块链来采取积极的行动,而对于这WriteRPC和AckRPC, 需要进一步的发出AckRPC以在成员之间传播块确认。
[0087] 一个或多个非暂态计算机可读存储介质,所述一个或多个非暂态计算机可读存储介质用于存储计算机可执行代码,包括:ACD内部交易验证代码和ACD间共识代码,用于计算机系统在ACD中使用分布式服务自动启动新的TG并为每个TG选择一个经理,以实现共识,将交易划分为TG的策略使交易组随着时间的推移自动进行;用于计算机系统通过更改内部算法数据结构来更新应用程序配置,除此服务,其余服务是只读的,并且所有利益相关者都可以调用它们而不用向网络发出任何实际交易;用于计算机系统返回当前TG标识符,利益相关者不需要为了开始一个新的TG等待DApp所有者提交交易,由于时钟差异,对等体和客户可以在不同时间观察TG之间的转换;用于计算机系统返回相应经理的地址,即给每个交易组分配一个全局唯一标识符的代码,通过标识符区分每个交易组;允许DApp所有者在这项服务中实施专有选择算法,允许实体查询给定TG标识符的管理器;用于计算机系统返回目前由DApp选择的ACD成员列表,一个经理可以验证交易是否已被超过f+1个成员验证,以便它可以将事务放入一个块。
[0088] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0089] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0090] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0091] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0092] 以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
[0093] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈