首页> 中国专利> 对系统中包括的节点操作组的分布式网络系统

对系统中包括的节点操作组的分布式网络系统

摘要

本公开中公开的一实施例的系统,包括分布式网络,分布式网络包括多个计算装置,分布式网络中包括的多个计算装置相互间通过网络以可操作方式连接,多个计算装置中包括的第一网关包括:分布式数据库,通过网络用多个计算装置中的至少一部分的计算装置实现分布式数据库,第一存储器,包括多个计算装置中包括的组装置目录,组装置目录存储有与通过第一网关管理的第一组中包括的计算装置相关的信息,以及第一处理器,与分布式数据库和第一存储器以可操作方式连接;系统包括服务器,服务器包括:网络接口,配置为与分布式网络通信,第二存储器,用于存储网关目录,网关目录包括与包括第一网关的多个网关相关的信息,以及第二处理器。

著录项

  • 公开/公告号CN112753207A

    专利类型发明专利

  • 公开/公告日2021-05-04

    原文格式PDF

  • 申请/专利权人 朴琪业;

    申请/专利号CN201980063366.4

  • 申请日2019-07-24

  • 分类号H04L29/08(20060101);

  • 代理机构44205 广州嘉权专利商标事务所有限公司;

  • 代理人韩茂

  • 地址 韩国京畿道

  • 入库时间 2023-06-19 10:51:07

说明书

技术领域

本公开中公开的实施例涉及一种对等分布式网络系统技术。

背景技术

在如分布式网络系统的由多个节点组成的网络系统中,在该网络中包括的多个节点之间会产生信息到达的时间差。共识算法可以理解为用于参与网络的节点获得对于一个结果的共识的算法。

区块链网络系统是分布式网络(P2P network)系统。为了区块链系统的可靠性,网络中包括的所有节点需确定相同的结果值,因此需要共识算法。例如,目前,使用工作量证明)方法、权益证明(proof of stake)方式、授权股权证明(delegated proof of stake)方式的共识算法。

分布式网络系统可以由分布在全世界任意地区的众多节点组成。因此,节点之间数据或消息传播的速度可能会延迟。

发明内容

发明要解决的问题

现有共识算法中,直接生成区块的节点或所有特定数量以上的加密货币的节点获得区块奖励。因此,网路环境或移动环境下的节点或所有不足特定数量的加密货币的节点无法获得区块奖励。但是,这些节点能够有助于激活分布式网络,尤其区块链网络的生态系统。因此,有必要通过支付奖励来吸引更多的节点参与。

随着参与分布式网络系统的节点数量的增加,数据传播速度变慢。通过将物理位置近的节点分组,能够提高分布式网络的速度。

用于解决问题的手段

本公开中公开的一实施例的系统,其可包括分布式网络,所述分布式网络包括多个计算装置,所述分布式网络中包括的多个计算装置相互间通过网络以可操作的方式连接,所述多个计算装置中包括的第一网关包括:分布式数据库,通过网络用所述多个计算装置中的至少一部分的计算装置实现所述分布式数据库,第一存储器,包括组装置目录,组装置目录包括在所述多个计算装置中并存储有与通过所述第一网关管理的第一组中包括的计算装置相关的信息,以及第一处理器,与所述分布式数据库和所述第一存储器以可操作的方式连接,网络接口,配置为与所述分布式网络通信,服务器,所述服务器包括:第二存储器,用于存储网关目录,所述网关目录包括与包括所述第一网关的多个网关相关的信息,以及第二处理器;所述第二处理器配置为,基于所述网关目录中包括的所述多个网关的第一位置信息和从所述多个计算装置中的第二计算装置接收到的第二位置信息,对所述第二计算装置确定所述多个网关中的第一网关,并将与所述第一网关相关的信息传输给所述第二计算装置;所述第一处理器配置为,在所述组装置目录中存储与所述第二计算装置相关的信息。

另外,本公开中公开的一实施例的服务器装置,其可包括:通信接口,配置为与分布式网络系统中包括的多个计算装置通信,存储器,存储有关于所述多个计算装置中的网关的网关目录,以及至少一个处理器;所述至少一个处理器配置为,基于关于所述多个计算装置中非所述网关的第一计算装置的位置信息和所述网关目录中包括的所述网关的位置信息,对所述第一计算装置确定所述网关中的第一网关,并向所述第一计算装置传输与所述第一网关相关的信息。

发明的效果

根据本公开中公开的实施例,在分布式网络系统中,基于位置,能够有效地管理节点,并提高分布式网络系统的速度。

除此以外,能够提供通过本公开直接或间接掌握的各种效果。

附图说明

图1是一实施例的分布式网络系统的框图。

图2是用于说明一实施例的区块链结构的图。

图3是用于说明一实施例的分布式网络系统中包括的节点的种类的图。

图4示出一实施例的全节点的框图。

图5示出一实施例的轻节点的框图。

图6示出一实施例的服务器的框图。

图7是用于说明一实施例的网关注册(registration)过程的流程图。

图8是用于说明一实施例的网关管理操作的流程图。

图9a、图9b以及图9c是用于说明一实施例中节点加入组的操作的流程图。

图10是一实施例的服务器之间的网关目录同步操作的流程图。

图11是用于说明一实施例的网关生成区块并向组的节点分配区块奖励的操作的流程图。

图12是用于说明一实施例的网关根据组的节点的请求生成区块并分配区块奖励的操作的流程图。

图13是一实施例中网关之间确定区块生成顺序的方法的顺序图。

图14是用于说明一实施例中网关之间区块生成顺序的图。

具体实施方式

以下,参照附图,对本发明的各种实施例进行说明。然而,这并非以特定实施方式限定本发明,应理解为包括本发明的实施例的各种变更(modification)、等效物(equivalent)和/或替代物(alternative)。

图1是一实施例的分布式网络系统100的框图。图2是用于说明一实施例的区块链结构的图。

分布式网络系统100可通过多个计算设备110、120、130、140实现。图1中示出4个计算设备110、120、130、140,但分布式网络系统100还可以包括未图示的任意数量的计算设备。

网络105可包括有线网络和/或无线网络。例如,网络105可以是局域网(localarea network,LAN)、广域网(wide area network,WAN)、虚拟网络、远程通信网络。计算设备110、120、130、140可通过网络105以可操作的方式连接。

计算设备110、120、130、140可以与网络105通信,通过网络105相互间能够收发数据。为了与一个以上的另一计算设备发送和/或接收数据,各计算设备110、120、130、140可以是构成为通过网络105发送数据的任意类型的设备。以下对计算设备110进行的说明可适用于其他计算设备120、130、140。

计算设备110可包括处理器111和存储器112。例如,存储器112可包括随机存取存储器(random access memory,RAM)、存储器缓存器、硬盘驱动器、数据库、可擦编程只读存储器(erasable programmable read-only memory,EPROM),电可擦只读存储器(electrically erasable read-only memory,EEPROM),只读存储器(read-only memory,ROM)和/或等等。

在部分实施例中,处理器111可以是通用处理器、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)和/或等等。

在部分实施例中,计算设备110、120、130、140的一个以上的部分可包括基于硬件的模块(例如,数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA))和/或基于软件的模块(例如,存储于存储器和/或在处理器中执行的计算机编码的模块)。在部分实施例中,与计算设备110、120、130、140相关的一个以上的功能(例如,与处理器111、121、131、141相关的功能)可配置在一个以上的模块中。

在部分实施例中,计算设备110的存储器112可包括分布式数据库114。计算设备110、120、130、140可通过网络105实现分布式数据库114、124、134、144。

处理器111为了响应从另一计算设备接收与交易相关的同步数据等来更新分布式数据库114,可构成为执行模块、功能和/或程序。

在部分实施例中,分布式数据库114可以以区块链结构形式存储通过分布式网络系统100产生的交易和与交易有关的数据。参照图2,举例示出区块链结构200。如图2的(2)部分,可在分布式数据库114上线性连接有以区块单位存储的数据。各区块可通过指向前一区块来连接。参照图2的(2)部分,区块210可由首部(header)220和主体(body)230组成。存储于首部220的数据可以理解为关于该区块210的摘要信息。区块哈希值可基于存储于区块210的首部220的数据来计算。下一区块可通过存储前一区块的区块哈希值来指向前一区块。由此,分布式网络系统100可称为区块链网络系统。

图3是用于说明一实施例的分布式网络系统100中包括的节点的种类的图。

分布式网络系统100中包括的每个计算设备(例如,图1的计算设备110、120、130、140)可理解为节点(node)。分布式网络系统100中包括的节点可分为全节点(full node)300和轻节点(light node)400。

全节点300是实时同步保持区块链200中包括的所有信息(例如,首部220信息和主体230信息)的节点。是能够执行交易功能(例如,钱包功能)的节点。轻节点400可以产生交易,并将所产生的交易通过网络105传播到相邻节点。在部分实施例中,轻节点400还可以仅具备区块链300中包括的部分信息(例如,首部220信息),执行对所生成的区块的验证。

以下,全节点300和轻节点400可以统称为分布式网络系统100中包括的节点。

分布式网络系统100中包括的节点可基于位置信息,归属到不同的组中。可将近位的节点分成同一组。

组可通过与分布式网络系统100通信的至少一个以上的服务器500来确定。以下,以一个服务器500进行说明,但也可以通过多个服务器500执行分组。服务器500可基于节点的位置信息,将相邻的节点分成同一组。由此,相互间经常执行通信的相邻节点属于一组,从而能够提高通信的效率性。服务器500可通过第三方运营。

全节点300的至少一部分可作为网关(gateway)301操作。网关301可生成区块210,并且能够管理一个组。网关301通过生成区块210,领到区块奖励,可将领到的区块奖励分配给自己所属的组的节点。不同的网关301可以管理不同的组。

参照图3,组1包括4个全节点300和6个轻节点400。在4个全节点300中,1个全节点300可作为网关301操作。网关301可具有组1中所属的节点的信息。网关301领到区块奖励时,可向组1中所属的节点分配区块奖励。分布式网络系统100可具有一个以上的组,各组可具有至少一个网关301。

图4示出一实施例的全节点300的框图,图5示出一实施例的轻节点400的框图。图6示出一实施例的服务器500的框图。

参照图4,全节点300可包括通信接口305、处理器310、存储器320。全节点300可通过通信接口305与分布式网络系统100中包括的节点和服务器500执行通信。

全节点300可在存储器320中存储区块链信息322(例如,与图2的区块链200相关的信息)、服务器目录324,组加入明细326以及钱包程序328。

区块链信息322可包括图2的区块链200中包括的所有信息。本公开中公开的各种实施例的全节点300可以是window操作系统或Linux操作系统环境的计算机。全节点300可具备能够存储并实时同步有关区块链200的信息的硬件资源。

服务器目录324可包括与对分布式网络系统100的节点执行分组的多个服务器相关的信息。例如,服务器目录324可包括服务器500的固有ID和服务器500位置信息(IP、纬度、经度)。全节点300为了加入组或成为网关301,可向服务器目录324中包括的至少一个服务器500发送请求。

当全节点300具有之前加入组的履历时,组加入明细326可包括与该组相关的信息。例如,组加入明细326可包括所加入的组的网关301的账户信息。

钱包程序328可生成在分布式网络系统100上进行的加密货币的收款、汇款等交易。全节点300的账户可成为钱包程序328的钱包地址。钱包程序328可以是在window操作系统或Linux操作系统环境下操作的程序。

全节点300作为网关301操作时,全节点300还可包括网关目录330和节点池335。网关目录330可包括与当前作为网关301操作并运营组的网关相关的信息。网关目录330还可存储在服务器500中,在服务器500不能操作等以外情况下能够发挥备份作用。

在各种实施例中,一个全节点300可作为多个网关操作。该情况下,所述多个网关IP相同,但可具有不同的端口编号。

节点池335中可包括与网关301运营的组中所属的节点(计算装置)相关的信息。节点池335中可包括该组中所属的计算装置的目录。

参照图5,轻节点400可包括通信接口405、处理器410以及存储器420。轻节点400可通过通信接口405与分布式网络系统100中包括的节点和服务器500执行通信。

轻节点400的存储器420中可存储钱包应用422、服务器目录424以及组加入明细426。

钱包程序428可生成在分布式网络系统100上进行的加密货币的收款、汇款等交易。钱包程序428可以是在安卓或IOS等移动环境下操作的程序。服务器目录424和组加入明细426实质上与全节点300的服务器目录324和组加入明细326相同。

参照图6,服务器500可包括通信接口505、处理器510以及存储器520。服务器500可通过通信接口505与分布式网络系统100的节点(全节点300、轻节点400)执行通信。

处理器510可包括分组模块512。例如,处理器510可通过执行存储在存储器520的命令来驱动分组模块512。分组模块512可通过硬件实现,也可以通过软件来实现。通过分组模块512执行的操作可以理解为通过处理器510执行的操作。分组模块512可基于多个节点的位置信息来确定对节点的组。

存储器520中可存储网关目录522和服务器目录524。网关目录522可与存储在全节点300的网关目录330相互同步。服务器目录524可包括执行与服务器500相同的作用的另一服务器的信息。

图7是用于说明一实施例的网关的注册过程的流程图。

为了作为网关301操作,全节点300可向任一服务器(第一服务器500-1)发送网关注册请求消息(701)。全节点300可利用存储在内部的服务器目录,向服务器目录中包括的任一服务器发送所述消息。例如,示出向第一服务器500-1发送所述消息的例示。

网关注册消息中可包括全节点300的IP地址信息、全节点300的端口(port)编号信息、全节点300的纬度信息、全节点300的经度信息中的至少任一信息。所述信息可以理解为与网关301的位置相关的信息。

第一服务器500-1可检测所接收的网关注册消息的有效性(703),并向全节点300发送网关注册响应消息(705)。第一服务器500-1可对网关注册请求消息中包括的数据与网关目录信息进行比较。第一服务器500-1可利用与全节点300的位置相关的信息,从网关目录中选择位于与所述全节点300相邻的位置的网关301。

网关注册响应消息中可包括对网关注册消息的处理结果的成功/失败与否(return_val),可包括分发给所述全节点300的网关ID。

当网关注册响应消息中包括的所述处理结果为成功时,全节点300可将所接收的网关ID注册为自身的ID,向第一服务器500-1发送网关注册处理消息。网关注册处理消息中可包括全节点300注册的网关ID。当网关注册响应消息中包括的所述处理结果为失败时,全节点300向服务器目录中包括的另一服务器执行操作701至操作709。

第一服务器500-1接收到网关注册处理消息时,可利用其中包括的网关ID来更新网关目录(711)。第一服务器500-1可通过将网关追加请求消息传输给另一服务器,来传播更新后的网关目录。网关追加请求消息中可包括以下信息中的至少一个以上的信息。网关追加请求消息中可包括第一服务器500-1的同步索引(编号)。同步索引可以是在网关目录被更新时(追加网关时)被更新的数字。例如,同步索引可以为0~(pow(2,32)-1)值的范围内的数字。网关追加请求消息中可包括注册到第一服务器500-1的网关数量和第一服务器500-1中包括的网关目录。网关追加请求消息中可包括网关目录中包括的网关的IP地址、端口编号、纬度信息、经度信息中的至少一个。

网关追加请求消息可传输至例如存储在第一服务器500-1的服务器目录中包括的第二服务器500-2至第n服务器500-n(713、717)。接收到网关追加请求消息的第二服务器500-2可识别发送所述消息的第一服务器500-1。例如,第二服务器500-2可利用发送所述消息的发送地的IP来识别第一服务器500-1。第二服务器500-2可加载存储在第二服务器500-2的网关目录。具体而言,第二服务器500-2可对所接收的消息中包括的第一同步索引与存储在第二服务器500-2的第二同步索引进行比较。第一同步索引大于第二同步索引时,第二服务器500-2将存储在第二服务器500-2的网关目录更新为通过所述消息接收的网关目录,从而能够更新自身的第二同步索引。网关更新过程完成后,第二服务器500-2可向第一服务器500-1传输反映了处理结果的网关追加响应消息(715)。可对除了第一服务器500-1的服务器目录中包括的第二服务器500-2以外的第三服务器至第n服务器500-n执行操作713至操作715。

图8是用于说明一实施例的网关管理操作的流程图。

全节点300通过第一服务器500-1注册为网关301时,第一服务器500-1管辖网关301。另外,全节点300作为网关301执行操作。第一服务器500-1可周期性地检查消息是否可到达网关301。例如,第一服务器500-1可向网关301传输回显消息(801),接收对此的响应消息(803),从而能够判断网关301是否处于操作。操作801以及操作803可按照预先设定的周期(例如,2分钟)反复执行。

例如,回显消息中可包括用于识别回显消息的任意的数。回显响应消息可包括所接收的回显消息中包括的任意的数。第一服务器500-1可通过比较所述任意的数,确认为接收到对该回显消息的响应。

第一服务器500-1向网关301反复发送回显消息但没有对此的响应时,可从网关目录删除网关301(807)。例如,第一服务器500-1传输预先设定的次数(例如,3次)的回显消息但没有接收到对此的响应时,可判断为该网关301上相关程序已结束,或者网关301的网络中断。

该情况下,第一服务器500-1可通过向另一服务器传输网关删除请求消息,与另一服务器同步网关目录(809、813)。网关删除请求消息中可包括第一服务器500-1的同步索引(编号)。同步索引可以是网关目录被更新时(即,删除网关时)更新的数字。例如,同步索引可以是0~(pow(2,32)-1)值的范围内的数字。网关删除请求消息中可包括注册到第一服务器500-1的网关数量和第一服务器500-1中包括的网关目录。

网关删除请求消息可传输至例如存储在第一服务器500-1的服务器目录中包括的第二服务器500-2至第n服务器500-n(809、813)。接收到网关删除请求消息的第二服务器500-2可识别发送所述消息的第一服务器500-1。例如,第二服务器500-2可利用发送所述消息的发送地的IP来识别第一服务器500-1。第二服务器500-2可加载存储在第二服务器500-2的网关目录。具体而言,第二服务器500-2可对所接收的消息中包括的第一同步索引与存储在第二服务器500-2的第二同步索引进行比较。第一同步索引大于第二同步索引时,第二服务器500-2将存储在第二服务器500-2的网关目录更新为通过所述消息接收的网关目录,从而能够更新自身的第二同步索引。网关更新过程完成后,第二服务器500-2可向第一服务器500-1传输反映了处理结果的网关追加响应消息(811)。可对除了第一服务器500-1的服务器目录中包括的第二服务器500-2以外的第三服务器至第n服务器500-n执行操作809至操作813。

图9a、图9b以及图9c是用于说明一实施例中节点加入组的操作的流程图。

分布式网络系统100中包括的全节点300(不作为网关操作的全节点)和轻节点400可加入到通过至少一个网关301运营的任一组中。以下,对轻节点400加入组的操作进行例示说明,但全节点300也可以通过执行相同的操作来加入组中。

在一例子中,轻节点400可包括组加入明细。例如,具有与分布式网络系统100的至少一个网关连接的履历时,组加入明细可包括与所连接的网关相关的信息。

轻节点400可查询组加入明细(901)。组加入明细可包括至少一个网关的地址。例如,所述地址可以理解为网关的地址,是注册到分布式网络系统100的地址(例如,公开密钥、钱包地址)。组加入明细中可包括例如第一网关301-1的地址和第二网关301-2的地址。轻节点400可先从组加入明细中选择第一网关301-1(903),向第一网关301-1传输组加入请求(subscription request)消息(905)。组加入请求消息中可包括轻节点400的地址(例如,钱包地址)。第一网关301-1接收到组加入请求消息时,可确认轻节点400是否可以加入(907)。第一网关301-1可通过确认所接收到的轻节点400的地址,确认是否可以接受所述轻节点400。例如,对于各网关可接受的节点的数量可能有限制。所述数量可根据各网关的硬件环境和/或软件的政策预先设定。

可接受轻节点400的情况下,第一网关301-1可将轻节点400的地址存储于第一网关301-1的节点池中。第一网关301-1生成与轻节点400对应的节点ID,可将所述节点ID和所述轻节点400的地址存储于所述节点池中。所述节点ID和轻节点400的地址可被映射存储。

但是,第一网关301-1不可接受轻节点400的情况下,轻节点400需要向另一节点重新进行组加入请求。

第一网关301-1可将关于轻节点400的组加入请求消息的组加入响应消息传输给轻节点400。组加入响应消息中可包括对于组加入请求的成功/失败与否。另外,组加入成功的情况下,可包括对轻节点400生成的节点ID。

例如,不可接受轻节点400的情况下,第一网关301-1可将包括失败(例如,null)的响应的组加入响应消息传输给轻节点400(909)。轻节点400解析所接收的组加入响应消息,确认到失败与否时,可选择组加入明细中非第一网关301-1的另一网关。组加入明细中再无其他网关时,轻节点400可执行通过图10进行后述的操作。

在图9a中,轻节点400可选择组加入明细中包括的第二网关301-2(911)。轻节点400可向第二网关301-2传输组加入请求消息(913)。第二网关301-2可通过确认所接收的轻节点400的地址,确认可否接受所述轻节点400(915)。在接受轻节点400的情况下,第二网关301-2可将轻节点400的地址存储于第二网关301-2的节点池中(917)。例如,第二网关301-2可生成与轻节点400对应的节点ID,并将所述节点ID和所述轻节点400的地址存储于所述节点池中。第二网关301-2可将关于轻节点400的组加入请求消息的组加入响应消息传输给轻节点400(919)。该组加入响应消息中可包括对组加入请求的成功的响应,可包括轻节点400的节点ID。

参照图9b,轻节点400不包括组加入明细时,轻节点400可向服务器目录中包括的服务器中的任一服务器500传输网关信息请求消息(950)。网关信息请求消息可包括轻节点400的IP信息、轻节点400的端口信息、轻节点400的纬度信息以及轻节点400的经度信息中的至少一个信息。

服务器500可响应网关信息请求消息,生成候选网关目录(953)。服务器500可传输网关信息响应消息(955)。网关信息响应消息中可包括所生成的所述候选网关目录和候选网关的数量信息。

轻节点400可利用所接收到的候选网关目录执行通过图9详细说明的操作901至操作919。当前没有可加入的组时,可反复执行操作951至操作955。

参照图9c,在一例示中,作为轻节点400的位置信息,轻节点400可获取纬度信息和/或经度信息(961)。例如,轻节点400可以是可携式设备(例如,智能手机、平板PC)。轻节点400的位置可实时变更。

轻节点400可将包括所述纬度信息和/或经度信息的网关信息请求消息传输给服务器500(963)。在各种实施例中,可根据轻节点400的纬度坐标和/或经度坐标的变更,请求待连接到服务器500的网关的信息。或者,轻节点400可按规定周期,基于当前的位置信息,向服务器500请求待连接的网关的信息。

在部分实施例中,网关信息请求消息中可包括轻节点400请求的网关的数量、轻节点400的IP地址、轻节点400的纬度信息以及轻节点400的经度信息。

服务器500可将轻节点400注册到节点等待池(965)。为了从轻节点接收到网关信息请求消息时,依次处理所述请求,服务器500可运营节点等待池。以下,服务器500的操作可通过服务器500的处理器510的分组模块512执行。

服务器500可查询网关目录(967),计算出网关目录中包括的网关与轻节点400之间的距离(969)。例如,服务器500可基于轻节点400的纬度信息、经度信息、网关的纬度信息以及经度信息,计算出两者之间的距离(例如,GPS坐标上的距离)。服务器500可对于网关目录中包括的网关执行所述计算,按照与轻节点400近距离的顺序确定候选网关。服务器500可生成包括所确定的候选网关的候选网关目录(971)。候选网关目录中可包括由轻节点400请求的数量的候选网关。服务器500可将包括候选网关目录的网关信息响应消息传输给轻节点400(983)。

图10是一实施例的多个服务器之间的网关目录同步操作的流程图。

服务器500可按照预先设定的周期将服务器500中包括的网关目录共享给另一服务器。参照图10,例如,例示了第一服务器500-1和第二服务器500-2的同步过程。第二服务器500-2可将对网关目录的同步请求消息传输给第一服务器500-1(1001)。所述同步请求消息中可包括存储于第二服务器500-2的同步索引(编号)、网关目录。同步索引可以是更新网关目录时被更新数字。例如,同步索引可以是0~(pow(2,32)-1)值的范围内的数字。

第一服务器500-1可对存储于第一服务器500-1的第一同步索引与从第二服务器500-2接收的第二同步索引进行比较。第二同步索引大于第一同步索引时,第一服务器500-1可通过将存储于第一服务器500-1的网关目录更新为通过所述消息接收的网关目录,来更新自身的第一同步索引(1003)。第一服务器500-1可将同步请求响应消息传输给第二服务器500-2。同步请求响应消息中可包括对于同步请求的处理结果(成功或者失败)。可按照预先设定的周期在分布式网络系统100中包括的不同的服务器之间执行操作1001至操作1005。

在各种实施例中,新追加的第n服务器500-n可执行初始化启动(1011),向任意相邻服务器即第一服务器500-1传输初始同步请求消息(1013)。第一服务器500-1可将初始同步响应消息传输给第n服务器500-n。初始同步响应消息中可包括分布式网络系统100中包括的服务器的信息。服务器的信息中可包括服务器的数量、存储于服务器的网关的目录、网关的数量、对网关目录的同步索引。第n服务器500-n接收到初始同步响应消息时,可存储所述消息中包括的信息,并执行同步。

图11是用于说明一实施例的网关生成区块并向组的节点分配区块奖励的操作的流程图。

例如,通过网关301运营的组中可包括第一轻节点400-1、第二轻节点400-2以及第三轻节点400-3。网关301可将组中包括的节点的信息存储于节点池中。

网关301可对于节点池中包括的节点周期性地收集使用年限信息(ageinformation)。网关301可基于所收集的使用年限信息向节点分配区块奖励。使用年限信息可与节点所有的加密货币量成比例,可与该加密货币的所有期间成比例。更长时间持有更多的加密货币的节点会领到更多的区块奖励。

网关301可周期性地向节点池的节点传输使用年限信息请求消息。例如,网关301可向第一轻节点400-1、第二轻节点400-2以及第三轻节点400-3传输使用年限信息请求消息(1101、1105、1109)。网关301可从第一轻节点400-1、第二轻节点400-2以及第三轻节点400-3接收到响应所述使用年限信息请求消息接收的使用年限响应消息(1103、1107、1111)。在另一个例子中,节点可周期性地发送使用年限信息,网关301可收集接收到的使用年限信息。

使用年限信息响应消息中可包括节点在特定时间点所有的加密货币量的信息。或者使用年限信息响应消息中可包括通过各节点演算的数值(分数)。分布式网络系统100中的节点可适用用于计算使用年限信息的同一算法。例如,可演算出第一轻节点400-1的第一使用年限分数、第二轻节点400-2的第二使用年限分数、第三轻节点400-3的第三使用年限分数。

网关301可将第一使用年限分数映射到第一轻节点400-1并存储在节点池中。

关于第二使用年限分数、第三使用年限分数,网关301在到自己的区块生成顺序时,可生成区块并领到区块奖励。关于区块奖励,按所生成的区块,网关301可将区块生成消息传播到分布式网络上(1115)。网关301可基于所收集的使用年限信息,确定待支付给节点的奖励(1117)。

区块奖励可分配给生成区块的网关301和通过网关301运营的节点。例如,除了分发给网关301的奖励以外,剩余区块奖励可根据第一轻节点400-1的第一使用年限分数、第二轻节点400-2的第二使用年限分数以及第三轻节点400-3的第三使用年限分数的比例,分配给各节点。网关301可将所确定的奖励支付给节点的账户(例如,钱包)。例如,网关301可产生向节点池中包括的节点支付区块奖励的交易(1119)。产生所述交易后,网关301可向节点池的节点传输关于区块奖励支付的通知消息(1121、1125、1131)。第一轻节点400-1、第二轻节点400-2以及第三轻节点400-3可响应所述通知消息,将各自的使用年限分数初始化为0(1123、1127、1131)。各自的使用年限分数可根据网关301生成下一个区块为止的加密货币持有量和持有时间来重新演算。

在各种实施例中,网关301可按预先设定的周期对组中所属的节点确认是否与该网关301连接和加密货币持有量(例如,操作1101至操作1111)。例如可每5分钟执行所述确认操作。网关301可配置为确认一节点的使用年限分数与网关301连接的周期的数和所持有的加密货币量成比例。在操作1117中确定的奖励可与网关301所属的节点的使用年限分数的总和x按使用年限分数支付的奖励的量相同。在对于网关301的奖励和支付给组的节点的奖励之和与基于区块生成产生的区块奖励相同时,接收区块生成消息的全节点300可执行区块的连接。

图12是用于说明一实施例的网关根据组的节点的请求生成区块并分配区块奖励的操作的流程图。

分布式网络系统100的节点300、400可产生各种交易。所产生的交易可通过分布式网络系统100中包括的至少一个节点进行处理,并存储于区块链200。

在部分实施例中,产生大量交易的节点可向自身所属的组的网关301请求区块生成。节点产生预先设定的量以上的交易时,可向网关301请求区块生成。网关301可生成区块,并向所述节点支付区块奖励。该区块奖励可成为分布式网络系统200中的节点产生更多交易的吸引政策。

各节点可产生交易,并更新交易分数。例如,第一节点400-1可产生交易,并更新交易分数(1201)。在部分实施例中,交易分数可配置为与附加到交易的手续费成比例。例如,交易分数可计算为每个单位手续费为1分。

第一节点400-1可确定更新的交易分数是否为基准值以上(1203)。可反复进行操作1201和操作1203直到交易分数成为基准值以上。基准值可根据分布式网络系统200上交易产生频率来相对地确定。

第一节点400-1在自身的交易分数为基准值以上时,可向自身所属的组的运营者即网关301传输区块生成请求消息(1205)。所述区块生成请求消息中可包括第一节点400-1的交易分数和通过第一节点400-1产生的交易的目录。所述交易通过第一节点400-1的账户进行数字签名。

网关301可验证第一节点400-1的交易分数和交易的目录,并生成区块(1207)。该区块中可包括请求区块生成的第一节点400-1的账户地址和从第一节点400-1接收到的交易分数。

网关301可将区块生成消息传输至分布式网络(1209)。当领到区块奖励时,网关301可将该区块奖励分配给网关301自身和第一轻节点400-1。网关301可产生支付区块奖励的交易(1211),并将通知区块奖励的支付的通知消息传输至第一轻节点400-1(1213)。第一轻节点400-1可将自身的交易分数初始化为0(1215)。例如,可根据与第一轻节点400-1的账户地址相关的区块发行时戳,确定向该区块支付奖励的时间。

确定交易分数的政策可一致地适用于分布式网络系统100中包括的节点。接收到区块生成消息的全节点300鉴于所述政策来验证对于第一轻节点400-1的交易分数是否合理和所支付的奖励是否合理。当完成验证时,全节点300可执行区块的连接。

图13是一实施例中网关之间确定区块生成顺序的方法的顺序图。图14是用于说明一实施例中网关之间区块生成的图。

在分布式网络系统100中包括的全节点300中,网关301可具有生成区块的权限。例如,一全节点300向分布式网络系统100支付规定保证金(例如,规定数量的加密货币)时,可作为网关301操作。所述保证金可在网关301归还网关权限时,返还给该账户。

网关301可具有在分布式网络系统100上作为网关操作的节点的目录(网关目录)。每当追加或删除网关301时,所述网关目录可通过服务器500和/或网关301被相互同步。

参照图13,根据一实施例确定区块生成者的方法可包括操作1310至1330。所述操作1310至1330可由例如图4的全节点300执行。所述操作1310至1330例如可通过由所述全节点300的处理器310执行(或者实施)的指令(命令)实现。所述指令可存储于例如计算机存储介质或者全节点300的存储器320中。

在操作1310中,至少一个网关301可对网关目录中包括的至少一部分的网关301计算出分数值。

在部分实施例中,多个网关301可按照作为网关操作久的顺序生成区块。另外,生成区块并领到奖励的网关被排到后位。网关301可按照久的顺序注册到区块生成者池。例如,可按照久的顺序对上位n%的网关计算所述分数值。

所述分数值可设定为通过哈希函数演算。作为哈希函数的参数,可利用之前区块的哈希值、使用年限分数值(例如,图11的使用年限分数值)。可利用作为哈希函数公知的各种哈希函数(例如,SHA-256)。所述使用年限分数值可以为特定网关301管理的组中的节点的使用年限分数值的总和。区块生成的权限的共识过程中,可利用与网关管理的组相关的信息。根据该观点,分布式网络系统100中可适用组股权证明方式的共识算法。

在操作1320中,至少一个网关301可基于所述分数值,确定预先设定的数量(第一值)的网关(第一套)。例如,可以以分数值高的顺序选定上位10个网关。

在操作1330中,第一套中的至少一部分网关可确定为区块生成者。一实施例中,第一套中的网关可执行对于区块生成者的投票。例如,第一套中的网关可执行关于区块生成的投票。第一套中的网关中获得预先设定的数(第二值)以上的投票的网关确定为区块生成者。

参照图14的(1)部分,确定的区块生成者在一个循环期间依次生成区块。例如,网关A、网关B、网关C以及网关D被确定为本循环的区块生成者。区块生成者可在分别设定为自身生成区块的时隙生成区块(防止分叉)。可配置为,网关A在时隙1生成区块A,网关B在时隙2生成区块B,节点C在时隙3生成区块C,网关D在时隙4生成区块D。各网关A至D可通过图11中详细说明的操作生成区块(第一类型的区块),并将区块奖励分配给各自的组的节点。

在部分实施例中,在一个循环内,可产生通过满足交易分数的节点进行的区块生成请求(例如,图12的操作1205)。参照图14的(2)部分,在时隙2可由任意的网关X产生区块生成请求。可通过被网关X管理的组中包括的任一节点产生区块生成请求。该情况下,在时隙3生成基于所述区块生成请求的区块X,在时隙4和时隙5进行基于网关C、D的区块生成。网关X可通过图12中详细说明的操作生成区块(第二类型的区块),并将区块奖励分配给自身和所述节点。

本公开的各种实施例以及所使用的术语并非以特定的实施例限定本公开中记载的技术特征,应理解为包括该些实施例的各种变更、等同方案或者替代方案。关于附图的说明,对于类似或者相关的构成要素可使用类似的附图标记。在相关上下文上未明确指明的情况下,与单品对应的名词的单数形式可包括一个或多个单品。本公开中,“A或B”、“A以及B中至少一个”、“A、B或者C”、“A、B以及C中至少一个”以及“A、B或者C中至少一个”等句子可包括这些句子中与相应的句子一同举例的项目的所有可能的组合。“第一”、“第二”或者“第一个”或者“第二个”等术语可单纯地用于将该些构成要素与另一构成要素进行区分而使用,并非在另一方面(例如,重要性或顺序)上限定该些构成要素。记载有一(例如,第一)构成要素与另一(例如,第二)构成要素“功能性地”或者“通信地”等术语一同或者无这些术语“连接”或者“相连”时,可以指一构成要素可以与另一构成要素直接(例如,有线)、无线或者经过第二构成要素连接。

本公开中所使用的术语“模块”可包括以硬件、软件或者固件实现的单元,可以与例如,逻辑、逻辑块、部件或者电路等术语互换使用。模块可以成为一体构成的部件或者执行一个或期以上的功能的部件的最小单位或者其一部分。例如,根据一实施例,模块可以以专用集成电路(application-specific integrated circuit,ASIC)的形式实现。

本公开的各种实施例可作为包括存储于可由设备(machine)(例如,电子装置#01)读取的存储介质(storage medium)(例如,内置存储器#36或者外置存储器#38)的一个以上的命令的软件(例如,程序#40)实现。例如,设备(例如,电子装置#01)的处理器(例如,处理器#20)可从存储于存储介质的一个以上的命令中调用至少一个命令,并执行该命令。这可以实现设备根据所调用的所述至少一个命令执行至少一个功能。所述一个以上的命令可包括通过编译器生成的代码或者可通过解释器执行的代码。可由设备读取的存储介质可以以非暂时性(non-transitory)存储介质的形式提供。这里,“非暂时性”只是指存储介质为实际存在(tangible)的装置,不包括信号(signal)(例如,电子波),该术语不区分数据半永久地存储于存储介质的情况和临时存储的情况。

根据一实施例,本公开中公开的各种实施例的方法可包括计算机程序产品(computer program product)。可作为计算机程序产品,在买家和卖家之间交易。计算机程序产品可以以可由设备读取的存储介质(例如,compact disc read only memory(CD-ROM))的形态分配,或者通过应用商店(例如,游戏商店TM)或者两个用户装置(例如,智能手机)之间直接或者在线分配(例如,下载或者上传)。在线分配的情况下,计算机程序产品的至少一部分可以在可由制造商的服务器、应用商店的服务器或者中转服务器的存储器等设备读取的存储介质至少临时存储或临时生成。

根据各种实施例,所说明的构成要素的各自的构成要素(例如,模块或者程序可包括一个或者多个个体。根据各种实施例,可省略前述的构成要素中的一个以上的构成要素或者操作,或者可追加一个以上的另一构成要素或者操作。替代或者追加地,多个构成要素(例如,模块或者程序)可合并为一个构成要素。该情况下,合并的构成要素可通过合并之前的多个构成要素中的构成要素与多个构成要素各自的构成要素的一个以上的功能相同或者类似的功能。根据各种实施例,通过模块、程序或者另一构成要素执行的操作可依次、并列、反复或者启发地实施,或者操作中的一个以上可以以不同顺序实施或者可省略或者追加一个以上的另一操作。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号