CN111447216A - 用于变更共识节点的方法和装置 - Google Patents
用于变更共识节点的方法和装置 Download PDFInfo
- Publication number
- CN111447216A CN111447216A CN202010218700.3A CN202010218700A CN111447216A CN 111447216 A CN111447216 A CN 111447216A CN 202010218700 A CN202010218700 A CN 202010218700A CN 111447216 A CN111447216 A CN 111447216A
- Authority
- CN
- China
- Prior art keywords
- consensus
- node set
- nodes
- common
- access control
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- 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
-
- 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/604—Tools and structures for managing or administering access control systems
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- 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/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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Automation & Control Theory (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开的实施例涉及区块链技术领域,公开了用于变更共识节点的方法和装置。该方法的一具体实施方式包括:监听目标账户的访问控制列表中的共识节点是否发生变更,其中,目标账户是由预设的共识节点集合控制的账户,访问控制列表中包括控制目标账户的共识节点集合;若发生变更,则获取共识节点集合中的共识节点针对访问控制列表中的共识节点发生变更的投票;基于投票结果,确定针对共识节点集合的处理结果,其中,处理结果表征是否对共识节点集合进行变更;若处理结果表征对共识节点集合进行变更,则对共识节点集合进行变更。该实施方式通过变更目标账户的拥有者的方式实现对共识节点集合的变更,这种方式更加简单高效。
Description
技术领域
本公开的实施例涉及计算机技术领域,具体涉及用于变更共识节点的方法和装置。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。在实际的区块链网络中,节点的行为会发生异常,例如,故障、伪造或丢弃信息等,造成数据的丢失、损坏、延迟或重复发送。为保证区块链网络的正常运行以及各节点能够接收到正确的数据信息,区块链网络会采用共识机制,对交易进行验证和确认。
在一些情况下,需要对区块链网络中的共识节点进行变更。相关的变更共识节点的方式通常是待加入共识节点集合中的待加入节点发起一个提案,已有的共识节点对上述提案进行投票,基于投票结果确定是否将待加入节点加入到共识节点集合中。
发明内容
本公开的实施例提出了用于变更共识节点的方法和装置。
第一方面,本公开的实施例提供了一种用于变更共识节点的方法,包括:监听目标账户的访问控制列表中的共识节点是否发生变更,其中,目标账户是由预设的共识节点集合控制的账户,访问控制列表中包括控制目标账户的共识节点集合;若发生变更,则获取共识节点集合中的共识节点针对访问控制列表中的共识节点发生变更的投票;基于投票结果,确定针对共识节点集合的处理结果,其中,处理结果表征是否对共识节点集合进行变更;若处理结果表征对共识节点集合进行变更,则对共识节点集合进行变更。
在一些实施例中,在监听目标账户的访问控制列表中的共识节点是否发生变更之前,该方法还包括:利用预设的创世参数,对共识节点集合进行初始化,其中,创世参数包括:目标账户、共识节点标识、共识节点的网络地址和共识机制名称。
在一些实施例中,基于投票结果,确定针对共识节点集合的处理结果,包括:确定针对访问控制列表中的共识节点发生变更的支持票的票数是否大于预设的票数阈值;若是,则将针对共识节点集合的处理结果确定为对共识节点集合进行变更。
在一些实施例中,访问控制列表包括共识节点集合中共识节点对应的投票权重;以及确定针对访问控制列表中的共识节点发生变更的支持票的票数是否大于预设的票数阈值,包括:将针对访问控制列表中的共识节点发生变更的支持票所来源的共识节点对应的投票权重进行相加作为支持票的票数;确定支持票的票数是否大于预设的票数阈值。
在一些实施例中,基于投票结果,确定针对共识节点集合的处理结果,包括:确定针对访问控制列表中的共识节点发生变更的支持票的票数与共识节点集合中共识节点的数量的比值;确定比值是否大于预设的比值阈值;若是,则将针对共识节点集合的处理结果确定为对共识节点集合进行变更。
第二方面,本公开的实施例提供了一种用于变更共识节点的装置,包括:监听单元,被配置成监听目标账户的访问控制列表中的共识节点是否发生变更,其中,目标账户是由预设的共识节点集合控制的账户,访问控制列表中包括控制目标账户的共识节点集合;获取单元,被配置成若发生变更,则获取共识节点集合中的共识节点针对访问控制列表中的共识节点发生变更的投票;确定单元,被配置成基于投票结果,确定针对共识节点集合的处理结果,其中,处理结果表征是否对共识节点集合进行变更;变更单元,被配置成若处理结果表征对共识节点集合进行变更,则对共识节点集合进行变更。
在一些实施例中,该装置还包括:初始化单元,被配置成利用预设的创世参数,对共识节点集合进行初始化,其中,创世参数包括:目标账户、共识节点标识、共识节点的网络地址和共识机制名称。
在一些实施例中,确定单元进一步被配置成通过如下方式基于投票结果,确定针对共识节点集合的处理结果:确定针对访问控制列表中的共识节点发生变更的支持票的票数是否大于预设的票数阈值;若是,则将针对共识节点集合的处理结果确定为对共识节点集合进行变更。
在一些实施例中,访问控制列表包括共识节点集合中共识节点对应的投票权重;以及确定单元进一步被配置成通过如下方式确定针对访问控制列表中的共识节点发生变更的支持票的票数是否大于预设的票数阈值:将针对访问控制列表中的共识节点发生变更的支持票所来源的共识节点对应的投票权重进行相加作为支持票的票数;确定支持票的票数是否大于预设的票数阈值。
在一些实施例中,确定单元进一步被配置成通过如下方式基于投票结果,确定针对共识节点集合的处理结果:确定针对访问控制列表中的共识节点发生变更的支持票的票数与共识节点集合中共识节点的数量的比值;确定比值是否大于预设的比值阈值;若是,则将针对共识节点集合的处理结果确定为对共识节点集合进行变更。
第三方面,本公开的实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第一方面中任一实现方式描述的方法。
第四方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现如第一方面中任一实现方式描述的方法。
本公开的上述实施例提供的用于变更共识节点的方法和装置,通过监听目标账户的访问控制列表中的共识节点是否发生变更;若发生变更,则获取上述共识节点集合中的共识节点针对上述访问控制列表中的共识节点发生变更的投票;之后,可以基于上述投票结果,确定针对上述共识节点集合的处理结果;若上述处理结果表征对上述共识节点集合进行变更,则可以对上述共识节点集合进行变更。通过这种方式可以将目标账号与共识节点集合关联起来,通过变更目标账户的拥有者的方式实现对共识节点集合的变更,这种方式更加简单高效。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开的各个实施例可以应用于其中的示例性***架构图;
图2是根据本公开的用于变更共识节点的方法的一个实施例的流程图;
图3是根据本公开的用于变更共识节点的方法的另一个实施例的流程图;
图4是根据本公开的用于变更共识节点的方法的又一个实施例的流程图;
图5是根据本公开的用于变更共识节点的装置的一个实施例的结构示意图;
图6是适于用来实现本公开的实施例的电子设备的计算机***的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的用于变更共识节点的方法的实施例的示例性***架构100。
如图1所示,***架构100可以包括变更节点101,网络102和共识节点1031、1032、1033。网络102用以在变更节点101和共识节点1031、1032、1033之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
需要说明的是,变更节点101和共识节点1031、1032、1033为存在于同一个区块链网络中的计算机,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机和服务器等。共识节点1031、共识节点1032和共识节点1033相互之间也存在提供通信链路的网络,图1中未示出。
还需要说明的是,变更节点101也可以是共识节点,存在于共识节点1031、1032、1033所在的共识节点集合中。
变更节点101可以首先监听目标账户的访问控制列表中的共识节点是否发生变更;若发生变更,则可以获取上述共识节点集合中的共识节点(例如,共识节点1031、1032、1033)针对上述访问控制列表中的共识节点发生变更的投票;之后,可以基于上述投票结果,确定针对上述共识节点集合(包括共识节点1031、1032、1033的共识节点集合)的处理结果;若上述处理结果表征对上述共识节点集合进行变更,则可以对上述共识节点集合进行变更。
共识节点1031、1032、1033通常是在区块链网络中参与共识的节点,用于在很短的时间内完成对交易的验证和确认。
变更节点101和共识节点1031、1032、1033可以是硬件,也可以是软件。当变更节点101和共识节点1031、1032、1033为硬件时,可以是支持信息交互的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机和服务器等。当变更节点101和共识节点1031、1032、1033为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本公开的实施例所提供的用于变更共识节点的方法通常由变更节点101执行。
应该理解,图1中的变更节点、网络和共识节点的数目仅仅是示意性的。根据实现需要,可以具有任意数目的变更节点、网络和共识节点。
继续参考图2,示出了根据本公开的用于变更共识节点的方法的一个实施例的流程200。该用于变更共识节点的方法,包括以下步骤:
步骤201,监听目标账户的访问控制列表中的共识节点是否发生变更。
在本实施例中,用于变更共识节点的方法的执行主体(例如图1所示的变更节点)可以监听目标账户的访问控制列表(Access Control Lists,ACL)中的共识节点是否发生变更。若上述目标账户的访问控制列表中的共识节点发生变更,则可以执行步骤202。
在本实施例中,上述执行主体可以为区块链网络中的节点,该节点可以用于变更区块链网络中的共识节点。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。共识机制是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认。对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。在这里,上述目标账户通常是由预设的共识节点集合控制的账户,上述共识节点集合中的共识节点通常为参与共识的节点,通常包括上述特殊节点。
需要说明的是,上述区块链网络中所使用的共识机制可以包括权威证明共识算法(Proof-of-Authority,POA),权威证明共识算法是一种基于声誉的共识算法,其运用身份的价值,这意味着,被选为区块链的验证者凭借的不是抵押的加密货币而是个人的信誉。权威的人士(共识节点)用他们的声誉去验证交易和区块,通过把身份和声誉绑定在一起,见证人被激励去验证交易和维护网络安全。
在本实施例中,访问控制列表是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。上述访问控制列表中通常包括控制上述目标账户的共识节点集合。
在这里,访问控制列表中的共识节点发生变更可以包括在访问控制列表中增加新的共识节点,也可以包括在访问控制列表中删除原有的共识节点。上述访问控制列表中的共识节点可以以节点标识进行表征。上述节点标识可以包括节点对应的秘钥对,也可以包括基于对应的秘钥对所生成的节点的身份标识。
步骤202,若发生变更,则获取共识节点集合中的共识节点针对访问控制列表中的共识节点发生变更的投票。
在本实施例中,若在步骤202中监听到上述目标账户的访问控制列表中的共识节点发生变更,则上述执行主体可以获取上述共识节点集合中的共识节点针对上述访问控制列表中的共识节点发生变更的投票。上述投票可以反映上述共识节点集合中的共识节点是否对上述访问控制列表中的共识节点发生变更这一事件是否达成共识。
在这里,上述执行主体可以向上述共识节点集合中的各个共识节点发送投票获取请求,之后,接收共识节点返回的针对上述访问控制列表中的共识节点发生变更的投票。上述投票可以包括支持票、反对票和弃权票。在一些情况下,上述投票也可以仅包括支持票,作为示例,支持票可以以共识节点的签名进行表征。此时,若接收到共识节点发送的签名,则可以表征该共识节点支持上述访问控制列表中的共识节点发生变更。
步骤203,基于投票结果,确定针对共识节点集合的处理结果。
在本实施例中,上述执行主体可以基于投票结果,确定针对共识节点集合的处理结果。上述处理结果可以表征是否对上述共识节点集合进行变更。对上述共识节点集合进行变更可以是将上述访问控制列表中发生变更的共识节点同步到上述共识节点集合中。作为示例,可以利用字符“1”或“T”表征对上述共识节点集合进行变更,此时,可以利用字符“0”或“F”表征不对上述共识节点集合进行变更。
在这里,上述访问控制列表中可以包括投票策略。上述投票策略可以包括若接收到指定的共识节点的支持票,则达成共识。此时,上述执行主体可以确定是否接收到指定的共识节点的支持票。若接收到指定的共识节点的支持票,则可以将针对上述共识节点集合的处理结果确定为对上述共识节点集合进行变更。若未接收到指定的共识节点的支持票,则可以将针对上述共识节点集合的处理结果确定为不对上述共识节点集合进行变更。
步骤204,确定处理结果是否表征对共识节点集合进行变更。
在本实施例中,上述执行主体可以确定在步骤204中确定出的处理结果是否表征对共识节点集合进行变更。作为示例,若处理结果为字符“1”或“T”,则可以确定对上述共识节点集合进行变更;若处理结果为字符“0”或“F”,则可以确定不对上述共识节点集合进行变更。若确定出处理结果表征对上述共识节点集合进行变更,则可以执行步骤205。
步骤205,若处理结果表征对共识节点集合进行变更,则对共识节点集合进行变更。
在本实施例中,若在步骤204中确定出上述处理结果表征对上述共识节点集合进行变更,则上述执行主体可以对上述共识节点集合进行变更。具体地,上述执行主体可以将上述访问控制列表中发生变更的共识节点同步到上述共识节点集合中。作为示例,若上述访问控制列表中增加了一个新的共识节点D,上述执行主体可以将所增加的共识节点D添加到上述共识节点集合。若上述访问控制列表中删除了一个原有的共识节点A,上述执行主体可以从上述共识节点集合中删除共识节点A。
在本实施例的一些可选的实现方式中,上述执行主体可以利用预设的创世参数,对共识节点集合进行初始化。具体地,可以利用上述创世参数指定共识节点,组成共识节点集合。上述创世参数可以是针对创世区块所配置的参数。区块链通常由多个相连的区块构成,每个区块记录了一段时间内网络中比特币的交易情况,可以将区块视为账簿中的帐页。第一个被最早构建的区块称为创世区块,拥有一个唯一的ID标识号。上述创世参数可以包括:上述目标账户、共识节点标识、共识节点的网络地址和共识机制名称。共识节点标识可以是基于对应的秘钥对所生成的节点的身份标识。在这里,上述共识机制名称可以包括POA。
在本实施例的一些可选的实现方式中,上述执行主体可以通过如下方式基于上述投票结果,确定针对上述共识节点集合的处理结果:上述执行主体可以统计针对上述访问控制列表中的共识节点发生变更的支持票的票数;之后,可以确定上述支持票的票数是否大于预设的票数阈值;若确定出上述支持票的票数大于上述票数阈值,则上述执行主体可以将针对上述共识节点集合的处理结果确定为对上述共识节点集合进行变更。
本公开的上述实施例提供的方法通过将目标账号与共识节点集合关联起来,通过变更目标账户的拥有者的方式实现对共识节点集合的变更,这种方式更加简单高效。
进一步参考图3,其示出了根据本公开的用于变更共识节点的方法的另一个实施例的流程300,包括以下步骤:
步骤301,监听目标账户的访问控制列表中的共识节点是否发生变更。
步骤302,若发生变更,则获取共识节点集合中的共识节点针对访问控制列表中的共识节点发生变更的投票。
在本实施例中,步骤301-302可以按照与步骤201-202类似的方式执行,在此不再赘述。
步骤303,将针对访问控制列表中的共识节点发生变更的支持票所来源的共识节点对应的投票权重进行相加作为支持票的票数。
在本实施例中,上述访问控制列表可以包括上述共识节点集合中共识节点对应的投票权重。用于变更共识节点的执行主体可以将针对上述访问控制列表中的共识节点发生变更的支持票所来源的共识节点对应的投票权重进行相加作为支持票的票数。作为示例,若共识节点A、共识节点D和共识节点E针对上述访问控制列表中的共识节点发生变更投出了支持票,共识节点A对应的投票权重为1,共识节点D对应的投票权重为0.5,共识节点E对应的投票权重为0.3,则上述执行主体可以将共识节点A对应的投票权重1、共识节点D对应的投票权重0.5和共识节点E对应的投票权重0.3相加得到的1.8确定为支持票的票数。
步骤304,确定支持票的票数是否大于预设的票数阈值。
在本实施例中,上述执行主体可以确定在步骤303中确定出的支持票的票数是否大于预设的票数阈值(例如,1.5)。若确定出上述支持票的票数大于上述票数阈值,则上述执行主体可以执行步骤305。
步骤305,若是,则将针对共识节点集合的处理结果确定为对共识节点集合进行变更。
在本实施例中,若在步骤305中确定出上述支持票的票数大于上述票数阈值,则上述执行主体可以将针对上述共识节点集合的处理结果确定为对共识节点集合进行变更。作为示例,若利用字符“1”或“T”表征对上述共识节点集合进行变更,则上述执行主体可以将针对共识节点集合的处理结果确定为字符“1”或“T”。
步骤306,确定处理结果是否表征对共识节点集合进行变更。
步骤307,若处理结果表征对共识节点集合进行变更,则对共识节点集合进行变更。
在本实施例中,步骤306-307可以按照与步骤204-205类似的方式执行,在此不再赘述。
从图3中可以看出,与图2对应的实施例相比,本实施例中的用于变更共识节点的方法的流程300体现了将支持票所来源的共识节点对应的投票权重进行相加作为支持票的票数,确定支持票的票数是否大于预设的票数阈值,若是,则将处理结果确定为对共识节点集合进行变更的步骤。由此,本实施例描述的方案提供了一种基于投票结果,确定针对共识节点集合的处理结果的方式,从而提高了处理结果确定方式的灵活性。
进一步参考图4,其示出了根据本公开的用于变更共识节点的方法的又一个实施例的流程400,包括以下步骤:
步骤401,监听目标账户的访问控制列表中的共识节点是否发生变更。
步骤402,若发生变更,则获取共识节点集合中的共识节点针对访问控制列表中的共识节点发生变更的投票。
在本实施例中,步骤401-402可以按照与步骤201-202类似的方式执行,在此不再赘述。
步骤403,确定针对访问控制列表中的共识节点发生变更的支持票的票数与共识节点集合中共识节点的数量的比值。
在本实施例中,用于变更共识节点的执行主体可以统计上述共识节点集合中的共识节点针对上述访问控制列表中的共识节点发生变更的支持票的票数,而后,可以确定上述支持票的票数与上述共识节点集合中共识节点的数量的比值。作为示例,若上述支持票的票数为6票,上述共识节点集合中共识节点的数量为8,则支持票的票数6与上述共识节点集合中共识节点的数量8的比值为0.75。
步骤404,确定比值是否大于预设的比值阈值。
在本实施例中,上述执行主体可以确定在步骤403中确定出的比值是否大于预设的比值阈值(例如,0.7)。若确定出上述比值大于上述比值阈值,则上述执行主体可以执行步骤405。
步骤405,若是,则将针对共识节点集合的处理结果确定为对共识节点集合进行变更。
在本实施例中,若在步骤404中确定出上述比值大于上述比值阈值,则上述执行主体可以将针对上述共识节点集合的处理结果确定为对共识节点集合进行变更。作为示例,若利用字符“1”或“T”表征对上述共识节点集合进行变更,则上述执行主体可以将针对共识节点集合的处理结果确定为字符“1”或“T”。
步骤406,确定处理结果是否表征对共识节点集合进行变更。
步骤407,若处理结果表征对共识节点集合进行变更,则对共识节点集合进行变更。
在本实施例中,步骤406-407可以按照与步骤204-205类似的方式执行,在此不再赘述。
从图4中可以看出,与图2对应的实施例相比,本实施例中的用于变更共识节点的方法的流程400体现了确定支持票的票数与共识节点集合中共识节点的数量的比值,利用比值确定初始结果的步骤。由此,本实施例描述的方案提供了另一种基于投票结果,确定针对共识节点集合的处理结果的方式,从而进一步提高了处理结果确定方式的灵活性。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了一种用于变更共识节点的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于变更共识节点的装置500包括:监听单元501、获取单元502、确定单元503和变更单元504。其中,监听单元501被配置成监听目标账户的访问控制列表中的共识节点是否发生变更,其中,目标账户是由预设的共识节点集合控制的账户,访问控制列表中包括控制目标账户的共识节点集合;获取单元502被配置成若发生变更,则获取共识节点集合中的共识节点针对访问控制列表中的共识节点发生变更的投票;确定单元503被配置成基于投票结果,确定针对共识节点集合的处理结果,其中,处理结果表征是否对共识节点集合进行变更;变更单元504被配置成若处理结果表征对共识节点集合进行变更,则对共识节点集合进行变更。
在本实施例中,用于变更共识节点的装置500的监听单元501、获取单元502和确定单元503的具体处理可以参考图2对应实施例中的步骤201、步骤202和步骤203,用于变更共识节点的装置500的变更单元504的具体处理可以参考图2对应实施例中的步骤204和步骤205。
在本实施例的一些可选的实现方式中,上述用于变更共识节点的装置500还可以包括初始化单元(图中未示出)。上述初始化单元可以利用预设的创世参数,对共识节点集合进行初始化。具体地,上述初始化单元可以利用上述创世参数指定共识节点,组成共识节点集合。上述创世参数可以是针对创世区块所配置的参数。区块链通常由多个相连的区块构成,每个区块记录了一段时间内网络中比特币的交易情况,可以将区块视为账簿中的帐页。第一个被最早构建的区块称为创世区块,拥有一个唯一的ID标识号。上述创世参数可以包括:上述目标账户、共识节点标识、共识节点的网络地址和共识机制名称。共识节点标识可以是基于对应的秘钥对所生成的节点的身份标识。在这里,上述共识机制名称可以包括POA。
在本实施例的一些可选的实现方式中,上述确定单元503可以通过如下方式基于上述投票结果,确定针对上述共识节点集合的处理结果:上述确定单元503可以统计针对上述访问控制列表中的共识节点发生变更的支持票的票数;之后,可以确定上述支持票的票数是否大于预设的票数阈值;若确定出上述支持票的票数大于上述票数阈值,则上述确定单元503可以将针对上述共识节点集合的处理结果确定为对上述共识节点集合进行变更。
在本实施例的一些可选的实现方式中,上述访问控制列表可以包括上述共识节点集合中共识节点对应的投票权重。上述确定单元503可以将针对上述访问控制列表中的共识节点发生变更的支持票所来源的共识节点对应的投票权重进行相加作为支持票的票数。之后,上述确定单元503可以确定上述支持票的票数是否大于预设的票数阈值。若确定出上述支持票的票数大于上述票数阈值,则上述确定单元503可以将针对上述共识节点集合的处理结果确定为对共识节点集合进行变更。作为示例,若利用字符“1”或“T”表征对上述共识节点集合进行变更,则上述确定单元503可以将针对共识节点集合的处理结果确定为字符“1”或“T”。
在本实施例的一些可选的实现方式中,上述确定单元503可以统计上述共识节点集合中的共识节点针对上述访问控制列表中的共识节点发生变更的支持票的票数,而后,上述确定单元503可以确定上述支持票的票数与上述共识节点集合中共识节点的数量的比值。之后,上述确定单元503可以确定上述比值是否大于预设的比值阈值。若确定出上述比值大于上述比值阈值,则上述确定单元503可以将针对上述共识节点集合的处理结果确定为对共识节点集合进行变更。作为示例,若利用字符“1”或“T”表征对上述共识节点集合进行变更,则上述确定单元503可以将针对共识节点集合的处理结果确定为字符“1”或“T”。
下面参考图6,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的变更节点)600的结构示意图。图6示出的服务器仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM602被安装。在该计算机程序被处理装置601执行时,执行本公开的实施例的方法中限定的上述功能。需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:监听目标账户的访问控制列表中的共识节点是否发生变更,其中,目标账户是由预设的共识节点集合控制的账户,访问控制列表中包括控制目标账户的共识节点集合;若发生变更,则获取共识节点集合中的共识节点针对访问控制列表中的共识节点发生变更的投票;基于投票结果,确定针对共识节点集合的处理结果,其中,处理结果表征是否对共识节点集合进行变更;若处理结果表征对共识节点集合进行变更,则对共识节点集合进行变更。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括监听单元、获取单元、确定单元和变更单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,监听单元还可以被描述为“监听目标账户的访问控制列表中的共识节点是否发生变更的单元”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (12)
1.一种用于变更共识节点的方法,包括:
监听目标账户的访问控制列表中的共识节点是否发生变更,其中,所述目标账户是由预设的共识节点集合控制的账户,所述访问控制列表中包括控制所述目标账户的共识节点集合;
若发生变更,则获取所述共识节点集合中的共识节点针对所述访问控制列表中的共识节点发生变更的投票;
基于所述投票结果,确定针对所述共识节点集合的处理结果,其中,所述处理结果表征是否对所述共识节点集合进行变更;
若所述处理结果表征对所述共识节点集合进行变更,则对所述共识节点集合进行变更。
2.根据权利要求1所述的方法,其中,在所述监听目标账户的访问控制列表中的共识节点是否发生变更之前,所述方法还包括:
利用预设的创世参数,对共识节点集合进行初始化,其中,所述创世参数包括:所述目标账户、共识节点标识、共识节点的网络地址和共识机制名称。
3.根据权利要求1所述的方法,其中,所述基于所述投票结果,确定针对所述共识节点集合的处理结果,包括:
确定针对所述访问控制列表中的共识节点发生变更的支持票的票数是否大于预设的票数阈值;
若是,则将针对所述共识节点集合的处理结果确定为对所述共识节点集合进行变更。
4.根据权利要求3所述的方法,其中,所述访问控制列表包括所述共识节点集合中共识节点对应的投票权重;以及
所述确定针对所述访问控制列表中的共识节点发生变更的支持票的票数是否大于预设的票数阈值,包括:
将针对所述访问控制列表中的共识节点发生变更的支持票所来源的共识节点对应的投票权重进行相加作为支持票的票数;
确定所述支持票的票数是否大于预设的票数阈值。
5.根据权利要求1所述的方法,其中,所述基于所述投票结果,确定针对所述共识节点集合的处理结果,包括:
确定针对所述访问控制列表中的共识节点发生变更的支持票的票数与所述共识节点集合中共识节点的数量的比值;
确定所述比值是否大于预设的比值阈值;
若是,则将针对所述共识节点集合的处理结果确定为对所述共识节点集合进行变更。
6.一种用于变更共识节点的装置,包括:
监听单元,被配置成监听目标账户的访问控制列表中的共识节点是否发生变更,其中,所述目标账户是由预设的共识节点集合控制的账户,所述访问控制列表中包括控制所述目标账户的共识节点集合;
获取单元,被配置成若发生变更,则获取所述共识节点集合中的共识节点针对所述访问控制列表中的共识节点发生变更的投票;
确定单元,被配置成基于所述投票结果,确定针对所述共识节点集合的处理结果,其中,所述处理结果表征是否对所述共识节点集合进行变更;
变更单元,被配置成若所述处理结果表征对所述共识节点集合进行变更,则对所述共识节点集合进行变更。
7.根据权利要求6所述的装置,其中,所述装置还包括:
初始化单元,被配置成利用预设的创世参数,对共识节点集合进行初始化,其中,所述创世参数包括:所述目标账户、共识节点标识、共识节点的网络地址和共识机制名称。
8.根据权利要求6所述的装置,其中,所述确定单元进一步被配置成通过如下方式基于所述投票结果,确定针对所述共识节点集合的处理结果:
确定针对所述访问控制列表中的共识节点发生变更的支持票的票数是否大于预设的票数阈值;
若是,则将针对所述共识节点集合的处理结果确定为对所述共识节点集合进行变更。
9.根据权利要求8所述的装置,其中,所述访问控制列表包括所述共识节点集合中共识节点对应的投票权重;以及
所述确定单元进一步被配置成通过如下方式确定针对所述访问控制列表中的共识节点发生变更的支持票的票数是否大于预设的票数阈值:
将针对所述访问控制列表中的共识节点发生变更的支持票所来源的共识节点对应的投票权重进行相加作为支持票的票数;
确定所述支持票的票数是否大于预设的票数阈值。
10.根据权利要求6所述的装置,其中,所述确定单元进一步被配置成通过如下方式基于所述投票结果,确定针对所述共识节点集合的处理结果:
确定针对所述访问控制列表中的共识节点发生变更的支持票的票数与所述共识节点集合中共识节点的数量的比值;
确定所述比值是否大于预设的比值阈值;
若是,则将针对所述共识节点集合的处理结果确定为对所述共识节点集合进行变更。
11.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010218700.3A CN111447216B (zh) | 2020-03-25 | 2020-03-25 | 用于变更共识节点的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010218700.3A CN111447216B (zh) | 2020-03-25 | 2020-03-25 | 用于变更共识节点的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111447216A true CN111447216A (zh) | 2020-07-24 |
CN111447216B CN111447216B (zh) | 2021-12-10 |
Family
ID=71652427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010218700.3A Active CN111447216B (zh) | 2020-03-25 | 2020-03-25 | 用于变更共识节点的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111447216B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112887436A (zh) * | 2021-04-28 | 2021-06-01 | 支付宝(杭州)信息技术有限公司 | 一种共识方法、共识节点和流水线方式的区块链*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞***产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及*** |
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
CN109309723A (zh) * | 2018-08-18 | 2019-02-05 | 上海分布信息科技有限公司 | 一种共识节点变更方法及其实现*** |
US20190149550A1 (en) * | 2017-11-16 | 2019-05-16 | International Business Machines Corporation | Securing permissioned blockchain network from pseudospoofing network attacks |
US20190288846A1 (en) * | 2018-03-13 | 2019-09-19 | Paul Zawierka | Method and system for verifying a voter through the use of blockchain validation |
CN110266765A (zh) * | 2019-05-21 | 2019-09-20 | 西安中星测控有限公司 | 一种基于区块链的物联网在线共识节点实时更新方法和装置 |
CN110800255A (zh) * | 2019-03-04 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 更新区块链世界状态默克尔帕特里夏字典树子树 |
CN110912990A (zh) * | 2019-11-21 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 一种共识周期的更新方法及相关设备 |
-
2020
- 2020-03-25 CN CN202010218700.3A patent/CN111447216B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878000A (zh) * | 2017-03-06 | 2017-06-20 | 中钞***产业发展有限公司北京智能卡技术研究院 | 一种联盟链共识方法及*** |
CN107579848A (zh) * | 2017-08-30 | 2018-01-12 | 上海保险交易所股份有限公司 | 实用拜占庭容错共识机制中动态更改共识节点的方法 |
US20190149550A1 (en) * | 2017-11-16 | 2019-05-16 | International Business Machines Corporation | Securing permissioned blockchain network from pseudospoofing network attacks |
US20190288846A1 (en) * | 2018-03-13 | 2019-09-19 | Paul Zawierka | Method and system for verifying a voter through the use of blockchain validation |
CN109309723A (zh) * | 2018-08-18 | 2019-02-05 | 上海分布信息科技有限公司 | 一种共识节点变更方法及其实现*** |
CN110800255A (zh) * | 2019-03-04 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 更新区块链世界状态默克尔帕特里夏字典树子树 |
CN110266765A (zh) * | 2019-05-21 | 2019-09-20 | 西安中星测控有限公司 | 一种基于区块链的物联网在线共识节点实时更新方法和装置 |
CN110912990A (zh) * | 2019-11-21 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 一种共识周期的更新方法及相关设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112887436A (zh) * | 2021-04-28 | 2021-06-01 | 支付宝(杭州)信息技术有限公司 | 一种共识方法、共识节点和流水线方式的区块链*** |
CN112887436B (zh) * | 2021-04-28 | 2021-08-03 | 支付宝(杭州)信息技术有限公司 | 一种共识方法、共识节点和流水线方式的区块链*** |
Also Published As
Publication number | Publication date |
---|---|
CN111447216B (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359957B (zh) | 一种安全多方计算的方法及相关装置 | |
CN108667632B (zh) | 基于区块链的信用记录共享方法及装置、电子设备 | |
JP6883110B2 (ja) | ブロックチェーンネットワーク内でのデータ分離 | |
CN108335206B (zh) | 资产管理方法及装置、电子设备 | |
KR102002509B1 (ko) | 공증센터를 포함하는 프라이빗 블록체인 시스템 및 이의 공증방법 | |
EP3247070B1 (en) | Cryptocurrency-based event participation verification | |
CN101960464B (zh) | 信息处理装置 | |
KR20200059234A (ko) | 분산 조정을 사용한 스마트 계약 실행 | |
CN109003185B (zh) | 一种智能合约的建立方法、装置、计算设备及存储介质 | |
EP3607697A1 (en) | Digital certificate management method, apparatus, and system | |
CN107306183A (zh) | 客户端、服务端、方法和身份验证*** | |
CN110597916B (zh) | 基于区块链的数据处理方法、装置、存储介质及终端 | |
CN111510333B (zh) | 基于k3s平台的联盟区块链***、实现方法及装置 | |
US20200364212A1 (en) | System and method of supporting reflection of transactions between blockchain networks | |
CN110278246B (zh) | 一种针对联盟链的存证业务转移方法、装置及设备 | |
JP2023542681A (ja) | ブロックチェーンの許可フレームワークへのデバイスアイデンティティの統合 | |
CN111383114A (zh) | 基于区块链的资产信息管理方法和装置 | |
CN111402033A (zh) | 基于区块链的资产信息管理方法和装置 | |
CN111639123A (zh) | 基于区块链的数据处理方法、装置、终端及存储介质 | |
CN111447216B (zh) | 用于变更共识节点的方法和装置 | |
US11922404B2 (en) | Method and system for payment for central bank digital currency | |
CN114500119A (zh) | 区块链服务的调用方法和装置 | |
CN109388923B (zh) | 一种程序执行方法及装置 | |
CN111222885B (zh) | 数据处理请求背书方法、装置、计算机设备及存储介质 | |
CN110225103B (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 |