CN111181715B - 一种基于一致性哈希共识协议的多方跨链方法 - Google Patents
一种基于一致性哈希共识协议的多方跨链方法 Download PDFInfo
- Publication number
- CN111181715B CN111181715B CN201911395852.4A CN201911395852A CN111181715B CN 111181715 B CN111181715 B CN 111181715B CN 201911395852 A CN201911395852 A CN 201911395852A CN 111181715 B CN111181715 B CN 111181715B
- Authority
- CN
- China
- Prior art keywords
- node
- chain
- user
- nodes
- proposal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- Technology Law (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于一致性哈希共识协议的多方跨链方法,包括:(1)制定用于多方跨链***的共识协议;(2)根据一致性哈希算法找到对应虚拟节点所在位置;(3)多方用户进行交互(4)存储用户数据到对应虚拟节点;(5)请求进行多方跨链验证交互(6)收到验证交互请求,触发智能合约进行跨链共识过程,对交互验证通过,达成共识后,完成数据跨链。本发明的多方跨链方法能够实现跨链间的高效共识,通过一致性哈希算法,提高共识的效率,以便实现多方在进行跨链交互过程中***的负载均衡。
Description
技术领域
本发明属于区块链技术领域,具体涉及一种基于一致性哈希共识协议的多方跨链方法。
背景技术
区块链本质是一种去中心化的分布式链式***,此***中可包含多条链的相互协作,其特有的分布式链式结构实现了上链数据可追溯,基于密码学技术和共识机制,实现不可篡改和不可伪造等功能,进而协调区块链多链间的安全与数据共享。但因为区块链上各条链的特异性强、种类繁多,加上区块链应用多链通道数量的增多,区块链链间的互通性和一致性问题逐渐凸显。
分布式***的核心技术是共识技术。在区块链的分布式***的P2P网络中,互不信任的节点通过遵循预设机制最终达成数据一致性的过程称为共识过程,使得区块链全网所有节点的数据通过分布式一致协议实现共享。跨链技术越来越受到人们的关注,设计高效的共识机制提高区块链跨链过程的的吞吐量逐渐成为跨链的关键问题之一。目前,普遍默认的有三类较常用的跨链技术:
(1)公证人机制(notary schemes)是指通过选举公证人,实现对某条链上的事件进行监管,并通过智能合约在另一条链上自动执行相应事件。公证人群通过预设的共识机制,对事件进行共识验证。
(2)侧链或中继(sidechains/relays)是指以轻客户端验证技术为基础,通过验证某条链的加密哈希树(cryptographic hashtree)以及区块头(block header)来验证此链的某项特定交易、事件或状态信息是否发生,然后通过智能合约在另一条链上自动执行某项特定交易、事件或状态信息。
(3)哈希锁定(Hash-locking)是指通过在进行交易的双方所在的链上运行特定的智能合约,实现跨链交易与信息交互。通过哈希锁定实现跨链交易的过程包括:a)用户A生成随机数s,并计算出该随机数的哈希值并发送给用户B;b)A和B通过智能合约锁定各自的资产;c)若B在某时间内收到正确的s,通过智能合约,自动执行将B的资产转移给A,否则退回给B;d)若A在某时间段内收到正确的随机数s,A的资产将自动转移给B,否则退回给A。
而常用的有四种基本的共识机制,包括POW(工作量证明)、POS(权益证明)、DPOS(权益授权证明)、BFT(拜占庭容错算法),也包括不同共识机制间的相互组合形成的新的共识机制或对各类共识算法进行改进形成的新的共识算法,例如POW+POS、BFT+POS等或DBFT、PBFT等,还有基于一致性算法的各类共识方法,如Paxos、Raft等,一致性哈希算法基于哈希函数对存储任务进行分配,实现***在处理任务时服务器的负载均衡。一般而言,评价各共识机制的技术水平需要满足以下几个方面的条件:(1)安全性:是否可预防常见攻击,以及是否具有较好容错性。(2)扩展性:扩展性主要考虑***成员数量、待确认交易数量增加时,随之带来的***负载和网络通信量的变化,通常以网络吞吐量来衡量。(3)性能:***每秒可处理确认的交易数量,也可以用网络吞吐量来衡量。(4)资源消耗:区块链上的共识机制借助计算资源或网络通信资源达成共识。
针对某一区块链应用场景,实现跨链共识,要涉及上述跨链方式的选择,并在选择的跨链方式的基础上相对应地部署共识机制,并且满足达到理想共识状态的条件,配合区块链的某一场景达成高效的跨链共识。
可以说,跨链技术是实现区块链特别是联盟链或私有链的价值网络的关键。目前在联盟链中,各组织通过搭建通道实现业务隔离和数据的权限访问,共识机制是实现各组织间一致性的核心,联盟链和私有链支持让其链上的不同组织拥有各自的链,甚至允许同一个组织内部同时运行多条链。目前全球区块链的数量不断增多,不同区块链的网络相互隔离,导致各链之间无法有效执行数字资产转移和跨链通信等操作。然而,主流跨链技术的设计研发解决的问题主要只包括:不同区块链之间的资产转移、实现设定冻结某个区块链上的资产锁定条件和解锁条件(然后与其他链特定的事件或行为进行关联)、读取和验证其他链的状态或事件、提升区块链交易处理能力。
可见,目前的跨链技术不能解决日益增长的区块链对跨链共识的需求,亟待提出各种有效的解决方案。
发明内容
本发明基于上述背景和现有技术所存在的问题,拟设计一种基于一致性哈希共识协议的多方跨链方法,其能够实现跨链间的高效共识。本发明还有一个目的是通过一致性哈希算法,提高共识的效率,以便保持多方在进行跨链过程中***的负载均衡。为了实现本发明的这些目的和其它优点,提供了一种基于一致性哈希共识协议的多方跨链方法,用户U={U1,U2,……,Un}之间发生跨链交互,需要付出相应的资源,Ui泛指第i个用户,实现步骤如下:
(1)制定用于多方跨链***的共识协议,根据一致性哈希算法的哈希函数求出用户Ui的哈希值,其中,用户Ui位于链Xi上;
(2)根据哈希值找到用户Ui对应的虚拟节点在哈希环上的位置,准备进行跨链交互时,制定各用户的交互需求集合A的协议;
(3)用户U={U1,U2,……,Un}之间进行交互,第i个用户的交互需求矩阵为Ai=(ai1,ai2,……,aij,……,aim),其中aij∈Z,表示第i个用户对第j种交互的需求情况,m代表m种数据对象,即表示有m种交互的需求情况;
(4)从用户Ui的位置出发,顺着方向d找到首个节点,将Ui的数据存储到该虚拟节点,其中d一般取顺时针方向;
(5)根据用户Ui对交互的需求情况,分配所需资源e,根据一致性哈希分布算法的哈希函数求出交互涉及到的数据在哈希环上的位置,通过查找节点位置表,对应用户和交互涉及到的数据,在链Xi上的用户Ui将需要转发到在链Xx上的用户Ux的资源锁定,请求验证交互内容;
(6)收到验证交互请求,触发智能合约,执行跨链共识协议,交互内容验证通过,达成共识后,完成资源跨链转移。
优选的是,其中,所述步骤(1)中的一致性哈希共识协议,还包括由用户Ui组成各类处理消息的节点,包括提议节点,用于提出交互提案(提案编号PID和提案内容V);共识节点,参与验证共识的过程;备份节点,获取被批准的提案;(理论上,区块链中所有的节点可以是提议节点、共识节点和备份节点)。
具体实现方法如下:
1.1准备(Prepare)阶段:提议节点生成全局唯一且递增的PID,向所有共识节点发送只携带PID的准备验证提案的请求消息(准备进行共识验证),此时的消息内容中无需携带提案内容V;
1.2验证(verify)阶段:提议节点提出提案(此时包括PID和V),共识节点对提案进行验证,通过验证,即可以说明全网对此提议达成共识,所有节点准备接收此提案;
1.3接收(Accept)阶段:提议节点收到多数共识节点的验证通过的消息后,向备份节点发出准备备份提案通知,备份节点针对收到的各消息中的PID所代表的数据对象类型,采用一致性哈希算法针对每种提案,均匀分配节点处理,实现节点处理提议数据的负载均衡;
1.4备份(back-up)阶段:提议节点针对验证通过的提案,通知备份节点准备对提案进行备份,将验证通过,达成一致性共识的提案发送到备份节点,由备份节点进行备份,其中0.5n<m≤n,n为全网所有节点;
1.5回复(reply)阶段:每个备份节点完成备份后,回复提议节点,提案通过的提议节点继续完成相应交互资源的跨链转移。
其中,本发明的目的还可以进一步由所述步骤(1)或(2)中一致性哈希算法来实现负载均衡,采用一致性哈希算法实现负载均衡的过程中,设置实际服务器N数量为n,为用户提供服务,虚拟节点的数量为P,其中P比n大得多,服务器较少时,需对应增加虚拟节点,该方法包括:
2.1将哈希环平均分为P个区间;
2.2每个区间以每个虚拟节点为结束地址,每个虚拟节点负责对应区间的关键值映射;
2.3当关键值取模后,对区间数量进行一次取模运算,找到对应的虚拟节点;
2.4根据存储容量和性能设定存储服务器的权重E,设置存储基准值N0,设为E0,比较每台服务器的存储和服务器的存储基准值,得到后,将P个虚拟节点按照权重列表{E1,E2,……,En},平均分配给对应节点U={U1,U2,……,Un}的存储服务器{N1,N2,……,Nn};
2.5当存储服务器或节点变化时,(有新的服务器、节点加入或退出时),根据服务器的权重值E或节点所需资源e,来获取或释放虚拟节点。若改变节点的分布,将会对现有的数据的重新分布造成较大的影响,所以当存储服务器变化时,需根据其权重值,获取或释放虚拟节点,即虚拟节点和服务器的对应关系影响了一致性哈希结构的变化。
这样一来,由于整体的虚拟节点数没有发生多大变化,所以当存储服务器或节点(用户)发生变化时,对***整体造成的影响最小。新加入的服务器或节点(用户)只需将其他各虚拟节点的负载整体迁移,即可避免数据迁移时对信息进行重复的哈希计算,同时保证***的负载均衡。由于为每台存储服务器加入了权重,当***感知到***出现数据不均衡的状况(包括数据过载、少载和均衡状态)时,可以根据存储服务器的权重来动态调整虚拟节点的任务(包括存储、处理和计算等)分配状态。
优选的是,实现负载均衡的过程还包括:设置标准阈值为s%,虚拟节点负载最高阈值为LH,负载最低阈值为LL,当LH-LL>s%,超出阈值时,出现数据过载,此时将高负载存储节点对应的虚拟节点按照权重分摊给低负载的节点,使整体负载值低于s%,实现负载的动态调整。
优选的是,所述步骤(4)或实现负载均衡的过程,还包括实现虚拟节点数据备份和动态迁移,其中实现虚拟节点数据备份的步骤包括:根据服务器或各个节点的存储和处理能力,分配与之能力相匹配的任务,所述能力相匹配,即考虑存储的数据大小和资源需求情况,即根据服务器所占权重E或节点所需资源e分配任务。虚拟节点应对数据迁移状况动态调整状态的步骤还包括:当LH-LL<s%,出现数据少载时,重新计算各节点位置,更新节点位置表,并根据一致性哈希算法和重新计算结果迁移相应数据(此时按照新的节点映射规则迁移数据即可,迁移后各个节点的负载得到了均衡);当LH-LL=s%时,为负载均衡状态。
优选的是,所述步骤(5)的实现方法为,通过在区块链上部署智能合约实现多方跨链的共识协议,具体实现步骤包括:
3.1用户Ui生成随机数r,并计算出该随机数的哈希值h=hash(r),发送给交互对象Ux;
3.2 Ui和Ux通过智能合约先后锁定各自的资源;
3.3若Ux在时间T内收到交互提案验证通过的消息,并收到正确的r,智能合约自动执行将Ui的资产转移给Ux,否则退回给Ui,同理执行Ui向Ux的资源转移;
进一步地,所述步骤(1)或步骤(6)中,主节点为发出提案的节点,即提议节点,从节点为验证提案的节点,即共识节点,实现跨链共识的步骤包括:
4.1 Xi链上的主节点Ui广播交互提案到Xx链上的节点Ux;
4.2 Xi链和Xx链上的主节点分别广播准备进行交互到各自链的从节点;
4.3 Xi链和Xx链上的从节点分别对准备进行的交互进行验证,验证通过后广播准备交互消息到Xi链和Xx链上的所有节点;
4.4 Xi链和Xx链的节点接收到数量为m的Xi链上的节点,以及数量为m的Xx链上的节点相同的准备消息后广播确认(Commit)消息到Xi链和Xx链上的所有节点;
4.5 Xi链和Xx链的节点收到数量为m的Xi链上的节点,以及数量为m的Xx上的节点相同的确认消息后达成共识。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。本发明的有益效果至少包括:本发明的跨链共识协议,基于一致性哈希算法的哈希函数给各用户(节点)生成哈希值,在哈希环上配置虚拟节点,然后在虚拟节点上存储数据,通过用户存储数据的列表对应找到相关数据的地址,并通过设置负载阈值动态调节由存储服务器或用户(节点)发生变化所引起的数据迁移情况,实现动态负载均衡。本发明的跨链共识方法可以实现基于联盟链的多方交互,但并不局限于此,通过设计多方跨链共识方法(可理解为Paxos+PBFT共识方法的组合),实现对交互的验证,保证共识能够顺利达成的基础上,满足共识所要满足的安全性、可拓展性、高性能和低资源消耗的基本条件,即保证了跨链交互的安全,并且通过一致性哈希算法提高跨链交互的吞吐量,提高了不同链之间的交互的效率,满足区块链上日益增长的跨链共识需求。实现对交互提案和交互过程中的监督和检验。
附图说明
图1为本发明的整体架构的原理图;
图2为本发明基于一致性哈希算法的共识协议过程图;
图3为本发明跨链共识的流程图。
具体实施方式
为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施,其具体实现的交互过程可用常见的资产交易过程为例来描述,以方便本领域技术人员的理解。
具体实施例1:
1.图1示出了根据本发明的一种实现形式,示出了一种基于一致性哈希共识协议的多方跨链方法的整体架构原理图,此原理图所展示的是承载本发明方法一种模型,用户U={U1,U2,……,Un}之间发生跨链交易,需要转移资产,Ui泛指第i个用户,具体实现步骤如下:
(1)制定用于多方跨链***的共识协议,实现验证交易的顺利进行,进而保证用户的资产安全,根据一致性哈希算法的哈希函数求出用户Ui的哈希值,其中,用户Ui位于链Xi上;
(2)根据哈希值找到用户Ui对应的虚拟节点在哈希环上的位置,准备进行跨链交易时,制定各用户的交易需求集合A的协议;
(3)用户U={U1,U2,……,Un}之间进行交易,第i个用户的交易需求矩阵为Ai=(ai1,ai2,……,aij,……,aim),其中aij∈Z,表示第i个用户对第j种交易的需求情况,m代表m种数据对象,即表示有m种交易的需求情况;
(4)从用户Ui的虚拟节点的位置出发,顺着方向d找到首个节点,将Ui的数据存储到该虚拟节点,其中d一般取顺时针方向;
(5)根据用户Ui对交易的需求情况,分配所需资产e,根据一致性哈希分布算法的哈希函数求出交易数据在哈希环上的位置,通过查找节点位置表,匹配用户和交易数据,在链Xi上的用户Ui将需要转发到在链Xx上的用户Ux的资产锁定,请求验证交易;
(6)收到验证交易请求,触发智能合约,执行跨链共识协议,交易验证通过,达成共识后,完成跨链资产转移。
具体实施例2:
2.在另一种实例中,以本发明实现基于一致性哈希算法的共识协议为例,如图2所示。采用这种方案具有实现***负载均衡的有利之处。并且,这种方式只是一种较佳实例的说明,但并不局限于此。在实施本发明时,可以根据使用者需求更改应用场景的实施态样。所述步骤(1)中的一致性哈希共识协议,还包括由用户Ui组成各类处理消息的节点,包括提议节点,用于提出交易提案(提案编号PID和提案内容V);共识节点:参与验证共识的过程;备份节点:获取被批准的提案。区块链中所有的节点可以是提议节点、共识节点和备份节点。所有通知消息只包含PID。具体实现方法如下:
1.1准备(Prepare)阶段:提议节点生成唯一且递增的PID,向所有共识节点发送只携带PID的准备验证提案的请求消息(准备进行共识验证),此时的消息内容中无需携带提案内容V;;
1.2验证(verify)阶段:提议节点提出提案,共识节点对提议内容进行验证,通过验证,即可以说明全网对此提议(交易)达成共识,所有节点准备接收此提案的交易;
1.3接收(Accept)阶段:提议节点收到数量为m的共识节点的验证通过的消息后,向备份节点发出准备备份提案通知,备份节点针对收到的各消息中的PID所代表的交易数据类型,采用一致性哈希算法针对每种提案,均匀分配节点处理,实现节点处理提案的负载均衡;
1.4备份(back-up)阶段:提议节点针对验证通过的提案,通知备份节点准备备份提议的数据,将验证通过的提案,即达成一致性共识的提案,发送给所有备份节点,由备份节点进行备份,其中0.5n<m≤n,n为全网所有节点;
1.5回复(reply)阶段:每个备份节点完成备份后,回复提议节点,提案通过验证的提议节点继续完成交易(相应交互资源的跨链转移)。
其中,本发明的目的还可以进一步由所述步骤(1)或(2)中,采用一致性哈希算法来实现负载均衡,在实现负载均衡的过程中,设置实际服务器N数量为n,为用户提供服务,虚拟节点的数量为P,其中P比n大得多,服务器较少时,需对应增加虚拟节点,该方法包括:
2.1将哈希环平均分为P个区间;
2.2每个区间以每个虚拟节点为结束地址,每个虚拟节点负责对应区间的关键值映射;
2.3当关键值取模后,对区间数量进行一次取模运算,找到对应的虚拟节点;
2.4根据存储容量和性能设定存储服务器的权重E,设置存储基准值N0,并设为E0,比较每台服务器的存储和服务器的存储基准值,得到后,将P个虚拟节点按照权重列表{E1,E2,……,En}分配给对应节点U={U1,U2,……,Un}的存储服务器{N1,N2,……,Nn};
2.5当存储服务器或节点(用户)变化时,(有新的服务器、节点加入或退出时),根据服务器的权重值E或节点所需资源e,来获取或释放虚拟节点。若改变节点的分布,将会对现有的数据的重新分布造成较大的影响,所以当存储服务器或节点(用户)变化时,需根据其权重值,获取或释放虚拟节点,即虚拟节点和服务器的对应关系影响了一致性哈希结构的变化。
这样一来,由于整体的虚拟节点数没有发生多大变化,所以当存储服务器或节点(用户)发生变化时,对***整体造成的影响最小。新加入的服务器或节点(用户)只需将其他各虚拟节点的负载整体迁移,即可避免数据迁移时对信息进行重复的哈希计算,同时保证***的负载均衡。由于为每台存储服务器加入了权重,当***感知到***出现数据不均衡的状况(包括数据过载、少载和均衡状态)时,可以根据存储服务器的权重来动态调整虚拟节点的任务(包括存储、处理和计算等)分配状态。
例如设置***标准阈值为15%,当***虚拟节点负载最高阈值为LH,和负载最低阈值LL的虚拟节点相比,即当LH-LL>15%,超出阈值时,***判定出现数据过载,此时将高负载存储节点对应的虚拟节点按照权重分摊给低负载的节点,使整体负载值低于15%,实现负载的动态调整。
具体实施例3:
3.如图3所示为实现本发明跨链共识的流程图,其以资产交易转移为例,说明本发明多方跨链共识的具体实现过程。其中,所述步骤(3)包括:用户U在进行交易的过程中,涉及的资产总量满足条件:U可构成可交易矩阵A,当且仅当满足等式时,可顺利进行交易。
所述步骤(4),或实现负载均衡的过程,还包括实现虚拟节点数据备份和动态迁移,其中实现虚拟节点数据备份的步骤包括:根据服务器或各个节点的存储和处理能力,分配与之能力相匹配的任务,所述能力相匹配,即考虑存储的数据大小和资产需求情况,即根据服务器所占权重E或节点所需资产e分配任务。虚拟节点应对数据迁移状况动态调整状态的步骤还包括:当LH-LL<15%,出现数据少载时,重新计算各节点位置,更新节点位置表,并根据一致性哈希算法和重新计算结果迁移相应数据(此时按照新的节点映射规则迁移数据即可,迁移后各个节点的负载得到了均衡);当LH-LL=15%时,为负载均衡状态。
通过在区块链上部署智能合约实现多方跨链的共识协议,具体实现步骤包括:
3.1用户Ui生成随机数r,并计算出该随机数的哈希值h=hash(r),发送给交易对象Ux;
3.2 Ui和Ux通过智能合约先后锁定各自的资产;
3.3若Ux在时间T内收到交易提案验证通过的消息,并收到正确的r,智能合约自动执行将Ui的资产转移给Ux,否则退回给Ui,同理执行Ui向Ux的资产转移;
进一步地,所述步骤(1)或步骤(6)中,主节点为发出提案的节点,即提议节点,从节点为验证提案的节点,即共识节点,实现多方跨链共识的步骤如下:
4.1 Xi链上的主节点Ui广播交易提案到Xx链上的节点Ux;
4.2 Xi链和Xx链上的主节点分别广播准备进行交易到各自链的从节点;
4.3 Xi链和Xx链上的从节点分别对准备进行的交易进行验证,验证通过后广播准备交易消息到Xi链和Xx链上的所有节点;
4.4 Xi链和Xx链的节点接收到数量为m的Xi链上的节点,以及数量为m的Xx链上的节点相同的准备消息后广播确认(Commit)消息到Xi链和Xx链上的所有节点;
4.5 Xi链和Xx链的节点收到数量为m的Xi链上的节点,以及数量为m的Xx上的节点相同的确认消息后达成共识。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
Claims (8)
1.一种基于一致性哈希共识协议的多方跨链方法,其特征在于,用户U={U1,U2,……,Un}之间发生跨链交互,需要付出资源,Ui泛指用户U中的第i个用户,n为全网所有节点的数量,具体实现步骤包括:
(1)制定用于多方跨链***的共识协议,根据一致性哈希算法的哈希函数求出用户Ui的哈希值,其中,用户Ui位于链Xi上;
(2)根据哈希值找到用户Ui对应的虚拟节点在哈希环上的虚拟节点的位置,准备进行跨链交互时,制定各用户的交互需求集合A的协议;
(3)用户U进行交互,第i个用户Ui的交互需求矩阵为Ai=(ai1,ai2,……,aij,……,aim),其中aij∈Z,表示第i个用户对第j种交互的需求情况,m代表m种数据对象的数量;
(4)从用户Ui的虚拟节点的位置出发,顺着方向d找到首个临近的虚拟节点,将Ui的数据存储到所述首个临近的虚拟节点;
(5)根据用户Ui对交互的需求情况,分配所需资源e,根据一致性哈希分布算法的哈希函数求出交互涉及到的数据在哈希环上的位置,通过查找节点位置表,匹配用户Ui和交互涉及到的交互数据,在链Xi上的用户Ui将需要转发到在链Xx上的用户Ux的资源进行锁定,Ux泛指用户U中的第x个用户,其中x=1,2,……,n,请求验证交互内容;
(6)收到验证交互请求,触发智能合约,执行跨链共识协议,交互验证通过,达成共识后,完成资源跨链转移。
2.根据权利要求1所述的基于一致性哈希共识协议的多方跨链方法,其特征在于,所述步骤(1)中的一致性哈希共识协议,还包括由用户Ui组成各类处理消息的节点,包括提议节点,用于提出交互提案,所述提案包括提案编号PID和提案内容V;共识节点,参与验证共识的过程;备份节点,获取被批准的提案,区块链中所有的节点可以是提议节点、共识节点和备份节点;所有通知消息只包含PID;协议组成如下:
1.1准备阶段:提议节点生成唯一且递增的PID,向所有共识节点发送只携带PID的准备验证提案的请求消息;
1.2验证阶段:提议节点提出提案,共识节点对提案进行验证,通过验证后,通知所有节点准备接收此提案;
1.3接收阶段:提议节点收到数量为m的共识节点的验证通过的消息后,向备份节点发出准备备份提案通知,备份节点针对收到的各消息中的PID所代表的数据对象类型,采用一致性哈希算法针对每种提案,均匀分配节点处理;
1.4备份阶段:提议节点针对验证通过的提案,通知备份节点准备对提案进行备份,将验证通过的提案发送给到备份节点,由备份节点进行备份,其中0.5n<m≤n,n为全网所有节点的数量;
1.5回复阶段:每个备份节点完成备份后,回复提议节点,提案通过验证的提议节点继续完成各自相应交互资源的跨链转移。
3.根据权利要求1所述基于一致性哈希共识协议的多方跨链方法,其特征在于,所述步骤(1)或(2)中,采用一致性哈希算法实现负载均衡的过程,设置存储服务器的数量为n,n为全网所有节点的数量,为用户提供服务,虚拟节点的数量为P,其中P比n大得多,服务器较少时,需对应增加虚拟节点,该方法包括:
2.1将哈希环平均分为P个区间;
2.2每个区间以每个虚拟节点为结束地址,每个虚拟节点负责对应区间的关键值映射;
2.3当关键值取模后,对区间数量进行一次取模运算,找到对应的虚拟节点;
2.4根据存储容量和性能设定存储服务器的权重值E,权重值E的初始值设为E0,设置存储基准值N0,比较每台存储服务器的存储值Nn和存储服务器的存储基准值N0,得到每台存储服务器的权重值后,将P个虚拟节点按照权重列表{E1,E2,……,En……,EP},平均分配给对应用户U={U1,U2,……,Un}的存储服务器;
2.5当存储服务器或虚拟节点变化时,根据存储服务器的权重值E或虚拟节点所需资源e,获取或释放虚拟节点。
4.根据权利要求3所述基于一致性哈希共识协议的多方跨链方法,其特征在于,实现负载均衡的过程还包括:设置标准阈值为s%,虚拟节点负载最高阈值为LH,负载最低阈值为LL,当LH-LL>s%,超出阈值时,出现数据过载,此时将高负载存储节点对应的虚拟节点按照权重分摊给低负载的节点,使整体负载值低于s%,实现负载的动态调整。
6.根据权利要求1或3或4所述基于一致性哈希共识协议的多方跨链方法,其特征在于,所述步骤(4)中,或实现负载均衡的过程,还包括实现虚拟节点数据备份和动态迁移,其中实现虚拟节点数据备份的步骤包括:根据服务器或各个虚拟节点的存储和处理能力,分配与之能力相匹配的任务,所述能力相匹配,包括考虑存储内容的数据大小和资源需求情况,即根据存储服务器所占权重值E或用户所需资源e分配任务;虚拟节点应对数据迁移状况动态调整状态的步骤还包括:当LH-LL<s%,出现数据少载时,重新计算各虚拟节点位置,更新虚拟节点位置表,并根据一致性哈希算法和重新计算结果迁移相应数据,当LH-LL=s%时,为负载均衡状态。
7.根据权利要求1所述基于一致性哈希共识协议的多方跨链方法,其特征在于,所述步骤(5)的实现方法为,通过在区块链上部署智能合约实现多方跨链的共识协议,具体实现步骤包括:
3.1用户Ui生成随机数r,并计算出所述随机数r的哈希值,发送给交互对象的用户Ux;
3.2用户Ui和用户Ux通过智能合约先后锁定各自的所需资源;
3.3若用户Ux在时间T内收到交互提案验证通过的消息,并收到正确的随机数r,智能合约自动执行将用户Ui的所需资源转移给用户Ux,否则退回给用户Ui,同理执行用户Ui向用户Ux的资源转移;
8.根据权利要求1所述基于一致性哈希共识协议的多方跨链方法,其特征在于,所述步骤(1)或步骤(6)中,主节点为提议节点,从节点为共识节点,实现多方跨链共识的步骤包括:
4.1 Xi链上的主节点广播提议交互内容到Xx链上的主节点;
4.2 Xi链和Xx链上的主节点分别广播准备进行交互的消息到各自链的从节点;
4.3 Xi链和Xx链的从节点分别对准备进行的交互进行验证,验证通过后广播准备交互消息到Xi链和Xx链上的所有节点;
4.4 Xi链和Xx链的主节点接收到数量为m的Xi链上的节点,以及数量为m的Xx链上的主节点相同的准备消息后广播确认消息到Xi链和Xx链上的所有节点;
4.5 Xi链和Xx链的主节点收到数量为m的Xi链上的节点,以及数量为m的Xx上的主节点相同的确认消息后达成共识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911395852.4A CN111181715B (zh) | 2019-12-30 | 2019-12-30 | 一种基于一致性哈希共识协议的多方跨链方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911395852.4A CN111181715B (zh) | 2019-12-30 | 2019-12-30 | 一种基于一致性哈希共识协议的多方跨链方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111181715A CN111181715A (zh) | 2020-05-19 |
CN111181715B true CN111181715B (zh) | 2022-07-12 |
Family
ID=70657585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911395852.4A Active CN111181715B (zh) | 2019-12-30 | 2019-12-30 | 一种基于一致性哈希共识协议的多方跨链方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111181715B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666345A (zh) * | 2020-06-29 | 2020-09-15 | 深圳技术大学 | 金融衍生品交易信息共享的方法与分布式***及电子终端 |
WO2022000172A1 (zh) * | 2020-06-29 | 2022-01-06 | 深圳技术大学 | 金融衍生品交易信息共享的方法与分布式***及电子终端 |
CN111538792B (zh) * | 2020-07-10 | 2020-11-03 | 卓尔智联(武汉)研究院有限公司 | 一种联盟链数据处理方法、装置和电子设备 |
CN112463761B (zh) * | 2020-11-05 | 2024-07-09 | 杭州云象网络技术有限公司 | 用于动态非平衡应用环境的跨链协同平台构建方法及*** |
CN112632164B (zh) * | 2020-12-21 | 2022-09-13 | 杭州云象网络技术有限公司 | 一种实现可信权限访问的通用跨链编程接口方法 |
CN112819628B (zh) * | 2021-02-01 | 2024-02-02 | 网易(杭州)网络有限公司 | 交易防重放的检测方法及装置、***、电子设备、存储介质 |
CN112801665B (zh) * | 2021-03-19 | 2021-08-24 | 北京万物智链科技有限公司 | 一种基于服务器中继的跨链交易方法及*** |
CN112804262B (zh) * | 2021-03-19 | 2021-07-27 | 北京万物智链科技有限公司 | 一种区块链跨链通信中的安全保障方法及*** |
CN113821340A (zh) * | 2021-08-27 | 2021-12-21 | 济南浪潮数据技术有限公司 | 分布式***的动态均衡方法、***、终端及存储介质 |
CN113708937B (zh) * | 2021-10-28 | 2022-03-01 | 湖南天河国云科技有限公司 | 区块链交易的处理方法和*** |
CN114884962B (zh) * | 2022-04-29 | 2024-03-26 | 蚂蚁区块链科技(上海)有限公司 | 负载均衡方法及装置和电子设备 |
CN115865943B (zh) * | 2022-11-23 | 2024-03-08 | 南方电网数字电网研究院有限公司 | 自适应动态跨链共识机制选择的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256864A (zh) * | 2018-02-13 | 2018-07-06 | 中链科技有限公司 | 一种区块链之间的跨链联盟的建立及通信方法、*** |
CN109919615A (zh) * | 2019-03-01 | 2019-06-21 | 上海分布信息科技有限公司 | 基于区块链的跨链数据交互方法及跨链数据交互*** |
CN110288345A (zh) * | 2019-06-26 | 2019-09-27 | 深圳市网心科技有限公司 | 跨链通信方法、装置、主链节点及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10812274B2 (en) * | 2015-05-07 | 2020-10-20 | Blockstream Corporation | Transferring ledger assets between blockchains via pegged sidechains |
US20190172026A1 (en) * | 2017-12-02 | 2019-06-06 | Alchemy Limited LLC | Cross blockchain secure transactions |
-
2019
- 2019-12-30 CN CN201911395852.4A patent/CN111181715B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256864A (zh) * | 2018-02-13 | 2018-07-06 | 中链科技有限公司 | 一种区块链之间的跨链联盟的建立及通信方法、*** |
CN109919615A (zh) * | 2019-03-01 | 2019-06-21 | 上海分布信息科技有限公司 | 基于区块链的跨链数据交互方法及跨链数据交互*** |
CN110288345A (zh) * | 2019-06-26 | 2019-09-27 | 深圳市网心科技有限公司 | 跨链通信方法、装置、主链节点及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于哈希锁定的多方跨链协议研究;张诗童 等;《网络空间安全》;20181130;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111181715A (zh) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111181715B (zh) | 一种基于一致性哈希共识协议的多方跨链方法 | |
CN111311414B (zh) | 一种基于一致性哈希算法的区块链多方共识方法 | |
US11811910B2 (en) | Blockchain maintenance method and apparatus, server, and computer-readable storage medium | |
Marandi et al. | Multi-ring paxos | |
US7543020B2 (en) | Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups | |
US20190097790A1 (en) | Scalable byzantine fault-tolerant protocol with partial tee support | |
EP3731494A1 (en) | Blockchain maintaining method and apparatus, server, and computer-readable storage medium | |
AU2019203862B2 (en) | System and method for ending view change protocol | |
Quesnel et al. | Cooperative and reactive scheduling in large‐scale virtualized platforms with DVMS | |
CN107886328A (zh) | 交易处理方法、装置、计算机设备及存储介质 | |
Buchnik et al. | Fireledger: A high throughput blockchain consensus protocol | |
Lim et al. | Scalable and leaderless Byzantine consensus in cloud computing environments | |
Huang et al. | Blockchain based log system | |
Fu et al. | Resource allocation for blockchain-enabled distributed network function virtualization (NFV) with mobile edge cloud (MEC) | |
Bezerra et al. | Ridge: high-throughput, low-latency atomic multicast | |
Li et al. | Jenga: Orchestrating smart contracts in sharding-based blockchain for efficient processing | |
Set et al. | Service-aware dynamic sharding approach for scalable blockchain | |
Kapoor et al. | Hierarchical chord-based resource discovery in intercloud environment | |
US20230353394A1 (en) | Cross-blockchain transaction processing method and apparatus, computer device, computer storage medium, and computer program product | |
Ghosh et al. | Towards a democratic federation for infrastructure service provisioning | |
Flauzac et al. | CONFIIT: a middleware for peer-to-peer computing | |
WO2022002969A1 (en) | Method and system for enhanced performance of dlt networks | |
Sun et al. | RPCC: A Replica Placement Method to Alleviate the Replica Consistency under Dynamic Cloud | |
Hanamakkanavar et al. | Load balancing in distributed systems: a survey | |
Huang et al. | Design and analysis of a distributed consensus protocol for real-time blockchain systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |