CN112529703B - 一种区块链的记账节点选择方法及装置 - Google Patents
一种区块链的记账节点选择方法及装置 Download PDFInfo
- Publication number
- CN112529703B CN112529703B CN202011324794.9A CN202011324794A CN112529703B CN 112529703 B CN112529703 B CN 112529703B CN 202011324794 A CN202011324794 A CN 202011324794A CN 112529703 B CN112529703 B CN 112529703B
- Authority
- CN
- China
- Prior art keywords
- class
- node
- nodes
- accounting
- accounts
- 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
Classifications
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Economics (AREA)
- Computing Systems (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种区块链的记账节点选择方法及装置,所述方法包括:确定M个A类代理节点,所述A类代理节点为区块链论坛中的观点领袖节点;确定N个B类代理节点,所述N个B类代理节点分别属于N个不同阶层;从所述A类代理节点和所述B类代理节点中选出下一个区块的记账节点;在执行记账操作过程中,将下一个区块的记账节点的选择过程与结果写入所述区块链中;向所述下一个区块的记账节点发送下一个区块记账通知。该方法及装置解决了现有的区块链存在无法体现各阶层代币拥有者的权益,以及随着加入节点的增多,挖矿越来越困难,能耗越来越大的问题。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链的记账节点选择方法及装置。
背景技术
区块链创建之初就已经注入大量代币,并且代币本身就是通过现金购买等方式获得,单价较高,庞大的代币价值要求在***达成共识机制时体现自己的权益。与此同时,不同账号拥有的代币数量差距巨大,如何体现各阶层代币拥有者的权益成为一个较大的问题。
此外,对于传统的采用工作量证明(PoW)达成共识机制的区块链,随着时间推移,加入节点的增多,挖矿越来越困难,能耗越来越大,对环境、生态、社会的影响逐渐趋于恶化;与此同时,随着出块的增多,挖出的代币逐渐庞大,而且代币单价不菲,庞大的代币价值也要求有相应的权益。也存在前述的问题。
发明内容
本发明所要解决的技术问题是针对现有技术的上述不足,提供一种区块链的记账节点选择方法及装置,用以解决现有的区块链存在无法体现各阶层代币拥有者的权益,以及随着加入节点的增多,挖矿越来越困难,能耗越来越大的问题。
第一方面,本发明实施例提供一种区块链的记账节点选择方法,应用于区块链中的当前记账节点,所述方法包括:
确定M个A类代理节点,所述A类代理节点为区块链论坛中的观点领袖节点;
确定N个B类代理节点,所述N个B类代理节点分别属于N个不同阶层;
从所述A类代理节点和所述B类代理节点中选出下一个区块的记账节点;
在执行记账操作过程中,将下一个区块的记账节点的选择过程与结果写入所述区块链中;
向所述下一个区块的记账节点发送下一个区块记账通知。
优选地,所述确定M个A类代理节点,包括:
获取区块链论坛中所有发布信息的节点所对应的A类账户;
对各A类帐户按照第一记账权益的多少进行从大到小排序,所述第一记账权益用于衡量区块链中的其他节点对所述发布信息的节点所发布信息的支持程度;
将排序后的前M个A类账户所对应的节点确定为所述区块链论坛中的观点领袖节点;
将M个所述观点领袖节点确定为A类代理节点。
优选地,所述确定N个B类代理节点,包括:
获取区块链中所有节点的B类账户以及所对应的第二记账权益,所述第二记账权益为各节点对应的剩余记账权益;
对各B类帐户按照第二记账权益的多少进行从小到大排序;
将排序后的所述B类账户从前到后划分成N个阶层;
从N个阶层中的每个阶层所对应的B类账户中随机选择一个B类账户;
将随机选择出的N个所述B类账户所对应的节点确定为B类代理节点。
优选地,所述第一记账权益用于投票,所述第二记账权益用于投票;所述方法还包括:
向区块链论坛中发布信息以及自身的A类账户,以使所述区块链中的其他节点对所述当前记账节点进行投票。
优选地,所述将排序后的所述B类账户从前到后划分成N个阶层,具体包括:
S1,获取阶层平均第二记账权益,所述阶层平均第二记账权益为排序后的所有B类账户的第二记账权益总和与阶层数的比值;
S2,获取排序后的所述B类账户中未分配的B类账户;
S3,将所述未分配的B类账户的第二记账权益从前到后依次累加,若前K个B类账户的第二记账权益总和小于等于所述阶层平均第二记账权益,且前K+1个B类账户的第二记账权益总和大于所述阶层平均第二记账权益,则将所述前K个B类账户划分为一组;
S4,判断N个阶层是否划分完毕,若是则结束本流程,否则返回执行步骤S2。
优选地,所述从所述A类代理节点和所述B类代理节点中选出下一个区块的记账节点,包括:
对所述M个A类代理节点和N个B类代理节点进行编号;
向所述M个A类代理节点和N个B类代理节点分别发送数值反馈通知,所述数值反馈通知用于指示在限定时间内向所述当前记账节点反馈一个大于零的整数;
接收限定时间内所述A类代理节点和B类代理节点分别反馈的数值,并根据反馈的所述数值确定下一个区块的记账节点的编号。
优选地,所述根据反馈的所述数值确定下一个区块的记账节点的编号的步骤中,所述下一个区块的记账节点的编号根据以下公式确定:
其中,loc为下一个区块的记账节点的编号,Rj为进行编号后的第j个A类代理节点或B类代理节点反馈的数值。
第二方面,本发明实施例提供一种区块链的记账节点选择装置,设置于区块链中的当前记账节点,所述装置包括:
A类代理确定模块,用于确定M个A类代理节点,所述A类代理节点为区块链论坛中的观点领袖节点;
B类代理确定模块,用于确定N个B类代理节点,所述N个B类代理节点属于N个不同阶层;
记账节点选择模块,与所述A类代理确定模块和B类代理确定模块连接,用于从所述A类代理节点和B类代理节点中选出下一个区块的记账节点;
记账模块,与所述记账节点选择模块连接,用于在执行记账操作过程中,将下一个区块的记账节点的选择过程与结果写入所述区块链中;
通知发送模块,与所述记账节点选择模块连接,用于向所述下一个区块的记账节点发送下一个区块记账通知。
优选地,所述A类代理确定模块包括:
A类账户获取单元,用于获取区块链论坛中所有发布信息的节点所对应的A类账户;
A类账户排序单元,用于对各A类帐户按照第一记账权益的多少进行从大到小排序,所述第一记账权益用于衡量区块链中的其他节点对所述发布信息的节点所发布信息的支持程度;
观点领袖节点确定单元,用于将所述前M个A类账户所对应的节点确定为所述区块链论坛中的观点领袖节点;
A类代理确定单元,用于将所述观点领袖节点确定为A类代理节点。
优选地,所述B类代理确定模块包括:
B类账户获取单元,用于获取区块链中所有节点的B类账户以及所对应的第二记账权益;
B类账户排序单元,用于对各B类帐户按照第二记账权益的多少进行从小到大排序,所述第二记账权益为各节点对应的剩余记账权益;
阶层划分单元,用于将排序后的所述B类账户从前到后划分成N个阶层;
随机选择单元,用于从所述每个阶层所对应的B类账户中随机选择一个B类账户;
B类代理确定单元,用于将所述随机选择出的N个B类账户所对应的节点确定为B类代理节点。
本发明实施例提供的区块链的记账节点选择方法及装置,采用混合的DPOS(Delegated Proof of Stake,代理权益证明)机制,在区块链中,生成除创世区块外的每个区块的记账节点,通过当前记账节点选择确定下一个区块的记账节点,由下一个区块的记账节点直接记账,能够解决现有的工作量证明(PoW)机制中所有的节点为了争得记账权都参与挖矿,消耗大量电力和算力,而只有最先算出哈希运算解的节点才能获得一次记账权,从而导致挖矿能耗高的问题。此外,通过当前记账节点产生A类代理节点和B类代理节点,其中,A类代理节点为区块链论坛中的观点领袖节点,B类代理节点为各阶层代表,再从所述A、B两类代理节点中选出下一区块的记账节点,能够使得各阶层的权益得以体现,解决了现有的区块链存在无法体现各阶层代币拥有者的权益,以及随着加入节点的增多,挖矿越来越困难,能耗越来越大的问题。
附图说明
图1:为本发明实施例1的一种区块链的记账节点选择方法的流程图;
图2:为本发明实施例2的一种区块链的记账节点选择装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。
实施例1:
本实施例提供一种区块链的记账节点选择方法,如图1所示,该方法包括:
步骤S102:确定M个A类代理节点,A类代理节点为区块链论坛中的观点领袖节点。
在本实施例中,区块链采用混合的DPOS(Delegated Proof of Stake,代理权益证明)机制,创世区块由***开发者指定产生,除创世区块外的每个区块的记账节点由上一个记账节点指定产生,能够解决现有的工作量证明(PoW)机制中所有的节点为了争得记账权都参与挖矿,消耗大量电力和算力,而只有最先算出哈希运算解的节点才能获得一次记账权,从而导致挖矿能耗高的问题。
在本实施例中,当前记帐节点是指即将执行或者正在执行记账操作的节点,记账完成后,下一个记账节点即成为当前记帐节点,当前记账节点即成为上一个记账节点。
可选地,确定M个A类代理节点,可以包括:
获取区块链论坛中所有发布信息的节点所对应的A类账户;
对各A类帐户按照第一记账权益的多少进行从大到小排序,第一记账权益用于衡量区块链中的其他节点对发布信息的节点所发布信息的支持程度;
将排序后的前M个A类账户所对应的节点确定为区块链论坛中的观点领袖节点;
将M个观点领袖节点确定为A类代理节点。
需要说明的是,区块链中的每一个代币拥有一个记账权益,记账权益归属为代币的所有者。区块链中的每个节点都有一个A类账户和一个B类账户,A类帐户中的记账权益称为第一记账权益,各区块链节点可以在区块链论坛中发布信息,并公开自己的A类账户,该发布的信息可以是任何有关区块链的信息,比如可以就代币所有者关心的问题发表自己的看法,以使得其他节点在支持本节点时,将其自身的B类帐户中的全部或部分记账权益转入本节点的A类帐户中。即A类帐户中的记账权益是由其他节点转让获得,该转入A类帐户中的记账权益仅具有投票权。B类帐户中的记账权益称为第二记账权益,该第二记账权益具有投票权,为代币所有者自身剩余的记账权益。
在本实施例中,通过将所有的A类账户按照权益多少排名,选出前M个较多的账户作为A类代理节点,由于选出的A类代理节点为排名靠前的观点领袖节点,可以使得区块链论坛中最关注的问题得以体现。此外,在区块链启动的初期,当还没有产生足够多的观点领袖时,可以将区块链论坛中发布信息的节点都作为A类代理节点。
可选地,所述方法还包括:
向区块链论坛中发布信息以及自身的A类账户,以使区块链中的其他节点对当前记账节点进行投票。
在本实施例中,区块链中的每个节点都可以向区块链论坛中发布信息以及公布自身的A类账户,也可以向区块链论坛中发布信息的节点投票以表示支持,假设节点A就代币所有者关心的问题发表自己的看法,节点B对该看法表示支持,则可以向节点A的A类账户转入相应数目的代币,即记账权益。经过一段时间后,如不想再支持,也可以撤回。假设节点B拥有p个代币,他将其中的q个代币的记账权益转给了节点A,q≤p。则节点A的A类账户中的记账权益增加q,同时节点B的B类账户中的记账权益变为p-q,与此同时,节点B的代币也变为p-q。如果节点B想使用已将记账权益转出的那q个代币,则他需要首先撤回转给节点A的记账权益。
步骤S104:确定N个B类代理节点,N个B类代理节点分别属于N个不同阶层。
在本实施例中,阶层按照第二记账权益的大小进行划分。
可选地,确定N个B类代理节点,可以包括:
获取区块链中所有节点的B类账户以及所对应的第二记账权益,第二记账权益为各节点对应的剩余记账权益;
对各B类帐户按照第二记账权益的多少进行从小到大排序;
将排序后的所述B类账户从前到后划分成N个阶层;
从N个阶层中的每个阶层所对应的B类账户中随机选择一个B类账户;
将随机选择出的N个B类账户所对应的节点确定为B类代理节点。
在本实施例中,当前记账节点统计所有代币所有者B类账户的记账权益(该记账权益已经扣除了转出给观点领袖的部分),B类账户按照余额从小到大排列为B1,B2,…Bi,一共i个账户。其中,Bj账户对应的余额为bj,1≤j≤i,0<b1≤b2≤…≤bi。所有账户余额总计为S,即
将账户分成N个阶层,使每个阶层的余额总和大致都等于具体做法如下:按照单个账户余额从小到大,共分成N个阶层,每个阶层的账户数目为k1,k2,…,kN,/>
对前N-1个阶层中的第groupnum个阶层满足以下公式:
而/> 1≤groupnum≤N-1。
其中,sum(groupnum)=k1+k2+…+kgroupnum,表示前groupnum个阶层的所有账户数
第一个阶层为账户余额最少的那一组,即:而即前k1个账户余额总计小于等于/>而前k1+1个账户余额总计大于对剩下的i-k1个账户,按照上述方法,继续分组。按照单个账户余额从小到大,共分成n个阶层,每个阶层的账户数目为k1,k2,…,kN,/>
可选地,所述将排序后的所述B类账户从前到后划分成N个阶层,具体包括:
S1,获取阶层平均第二记账权益,所述阶层平均第二记账权益为排序后的所有B类账户的第二记账权益总和与阶层数的比值;
S2,获取排序后的所述B类账户中未分配的B类账户;
S3,将所述未分配的B类账户的第二记账权益从前到后依次累加,若前K个B类账户的第二记账权益总和小于等于所述阶层平均第二记账权益,且前K+1个B类账户的第二记账权益总和大于所述阶层平均第二记账权益,则将所述前K个B类账户划分为一组;
S4,判断N个阶层是否划分完毕,若是则结束本流程,否则返回执行步骤S2。
在本实施例中,假设有9个B类账户,对应的第二记账权益排序后依次为1,1,1,1,2,2,3,3,5,第二记账权益总和为19,将其分为3个阶层,根据上述划分规则可知,由于前5个B类账户的和小于等于19/3,前6个B类账户的和大于19/3,因此,第一个阶层为:1,1,1,1,2。同理,第二个阶层为:2,3,第三个阶层为3,5。此外,还可以在分配过程中,不断基于剩余的未分配的层数或者剩余的总和来重新分配下一阶层的数据,比如,分配完第一阶层后,剩余未分层数为2层,由于剩余的前3个B类账户的和小于等于19/2,剩余的前4个B类账户的和大于19/2,因此,第二个阶层为:2,3,3,第三个阶层为5。
在本实施例中,从所述每个阶层所对应的B类账户中随机选择一个B类账户可以采用预设的随机整数产生方法,并对区块链中的所有结点公开,该随机整数产生方法在给定相同的输入条件时,输出的随机数也是相同的,从而能够方便除记账节点之外的其它账户验证。
在本实施例中,对每个阶层,也可以通过如下过程产生一个B类代理节点,过程如下:对第一阶层的k1个账户,按照均匀的概率,即1,2,…,k1每个数产生的概率为产生一个从1到k1的随机整数,记为r1。则本阶层中的第r1个账户将被选择为B类代理节点,记为DB1。用上述同样的方法,产生其它各阶层的B类代理,记为DB2,…,DBN。
步骤S106:从A类代理节点和B类代理节点中选出下一个区块的记账节点。
可选地,从A类代理节点和B类代理节点中选出下一个区块的记账节点,可以包括:
对M个A类代理节点和N个B类代理节点进行编号;
向M个A类代理节点和N个B类代理节点分别发送数值反馈通知,数值反馈通知用于指示在限定时间内向当前记账节点反馈一个大于零的整数;
接收限定时间内A类代理节点和B类代理节点分别反馈的数值,并根据反馈的数值确定下一个区块的记账节点的编号。
在本实施例中,选出A、B两类代理节点后,对M+N个代理节点进行编号,记为D1,D2,…,DM+N,由当前记账节点向这M+N个代理节点发出通知,要求在限定的时间内反馈一个大于0的整数,如不能及时反馈,则由当前记账节点代为随机生成,反馈的数值记作R1,R2,…,RM+N。
可选地,根据反馈的数值确定下一个区块的记账节点的编号的步骤中,下一个区块的记账节点的编号根据以下公式确定:
其中,loc为下一个区块的记账节点的编号,Rj为进行编号后的第j个A类代理节点或B类代理节点反馈的数值。
在本实施例中,由R1,R2,…,RM+N生成下一个区块的记账节点,其中,0≤loc≤M+N-1。如果loc=0,编号从1开始,则将loc设置为M+N,即loc=M+N;loc为其它值时不作改变。此外,也可以对M+N个代理节点进行编号为D0,D1,…,DM+N-1,则编号为Dloc的代理节点即是下一个区块的记账节点。
步骤S108:在执行记账操作过程中,将下一个区块的记账节点的选择过程与结果写入区块链中。
步骤S110:向下一个区块的记账节点发送下一个区块记账通知。
在本实施例中,为了使得记账节点的选择过程与结果可追溯,当前记账节点在执行记账操作过程中,可以将上述下一个区块的记账节点的选择过程与结果写入区块链中,即生成的当前区块中包括本区块中需要记录的信息(如账户、合同、代码等),以及下一个区块的记账节点的选择过程与结果,与此同时,通知下一个区块的记账节点开始下一区块的记账操作。
本发明实施例提供的区块链的记账节点选择方法,采用混合的DPOS(DelegatedProof of Stake,代理权益证明)机制,在区块链中,生成除创世区块外的每个区块的记账节点,通过当前记账节点选择确定下一个区块的记账节点,由下一个区块的记账节点直接记账,能够解决现有的工作量证明(PoW)机制中所有的节点为了争得记账权都参与挖矿,消耗大量电力和算力,而只有最先算出哈希运算解的节点才能获得一次记账权,从而导致挖矿能耗高的问题。此外,通过当前记账节点产生A类代理节点和B类代理节点,其中,A类代理节点为区块链论坛中的观点领袖节点,B类代理节点为各阶层代表,再从所述A、B两类代理节点中选出下一区块的记账节点,能够使得各阶层的权益得以体现,解决了现有的区块链存在无法体现各阶层代币拥有者的权益,以及随着加入节点的增多,挖矿越来越困难,能耗越来越大的问题。
实施例2:
如图2所示,本实施例提供一种区块链的记账节点选择装置,包括:
A类代理确定模块31,用于确定M个A类代理节点,A类代理节点为区块链论坛中的观点领袖节点;
B类代理确定模块32,用于确定N个B类代理节点,N个B类代理节点属于N个不同阶层;
记账节点选择模块33,与A类代理确定模块31和B类代理确定模块32连接,用于从A类代理节点和B类代理节点中选出下一个区块的记账节点;
记账模块34,与记账节点选择模块33连接,用于在执行记账操作过程中,将下一个区块的记账节点的选择过程与结果写入区块链中;
通知发送模块35,与记账节点选择模块33连接,用于向下一个区块的记账节点发送下一个区块记账通知。
可选地,A类代理确定模块31可以包括:
A类账户获取单元,用于获取区块链论坛中所有发布信息的节点所对应的A类账户;
A类账户排序单元,用于对各A类帐户按照第一记账权益的多少进行从大到小排序,第一记账权益用于衡量区块链中的其他节点对发布信息的节点所发布信息的支持程度;
观点领袖节点确定单元,用于将前M个A类账户所对应的节点确定为区块链论坛中的观点领袖节点;
A类代理确定单元,用于将观点领袖节点确定为A类代理节点。
可选地,B类代理确定模块32可以包括:
B类账户获取单元,用于获取区块链中所有节点的B类账户以及所对应的第二记账权益;
B类账户排序单元,用于对各B类帐户按照第二记账权益的多少进行从小到大排序,第二记账权益为各节点对应的剩余记账权益;
阶层划分单元,用于将排序后的所述B类账户从前到后划分成N个阶层;
随机选择单元,用于从每个阶层所对应的B类账户中随机选择一个B类账户;
B类代理确定单元,用于将随机选择出的N个B类账户所对应的节点确定为B类代理节点。
可选地,第一记账权益用于投票,第二记账权益用于投票;装置还可以包括:
信息发送模块,用于向区块链论坛中发布信息以及自身的A类账户,以使区块链中的其他节点对当前记账节点进行投票。
可选地,阶层划分单元具体包括:
第一获取单元,用于获取阶层平均第二记账权益,所述阶层平均第二记账权益为排序后的所有B类账户的第二记账权益总和与阶层数的比值;
第二获取单元,用于获取排序后的所述B类账户中未分配的B类账户;
累加分配单元,用于将所述未分配的B类账户的第二记账权益从前到后依次累加,若前K个B类账户的第二记账权益总和小于等于所述阶层平均第二记账权益,且前K+1个B类账户的第二记账权益总和大于所述阶层平均第二记账权益,则将所述前K个B类账户划分为一组;
循环判断单元,用于判断N个阶层是否划分完毕。
可选地,记账节点选择模块33可以包括:
节点编号模块,用于对M个A类代理节点和N个B类代理节点进行编号;
数值反馈模块,用于向M个A类代理节点和N个B类代理节点分别发送数值反馈通知,数值反馈通知用于指示在限定时间内向当前记账节点反馈一个大于零的整数;
数值接收模块,用于接收限定时间内A类代理节点和B类代理节点分别反馈的数值,并根据反馈的数值确定下一个区块的记账节点的编号。
可选地,数值接收模块具体用于接收限定时间内A类代理节点和B类代理节点分别反馈的数值,并根据反馈的数值依据以下公式确定下一个区块的记账节点的编号:
其中,loc为下一个区块的记账节点的编号,Rj为进行编号后的第j个A类代理节点或B类代理节点反馈的数值。
本发明实施例提供的区块链的记账节点选择装置,采用混合的DPOS(DelegatedProof of Stake,代理权益证明)机制,在区块链中,生成除创世区块外的每个区块的记账节点,通过当前记账节点选择确定下一个区块的记账节点,由下一个区块的记账节点直接记账,能够解决现有的工作量证明(PoW)机制中所有的节点为了争得记账权都参与挖矿,消耗大量电力和算力,而只有最先算出哈希运算解的节点才能获得一次记账权,从而导致挖矿能耗高的问题。此外,通过当前记账节点产生A类代理节点和B类代理节点,其中,A类代理节点为区块链论坛中的观点领袖节点,B类代理节点为各阶层代表,再从所述A、B两类代理节点中选出下一区块的记账节点,能够使得各阶层的权益得以体现,解决了现有的区块链存在无法体现各阶层代币拥有者的权益,以及随着加入节点的增多,挖矿越来越困难,能耗越来越大的问题。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (4)
1.一种区块链的记账节点选择方法,其特征在于,应用于区块链中的当前记账节点,所述方法包括:
确定M个A类代理节点,所述A类代理节点为区块链论坛中的观点领袖节点;
确定N个B类代理节点,所述N个B类代理节点分别属于N个不同阶层;
从所述A类代理节点和所述B类代理节点中选出下一个区块的记账节点;
在执行记账操作过程中,将下一个区块的记账节点的选择过程与结果写入所述区块链中;
向所述下一个区块的记账节点发送下一个区块记账通知;
所述确定M个A类代理节点,包括:
获取区块链论坛中所有发布信息的节点所对应的A类账户;
对各A类帐户按照第一记账权益的多少进行从大到小排序,所述第一记账权益用于衡量区块链中的其他节点对所述发布信息的节点所发布信息的支持程度;
将排序后的前M个A类账户所对应的节点确定为所述区块链论坛中的观点领袖节点;
将M个所述观点领袖节点确定为A类代理节点;
所述确定N个B类代理节点,包括:
获取区块链中所有节点的B类账户以及所对应的第二记账权益,所述第二记账权益为各节点对应的剩余记账权益;
对各B类帐户按照第二记账权益的多少进行从小到大排序;
将排序后的所述B类账户从前到后划分成N个阶层;
从N个阶层中的每个阶层所对应的B类账户中随机选择一个B类账户;
将随机选择出的N个所述B类账户所对应的节点确定为B类代理节点;
所述从所述A类代理节点和所述B类代理节点中选出下一个区块的记账节点,包括:
对所述M个A类代理节点和N个B类代理节点进行编号;
向所述M个A类代理节点和N个B类代理节点分别发送数值反馈通知,所述数值反馈通知用于指示在限定时间内向所述当前记账节点反馈一个大于零的整数;
接收限定时间内所述A类代理节点和B类代理节点分别反馈的数值,并根据反馈的所述数值确定下一个区块的记账节点的编号;
所述将排序后的所述B类账户从前到后划分成N个阶层,具体包括:
S1,获取阶层平均第二记账权益,所述阶层平均第二记账权益为排序后的所有B类账户的第二记账权益总和与阶层数的比值;
S2,获取排序后的所述B类账户中未分配的B类账户;
S3,将所述未分配的B类账户的第二记账权益从前到后依次累加,若前K个B类账户的第二记账权益总和小于等于所述阶层平均第二记账权益,且前K+1个B类账户的第二记账权益总和大于所述阶层平均第二记账权益,则将所述前K个B类账户划分为一组;
S4,判断N个阶层是否划分完毕,若是则结束本流程,否则返回执行步骤S2。
2.根据权利要求1所述的区块链的记账节点选择方法,其特征在于,所述第一记账权益用于投票,所述第二记账权益用于投票;所述方法还包括:
向区块链论坛中发布信息以及自身的A类账户,以使所述区块链中的其他节点对所述当前记账节点进行投票。
3.根据权利要求1所述的区块链的记账节点选择方法,其特征在于,所述根据反馈的所述数值确定下一个区块的记账节点的编号的步骤中,所述下一个区块的记账节点的编号根据以下公式确定:
其中,loc为下一个区块的记账节点的编号,Rj为进行编号后的第j个A类代理节点或B类代理节点反馈的数值。
4.一种区块链的记账节点选择装置,其特征在于,设置于区块链的当前记账节点中,所述装置包括:
A类代理确定模块,用于确定M个A类代理节点,所述A类代理节点为区块链论坛中的观点领袖节点;
B类代理确定模块,用于确定N个B类代理节点,所述N个B类代理节点属于N个不同阶层;
记账节点选择模块,与所述A类代理确定模块和B类代理确定模块连接,用于从所述A类代理节点和B类代理节点中选出下一个区块的记账节点;
记账模块,与所述记账节点选择模块连接,用于在执行记账操作过程中,将下一个区块的记账节点的选择过程与结果写入所述区块链中;
通知发送模块,与所述记账节点选择模块连接,用于向所述下一个区块的记账节点发送下一个区块记账通知;
所述A类代理确定模块包括:
A类账户获取单元,用于获取区块链论坛中所有发布信息的节点所对应的A类账户;
A类账户排序单元,用于对各A类帐户按照第一记账权益的多少进行从大到小排序,所述第一记账权益用于衡量区块链中的其他节点对所述发布信息的节点所发布信息的支持程度;
观点领袖节点确定单元,用于将前M个A类账户所对应的节点确定为所述区块链论坛中的观点领袖节点;
A类代理确定单元,用于将所述观点领袖节点确定为A类代理节点;
所述B类代理确定模块包括:
B类账户获取单元,用于获取区块链中所有节点的B类账户以及所对应的第二记账权益;
B类账户排序单元,用于对各B类帐户按照第二记账权益的多少进行从小到大排序,所述第二记账权益为各节点对应的剩余记账权益;
阶层划分单元,用于将排序后的所述B类账户从前到后划分成N个阶层;
随机选择单元,用于从所述N个阶层中的每个阶层所对应的B类账户中随机选择一个B类账户;
B类代理确定单元,用于将所述随机选择出的N个B类账户所对应的节点确定为B类代理节点;
所述记账节点选择模块包括:
节点编号模块,用于对M个A类代理节点和N个B类代理节点进行编号;
数值反馈模块,用于向M个A类代理节点和N个B类代理节点分别发送数值反馈通知,数值反馈通知用于指示在限定时间内向当前记账节点反馈一个大于零的整数;
数值接收模块,用于接收限定时间内A类代理节点和B类代理节点分别反馈的数值,并根据反馈的数值确定下一个区块的记账节点的编号;
所述阶层划分单元具体包括:
第一获取单元,用于获取阶层平均第二记账权益,所述阶层平均第二记账权益为排序后的所有B类账户的第二记账权益总和与阶层数的比值;
第二获取单元,用于获取排序后的所述B类账户中未分配的B类账户;
累加分配单元,用于将所述未分配的B类账户的第二记账权益从前到后依次累加,若前K个B类账户的第二记账权益总和小于等于所述阶层平均第二记账权益,且前K+1个B类账户的第二记账权益总和大于所述阶层平均第二记账权益,则将所述前K个B类账户划分为一组;
循环判断单元,用于判断N个阶层是否划分完毕,若未划分完毕,则第二获取单元继续获取未分配的B类账户,直至N个阶层划分完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011324794.9A CN112529703B (zh) | 2020-11-23 | 2020-11-23 | 一种区块链的记账节点选择方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011324794.9A CN112529703B (zh) | 2020-11-23 | 2020-11-23 | 一种区块链的记账节点选择方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112529703A CN112529703A (zh) | 2021-03-19 |
CN112529703B true CN112529703B (zh) | 2023-09-01 |
Family
ID=74992962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011324794.9A Active CN112529703B (zh) | 2020-11-23 | 2020-11-23 | 一种区块链的记账节点选择方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112529703B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115952237B (zh) * | 2023-01-28 | 2023-06-09 | 北京星途探索科技有限公司 | 一种多端数据融合*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108596621A (zh) * | 2018-04-28 | 2018-09-28 | 深圳市优学链科技有限公司 | 区块链记账节点生成方法、装置、计算机设备及存储介质 |
CN108921523A (zh) * | 2018-06-20 | 2018-11-30 | 郑文宸 | 基于区块链的权益资产价值代币的创建、交易方法及*** |
CN109102287A (zh) * | 2018-08-13 | 2018-12-28 | 中国联合网络通信集团有限公司 | 区块链记账方法、装置、设备及存储介质 |
CN109639837A (zh) * | 2019-01-31 | 2019-04-16 | 东南大学 | 基于信任机制的区块链DPoS共识方法 |
CN109964446A (zh) * | 2018-06-08 | 2019-07-02 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN110689331A (zh) * | 2019-09-25 | 2020-01-14 | 重庆邮电大学 | 一种基于区块链的数字货币交易方法及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11165862B2 (en) * | 2017-10-24 | 2021-11-02 | 0Chain, LLC | Systems and methods of blockchain platform for distributed applications |
-
2020
- 2020-11-23 CN CN202011324794.9A patent/CN112529703B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108596621A (zh) * | 2018-04-28 | 2018-09-28 | 深圳市优学链科技有限公司 | 区块链记账节点生成方法、装置、计算机设备及存储介质 |
CN109964446A (zh) * | 2018-06-08 | 2019-07-02 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN108921523A (zh) * | 2018-06-20 | 2018-11-30 | 郑文宸 | 基于区块链的权益资产价值代币的创建、交易方法及*** |
CN109102287A (zh) * | 2018-08-13 | 2018-12-28 | 中国联合网络通信集团有限公司 | 区块链记账方法、装置、设备及存储介质 |
CN109639837A (zh) * | 2019-01-31 | 2019-04-16 | 东南大学 | 基于信任机制的区块链DPoS共识方法 |
CN110689331A (zh) * | 2019-09-25 | 2020-01-14 | 重庆邮电大学 | 一种基于区块链的数字货币交易方法及*** |
Non-Patent Citations (1)
Title |
---|
基于委托权益证明的区块链共识算法改进研究;龙锐;《中国优秀硕士学位论文全文数据库信息科技辑》(第09期);第I138-38页,全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112529703A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108876560B (zh) | 一种基于区块链对作品发布者进行信用评价的方法及装置 | |
Froleyks et al. | SAT competition 2020 | |
TWI717349B (zh) | 用於獎勵產生分散式數位資源場之伺服器及控制用於獎勵產生分散式數位資源場之伺服器之方法 | |
KR20210008111A (ko) | 트랜잭션 증명 방식의 합의 알고리즘이 적용된 블록체인 시스템 및 그 방법 | |
CN113421089A (zh) | 一种基于区块链的可用资源配额的兑换方法及装置 | |
KR102483037B1 (ko) | 이용가능한 자원 할당량에 대한 블록체인-기반 세트 교환 방법 및 장치 | |
CN109615200B (zh) | 虚拟互动道具发放方法、存储介质、电子设备及*** | |
Zhang et al. | On modeling blockchain-enabled economic networks as stochastic dynamical systems | |
CN112529703B (zh) | 一种区块链的记账节点选择方法及装置 | |
US11393031B2 (en) | Blockchain-based method and apparatus for pre-exchanging available resource quotas | |
CN111967994A (zh) | 一种智能合约的创建方法和装置 | |
Fröwis et al. | The operational cost of Ethereum airdrops | |
CN111966971A (zh) | 版权产品的收益分配方法、装置、服务器及存储介质 | |
CN102750619A (zh) | 数字资源出版发行***及方法 | |
CN113553378A (zh) | 一种区块链数据的删除方法和装置 | |
Tian et al. | Integrated resource-constrained project scheduling and material ordering problem considering storage space allocation | |
TW202026993A (zh) | 一種優惠金額確定方法、裝置、網路設備及電腦可讀存儲介質 | |
CN109492847B (zh) | 基于区块链的多资源平台以及多资源分配方法 | |
Chen et al. | Novel probabilistic cost estimation model integrating risk allocation and claim in hydropower project | |
CN114285848A (zh) | 区块链资源的可计量方法、***、电子设备和可读介质 | |
CN107705200A (zh) | 活期账户分层计息方法及装置、计算机设备及存储介质 | |
De Salve et al. | Measuring eos. io dapp resource allocation and costs through a benchmark application | |
CN111142868A (zh) | 活动中奖***开发方法及装置 | |
CN115269208B (zh) | 基于公式配置的资源处理方法及*** | |
CN113421178B (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 |