CN110489486B - 生成区块链网络的方法、种子节点和介质 - Google Patents
生成区块链网络的方法、种子节点和介质 Download PDFInfo
- Publication number
- CN110489486B CN110489486B CN201910713240.9A CN201910713240A CN110489486B CN 110489486 B CN110489486 B CN 110489486B CN 201910713240 A CN201910713240 A CN 201910713240A CN 110489486 B CN110489486 B CN 110489486B
- Authority
- CN
- China
- Prior art keywords
- node
- accounting
- list
- nodes
- service
- 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
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种生成区块链网络的方法、种子节点和介质。所述方法包括:响应于接收到加入区块链网络的加入请求,确定发出加入请求的节点的身份;如果确定出发出加入请求的节点是业务节点,返回第一邻接业务节点列表,以形成第二子网络;如果确定出发出加入请求的节点是记账节点,返回记账节点列表,以形成第一子网络;如果确定出发出加入请求的节点是中继节点,返回第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表,以便该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信。本公开实施例能够自动生成易于线性扩展、兼顾安全性和性能的区块链网络。
Description
技术领域
本公开涉及区块链领域,具体涉及一种生成区块链网络的方法、种子节点和介质。
背景技术
当前的区块链网络中,区块链节点之间连接的方式主要有两种:一种是全连接,即每个区块链节点之间都相互连接;另一种是对等连接,例如分布式哈希表连接,即每个区块链节点存储了小部分数据,又负责区块链中一个小范围的路由,如果要传递到的区块链节点不在这个小范围的路由中,将其先路由到当前区块链节点负责路由的其它区块链节点中,再由该其它区块链节点继续往下路由,直到路由到要传递到的区块链节点。目前全连接和对等连接的区块链网络的生成,主要是针对每个区块链节点人工单独配置连接关系,然后联网,效率很低。
全连接方式不利于节点的线性扩展,而且节点的安全性差,因为所有的区块链节点都知道彼此的存在,很容易受到攻击。对等连接方式有利于节点的线性扩展,但由于是部分连接,网络消息的中转会降低性能。现有技术中缺乏一种能自动生成易于线性扩展、兼顾安全性和性能的区块链网络的方案。
发明内容
本公开的一个目的在于提出一种生成区块链网络的方法、种子节点和介质,能够自动生成易于线性扩展、兼顾安全性和性能的区块链网络。
根据本公开实施例的一方面,公开了一种生成区块链网络的方法,所述区块链网络包括记账节点的第一子网络和业务节点的各第二子网络,所述第一子网络和第二自网络之间、以及各第二子网络之间通过中间节点连接,所述中间节点包括种子节点和中继节点,所述方法由种子节点执行,所述方法包括:
响应于接收到加入区块链网络的加入请求,确定发出加入请求的节点的身份;
如果确定出发出加入请求的节点是业务节点,向该业务节点返回与该业务节点的位置关系符合第一位置关系标准的第一邻接业务节点列表,以便该业务节点与所述第一邻接业务节点列表的业务节点建立连接,以形成第二子网络;
如果确定出发出加入请求的节点是记账节点,向该记账节点返回与该种子节点连接的记账节点列表,以便该记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息,以形成第一子网络;
如果确定出发出加入请求的节点是中继节点,向该中继节点返回与该中继节点的位置关系符合第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表,以便该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信。
根据本公开实施例的一方面,公开了一种种子节点,所述种子节点位于区块链网络中,所述区块链网络包括记账节点的第一子网络和业务节点的各第二子网络,所述第一子网络和第二自网络之间、以及各第二子网络之间通过中间节点连接,所述中间节点包括所述种子节点和中继节点,所述种子节点包括:
节点身份确定单元,用于响应于接收到加入区块链网络的加入请求,确定发出加入请求的节点的身份;
第一返回单元,用于如果确定出发出加入请求的节点是业务节点,向该业务节点返回与该业务节点的位置关系符合第一位置关系标准的第一邻接业务节点列表,以便该业务节点与所述第一邻接业务节点列表的业务节点建立连接,以形成第二子网络;
第二返回单元,用于如果确定出发出加入请求的节点是记账节点,向该记账节点返回与该种子节点连接的记账节点列表,以便该记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息,以形成第一子网络;
第三返回单元,用于如果确定出发出加入请求的节点是中继节点,向该中继节点返回与该中继节点的位置关系符合第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表,以便该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信。
根据本公开实施例的一方面,公开了一种种子节点,包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行如上所述的方法。
根据本公开实施例的一方面,公开了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的方法。
本公开实施例中,针对区块链节点参与的功能分配不同的身份。对于记账节点采用全连接方式连通,形成第一子网络。对于不负责区块的记账、只能被动进行上链区块的查看的业务节点采用对等方式连通,形成第二子网络。第一子网络和第二子网络之间通过中间节点隔离,降低记账节点被攻击的风险,提高安全性。业务节点之间采用对等连接,易于线性扩展。种子节点是负责生成整个区块链网络的最初节点。当要生成该区块链网络时,由种子节点确定发出加入区块链网络的加入请求的节点是业务节点、记账节点,还是中继节点。如果是业务节点,向其返回满足条件的第一邻接业务节点列表,供其建立连接。如果是记账节点,向其返回与自己相连的记账节点列表,记账节点得到该记账节点列表后,与该记账节点列表中的记账节点建立连接后再交换记账节点列表中的信息,在记账节点之间形成全连接。如果是中继节点,向其返回符合条件的邻接业务节点列表和邻接记账节点列表。整个过程中不会将业务节点的信息透露给记账节点,也不会将记账节点的信息透露给业务节点。通过以上过程,实现了自动安全地生成如上的区块链网络。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。
图1示出了根据本公开一个实施例的区块链网络的体系构架图。
图2A-G示出了根据本公开一个实施例的生成区块链网络的方法应用在实际场景中的种子节点界面上显示的应用场景界面图。
图3示出了根据本公开一个实施例的生成区块链网络的方法的流程图。
图4示出了根据本公开一个实施例记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息的具体流程图。
图5示出了根据本公开一个实施例的中继节点与业务节点和记账节点进行区块链通信的具体流程图。
图6示出了根据本公开一个实施例的种子节点的模块图。
图7示出了根据本公开一个实施例的种子节点的硬件结构图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些示例实施方式使得本公开的描述将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多示例实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的示例实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、步骤等。在其它情况下,不详细示出或描述公知结构、方法、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
下面先参照图1描述一下本公开实施例生成的区块链网络整体的体系构架。
区块链网络是用于将待上链信息记录到区块链上,并能共同查看、监督区块链上记录的区块的网络。本公开实施例的区块链网络包括第一子网络1和第二子网络2。
第一子网络1即记账子网络,负责区块的上链(记账)。第一子网络1包括多个记账节点。记账节点是向区块链上记账的执行节点。记账节点包括共识节点101和候选节点102。共识是指在向区块链上记账之前,在记账子网络内部对记账的内容共同监督。在记账子网络内部对要上链的区块的内容达成一致才可以记账,确保记账的客观性。在某一时刻,对于一个要上链的区块,并不是所有记账节点都参与共识和记账,而是由选出的部分记账节点进行共识和记账,这部分选出的记账节点叫做共识节点,为被选出的记账节点叫做候选节点。在各个时刻选出的这部分记账节点是变化的,造成共识节点和候选节点的区分是动态的。一个记账节点可能在一个时刻是共识节点,在另一个时刻又变成了候选节点。第一子网络1中的记账节点采用全连接方式,即每两个记账节点之间都直接连接。由于共识节点和候选节点的区分是动态的,每个记账节点都会接收待上链信息,如果自己当前时刻不是共识节点,转发给当前时刻的共识节点打包、共识、上链。
第二子网络2即业务子网络,负责上传待上链信息并接收记账子网络上链后的记账结果,以便共同监督记账子网络的记账。第二子网络2如图1所示,可能有多个,每个第二子网络2包括多个业务节点。业务节点是上传待上链信息并接收记账子网络上链后的记账结果的执行节点。待上链信息可能是由客户端(未示)产生的。客户端需要将待上链信息在区块链上记账,就将待上链信息发送给业务节点上传,最终由记账子网络记账。业务节点然后接收记账结果。业务节点分为同步节点201和轻量级节点202。同步节点是指接收整个上链的完整区块作为记账结果的节点。这样,该节点事后需要查询区块内容时可以从自身存储的内容中容易地查到。轻量级节点是指仅接收上链的区块的区块头作为记账结果的节点。由于记账节点在形成上链区块时,是将多个待上链信息打包成区块体,再对区块体应用摘要算法得到区块体的摘要,将区块体的摘要放到区块头中上链。由于区块体的内容不同,经过摘要运算后得到的摘要不同,可以通过摘要区分不同的区块。因此,当轻量级节点需要查看区块体的完整内容时,凭区块头通过记账节点查询上链区块,就能得到该区块头对应的区块体的内容。而在轻量级节点中只保存区块头,大大减小了轻量级节点的存储负担,同时提高区块信息的安全性。每个第二子网络内部采用对等连接,即各个业务节点是平等的,没有中心节点,每个业务节点都负责将消息向其它业务节点下发,经过层层下发,最终达到需要的业务节点。对等连接的一个例子是分布式哈希表(DHT)连接,即每个区块链节点存储了小部分数据,又负责区块链中一个小范围的路由,如果要传递到的区块链节点不在这个小范围的路由中,将其先路由到当前区块链节点负责路由的其它区块链节点中,再由该其它区块链节点继续往下路由,直到路由到要传递到的区块链节点。
如图1所示,第一子网络1和第二子网络2之间、以及各第二子网络2之间通过中间节点连接。中间节点是起到在业务节点和记账节点之间通信作用的节点。为保障安全性,第一子网络和第二子网络隔离,业务节点和记账节点的通信由中间节点完成。当业务节点有待上链信息上链时,将待上链信息发送到中间节点,由中间节点转发到一个记账节点进行上链。当上链后,记账节点将记录的区块发送回中间节点,由中间节点向同步节点和轻量级节点广播。对于同步节点,中间节点需要将整个上链的区块向同步节点广播。对于轻量级节点,中间节点只需将上链的区块的区块头向轻量级节点广播。中间节点包括种子节点301和中继节点302。在执行记账节点和业务节点之间的通信时,它们的作用都一样,不同之处在于种子节点301是本公开实施例的区块链网络的生成节点,如下文所述,本公开实施例的生成区块链网络的方法都是由种子节点执行的。中继节点是除种子节点之外的中间节点,只其在第一子网络和第二子网络之间通信中转作用,不起生成整个区块链网络的作用。
图1中的每个节点可以是台式计算机、便携式计算机等传统计算机设备,也可以是手机、PDA、车载终端等具有非传统计算机设备的形式、但可以运行软件执行程序并具有通信功能的设备,也可以是服务器(例如云服务器)的形式。另外,它们可以是实体机,也可以是以虚拟机的形式作为实体机的一部分存在于实体机中。例如,一个设备中,可能有图1中的多个节点。另外,这些节点可能以云的形式存在,它们作为云节点分布的云的各个位置。
图1的区块链网络中,针对区块链节点参与的功能分配不同的身份。对于记账节点采用全连接方式连通,形成第一子网络。对于不负责区块的记账、只能被动进行上链区块的查看的业务节点采用对等方式连通,形成第二子网络。第一子网络和第二子网络之间通过中间节点隔离,降低记账节点被攻击的风险,提高安全性。业务节点之间采用对等连接,易于线性扩展。种子节点是负责生成整个区块链网络的最初节点。相对于所有区块链节点采用全连接的方式,有利于区块链节点的线性扩展,只在记账子网络内部进行全连接有利于提高安全性。相对于所有区块链节点采用对等连接的方式,在记账子网络内部采用全连接的方式有利于快速达到共识,提高上链效率,提高上链性能。因此,该区块链网络易于线性扩展,且兼顾安全性和性能。
本公开实施例提出了一种生成区块链网络的方法,能够自动生成图1的区块链网络。接下来结合图2A-G,即种子节点实际生成区块链网络时的场景界面,概述一下本公开实施例的生成区块链网络的方法应用到具体场景时的情形。
在生成区块链网络之前,各个记账节点、业务节点、种子节点等都是真实存在的,只是没有按照图1所示的拓扑连接成区块链网络。种子节点是区块链网络的生成节点,各记账节点、业务节点、中继节点都向它请求加入区块链网络。
如图2A所示,当种子节点接收到节点XXXXXX加入区块链网络的加入请求时,为了提高安全性,首先要验证该节点XXXXXX的合法性,验证的方法可以是与预设的黑名单进行对比,一旦属于黑名单中的一个就验证其为不合法等。如果节点XXXXXX合法,由于此时还不知道节点XXXXXX是业务节点、记账节点,还是中继节点,因此首先需要确定其身份,即它是业务节点、记账节点,还是中继节点。
如果确定其身份是业务节点,如图2B所示,询问管理员是否向该业务节点发送邻接业务节点列表供其连接。该邻接业务节点列表中的业务节点是与该业务节点比较近的业务节点,例如符合某一位置关系标准。如果确定可以发送,将邻接业务节点列表发给该业务节点。这样,业务节点就与所述该邻接业务节点列表的业务节点建立连接。每个业务节点都向该中间节点请求自己的邻接业务节点列表,与自己周围的业务节点建立连接。这当所有业务节点建立完自己周围的连接后,就形成一个个不连通的第二子网络。不连通的含义是其中没有一个业务节点连接到其它第二子网络。这些第二子网络之间、它们与第一子网络之间是通过中间节点通信的。
这样,建立了各第二子网络内部的对等连接。
发送第一邻接业务节点列表后,显示如图2C所示的界面,表明已向业务节点发送了第一邻接业务节点列表。
如果确定出发出加入请求的节点是记账节点,如图2D所示,询问管理员是否向该记账节点发送与该种子节点连接的记账节点列表供其连接。如果确定可以发送,将与该种子节点连接的记账节点列表发送到该记账节点,供其与所述记账节点列表中的记账节点建立连接。由于第一子网络内部需要全连接,但种子节点可能有多个,如图1所示,在这里该种子节点仅知道与自己连接的记账节点列表,因此,当记账节点接收到该记账节点列表后,还要与按照该列表连接上的其它记账节点交换该其它记账节点得到的记账节点列表信息,更新记账节点列表,直到第一子网络中的所有记账节点拥有完全相同的记账节点列表。这样,建立了第一子网络内部的全连接。
发送与该种子节点连接的记账节点列表后,显示如图2E所示的界面,表明已向业务节点发送了与该种子节点连接的记账节点列表。
如果确定其身份是中继节点,如图2F所示,询问管理员是否向该中继节点发送该中继节点负责通信的邻接业务节点列表(例如与该中继节点的位置符合某个位置关系标准)、以及该中继节点负责通信的邻接记账节点列表(例如与该中继节点符合某个位置关系标准)。如果确定可以发送,将这些列表发给该中继节点。这样,中继节点就按照这些列表,与其负责通信的邻接业务节点和邻接记账节点分别建立连接。
发送了这些列表后,显示如图2G所示的界面,表明已向中继节点发送了这些列表。
经过图2A-G的过程,建立了完整的区块链网络。
下面对本公开实施例的具体实施过程进行描述。
如图3所示,根据本公开的一个实施例,提供了一种生成区块链网络的方法,所述方法由种子节点执行,所述方法包括:
步骤410、响应于接收到加入区块链网络的加入请求,确定发出加入请求的节点的身份;
步骤420、如果确定出发出加入请求的节点是业务节点,向该业务节点返回与该业务节点的位置关系符合第一位置关系标准的第一邻接业务节点列表,以便该业务节点与所述第一邻接业务节点列表的业务节点建立连接,以形成第二子网络;
步骤430、如果确定出发出加入请求的节点是记账节点,向该记账节点返回与该种子节点连接的记账节点列表,以便该记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息,以形成第一子网络;
步骤440、如果确定出发出加入请求的节点是中继节点,向该中继节点返回与该中继节点的位置关系符合第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表,以便该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信。
下面描述上述各步骤的具体过程。
在步骤410中,响应于接收到加入区块链网络的加入请求,确定发出加入请求的节点的身份。
节点的身份就是每个节点所属的节点类型,例如业务节点、记账节点及中继节点等。由于业务节点包括同步节点和轻量级节点,记账节点包括共识节点和候选节点等,节点的身份还包括这些具体的类型。加入请求有可能是业务节点、记账节点及中继节点中任一个发出的。加入请求中携带了该加入请求来源的节点的相关信息可用来确定节点身份,例如节点标识或者特定字段等。种子节点用于种子节点是区块链网络的生成节点,各记账节点、业务节点、中继节点都向它请求加入区块链网络。种子节点基于加入请求确定发出加入请求的节点的身份,可以为上链的节点准确设定相应的角色,进而基于这些角色可以很友好地建立区块链网络拓扑。
一种实施例中,所述确定发出加入请求的节点的身份,包括:
确定发出加入请求的节点标识;
根据所述节点标识,参照预设的黑名单,对所述加入请求进行过滤;
根据滤除后的加入请求中的特定字段,确定发出加入请求的节点的身份。
在一个实施例中,确定发出加入请求的节点标识可以通过发出加入请求的节点和种子节点传递该加入请求时的握手协议中获得。在另一个实施例中,也可以在加入请求中加入一个节点标识字段,从该字段读出该节点标识。
预设的黑名单中保存了各种不法的节点的节点标识,例如,该节点之前撰写过区块链记录数据,就由区块链网络的安全中心(未示)将其列入黑名单。从加入请求中获取节点标识后,如果在预设的黑名单中查找到该节点标识,说明该节点由于不合法等原因已被加入黑名单,进而,通过对所述加入请求进行过滤可以保证加入安全的节点到区块链。
特定字段例如“ip-wsx”。不同身份的节点,发出的消息的该字段不一样。在一个实施例中,通过获取加入请求中的特定字段,基于预先公布在区块链网络中的特定字段-身份对照表可以准确查询到发出加入请求的节点的身份。
上面描述了响应于接收到加入区块链网络的加入请求,确定发出加入请求的节点的身份的过程;下面则描述如果确定出发出加入请求的节点是业务节点,形成第二子网络的过程。
步骤420、如果确定出发出加入请求的节点是业务节点,向该业务节点返回与该业务节点的位置关系符合第一位置关系标准的第一邻接业务节点列表,以便该业务节点与所述第一邻接业务节点列表的业务节点建立连接,以形成第二子网络。
业务节点就是不负责区块的记账、只能被动进行上链区块的查看的节点,即业务节点不参与区块链的共识,是上传待上链信息并接收记账子网络上链后的记账结果的执行节点。种子节点根据DHT算法可以返回与发出加入请求的业务节点符合第一位置关系标准的第一邻接业务节点列表。其中,第一位置关系标准是根据区块链管理需求设立的业务节点之间位置关系,例如可以是与该业务节点的距离小于预定阈值或者位于电子地图中的一个地域版块等,下面会更详细展示论述。第一邻接业务节点列表记录了与该业务节点符合第一位置关系标准的所有业务节点的信息,如节点标识等可以用于建立连接的信息。进而,该业务节点可以与第一邻接业务节点列表的业务节点根据DHT算法建立对等连接,路由信息,构建得到第二子网络。由于每个业务节点都向该种子节点请求自己的邻接业务节点列表,与自己周围的业务节点建立连接,当所有业务节点建立完自己周围的连接后,每个与周围节点不连通的部分就是一个第二子网络。每个第二子网络内部采用对等连接,即各个业务节点是平等的,没有中心节点,每个业务节点都负责将消息向其它业务节点下发,经过层层下发,最终达到需要的业务节点。第二子网络网业务节点之间采用对等连接,易于线性扩展。
一种实施例中,所述第一位置关系标准包括:与该业务节点的距离小于第一距离阈值。只要小于该第一距离阈值,就认为与业务节点足够近,可以与业务节点连接。
第一距离阈值是根据区块链网络构建需求,预先设置的业务节点之间最远的距离,例如第一距离阈值可以是1千米或者5千米等。
一种实施例中,所述第一位置关系标准包括:与该业务节点共同位于电子地图中的一个地域版块。只要位于同一个地域版块,就认为与业务节点足够近,可以与业务节点连接。
电子地图是记录了所有节点位置的电子地图,并且根据管理需要划分了不同的管理区域,即地域板块,例如,电子地图中的一个城市区。
上面描述了如果确定出发出加入请求的节点是业务节点,形成第二子网络的过程;下面则描述如果确定出发出加入请求的节点是记账节点,形成第一子网络的过程。
步骤430、如果确定出发出加入请求的节点是记账节点,向该记账节点返回与该种子节点连接的记账节点列表,以便该记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息,以形成第一子网络。
记账节点是向区块链上记账的执行节点,即可以参与共识的节点。
种子节点根据DHT算法可以向发出加入请求的记账节点返回与该种子节点连接的记账节点列表。该记账节点列表中记录了所有与该种子节点连接的记账节点的信息,如节点标识等可以用于建立连接的信息。进而,该记账节点可以通过DHT算法与记账节点列表中的记账节点建立连接,并互相交换记账节点列表中的信息。每个记账节点保存了与自身连接的记账节点的信息的记账节点列表,这样可以在互相交换记账节点列表中的信息后,通过取并集合并两个记账节点的所有信息,实现所有记账节点互通,即记账节点全连接,构建得到第一子网络。同时只在记账子网络内部进行全连接有利于提高安全性。
以这种方式,可以根据每个发出加入请求的记账节点准确构建记账子网络,负责区块的上链(记账)。在记账子网络内部对要上链的区块的内容达成一致才可以记账,确保记账的客观性。
如图4所示,根据本公开一个实施例,提供了一种记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息的方法,由记账节点执行,该实施例中,该记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息,包括由记账节点执行的以下步骤:
步骤510、该记账节点与所述记账节点列表中的记账节点建立连接,并向所述记账节点列表中的记账节点发出记账节点列表交换请求;
步骤520、将所述记账节点自身的记账节点列表发送给所述记账节点列表中的各记账节点,并接收其它记账节点发送的记账节点列表;
步骤530、将接收的记账节点列表整合到所述记账节点自身的记账节点列表中。
记账节点列表交换请求用于向连接到的记账节点列表中的其它记账节点请求对方的记账节点列表。这样可以在连接后互相交换记账节点列表的信息。然后,每个记账节点可以通过对接收的记账节点列表与记账节点自身的记账节点列表取并集的方式,将接收的记账节点列表整合到所述记账节点自身的记账节点列表中。这样,每个记账节点通过不断这样建立连接,并整合记账节点列表,实现了所有记账节点的全连接,且每一记账节点保存有所有其它记账节点的列表。
一种实施例中,步骤510包括:
根据合法记账节点清单,对所述记账节点列表中的记账节点进行合法性检查;
与合法的记账节点建立连接,并向所述合法的记账节点发出记账节点列表交换请求。
合法记账节点清单中记录了所有记账节点的是否有资格参与共识等合法性信息。例如,某一记账节点之前篡改了区块链数据,因此被区块链网络的安全中心(未示)判定非法节点,从合法记账节点清单中去除。通过合法记账节点清单,可以确定请求加入的记账节点是否合法,滤出不合法的记账节点。进而,可以与合法的记账节点建立连接,并向所述合法的记账节点发出记账节点列表交换请求。该实施例通过合法性检查的方式滤除了非法记账节点,提高了记账节点记账的可靠性。
上面描述了如果确定出发出加入请求的节点是记账节点,形成第一子网络的过程;下面则描述如果确定出发出加入请求的节点是中继节点,如何使该中继节点进行区块链通信的过程。
步骤440、如果确定出发出加入请求的节点是中继节点,向该中继节点返回与该中继节点的位置关系符合第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表,以便该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信。
中继节点是除种子节点之外的中间节点,只其在第一子网络和第二子网络之间通信中转作用,不起到种子节点的生成整个区块链网络的作用。
种子节点根据DHT算法可以返回与发出加入请求的中继节点的位置关系符合第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表。其中,第二位置关系标准是区块链的通信管理需求设定的中继节点与业务节点或者记账节点的位置关系,例如可以是与该中继节点的距离小于预定阈值或者位于电子地图中的一个地域版块等,下文中会详细描述。
第二邻接业务节点列表记录了与该中继节点符合第二位置关系标准的所有业务节点的信息,如节点标识等可以用于建立连接的信息。进而,该中继节点可以与第二邻接业务节点列表的业务节点建立连接后进行通信。
第一邻接记账节点列表中记录了与该中继节点符合第二位置关系标准的所有记账节点的信息,如节点标识等可以用于建立连接的信息。进而,该中继节点可以与第一邻接记账节点列表的记账节点建立连接后进行通信。
这样中继节点根据第二邻接业务节点列表和第一邻接记账节点列表分别与两个列表中的业务节点和记账节点进行建立连接,并彼此交换邻接列表交换信息,整个过程中不会将业务节点的信息透露给记账节点,也不会将记账节点的信息透露给业务节点。
以这种方式,可以实现第一子网络和第二子网络之间、以及各第二子网络之间通过中间节点(种子节点和中继节点)连接,中继节点与种子节点连接。由中间节点在业务节点和记账节点之间通信。使得第一子网络和第二子网络隔离,有效保障区块链的安全性,同时便于区块链网络线性扩展。
一种实施例中,所述第二位置关系标准包括:与该中继节点的距离小于第二距离阈值。小于第二距离阈值,就认为与该中继节点足够近,可以与该中继节点连接。
第二距离阈值是根据区块链网络通信管理需求,预先设置中继节点与业务节点或者记账节点之间最远的距离,例如第二距离阈值可以是1千米或者5千米等。
一种实施例中,所述第二位置关系标准包括:与该中继节点共同位于电子地图中的一个地域版块。与中继节点位于同一个地域版块,就认为与该中继节点足够近,可以与该中继节点连接。
电子地图是记录了所有节点位置的电子地图,并且根据管理需要划分了不同的管理区域,即地域板块,例如,电子地图中的一个城市区。
如图5所示,根据本公开一个实施例,提供了一种中继节点与业务节点和记账节点进行区块链通信的方法,由中继节点执行,该实施例中,所述业务节点包括同步节点和轻量级节点,所述该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信,包括由该中继节点执行的以下步骤:
步骤610、接收到所述第二邻接业务节点列表中的业务节点发出的待上链信息;
步骤620、将该待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链;
步骤630、响应于上链完成,从所述记账节点接收上链的区块;
步骤640、将上链的区块广播给所述第二邻接业务节点列表中的同步节点,将上链的区块的区块头广播给所述第二邻接业务节点列表中的轻量级节点。
业务节点包括同步节点和轻量级节点,其中,同步节点是指接收整个上链的完整区块作为记账结果的节点。轻量级节点是指仅接收上链的区块的区块头作为记账结果的节点。
中继节点接收到第二邻接业务节点列表中的业务节点发出的待上链信息后,发送到与中继节点连接的第一邻接记账节点列表中的记账节点,记账节点在形成上链区块时,将多个待上链信息打包成区块体,再对区块体应用摘要算法得到区块体的摘要,将区块体的摘要放到区块头中上链。当上链完成后,从所述记账节点接收上链的区块。然后,将上链的区块广播给第二邻接业务节点列表中的同步节点,将上链的区块的区块头广播给第二邻接业务节点列表中的轻量级节点。由于区块体的内容不同,经过摘要运算后得到的摘要不同,可以通过摘要区分不同的区块。因此,当轻量级节点需要查看区块体的完整内容时,凭区块头通过记账节点查询上链区块,就能得到该区块头对应的区块体的内容。而在轻量级节点中只保存区块头,大大减小了轻量级节点的存储负担,同时提高区块信息的安全性。同时,同步节点事后需要查询区块内容时可以从自身存储的内容中容易地查到。
一种实施例中,在步骤610中,所述业务节点发出的待上链信息是所述业务节点从客户端接收到待上链信息后,根据预定验证规则,对所述待上链信息进行第一验证通过后发出的。
客户端是实际产生待上链信息的节点。例如,用户报销电子***时,客户端将报销电子***的事件信息上报客户端相连的业务节点,由业务节点请求记账节点上链。但请求上链之前,业务节点要检验待上链信息的合法性,例如报销电子***的事件信息是否有电子***号、报销人、报销单位、报销金额等。验证不通过,不予上链。预定验证规则可以是预设的上链信息完整性验证表。预设的上链信息完整性验证表规定了对于每种上链事件,需要上链的内容。例如,对于报销电子***的事件,必须上链电子***号、报销人、报销单位、报销金额等。业务节点将待上链信息与预设的上链信息完整性验证表进行对比,验证待上链信息的完整性。也可以是发送到专门的信息验证节点(未示),由信息验证节点对待上链信息进行验证。对待上链信息进行第一验证通过后,发出待上链信息。
该实施例通过第一验证,丢弃了不合法的交易,提高记账信息可靠性。
一种实施例中,所述将该待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链,包括由中继节点执行的以下步骤:
根据预定验证规则,对所述待上链信息进行第二验证;
对第二验证通过的待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链。
该实施例中,预定验证规则可以是根据上述预设的上链信息完整性验证表,对待上链信息再次验证。为了与第一验证区别开,第二验证可以是对发出待上链信息的业务节点的身份进行验证。可以规定,当业务节点将待上链信息传递给中继节点时,通过预定摘要算法生成待上链信息的摘要,然后对该摘要用业务节点的私钥加密,从而得到待上链信息的签名。业务节点将待上链信息与所述签名一起发送到中继节点。中继节点接收到该签名后,可以从区块链网络的认证中心(未示)获取业务节点的公钥,对公钥对所述签名进行解密,得到解密后的摘要。然后,将待上链信息用同样的预定摘要算法生成摘要,将生成的摘要和解密后的摘要进行比对。如果一致,则第二验证通过,对第二验证通过的待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链。如果不一致,则丢弃该待上链信息,拒绝上链。通过上述第二验证,验证了发送待上链信息的业务节点的合法性,提高上链信息安全性。
一种实施例中,所述记账节点包括共识节点和候选节点,步骤620包括:
将该待上链信息广播到所述第一邻接记账节点列表中的共识节点和候选节点,以便所述共识节点和在共识时已转变为共识节点的候选节点对该待上链信息的区块进行共识。
记账节点包括共识节点和候选节点。共识是指在向区块链上记账之前,在记账子网络内部对记账的内容共同监督。在记账子网络内部对要上链的区块的内容达成一致才可以记账,确保记账的客观性。在某一时刻,对于一个要上链的区块,并不是所有记账节点都参与共识和记账,而是由选出的部分记账节点进行共识和记账,这部分选出的记账节点叫做共识节点,为被选出的记账节点叫做候选节点。在各个时刻选出的这部分记账节点是变化的,造成共识节点和候选节点的区分是动态的。一个记账节点可能在一个时刻是共识节点,在另一个时刻又变成了候选节点。
将该待上链信息广播到所述第一邻接记账节点列表中的共识节点和候选节点,共识节点和在共识时已转变为共识节点的候选节点对该待上链信息的区块进行共识,进而在共识后实现待上链信息上链。
在一个实施例中,种子节点本身除了生成区块链网络,在区块链网络生成后,自身也作为中间节点,起到与业务节点和记账节点通信的作用。因此,在一个实施例中,所述方法还包括:
为种子节点自身分配与该种子节点的位置关系符合第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表,以便该种子节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信。
为种子节点自身分配与该种子节点的位置关系符合第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表的过程,与前述实施例中的为中继节点确定与该中继节点的位置关系符合第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表的过程类似,为节约篇幅,不再赘述。种子节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信的过程,也与前述实施例中的中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信的过程类似,为节约篇幅,不再赘述。
根据本公开实施例,如图6所示,还提供了一种种子节点,所述种子节点位于区块链网络中,所述区块链网络包括记账节点的第一子网络和业务节点的各第二子网络,所述第一子网络和第二自网络之间、以及各第二子网络之间通过中间节点连接,所述中间节点包括所述种子节点和中继节点,所述种子节点包括:
节点身份确定单元710,用于响应于接收到加入区块链网络的加入请求,确定发出加入请求的节点的身份;
第一返回单元720,用于如果确定出发出加入请求的节点是业务节点,向该业务节点返回与该业务节点的位置关系符合第一位置关系标准的第一邻接业务节点列表,以便该业务节点与所述第一邻接业务节点列表的业务节点建立连接,以形成第二子网络;
第二返回单元730,用于如果确定出发出加入请求的节点是记账节点,向该记账节点返回与该种子节点连接的记账节点列表,以便该记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息,以形成第一子网络;
第三返回单元740,用于如果确定出发出加入请求的节点是中继节点,向该中继节点返回与该中继节点的位置关系符合第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表,以便该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信。
一种实施例中,所述业务节点包括同步节点和轻量级节点,该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信,包括由该中继节点执行的以下步骤:
接收到所述第二邻接业务节点列表中的业务节点发出的待上链信息;
将该待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链;
响应于上链完成,从所述记账节点接收上链的区块;
将上链的区块广播给所述第二邻接业务节点列表中的同步节点,将上链的区块的区块头广播给所述第二邻接业务节点列表中的轻量级节点。
一种实施例中,所述记账节点包括共识节点和候选节点,所述将该待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链,包括:
将该待上链信息广播到所述第一邻接记账节点列表中的共识节点和候选节点,以便所述共识节点和在共识时已转变为共识节点的候选节点对该待上链信息的区块进行共识。
一种实施例中,所述节点身份确定单元710进一步用于:
确定发出加入请求的节点标识;
根据所述节点标识,参照预设的黑名单,对所述加入请求进行过滤;
根据滤除后的加入请求中的特定字段,确定发出加入请求的节点的身份。
一种实施例中,所述第一位置关系标准包括:与该业务节点的距离小于第一距离阈值。
一种实施例中,所述第一位置关系标准包括:与该业务节点共同位于电子地图中的一个地域版块。
一种实施例中,该记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息,包括由记账节点执行的以下步骤:
该记账节点与所述记账节点列表中的记账节点建立连接,并向所述记账节点列表中的记账节点发出记账节点列表交换请求;
将所述记账节点自身的记账节点列表发送给所述记账节点列表中的各记账节点,并接收其它记账节点发送的记账节点列表;
将接收的记账节点列表整合到所述记账节点自身的记账节点列表中。
一种实施例中,该记账节点与所述记账节点列表中的记账节点建立连接,并向所述记账节点列表中的记账节点发出记账节点列表交换请求,包括:
根据合法记账节点清单,对所述记账节点列表中的记账节点进行合法性检查;
与合法的记账节点建立连接,并向所述合法的记账节点发出记账节点列表交换请求。
一种实施例中,所述第二位置关系标准包括:与该中继节点的距离小于第二距离阈值。
一种实施例中,所述第二位置关系标准包括:与该中继节点共同位于电子地图中的一个地域版块。
一种实施例中,所述业务节点发出的待上链信息是所述业务节点从客户端接收到待上链信息后,根据预定验证规则,对所述待上链信息进行第一验证通过后发出的。
一种实施例中,所述将该待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链,包括:
根据预定验证规则,对所述待上链信息进行第二验证;
对第二验证通过的待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链。
根据本公开实施例的生成区块链网络的方法可以由图7的种子节点301实现。下面参照图7来描述根据本公开实施例的生成区块链网络的种子节点301。图7显示的生成区块链网络的种子节点301仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,生成区块链网络的种子节点301以通用计算设备的形式表现。生成区块链网络的种子节点301的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同***组件(包括存储单元820和处理单元810)的总线830。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述示例性方法的描述部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图3中所示的各个步骤。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
生成区块链网络的种子节点301也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该在区块链网络中查询数据区块中的交易信息的生成区块链网络的种子节点301交互的设备通信,和/或与使得该生成区块链网络的种子节点301能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,生成区块链网络的种子节点301还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与生成区块链网络的种子节点301的其它模块通信。应当明白,尽管图中未示出,可以结合生成区块链网络的种子节点301使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行上述方法实施例部分描述的方法。
根据本公开的一个实施例,还提供了一种用于实现上述方法实施例中的方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (26)
1.一种生成区块链网络的方法,其特征在于,所述区块链网络包括记账节点的第一子网络和业务节点的各第二子网络,所述第一子网络和第二子网络之间、以及各第二子网络之间通过中间节点连接,所述中间节点包括种子节点和中继节点,所述方法由种子节点执行,所述方法包括:
响应于接收到加入区块链网络的加入请求,确定发出加入请求的节点的身份;
如果确定出发出加入请求的节点是业务节点,向该业务节点返回与该业务节点的位置关系符合第一位置关系标准的第一邻接业务节点列表,以便该业务节点与所述第一邻接业务节点列表的业务节点建立连接,以形成第二子网络,其中,所述第二子网络中的业务节点采用对等连接方式;
如果确定出发出加入请求的节点是记账节点,向该记账节点返回与该种子节点连接的记账节点列表,以便该记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息,以形成第一子网络,其中,所述第一子网络中的记账节点采用全连接方式;
如果确定出发出加入请求的节点是中继节点,向该中继节点返回与该中继节点的位置关系符合第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表,以便该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信。
2.根据权利要求1所述的方法,其特征在于,所述业务节点包括同步节点和轻量级节点,该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信,包括由该中继节点执行的以下步骤:
接收到所述第二邻接业务节点列表中的业务节点发出的待上链信息;
将该待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链;
响应于上链完成,从所述记账节点接收上链的区块;
将上链的区块广播给所述第二邻接业务节点列表中的同步节点,将上链的区块的区块头广播给所述第二邻接业务节点列表中的轻量级节点。
3.根据权利要求2所述的方法,其特征在于,所述记账节点包括共识节点和候选节点,所述将该待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链,包括:
将该待上链信息广播到所述第一邻接记账节点列表中的共识节点和候选节点,以便所述共识节点和在共识时已转变为共识节点的候选节点对该待上链信息的区块进行共识。
4.根据权利要求1所述的方法,其特征在于,所述确定发出加入请求的节点的身份,包括:
确定发出加入请求的节点标识;
根据所述节点标识,参照预设的黑名单,对所述加入请求进行过滤;
根据滤除后的加入请求中的特定字段,确定发出加入请求的节点的身份。
5.根据权利要求1所述的方法,其特征在于,所述第一位置关系标准包括:与该业务节点的距离小于第一距离阈值。
6.根据权利要求1所述的方法,其特征在于,所述第一位置关系标准包括:与该业务节点共同位于电子地图中的一个地域版块。
7.根据权利要求1所述的方法,其特征在于,该记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息,包括由记账节点执行的以下步骤:
该记账节点与所述记账节点列表中的记账节点建立连接,并向所述记账节点列表中的记账节点发出记账节点列表交换请求;
将所述记账节点自身的记账节点列表发送给所述记账节点列表中的各记账节点,并接收其它记账节点发送的记账节点列表;
将接收的记账节点列表整合到所述记账节点自身的记账节点列表中。
8.根据权利要求7所述的方法,其特征在于,所述该记账节点与所述记账节点列表中的记账节点建立连接,并向所述记账节点列表中的记账节点发出记账节点列表交换请求,包括:
根据合法记账节点清单,对所述记账节点列表中的记账节点进行合法性检查;
与合法的记账节点建立连接,并向所述合法的记账节点发出记账节点列表交换请求。
9.根据权利要求1所述的方法,其特征在于,所述第二位置关系标准包括:与该中继节点的距离小于第二距离阈值。
10.根据权利要求9所述的方法,其特征在于,所述第二位置关系标准包括:与该中继节点共同位于电子地图中的一个地域版块。
11.根据权利要求2所述的方法,其特征在于,所述业务节点发出的待上链信息是所述业务节点从客户端接收到待上链信息后,根据预定验证规则,对所述待上链信息进行第一验证通过后发出的。
12.根据权利要求2所述的方法,其特征在于,所述将该待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链,包括:
根据预定验证规则,对所述待上链信息进行第二验证;
对第二验证通过的待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链。
13.一种种子节点,其特征在于,所述种子节点位于区块链网络中,所述区块链网络包括记账节点的第一子网络和业务节点的各第二子网络,所述第一子网络和第二子网络之间、以及各第二子网络之间通过中间节点连接,所述中间节点包括所述种子节点和中继节点,所述种子节点包括:
节点身份确定单元,用于响应于接收到加入区块链网络的加入请求,确定发出加入请求的节点的身份;
第一返回单元,用于如果确定出发出加入请求的节点是业务节点,向该业务节点返回与该业务节点的位置关系符合第一位置关系标准的第一邻接业务节点列表,以便该业务节点与所述第一邻接业务节点列表的业务节点建立连接,以形成第二子网络,其中,所述第二子网络中的业务节点采用对等连接方式;
第二返回单元,用于如果确定出发出加入请求的节点是记账节点,向该记账节点返回与该种子节点连接的记账节点列表,以便该记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息,以形成第一子网络,其中,所述第一子网络中的记账节点采用全连接方式;
第三返回单元,用于如果确定出发出加入请求的节点是中继节点,向该中继节点返回与该中继节点的位置关系符合第二位置关系标准的第二邻接业务节点列表和第一邻接记账节点列表,以便该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信。
14.根据权利要求13所述的种子节点,其特征在于,所述业务节点包括同步节点和轻量级节点,该中继节点与所述第二邻接业务节点列表中的业务节点、所述第一邻接记账节点列表中的记账节点进行区块链通信,包括由该中继节点执行的以下步骤:
接收到所述第二邻接业务节点列表中的业务节点发出的待上链信息;
将该待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链;
响应于上链完成,从所述记账节点接收上链的区块;
将上链的区块广播给所述第二邻接业务节点列表中的同步节点,将上链的区块的区块头广播给所述第二邻接业务节点列表中的轻量级节点。
15.根据权利要求14所述的种子节点,其特征在于,所述记账节点包括共识节点和候选节点,所述将该待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链,包括:
将该待上链信息广播到所述第一邻接记账节点列表中的共识节点和候选节点,以便所述共识节点和在共识时已转变为共识节点的候选节点对该待上链信息的区块进行共识。
16.根据权利要求13所述的种子节点,其特征在于,所述确定发出加入请求的节点的身份,包括:
确定发出加入请求的节点标识;
根据所述节点标识,参照预设的黑名单,对所述加入请求进行过滤;
根据滤除后的加入请求中的特定字段,确定发出加入请求的节点的身份。
17.根据权利要求13所述的种子节点,其特征在于,所述第一位置关系标准包括:与该业务节点的距离小于第一距离阈值。
18.根据权利要求13所述的种子节点,其特征在于,所述第一位置关系标准包括:与该业务节点共同位于电子地图中的一个地域版块。
19.根据权利要求13所述的种子节点,其特征在于,该记账节点与所述记账节点列表中的记账节点建立连接并交换记账节点列表中的信息,包括由记账节点执行的以下步骤:
该记账节点与所述记账节点列表中的记账节点建立连接,并向所述记账节点列表中的记账节点发出记账节点列表交换请求;
将所述记账节点自身的记账节点列表发送给所述记账节点列表中的各记账节点,并接收其它记账节点发送的记账节点列表;
将接收的记账节点列表整合到所述记账节点自身的记账节点列表中。
20.根据权利要求19所述的种子节点,其特征在于,所述该记账节点与所述记账节点列表中的记账节点建立连接,并向所述记账节点列表中的记账节点发出记账节点列表交换请求,包括:
根据合法记账节点清单,对所述记账节点列表中的记账节点进行合法性检查;
与合法的记账节点建立连接,并向所述合法的记账节点发出记账节点列表交换请求。
21.根据权利要求13所述的种子节点,其特征在于,所述第二位置关系标准包括:与该中继节点的距离小于第二距离阈值。
22.根据权利要求21所述的种子节点,其特征在于,所述第二位置关系标准包括:与该中继节点共同位于电子地图中的一个地域版块。
23.根据权利要求14所述的种子节点,其特征在于,所述业务节点发出的待上链信息是所述业务节点从客户端接收到待上链信息后,根据预定验证规则,对所述待上链信息进行第一验证通过后发出的。
24.根据权利要求14所述的种子节点,其特征在于,所述将该待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链,包括:
根据预定验证规则,对所述待上链信息进行第二验证;
对第二验证通过的待上链信息发送到所述第一邻接记账节点列表中的记账节点进行上链。
25.一种种子节点,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行权利要求1-12中的任一个所述的方法。
26.一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1-12中的任一个所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910713240.9A CN110489486B (zh) | 2019-08-02 | 2019-08-02 | 生成区块链网络的方法、种子节点和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910713240.9A CN110489486B (zh) | 2019-08-02 | 2019-08-02 | 生成区块链网络的方法、种子节点和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489486A CN110489486A (zh) | 2019-11-22 |
CN110489486B true CN110489486B (zh) | 2020-12-18 |
Family
ID=68549204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910713240.9A Active CN110489486B (zh) | 2019-08-02 | 2019-08-02 | 生成区块链网络的方法、种子节点和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489486B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110944058B (zh) * | 2019-12-04 | 2022-03-04 | 杭州复杂美科技有限公司 | 区块链内网节点中继连接方法 |
CN110943869B (zh) * | 2019-12-16 | 2022-03-04 | 杭州复杂美科技有限公司 | 一种区块共识和广播方法、设备及存储介质 |
CN111125255B (zh) * | 2019-12-24 | 2024-01-23 | 腾讯科技(深圳)有限公司 | 区块数据的处理方法、装置、终端及可读存储介质 |
CN111277635B (zh) * | 2020-01-14 | 2022-11-08 | 深圳市迅雷网络技术有限公司 | 一种外部节点接入区块链方法、设备、装置及计算机介质 |
CN111738779B (zh) * | 2020-07-24 | 2020-12-08 | 江苏荣泽信息科技股份有限公司 | 一种基于标准sql语法的智能合约*** |
CN112055077B (zh) * | 2020-09-02 | 2023-04-18 | 杭州复杂美科技有限公司 | 区块链接入方法、设备和存储介质 |
CN112235420B (zh) * | 2020-12-10 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 基于区块链的数据同步方法、***及相关设备 |
CN112231415B (zh) * | 2020-12-16 | 2021-03-12 | 腾讯科技(深圳)有限公司 | 区块链网络的数据同步方法、***、电子设备及可读介质 |
CN112287033B (zh) * | 2020-12-24 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 一种数据同步方法、设备以及计算机可读存储介质 |
CN113965326B (zh) * | 2021-09-26 | 2022-05-17 | 北京岸思信息科技有限公司 | 一种抗并行攻击的轻量化区块链*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018135766A1 (ko) * | 2017-01-19 | 2018-07-26 | 주식회사 케이티 | 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법 |
CN109002527A (zh) * | 2018-07-13 | 2018-12-14 | 江苏开放大学(江苏城市职业学院) | 一种基于区块链的网络考试***及利用其管理网络考试的方法 |
CN109523385A (zh) * | 2018-12-07 | 2019-03-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN109544177A (zh) * | 2018-11-01 | 2019-03-29 | 广东黾车新能源汽车产业有限公司 | 一种基于区块链技术的配件追踪方法 |
CN109684408A (zh) * | 2018-12-07 | 2019-04-26 | 深圳市智税链科技有限公司 | 区块链***的数据管理方法、装置、介质及电子设备 |
CN109684375A (zh) * | 2018-12-07 | 2019-04-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
-
2019
- 2019-08-02 CN CN201910713240.9A patent/CN110489486B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018135766A1 (ko) * | 2017-01-19 | 2018-07-26 | 주식회사 케이티 | 블록 체인을 이용하여 데이터를 관리하는 장치 및 방법 |
CN109002527A (zh) * | 2018-07-13 | 2018-12-14 | 江苏开放大学(江苏城市职业学院) | 一种基于区块链的网络考试***及利用其管理网络考试的方法 |
CN109544177A (zh) * | 2018-11-01 | 2019-03-29 | 广东黾车新能源汽车产业有限公司 | 一种基于区块链技术的配件追踪方法 |
CN109523385A (zh) * | 2018-12-07 | 2019-03-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
CN109684408A (zh) * | 2018-12-07 | 2019-04-26 | 深圳市智税链科技有限公司 | 区块链***的数据管理方法、装置、介质及电子设备 |
CN109684375A (zh) * | 2018-12-07 | 2019-04-26 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、记账节点和介质 |
Non-Patent Citations (1)
Title |
---|
区块链技术发展现状与展望;袁勇等;《自动化学报》;20160329;第481-494页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110489486A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489486B (zh) | 生成区块链网络的方法、种子节点和介质 | |
US20210243033A1 (en) | Blockchain network interaction controller | |
CN111865598B (zh) | 网络功能服务的身份校验方法及相关装置 | |
CN103339901B (zh) | 内容导向网络环境中的终端和中间节点以及终端和中间节点的通信方法 | |
US11716207B1 (en) | System and method for a dynamic-PKI for a social certificate authority | |
CN113421097B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN110866823A (zh) | 基于公链的交易方法及区块链*** | |
CN111934996B (zh) | 消息传输方法及装置 | |
EP4191498A1 (en) | Data communication method and apparatus, computer device, and storage medium | |
US11336660B2 (en) | Methods and apparatuses for identifying replay transaction based on blockchain integrated station | |
EP3937052B1 (en) | Methods and apparatuses for synchronizing data based on blockchain integrated station | |
CN101895535B (zh) | 用于标识分离映射网络的网络认证方法、装置以及*** | |
CN112152996A (zh) | 基于网关级联的数据传输方法、装置、设备和存储介质 | |
Mershad et al. | A blockchain model for secure communications in internet of vehicles | |
US20220182243A1 (en) | Method and Apparatus for Distributed Ledger | |
CN111866993B (zh) | 无线局域网连接管理方法、装置、软件程序及存储介质 | |
CN113472668A (zh) | 多方安全计算中的路由方法和*** | |
CN112235290A (zh) | 基于区块链的物联网设备管理方法及第一物联网设备 | |
US20160157000A1 (en) | Method and apparatus for establishing trail network | |
US8036218B2 (en) | Technique for achieving connectivity between telecommunication stations | |
CN115669209A (zh) | 接入认证方法、装置、设备及存储介质 | |
Raj et al. | [Retracted] A Mathematical Queuing Model Analysis Using Secure Data Authentication Framework for Modern Healthcare Applications | |
Bermbach et al. | Towards grassroots peering at the edge | |
CN112241888B (zh) | 基于公链的地址管理*** | |
WO2023227067A1 (zh) | 量子网络通信方法、装置、电子设备及存储介质 |
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 |