CN113300851B - 基于dht的区块链消息广播方法、电子设备及存储介质 - Google Patents
基于dht的区块链消息广播方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113300851B CN113300851B CN202110538998.0A CN202110538998A CN113300851B CN 113300851 B CN113300851 B CN 113300851B CN 202110538998 A CN202110538998 A CN 202110538998A CN 113300851 B CN113300851 B CN 113300851B
- Authority
- CN
- China
- Prior art keywords
- node
- target
- nodes
- full
- message
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种基于DHT的区块链消息广播方法、电子设备及存储介质,该基于DHT的区块链消息广播方法包括:在交易传播阶段,判断目标交易产生的消息源节点类型;若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息;若所述消息源节点类型为简单验证节点,在所述多个全节点中随机选择一个与所述消息源节点相连的在线的全节点传播所述目标交易的交易信息。本申请可以可以通过节点在Kadmlia树上的传播距离来控制实际网络中的传播范围,从而控制广播的消息数量,从而可以更快更有效地将消息或者区块广播到全网节点,进而加速共识达成过程,提高整个区块链网络的性能并且减轻网络负载。
Description
技术领域
本申请涉及区块链技术领域,具体涉及一种基于DHT的区块链消息广播方法、电子设备及存储介质。
背景技术
目前区块链技术以其匿名、可追溯、不可篡改、去中心化等特性在金融、农产品流通、智能电网和工业互联网等领域有着广泛的应用前景与实用价值。区块链网络的去中心化特性依赖于特定的协议。例如比特币使用的Gossip协议,比特币网络通过Gossip协议使节点产生的交易和挖矿产生的区块不用经过中性化的服务器而广播到全网。
目前,区块链技术在一些场景中存在局限性,例如比特币采用的Gossip通信协议虽然具有实现简单、扩展性强的优点,但是当比特币网络节点达到一定的数量级后,Gossip协议的随机发送和重复发送的特性会不可避免地造成消息冗余和消息延迟的情况,进而可能会引发区块链分叉的产生,造成整个比特币网络计算资源的浪费,并且这种延迟会引起交易确认等待时间延长的问题,给比特币用户带来非常不好的体验,单位时间的交易处理量低的问题也是目前困扰众多区块链应用的主要问题之一。
发明内容
本申请实施例提供一种基于DHT的区块链消息广播方法、电子设备及存储介质,可以通过节点在Kadmlia树上的传播距离来控制实际网络中的传播范围,从而控制广播的消息数量,从而可以更快更有效地将消息或者区块广播到全网节点,进而加速共识达成过程,提高整个区块链网络的性能并且减轻网络负载。
一方面,本申请提供一种基于DHT的区块链消息广播方法,应用于区块链系统,所述区块链系统中包括全节点网络和简单验证节点网络,所述全节点网络中包括多个全节点,所述多个全节点为基于DHT技术中的Kademlia协议构建的Kademlia协议树中的多个叶子节点,Kademlia协议树上的每个叶子节点具有预设数量个k桶,每个k桶包括记录不超过k个其他节点的节点信息的k桶列表,所述简单验证节点网络中包括多个简单验证节点,每个简单验证节点都设置有与之相连的全节点;所述基于DHT的区块链消息广播方法包括:
在交易传播阶段,判断目标交易产生的消息源节点类型;
若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息;
若所述消息源节点类型为简单验证节点,在所述多个全节点中随机选择一个与所述消息源节点相连的在线的全节点传播所述目标交易的交易信息。
在本申请一些实施例中,所述若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息,包括:
遍历所述消息源节点的预设数量的k桶,分别以所述预设数量的k桶中的一个k桶为目标k桶;
确定所述目标k桶列表中网络诊断畅通的目标节点;
向所述目标节点发送所述目标交易的交易信息,所述交易信息中附带所述目标节点对于消息源节点的桶号n,以使得所述目标节点遍历它的前n-1个k桶,直至当n等于1时,传播结束,其中,n为正整数。
在本申请一些实施例中,每个k桶记录的其他节点的节点信息按照更新时间顺序排序;
所述确定所述目标k桶列表中网络诊断畅通的目标节点,包括:
基于所述更新时间顺序,选择目标k桶列表中更新时间最新的节点;
向所述更新时间最新的节点发出网络诊断指令;
若网络诊断不通,将所述更新时间最新的节点挪到目标k桶列表中更新时间距离最久的位置;
选择所述目标k桶列表中第二个节点继续进行网络诊断,直至确定网络诊断畅通的目标节点。
在本申请一些实施例中,每个全节点都设有对应唯一的节点标识,每个全节点的节点标识遵循Kademlia协议,每个全节点在Kademlia协议树上的位置是基于全节点的节点标识得到的。
在本申请一些实施例中,所述方法还包括:
在新区块生成后的传播阶段,判断产生新区块的区块源节点类型;
若所述区块源节点类型为全节点,通过所述区块源节点向所述区块链系统中的其他所有的全节点传播所述新区块的信息。
另一方面,本申请提供一种基于DHT的区块链消息广播装置,所述基于DHT的区块链消息广播装置,应用于区块链系统,所述区块链系统中包括全节点网络和简单验证节点网络,所述全节点网络中包括多个全节点,所述多个全节点为基于DHT技术中的Kademlia协议构建的Kademlia协议树中的多个叶子节点,Kademlia协议树上的每个叶子节点具有预设数量个k桶,每个k桶包括记录不超过k个其他节点的节点信息的k桶列表,所述简单验证节点网络中包括多个简单验证节点,每个简单验证节点都设置有与之相连的全节点,所述装置包括:
判断模块,用于在交易传播阶段,判断目标交易产生的消息源节点类型;
第一传播模块,用于若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息;
第二传播模块,用于若所述消息源节点类型为简单验证节点,在所述多个全节点中随机选择一个与所述消息源节点相连的在线的全节点传播所述目标交易的交易信息。
在本申请一些实施例中,所述第一传播模块具体用于:
遍历所述消息源节点的预设数量的k桶,分别以所述预设数量的k桶中的一个k桶为目标k桶;
确定所述目标k桶列表中网络诊断畅通的目标节点;
向所述目标节点发送所述目标交易的交易信息,所述交易信息中附带所述目标节点对于消息源节点的桶号n,以使得所述目标节点遍历它的前n-1个k桶,直至当n等于1时,传播结束,其中,n为正整数。
在本申请一些实施例中,每个k桶记录的其他节点的节点信息按照更新时间顺序排序;
所述第一传播模块具体用于:
基于所述更新时间顺序,选择目标k桶列表中更新时间最新的节点;
向所述更新时间最新的节点发出网络诊断指令;
若网络诊断不通,将所述更新时间最新的节点挪到目标k桶列表中更新时间距离最久的位置;
选择所述目标k桶列表中第二个节点继续进行网络诊断,直至确定网络诊断畅通的目标节点。
在本申请一些实施例中,每个全节点都设有对应唯一的节点标识,每个全节点的节点标识遵循Kademlia协议,每个全节点在Kademlia协议树上的位置是基于全节点的节点标识得到的。
在本申请一些实施例中,所述装置还包括:
第三传播模块,用于在新区块生成后的传播阶段,判断产生新区块的区块源节点类型;若所述区块源节点类型为全节点,通过所述区块源节点向所述区块链系统中的其他所有的全节点传播所述新区块的信息。
另一方面,本申请还提供一种电子设备,所述电子设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现第一方面中任一项所述的基于DHT的区块链消息广播方法。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行第一方面任一项所述的基于DHT的区块链消息广播方法中的步骤。
本申请通过对区块链中普遍存在的交易效率低下问题,在不改变原有共识机制的情况下,使用DHT技术改进区块链网络节点之间的消息广播机制,将区块链系统划分为两个节点网络,基于DHT的结构化的全节点网络和非结构化的简单验证节点网络,全节点网络具有进行交易、挖矿、保存完整区块链以及路由等功能,简单验证节点网络只具有路由和简单支付验证的功能,这样我们就可以通过节点在Kadmlia树上的传播距离来控制实际网络中的传播范围,从而控制广播的消息数量,从而可以更快更有效地将消息或者区块广播到全网节点,进而加速共识达成过程,提高整个区块链网络的性能并且减轻网络负载。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的区块链系统的场景示意图;
图2是本申请实施例中提供的基于DHT的区块链消息广播方法的一个实施例流程示意图;
图3是本申请实施例中步骤202的一个实施例流程示意图;
图4是本申请实施例中步骤302的一个实施例流程示意图;
图5是本申请实施例中从源节点向其他叶子节点传播的一个场景示意图;
图6是本申请实施例中以16个节点的网络为例,具体描述的一个完整交易的传播过程示意图;
图7是本申请实施例中平均消息数实验结果示意图;
图8是本申请实施例中信息冗余度实验结果示意图;
图9是本申请实施例中提供的基于DHT的区块链消息广播装置的一个实施例结构示意图;
图10是本申请实施例中提供的电子设备的一个实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
下面首先对本申请实施例中涉及到的一些基本概念进行介绍:
DHT(Distributed Hash Table)技术,中文名为分布式哈希表,是一种对分布式资源进行组织、管理与发现服务的技术。采用DHT技术的网络中每一个节点均负责一小部分路由和储存一部分数据,在没有中性化服务器场景中使用特定的查找机制在各节点接力协助下最终获取到特定的存储资源。相应地,DHT技术也可以将特定的资源通过某种映射机制存储的对应的网络节点上。DHT技术有很多P2P协议实现,著名的有CAN,Chord,Pastry,Tapestry,Kademlia。
区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
区块链节点(Node):节点是区块链分布式系统中的网络节点,是通过网络连接的服务器、计算机、电话等,针对不同性质的区块链,成为节点的方式也会有所不同,以比特币为例,参与交易或挖矿即构成一个节点。
Gossip协议:Gossip协议(Gossipprotocol)又称epidemic协议(epidemicprotocol),是基于流行病传播方式的节点或者进程之间信息交换的协议,在分布式系统中被广泛使用,比如我们可以使用Gossip协议来确保网络中所有节点的数据一样。Gossipprotocol最初是由施乐公司帕洛阿尔托研究中心(Palo Alto Research Center)的研究员艾伦·德默斯(Alan Demers)于1987年创造的。从Gossip单词就可以看到,其中文意思是八卦、流言等意思,我们可以想象下绯闻的传播(或者流行病的传播);Gossip协议的工作原理就类似于这个。Gossip协议利用一种随机的方式将信息传播到整个网络中,并在一定时间内使得系统内的所有节点数据一致。Gossip其实是一种去中心化思路的分布式协议,解决状态在集群中的传播和状态一致性的保证两个问题。
本申请实施例提供一种基于DHT的区块链消息广播方法、电子设备及存储介质,以下分别进行详细说明。
请参阅图1,图1为本申请实施例所提供的区块链系统的场景示意图,该区块链系统可以全节点网络和简单验证节点网络,所述全节点网络中包括多个全节点,所述多个全节点为基于DHT技术中的Kademlia协议构建的Kademlia协议树中的多个叶子节点,Kademlia协议树上的每个叶子节点具有预设数量个k桶,每个k桶包括记录不超过k个其他节点的节点信息的k桶列表,所述简单验证节点网络中包括多个简单验证节点,每个简单验证节点都设置有与之相连的全节点,所述区块链系统中每个节点对一个电子设备,电子设备中集成有基于DHT的区块链消息广播装置。
在本申请实施例的区块链系统中,全节点是是拥有完整区块链账本的节点,全节点需要占用内存同步所有的区块链数据,能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链的交易的广播和验证。
简单支付验证节点即SPV(Simplified Payment Verification)节点,SPV节点只存储了区块头(包含了前一个区块的哈希值,当前区块哈希值等信息)部分,不存储区块体部分,而区块体包含了完整的交易信息,所以虽然SPV节点也有一条区块链,但是当涉及到具体的交易验证时由于没有存储完整的交易信息,SPV节点需要向全节点的请求数据才能实现交易验证的功能,但也仅仅是验证当前交易是否有效。
本申请实施例中方法可以是其中某个节点对应的电子设备,该电子设备主要用于在交易传播阶段,判断目标交易产生的消息源节点类型;若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息;若所述消息源节点类型为简单验证节点,在所述多个全节点中随机选择一个与所述消息源节点相连的在线的全节点传播所述目标交易的交易信息。
本申请实施例中,区块链节点可以为电子设备,例如用户终端或服务器,其中,服务器可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,例如,本发明实施例中所描述的服务器,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。本发明的实施例中,服务器与用户终端之间可通过任何通信方式实现通信,包括但不限于,基于第三代合作伙伴计划(3rd GenerationPartnership Project,3GPP)、长期演进(Long Term Evolution,LTE)、全球互通微波访问(Worldwide Interoperability for Microwave Access,WiMAX)的移动通信,或基于TCP/IP协议族(TCP/IP Protocol Suite,TCP/IP)、用户数据报协议(User Datagram Protocol,UDP)协议的计算机网络通信等。
可以理解的是,本发明实施例中所使用的用户终端既包括接收和发射硬件的设备,即具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种用户终端设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备。具体的用户终端具体可以是台式终端或移动终端,用户终端具体可以手机、平板电脑、笔记本电脑等中的一种。
本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案一种应用场景,并不构成对本申请方案应用场景的限定,其他的应用环境还可以包括比图1中所示更多或更少的节点,例如图1中仅示出一部分节点,可以理解的,该区块链系统还可以包括更多的节点,可以理解的是,图1是本申请采用的区块链系统结构示意图,这可以是一个简化的版本,真实的区块链节点将会比这大得多而且每个叶子节点不一定都有对应的全节点,具体此处不作限定。
需要说明的是,图1所示的区块链系统的场景示意图仅仅是一个示例,本申请实施例描述的区块链系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着区块链系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
首先,本申请实施例中提供一种基于DHT的区块链消息广播方法,该基于DHT的区块链消息广播方法的执行主体为基于DHT的区块链消息广播装置,该基于DHT的区块链消息广播装置应用于电子设备,该基于DHT的区块链消息广播方法包括:获在交易传播阶段,判断目标交易产生的消息源节点类型;若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息;若所述消息源节点类型为简单验证节点,在所述多个全节点中随机选择一个与所述消息源节点相连的在线的全节点传播所述目标交易的交易信息。
如图2所示,为本申请实施例中基于DHT的区块链消息广播方法的一个实施例流程示意图,该基于DHT的区块链消息广播方法包括如下步骤201~203:
201、在交易传播阶段,判断目标交易产生的消息源节点类型。
区块链网络(如比特币网络)的消息广播主要有两种类型,一个是区块链节点之间的交易信息的广播,一个是新区块的广播。这两种信息广播的方向正好相反,交易信息的广播是从交易发生的节点开始传播,一直传播到挖矿节点,最终被挖矿节点验证有效后打包成新区块加入到区块链的末尾;新区块的广播是从挖矿节点开始传播,一直传播到所有的在线的全节点,经过全节点验证无误后也加入自己所保存的区块链的末尾。虽然交易传播阶段和区块传播阶段的信息传播方向相反,但是信息传播的路径是相似的,均为从二叉树上的一个叶子节点传播到同一颗二叉树上的其他所有叶子节点,所以本方案主要是描述了交易传播阶段的详细流程。
当目标交易生成后,会进入交易信息的传播阶段,此时可以获取目标交易产生的消息源节点类型,例如是全节点还是简单验证节点。
202、若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息。
在交易传播阶段,交易产生的位置可能是SPV节点也可能是全节点。如果是全节点,由于全节点也是Kademlia协议树上的叶子节点,所以此交易将通过这个全节点向其他所有的全节点传播。
在本申请一些实施例中,每个全节点都设有对应唯一的节点标识,每个全节点的节点标识遵循Kademlia协议,每个全节点在Kademlia协议树上的位置是基于全节点的节点标识得到的。
如图1所示,图1中的上半部分是基于DHT技术中的Kademlia协议构建的全节点逻辑二叉树,二叉树的叶子节点代表真实的区块链的全节点,全节点的标识(如ID)生成过程遵循Kademlia协议,通过对节点的信息如公网IP地址、内网IP地址、内网占用的端口号等信息进行哈希(如SHA1)计算,得到一个160位的全网唯一的节点ID,根据全节点的ID为全节点分配其所属的Kademlia协议树位置;图1的下半部分是有SPV节点构成的非结构化P2P网络,每个SPV节点都有与之相连的全节点,因为SPV节点必须通过全节点才能接入区块链网络,进而实现简单支付验证功能。
203、若所述消息源节点类型为简单验证节点,在所述多个全节点中随机选择一个与所述消息源节点相连的在线的全节点传播所述目标交易的交易信息。
如果交易产生的位置是SPV节点,由于SPV节点不在Kademlia协议树上,所以它将随机选择一个与之相连的在线的全节点进行交易的传播。
本申请提供的基于DHT的区块链消息广播方法通过对区块链中普遍存在的交易效率低下问题,在不改变原有共识机制的情况下,使用DHT技术改进区块链网络节点之间的消息广播机制,将区块链系统划分为两个节点网络,基于DHT的结构化的全节点网络和非结构化的简单验证节点网络,全节点网络具有进行交易、挖矿、保存完整区块链以及路由等功能,简单验证节点网络只具有路由和简单支付验证的功能,这样我们就可以通过节点在Kadmlia树上的传播距离来控制实际网络中的传播范围,从而控制广播的消息数量,从而可以更快更有效地将消息或者区块广播到全网节点,进而加速共识达成过程,提高整个区块链网络的性能并且减轻网络负载。
在本申请一些实施例中,如图3所示,所述若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息,可以进一步包括如下步骤301~303:
301、遍历所述消息源节点的预设数量的k桶,分别以所述预设数量的k桶中的一个k桶为目标k桶。
302、确定所述目标k桶列表中网络诊断畅通的目标节点。
本申请实施例中,网络诊断可以是通过PING指令来实现。
303、向所述目标节点发送所述目标交易的交易信息,所述交易信息中附带所述目标节点对于消息源节点的桶号n,以使得所述目标节点遍历它的前n-1个k桶,直至当n等于1时,传播结束,其中,n为正整数。
在本申请一些实施例中,每个k桶记录的其他节点的节点信息按照更新时间顺序排序;如图4所示,所述确定所述目标k桶列表中网络诊断畅通的目标节点,可以进一步包括如下步骤401~404:
401、基于所述更新时间顺序,选择目标k桶列表中更新时间最新的节点。
402、向所述更新时间最新的节点发出网络诊断指令。
403、若网络诊断不通,将所述更新时间最新的节点挪到目标k桶列表中更新时间距离最久的位置。
404、选择所述目标k桶列表中第二个节点继续进行网络诊断,直至确定网络诊断畅通的目标节点。
本申请实施例中,Kademlia协议树上的每一个叶子节点都有159个k桶(k-bucket),k桶是Kademlia协议中节点的路由表,每个k桶记录了不超过k个(k值一般取20)其他节点的ID和IP地址及端口,这些节点按照时间顺序进行排序,列表最底的节点是最近一次联系的节点,节点每次通信过后都会更新自己的路由表,保证了整个网络的联通性。
当一笔交易产生后,最初传播交易信息的节点(源节点)会从它的159个k桶中找到每一层中最近联系的节点,在确定联通性后向节点传播交易,当k桶中的节点收到交易信息后,为保证传播效果,防止因为网络原因导致节点没有收到交易信息,收到交易信息的节点会向给它发送消息的节点回复一条消息,表明自己收到了交易信息,否则源节点将会再次向此节点发送交易信息,当节点收到所有的反馈确认消息后,此节点的传播任务结束。在验证交易信息有效后收到交易信息的节点会向处在同一k桶的节点再次以同样方式传播此交易(但是k桶的选择将不是159个,而是前n-1个,也就是在节点所在的同一桶内传播,这个同一桶的概念是相对于消息源节点来说的),这样我们就可以通过节点在Kadmlia树上的传播距离来控制实际网络中的传播范围,从而控制广播的消息数量。
下面结合一个具体场景对本申请基于DHT的区块链消息广播方法进行介绍。
基于DHT的区块链消息广播方法过程的详细流程如下:
(1)判断消息源节点的类型;
(2)如果消息源节点是全节点转到步骤3,否则消息源节点将消息广播到与之相邻的全节点,由全节点进行消息广播;
(3)遍历159个k桶;
(4)选择每个k桶列表最底(也是最新)的节点;
(5)向此节点发出PING指令;
(6)如果PING不通,将此节点挪到k桶列表最顶(最旧)的位置,选择列表第二个节点,继续PING,知道找到可以PING通的节点;
(7)如果PING通了,向这个节点发送交易信息,并附带它对于源节点的桶号n;
(8)收到交易信息的节点将遍历它的前n-1个k桶,并重复此过程,当n等于1时,代表传播结束。
图5显示了从消息源节点向其他叶子节点传播的示意图,可以看到每一个叶子节点都有相应的k桶n(1<=n<160),每个k桶n内的叶子节点与源节点的距离范围为[2n-1,2n),每个k桶n理论上最多可以有2n-1个叶子节点,但是随着n值的增大,k桶内的节点将以2的倍数进行增长,k桶内的节点将很快突破节点所在的硬件设备的存储能力极限,为了防止这种情况出现,Kademlia协议规定每个k桶最多存放k个叶子节点的信息。
如图6所示,以一个具有16个节点的网络为例,具体描述一下一个完整的传播过程。
将16个节点编号,从N0到N15,以N0为消息源节点,从N0开始向全网进行广播。规定Ni发送到Nj的消息表示为{(Ni→Nj),n},Ni、Nj为节点编号,n为k桶编号;
1、N0节点的4个k桶中保存了若干个其他节点的IP地址和端口号,第一次广播时N0将会向每个k桶中最近联系过的节点发送广播消息,这里假定4个k桶中最近联系过的节点为每个k桶中编号最小的,即N1,N2,N4,N8,在发送广播消息时也要附带k桶号,则N0向4个k桶中的节点发送的消息分别为{(N0→N1),1}、{(N0→N2),2}、{(N0→N4),3}和{(N0→N8),4};
第1轮广播后:
2、节点N1收到广播消息后发现它相对于发送节点的k桶编号为1,也就是不需要它再进行消息的转发,只需要对消息验证和存储就行了;
3、节点N2收到广播消息后发现它相对于发送节点的k桶编号为2,意味着除了需要对消息验证和存储外,还需要它再进行一次(2-1=1)消息的转发,转发目标为它的前1个k桶,转发的消息表示为{(N2→N3),1};
4、节点N4收到广播消息后发现它相对于发送节点的k桶编号为3,意味着除了需要对消息验证和存储外,还需要它再进行两次(3-1=2)消息的转发,转发目标为它的前2个k桶,转发的消息表示为{(N4→N5),1}和{(N4→N6),2};
5、节点N8收到广播消息后发现它相对于发送节点的k桶编号为4,意味着除了需要对消息验证和存储外,还需要它再进行三次(4-1=3)消息的转发,转发目标为它的前3个k桶,转发的消息表示为{(N8→N9),1}、{(N8→N10),2}和{(N8→N12),3};
第2轮广播后:
6、节点N3、N5、N9收到广播消息后发现它们相对于发送节点的k桶编号为1,也就是不需要它们再进行消息的转发,只需要对消息验证和存储就行了;
7、节点N6、N10收到广播消息后发现它们相对于发送节点的k桶编号为2,意味着除了需要对消息验证和存储外,还需要它们再进行一次(2-1=1)消息的转发,转发目标为它的前1个k桶,转发的消息分别表示为{(N6→N7),1}和{(N10→N11),1};
8、节点N12收到广播消息后发现它相对于发送节点的k桶编号为3,意味着除了需要对消息验证和存储外,还需要它再进行两次(3-1=2)消息的转发,转发目标为它的前2个k桶,转发的消息表示为{(N12→N13),1}和{(N12→N14),2};
第3轮广播(图中绿色箭头)后:
9、节点N7、N11、N13收到广播消息后发现它们相对于发送节点的k桶编号为1,也就是不需要它们再进行消息的转发,只需要对消息验证和存储就行了;
10、节点N14收到广播消息后发现它们相对于发送节点的k桶编号为2,意味着除了需要对消息验证和存储外,还需要它们再进行一次(2-1=1)消息的转发,转发目标为它的前1个k桶,转发的消息表示为{(N14→N15),1};
第4轮广播(图中蓝色箭头)后:
11、节点N15收到广播消息后发现它们相对于发送节点的k桶编号为1,也就是不需要它们再进行消息的转发,只需要对消息验证和存储就行了;
至此,经过四轮广播,消息从N0传播到了网络上的全部节点。
本申请发明人分别在4,8,16,32,64个节点网络、消息丢失率为20%的情况下对本申请提出的Kademlia协议广播机制和区块链原生的Gossip协议广播机制进行了仿真实验,定义了两个实验指标,分别是平均消息数和信息冗余度,实验结果如图7、图8所示,图7、图8,一条线对应Gossip协议(图中已标出),另一条线为本申请方案(图中未标出)。
在图7中,数字的x轴表示网络中节点的数量,y轴为总消息数除以节点消息数得到的平均消息数。图8中的y轴表示重复的事务传播消息数除以总消息数,以此作为评估通信效率的指标。两个结果是模拟10次计算得到的平均统计量。可以看到,与Gossip协议相比,所提基于DHT的区块链消息广播方法的平均消息数平均减少了44.84%。消息的数量似乎与节点数量的变化呈对数收敛。从图8可以看出,与Gossip协议相比,本申请实施例基于DHT的区块链消息广播方法的冗余率平均降低了26.12%。结果表明,该基于DHT的区块链消息广播方法在网络中的传播效率大大提高。
上面描述了区块链网络中消息传播中交易信息传播的具体方式,在本申请一些实施例中,还包括新区块传播的步骤,具体的,所述方法还包括:在新区块生成后的传播阶段,判断产生新区块的区块源节点类型;若所述区块源节点类型为全节点,通过所述区块源节点向所述区块链系统中的其他所有的全节点传播所述新区块的信息。本申请实施例中,新区块的广播的模式与上述交易信息传播的方式类似,虽然交易传播阶段和区块传播阶段的信息传播方向相反,但是信息传播的路径是相似的,均为从二叉树上的一个叶子节点传播到同一颗二叉树上的其他所有叶子节点。
为了更好实施本发明实施例中基于DHT的区块链消息广播方法,在基于DHT的区块链消息广播方法基础之上,本发明实施例中还提供一种基于DHT的区块链消息广播装置,应用于区块链系统,所述区块链系统中包括全节点网络和简单验证节点网络,所述全节点网络中包括多个全节点,所述多个全节点为基于DHT技术中的Kademlia协议构建的Kademlia协议树中的多个叶子节点,Kademlia协议树上的每个叶子节点具有预设数量个k桶,每个k桶包括记录不超过k个其他节点的节点信息的k桶列表,所述简单验证节点网络中包括多个简单验证节点,每个简单验证节点都设置有与之相连的全节点;如图9所示,所述装置900包括判断模块901、第一传播模块902和第二传播模块903:
判断模块901,用于在交易传播阶段,判断目标交易产生的消息源节点类型;
第一传播模块902,用于若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息;
第二传播模块903,用于若所述消息源节点类型为简单验证节点,在所述多个全节点中随机选择一个与所述消息源节点相连的在线的全节点传播所述目标交易的交易信息。
本申请提供的基于DHT的区块链消息广播装置通过对区块链中普遍存在的交易效率低下问题,在不改变原有共识机制的情况下,使用DHT技术改进区块链网络节点之间的消息广播机制,将区块链系统划分为两个节点网络,基于DHT的结构化的全节点网络和非结构化的简单验证节点网络,全节点网络具有进行交易、挖矿、保存完整区块链以及路由等功能,简单验证节点网络只具有路由和简单支付验证的功能,这样我们就可以通过节点在Kadmlia树上的传播距离来控制实际网络中的传播范围,从而控制广播的消息数量,从而可以更快更有效地将消息或者区块广播到全网节点,进而加速共识达成过程,提高整个区块链网络的性能并且减轻网络负载。
在本申请一些实施例中,所述第一传播模块902具体用于:
遍历所述消息源节点的预设数量的k桶,分别以所述预设数量的k桶中的一个k桶为目标k桶;
确定所述目标k桶列表中网络诊断畅通的目标节点;
向所述目标节点发送所述目标交易的交易信息,所述交易信息中附带所述目标节点对于消息源节点的桶号n,以使得所述目标节点遍历它的前n-1个k桶,直至当n等于1时,传播结束,其中,n为正整数。
在本申请一些实施例中,每个k桶记录的其他节点的节点信息按照更新时间顺序排序;
所述第一传播模块902具体用于:
基于所述更新时间顺序,选择目标k桶列表中更新时间最新的节点;
向所述更新时间最新的节点发出网络诊断指令;
若网络诊断不通,将所述更新时间最新的节点挪到目标k桶列表中更新时间距离最久的位置;
选择所述目标k桶列表中第二个节点继续进行网络诊断,直至确定网络诊断畅通的目标节点。
在本申请一些实施例中,每个全节点都设有对应唯一的节点标识,每个全节点的节点标识遵循Kademlia协议,每个全节点在Kademlia协议树上的位置是基于全节点的节点标识得到的。
在本申请一些实施例中,所述装置还包括:
第三传播模块,用于在新区块生成后的传播阶段,判断产生新区块的区块源节点类型;若所述区块源节点类型为全节点,通过所述区块源节点向所述区块链系统中的其他所有的全节点传播所述新区块的信息。
本申请实施例还提供一种电子设备,其集成了本申请实施例所提供的任一种基于DHT的区块链消息广播装置,所述电子设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行上述基于DHT的区块链消息广播方法实施例中任一实施例中所述的基于DHT的区块链消息广播方法中的步骤。
本申请实施例还提供一种电子设备,其集成了本申请实施例所提供的任一种基于DHT的区块链消息广播装置。如图10所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器1001、一个或一个以上计算机可读存储介质的存储器1002、电源1003和输入单元1004等部件。本领域技术人员可以理解,图10中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器1001是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器1002内的软件程序和/或模块,以及调用存储在存储器1002内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器1001可包括一个或多个处理核心;优选的,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。
存储器1002可用于存储软件程序以及模块,处理器1001通过运行存储在存储器1002的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1002可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1002还可以包括存储器控制器,以提供处理器1001对存储器1002的访问。
电子设备还包括给各个部件供电的电源1003,优选的,电源1003可以通过电源管理系统与处理器1001逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1003还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元1004,该输入单元1004可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器1001会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1002中,并由处理器1001来运行存储在存储器1002中的应用程序,从而实现各种功能,如下:
在交易传播阶段,判断目标交易产生的消息源节点类型;
若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息;
若所述消息源节点类型为简单验证节点,在所述多个全节点中随机选择一个与所述消息源节点相连的在线的全节点传播所述目标交易的交易信息。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行本申请实施例所提供的任一种基于DHT的区块链消息广播方法中的步骤。例如,所述计算机程序被处理器进行加载可以执行如下步骤:
在交易传播阶段,判断目标交易产生的消息源节点类型;
若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息;
若所述消息源节点类型为简单验证节点,在所述多个全节点中随机选择一个与所述消息源节点相连的在线的全节点传播所述目标交易的交易信息。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种基于DHT的区块链消息广播方法、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于DHT的区块链消息广播方法,其特征在于,应用于区块链系统,所述区块链系统中包括全节点网络和简单验证节点网络,所述全节点网络中包括多个全节点,所述多个全节点为基于DHT技术中的Kademlia协议构建的Kademlia协议树中的多个叶子节点,Kademlia协议树上的每个叶子节点具有预设数量个k桶,每个k桶包括记录不超过k个其他节点的节点信息的k桶列表,所述简单验证节点网络中包括多个简单验证节点,每个简单验证节点都设置有与之相连的全节点;所述基于DHT的区块链消息广播方法包括:
在交易传播阶段,判断目标交易产生的消息源节点类型;
若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息;
若所述消息源节点类型为简单验证节点,在所述多个全节点中随机选择一个与所述消息源节点相连的在线的全节点传播所述目标交易的交易信息。
2.根据权利要求1所述的基于DHT的区块链消息广播方法,其特征在于,所述若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息,包括:
遍历所述消息源节点的预设数量的k桶,分别以所述预设数量的k桶中的一个k桶为目标k桶;
确定所述目标k桶列表中网络诊断畅通的目标节点;
向所述目标节点发送所述目标交易的交易信息,所述交易信息中附带所述目标节点对于消息源节点的桶号n,以使得所述目标节点遍历它的前n-1个k桶,直至当n等于1时,传播结束,其中,n为正整数。
3.根据权利要求2所述的基于DHT的区块链消息广播方法,其特征在于,每个k桶记录的其他节点的节点信息按照更新时间顺序排序;
所述确定所述目标k桶列表中网络诊断畅通的目标节点,包括:
基于所述更新时间顺序,选择目标k桶列表中更新时间最新的节点;
向所述更新时间最新的节点发出网络诊断指令;
若网络诊断不通,将所述更新时间最新的节点挪到目标k桶列表中更新时间距离最久的位置;
选择所述目标k桶列表中第二个节点继续进行网络诊断,直至确定网络诊断畅通的目标节点。
4.根据权利要求1所述的基于DHT的区块链消息广播方法,其特征在于,每个全节点都设有对应唯一的节点标识,每个全节点的节点标识遵循Kademlia协议,每个全节点在Kademlia协议树上的位置是基于全节点的节点标识得到的。
5.根据权利要求1所述的基于DHT的区块链消息广播方法,其特征在于,所述方法还包括:
在新区块生成后的传播阶段,判断产生新区块的区块源节点类型;
若所述区块源节点类型为全节点,通过所述区块源节点向所述区块链系统中的其他所有的全节点传播所述新区块的信息。
6.一种基于DHT的区块链消息广播装置,其特征在于,应用于区块链系统,所述区块链系统中包括全节点网络和简单验证节点网络,所述全节点网络中包括多个全节点,所述多个全节点为基于DHT技术中的Kademlia协议构建的Kademlia协议树中的多个叶子节点,Kademlia协议树上的每个叶子节点具有预设数量个k桶,每个k桶包括记录不超过k个其他节点的节点信息的k桶列表,所述简单验证节点网络中包括多个简单验证节点,每个简单验证节点都设置有与之相连的全节点;所述装置包括:
判断模块,用于在交易传播阶段,判断目标交易产生的消息源节点类型;
第一传播模块,用于若所述消息源节点类型为全节点,通过所述消息源节点向所述区块链系统中的其他所有的全节点传播所述目标交易的交易信息;
第二传播模块,用于若所述消息源节点类型为简单验证节点,在所述多个全节点中随机选择一个与所述消息源节点相连的在线的全节点传播所述目标交易的交易信息。
7.根据权利要求6所述的基于DHT的区块链消息广播装置,其特征在于,所述第一传播模块具体用于:
遍历所述消息源节点的预设数量的k桶,分别以所述预设数量的k桶中的一个k桶为目标k桶;
确定所述目标k桶列表中网络诊断畅通的目标节点;
向所述目标节点发送所述目标交易的交易信息,所述交易信息中附带所述目标节点对于消息源节点的桶号n,以使得所述目标节点遍历它的前n-1个k桶,直至当n等于1时,传播结束,其中,n为正整数。
8.根据权利要求6所述的基于DHT的区块链消息广播装置,其特征在于,每个k桶记录的其他节点的节点信息按照更新时间顺序排序;
所述第一传播模块具体用于:
基于所述更新时间顺序,选择目标k桶列表中更新时间最新的节点;
向所述更新时间最新的节点发出网络诊断指令;
若网络诊断不通,将所述更新时间最新的节点挪到目标k桶列表中更新时间距离最久的位置;
选择所述目标k桶列表中第二个节点继续进行网络诊断,直至确定网络诊断畅通的目标节点。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现权利要求1至5中任一项所述的基于DHT的区块链消息广播方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至5任一项所述的基于DHT的区块链消息广播方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110538998.0A CN113300851B (zh) | 2021-05-18 | 2021-05-18 | 基于dht的区块链消息广播方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110538998.0A CN113300851B (zh) | 2021-05-18 | 2021-05-18 | 基于dht的区块链消息广播方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113300851A CN113300851A (zh) | 2021-08-24 |
CN113300851B true CN113300851B (zh) | 2022-06-21 |
Family
ID=77322563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110538998.0A Active CN113300851B (zh) | 2021-05-18 | 2021-05-18 | 基于dht的区块链消息广播方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113300851B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338699B (zh) * | 2021-11-18 | 2024-01-30 | 山大地纬软件股份有限公司 | 一种基于动态策略的区块链通信方法及系统 |
CN115296943B (zh) * | 2022-07-18 | 2024-04-16 | 杭州趣链科技有限公司 | 一种消息广播方法、装置、服务器和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108282539A (zh) * | 2018-02-06 | 2018-07-13 | 北京奇虎科技有限公司 | 基于双层网络的去中心化存储系统 |
CN109471744A (zh) * | 2018-11-21 | 2019-03-15 | 北京蓝石环球区块链科技有限公司 | 基于区块链的主链加并行多子链系统架构 |
CN110620776A (zh) * | 2019-09-24 | 2019-12-27 | 腾讯科技(深圳)有限公司 | 一种数据转移信息传输方法及其装置 |
CN111651525A (zh) * | 2020-06-24 | 2020-09-11 | 北京米弘科技有限公司 | 区块链数据存储方法和装置 |
-
2021
- 2021-05-18 CN CN202110538998.0A patent/CN113300851B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108282539A (zh) * | 2018-02-06 | 2018-07-13 | 北京奇虎科技有限公司 | 基于双层网络的去中心化存储系统 |
CN109471744A (zh) * | 2018-11-21 | 2019-03-15 | 北京蓝石环球区块链科技有限公司 | 基于区块链的主链加并行多子链系统架构 |
CN110620776A (zh) * | 2019-09-24 | 2019-12-27 | 腾讯科技(深圳)有限公司 | 一种数据转移信息传输方法及其装置 |
CN111651525A (zh) * | 2020-06-24 | 2020-09-11 | 北京米弘科技有限公司 | 区块链数据存储方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113300851A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11018980B2 (en) | Data-interoperability-oriented trusted processing method and system | |
JP7174719B2 (ja) | ブロックチェーンネットワークにおける効率的な伝播のための確率的リレー | |
CN113300851B (zh) | 基于dht的区块链消息广播方法、电子设备及存储介质 | |
EP3643034A1 (en) | Fast propagation of recent transactions over a blockchain network | |
WO2012166557A1 (en) | Friend recommendation system and method | |
CN111478811B (zh) | 一种基于双层信息流传递的网络关键点分析方法 | |
EP4226257A1 (en) | Methods and apparatus for a distributed database within a network | |
CN110266766A (zh) | 一种抗攻击分布式网络节点的构建方法、系统及终端设备 | |
CN111338806A (zh) | 一种业务控制方法及装置 | |
WO2021190179A1 (zh) | 一种同步处理方法和相关装置 | |
CN110956463B (zh) | 基于可扩展分布式查询系统的可信存证方法与系统 | |
Vu et al. | An efficient peer-to-peer bitcoin protocol with probabilistic flooding | |
Li et al. | A survey of state-of-the-art sharding blockchains: Models, components, and attack surfaces | |
WO2022048328A1 (zh) | 数据处理的方法、装置、设备及介质 | |
US8976706B2 (en) | Load balancing method and system for peer-to-peer networks | |
Medrano-Chávez et al. | A performance comparison of Chord and Kademlia DHTs in high churn scenarios | |
Mikalsen | Firechain: An efficient blockchain protocol using secure gossip | |
Shen et al. | CCLBR: Congestion control-based load balanced routing in unstructured P2P systems | |
CN113612810B (zh) | 基于dht的集群节点间性能优化方法、电子设备及存储介质 | |
WO2024021412A1 (zh) | 结构化p2p网络优化 | |
KR102596700B1 (ko) | 블록체인 네트워크에서 인터샤드 트랜잭션 시스템 및 방법 | |
Sampaio et al. | An adaptable and ISP-friendly multicast overlay network | |
Venati | Counting nodes in Ethereum blockchain | |
CN114637472A (zh) | 基于dht的区块链存储扩展方法、电子设备及存储介质 | |
KR20200007421A (ko) | 비트코인 네트워크 스캔 시스템 및 방법 |
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 |