CN111177263A - 一种区块链共识方法及节点 - Google Patents
一种区块链共识方法及节点 Download PDFInfo
- Publication number
- CN111177263A CN111177263A CN201911374164.XA CN201911374164A CN111177263A CN 111177263 A CN111177263 A CN 111177263A CN 201911374164 A CN201911374164 A CN 201911374164A CN 111177263 A CN111177263 A CN 111177263A
- Authority
- CN
- China
- Prior art keywords
- account
- node
- block
- hash value
- last
- 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.)
- Pending
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/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
- 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
-
- 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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本文是关于一种区块链共识方法及节点,该方法包括:当前节点获取区块链上的末位区块;获取当前节点的节点账户的账户信息;对于当前节点的每个节点账户,当前节点执行以下操作:获取末位区块的哈希值和节点账户的账户地址;对末位区块的哈希值和节点账户的账户地址进行哈希计算得到目标哈希值;判断目标哈希值是否小于目标门限值,如果小于,则抽签抽中;生成待接入区块,其中,待接入区块包括末位区块的哈希值,且对待接入区块进行哈希计算得到的哈希值小于挖矿门限哈希值;将待接入区块广播至区块链网络中的其他节点。本发明基于POW,加入抽签环节,只有中签的账户可以参与挖矿,可以非常大的减少计算,减少能耗。
Description
技术领域
本文涉及区块链技术领域,特别是涉及一种区块链共识方法及节点。
背景技术
最近几年,区块链技术的应用越来越广泛。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改的不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
共识算法是该领域的专家、学者以及技术人员一直在探索研究的。目前常见的公司算法有:工作量证明(POW)、权益证明(POS)、代理权益证明(DPOS)以及使用拜占庭(PBFT)等。其中,POW工作量证明,通过枚举式的哈希值运算,计算出一个满足规则的随机数,即获得本次记账本,发出本轮需要记录的数据,全网50%以上的其它节点验证后一起存储,其缺点是需要竞争打包权,造成大量资源浪费,区块的确认时间难以缩短,效率很难适应商业化应用,需要等待多个确认且永远没有最终性;POS权益证明,是POW的一种升级共识机制,即根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度,其缺点是没有专业化、拥有权益的参与者未必希望参与记账,容易产生分叉,需要等待多个确认,永远没有最终性,需要检查点机制来弥补最终性,效率低;DPOS股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账。DPOS在POS的基础上,将记账人的角色专业化,先通过权益来选出记账人,然后记账人之间再轮流记账,其缺点在于:代币持有人的主动投票意愿不强烈或投票集中化,导致一定程度的中心化造成资源浪费;同样,PBFT也存在着容错率低、灵活性差、效率低等缺点。可见,现有的区块链共识机制普遍存在着在资源上容易造成浪费、效率低等问题。
发明内容
为克服相关技术中存在的问题,本文提供一种区块链共识方法及节点。
根据本文的第一方面,提供一种区块链共识方法,包括当前节点获取区块链上的末位区块;
获取所述当前节点的节点账户的账户信息;
对于所述当前节点的每个节点账户,所述当前节点执行以下操作:获取所述末位区块的哈希值和所述节点账户的账户地址;对所述末位区块的哈希值和所述节点账户的账户地址进行哈希计算得到目标哈希值;判断所述目标哈希值是否小于目标门限值,如果小于,则抽签抽中;生成待接入区块,其中,所述待接入区块包括所述末位区块的哈希值,且对所述待接入区块进行哈希计算得到的哈希值小于挖矿门限哈希值;将所述待接入区块广播至区块链网络中的其他节点。
可选的,所述末位区块的区块信息至少包括:中签并挖矿成功账户的账户地址;在所述当前节点获取区块链上的末位区块之后,在所述获取所述当前节点的节点账户的账户信息之前,所述方法还包括:
对所述末位区块进行验证,在验证通过后,根据所述中签并挖矿成功账户的账户地址获取所述中签并挖矿成功账户的账户信息,判断所述中签并挖矿成功账户的账户信息是否满足预设的最小资产条件,在所述中签并挖矿成功账户的账户信息满足预设的最小资产条件的情况下,执行所述获取所述当前节点的节点账户的账户信息的步骤。
可选的,在所述获取所述末位区块的哈希值和所述节点账户的账户地址之前,所述方法还包括:
判断所述节点账户的账户信息是否满足预设的最小资产条件,如果是,则执行所述获取所述末位区块的哈希值和所述节点账户的账户地址的步骤。
可选的,在所述当前节点获取区块链上的末位区块之前,所述方法还包括:
所述当前节点向所述区块链网络内其他节点广播加入抽签的声明。
可选的,所述方法还包括:
所述当前节点向所述区块链网络内其他节点广播退出抽签的声明。
根据本文的另一方面,提供一种节点,包括:
获取模块,用于获取区块链上的末位区块;还用于获取所述节点的节点账户的账户信息;
挖矿模块,用于对于所述节点的每个节点账户,执行以下操作:触发获取模块获取所述末位区块的哈希值和所述节点账户的账户地址;触发计算模块对所述末位区块的哈希值和所述节点账户的账户地址进行哈希计算得到目标哈希值;判断所述目标哈希值是否小于目标门限值,如果小于,则抽签抽中;生成待接入区块,其中,所述待接入区块包括所述末位区块的哈希值,且对所述待接入区块进行哈希计算得到的哈希值小于挖矿门限哈希值;将所述待接入区块广播至区块链网络中的其他节点;
所述获取模块,还用于获取所述末位区块的哈希值和所述节点账户的账户地址;
所述哈希计算模块,还用于对所述末位区块的哈希值和所述节点账户的账户地址进行哈希计算得到所述目标哈希值;
所述发送模块,用于将所述待接入区块广播至区块链网络中的其他节点。
可选的,所述末位区块的区块信息至少包括:中签并挖矿成功账户的账户地址;所述节点还包括:
验证模块,用于在所述获取模块获取区块链上的末位区块之后,在获取所述节点的节点账户的账户信息之前,对所述末位区块进行验证,在验证通过后,根据所述中签并挖矿成功账户的账户地址获取所述中签并挖矿成功账户的账户信息,判断所述中签并挖矿成功账户的账户信息是否满足预设的最小资产条件,在所述中签并挖矿成功账户的账户信息满足预设的最小资产条件的情况下,触发所述获取模块执行所述获取所述当前节点的节点账户的账户信息的操作。
可选的,所述节点还包括:
判断模块,还用于判断所述节点账户的账户信息是否满足预设的最小资产条件,如果是,则触发所述获取模块执行获取所述末位区块的哈希值和所述节点账户的账户地址的操作。
可选的,所述节点还包括:
所述发送模块,还用于在所述获取模块获取区块链上的末位区块之前,向所述区块链网络内其他节点广播加入抽签的声明。
可选的,所述发送模块,还用于向所述区块链网络内其他节点广播退出抽签的声明。
本发明基于POW,加入抽签环节,只有中签的账户可以参与挖矿,可以非常大的减少计算,减少能耗。区块链网络中各节点基于各自节点的节点账户的账户地址和末位区块的哈希值进行哈希运算得到目标哈希值,目标哈希值小于目标门限值为中签,因为哈希算法不可逆的特点,可以保证目标哈希值完全单向不可预测,进一步增强目标哈希值的随机性,即保证待接入区块的记账节点是随机产生的,保证区块链中各节点完全平等地竞争记账权,可鼓励更多人参与到区块链中,有利于区块链的推广和应用;当前节点利用中签的账户完成POW工作量证明,当前节点即为待接入区块的记账节点,进而达成区块链共识。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。
附图说明
构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。在附图中:
图1为本发明实施例提供的区块链共识方法的流程图;
图2为本发明实施例提供的当前节点所记录的区块链数据结构示意图;
图3为本发明实施例提供的节点结构示意图;
图4为本发明实施例提供的节点结构示意图。
具体实施方式
为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。
为便于理解本发明方案,以下首先对区块链相关特点进行简单介绍。
广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
狭义来讲,区块链是一串使用密码学方法相关联产生的数据区块,是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构。每一个数据块中包含交易信息,区块链中的每一笔交易都通过密码学方法与相邻两个区块串联,因此可追溯到任何一笔交易的历史,因此可实现信息有效性的验证和生成下一个区块。
区块链网络是由众多节点共同组成的一个端到端网络,每台设备都可作为一个节点,节点间基于一套共识机制,通过竞争计算共同维护整个区块链。节点可获得完整的区块链副本(狭义上的区块链,相当于数据库),这种节点一般为中继节点,也可仅获取部分区块链副本,如仅保存区块头信息,通过P2P(点对点)的方式按图索骥的找到中继节点,从而搜索到所需信息。
区块链中的所有数据信息是公开的,区块链上所有交易对所有节点可见。
用户持有的账户,可以利用区块链组网的节点进行挖矿。区块链网络中的各节点接收末位区块的记账节点广播的数据包,基于该数据包进行哈希计算,最先计算出低于挖矿门限哈希值的哈希值的节点挖矿成功,向区块链网络中的其他节点广播他的区块,将该区块加到区块链中,成为当前区块链的末位区块。
本实施例提供了一种区块链共识方法。图1是一种区块链共识方法的流程图。如图1所示,该方法包括以下步骤:
S101、当前节点获取区块链上的末位区块;
本实施例中的区块链为狭义上的区块链,即按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构。末位区块指区块链最新产生的一个区块,从区块链的链式结构上说,末位区块指区块链的最后一个区块。
本实施例提供的区块链共识方法是在现有POW工作量证明的共识机制的基础上增加抽签机制(见下文中步骤S103)。对于区块链网络中的多个节点来说,每个节点都可以先对自己拥有的账户进行抽签计算,通过抽签计算的账户中签,利用中签账户挖矿(利用POW共识机制,即通过组合交易记录顺序等不停计算数据块的哈希值,找到低于挖矿门限哈希值的排列组合),挖矿成功后,在区块链网络中广播数据块,该数据块即为区块链最新产生的一个区块,即区块链上的末位区块。
本实施例中,如果当前节点是第一个加入抽签的节点,则区块链上的末位区块是一个基于POW共识机制生成的区块,该区块的记账节点还没有加入抽签。该末位区块由区块头及该区块所包含的交易列表组成。区块头的大小为80字节,由4字节的版本号、32字节的上一个区块的散列值、32字节的Merkle Root Hash、4字节的时间缀(当前时间)、4字节的当前难度值、4字节的随机数组成。区块包含的交易列表则附加在区块头后面,其中的第一笔交易是coinbase交易,这是一笔为了让矿工获得奖励及手续费的特殊交易。
本实施例中,如果区块链上的末位区块的记账节点加入了抽签,那么,该记账节点在区块链上加上的末位区块的区块信息至少包括:中签并挖矿成功账户的账户地址;其中,中签并挖矿成功账户的账户地址可以为中签并挖矿成功账户的公钥。通过该账户地址可以查询到该中签并挖矿成功账户的相关信息,比如账户余额、历史交易等等,以便于区块链网络中的各个节点在接收到该中签并挖矿成功账户的末位区块后,可以对该中签并挖矿成功账户进行验证核实。
S102、获取当前节点的节点账户的账户信息;
本实施例中,当前节点上可以同时有多个节点账户参与挖矿,当前节点获取每个节点账户的账户信息。
作为本实施例中一种可选的实施方式,在当前节点获取区块链上的末位区块之后,在获取当前节点的节点账户的账户信息之前,本实施例提供的方法还包括:对末位区块进行验证,在验证通过后,根据中签并挖矿成功账户的账户地址获取中签并挖矿成功账户的账户信息,判断中签并挖矿成功账户的账户信息是否满足预设的最小资产条件,在中签并挖矿成功账户的账户信息满足预设的最小资产条件的情况下,执行步骤S102。
本实施例中,中签并挖矿成功账户的账户信息满足预设的最小资产条件表示中签并挖矿成功账户的账户能力(如账户余额)满足预设的最小资产条件,如中签并挖矿成功账户的账户余额大于预设的最小资产值,有资格参与抽签和挖矿。其中,最小资产条件可以为预设的最小资产值,可以这样来设置:设置一个资产比例为x%,对所有账户按照资产大小从大到小排列,所有账户的资产总额是M,如果从第1个账户到n个账户累计资产大于等于M*x%,但是从第1个账户到第n-1个账户累计资产小于M*x%,则第n+1个账户的资产为最小资产门限值,如果n+1已经超出队列长度,则门限值取0,其中,n、x、M为正整数。本实施例仅给出示例性说明如何设置最小资产值,但并不对设置方式进行限制。本申请中通过最小资产值的设置可以控制抽签中签的范围,防止做一些空账户增加抽签几率,比如控制资产比例x%即可以实现。而且,通过最小资产值的设置还可以排除不满足条件的账户参与挖矿,减少竞争,节省资源,抑制建块速度。
本实施例中,上一个中签并挖矿成功账户的节点生成了新的区块,所有接收到末位区块的节点都可以对该末位区块进行验证,验证通过后,通过核实中签并挖矿成功账户的账户信息来防止不良账户作弊,排除了末位区块的记账节点作恶的可能。
S103、对于当前节点的每个节点账户,当前节点执行以下操作:获取末位区块的哈希值和节点账户的账户地址;对末位区块的哈希值和节点账户的账户地址进行哈希计算得到目标哈希值;判断目标哈希值是否小于目标门限值,如果小于,则抽签抽中;生成待接入区块,其中,待接入区块包括末位区块的哈希值,且对待接入区块进行哈希计算得到的哈希值小于挖矿门限哈希值;将所述待接入区块广播至区块链网络中的其他节点。
本实施例中,目标门限值可以这样设置,例如:系统需要M个账户保持算力均衡,当前有N个账户,N>M,计算得到的目标哈希值的数值范围为Y,则门限值可以定位ROUND(M/N*Y)。本实施例仅给出示例性说明如何设置目标门限值,但并不对设置方式进行限制。本实施例中通过目标门限值的设置可以控制抽签中签的范围,节省电力开支,只要可以控制抽签中签的范围即属于本发明的保护范围。
作为本实施例中的一种可选实施方式,待接入区块包括节点账户的账户地址,以便于下一中签且挖矿成功的节点账户通过该账户地址查询到对应的账户信息,对当前节点中签且挖矿成功的节点账户进行是否满足最小资产条件的验证。
作为本实施例中的一种可选实施方式,在所述当前节点获取区块链上的末位区块之前,本实施例提供的方法还包括:当前节点向区块链网络内其他节点广播加入抽签的声明。作为本实施例中的一种可选实施方式,在需要退出抽签时,本实施例提供的方法还包括:当前节点向区块链网络内其他节点广播退出抽签的声明。
声明加入或退出抽签,都会影响目标门限值每次调整的计算,原则上一个节点建立后会立即加入抽签不再退出。当然,也可以不做声明,因为通过最小资产调节的限制也可以控制抽签中签的范围。
本实施例中的待接入区块指中签并挖矿成功账户通过组合交易记录顺序等不停计算数据块的哈希值,找到低于挖矿门限哈希值的排列组合生成的新的区块,也就是说,对该待接入区块进行哈希计算得到的哈希值小于挖矿门限哈希值,待接入区块包括末位区块的哈希值,构成末位区块的下一个区块。当前节点将该待接入区块加入区块链中,向网络中其他节点广播该待接入区块。本实施例中当前节点所记录的区块链数据结构参见图2,该区块链结构包括:多个区块。其中,Block n为步骤S101中当前节点接收到的末位区块,该末位区块包括前置区块的哈希值Hash(n-1)以及块数据和交易记录组合;Block n+1为本文中的待接入区块,该待接入区块包括末位区块的哈希值Hash(n)以及块数据和交易记录组合。
作为本实施例中一种可选的实施方式,在获取末位区块的哈希值和节点账户的账户地址之前,本方法还包括:判断节点账户的账户信息是否满足预设的最小资产条件,如果是,则执行获取末位区块的哈希值和节点账户的账户地址的步骤。
本实施例中,每个节点首先进行自己拥有账户的资产审查,假设一个节点满足最小资产条件的账户有100个,该节点会针对这100账户个去抽签计算,如果某个账户通过抽签计算,则利用该账户挖矿(通过组合交易记录顺序等不停计算数据块的哈希值,找到低于挖矿门限哈希值的排列组合),挖矿成功后,广播数据块,收到数据块的各个节点按照步骤S101-S103的方式重新开始基于抽签的挖矿。
在本实施例中,基于POW,加入抽签环节,只有中签的账户可以参与挖矿,可以非常大的减少计算,减少能耗。区块链网络中各节点基于各自节点的节点账户的账户地址和末位区块的哈希值进行哈希运算得到目标哈希值,目标哈希值小于目标门限值为中签,因为哈希算法不可逆的特点,可以保证目标哈希值完全单向不可预测,进一步增强目标哈希值的随机性,即保证待接入区块的记账节点是随机产生的,保证区块链中各节点完全平等地竞争记账权,可鼓励更多人参与到区块链中,有利于区块链的推广和应用;当前节点利用中签的账户完成POW工作量证明,当前节点即为待接入区块的记账节点,进而达成区块链共识。
在本发明实施例中还提供了一种节点10,可以采用上文所述的区链块共识方法。相关事宜可参照上文所述内容,此处仅对节点10的结构及功能进行简要说明。参见图3,节点10包括:
获取模块101,用于获取区块链上的末位区块;还用于获取节点的节点账户的账户信息;
挖矿模块102,用于对于节点的每个节点账户,执行以下操作:触发获取模块获取末位区块的哈希值和节点账户的账户地址;触发计算模块对末位区块的哈希值和节点账户的账户地址进行哈希计算得到目标哈希值;判断目标哈希值是否小于目标门限值,如果小于,则抽签抽中;生成待接入区块,其中,待接入区块包括末位区块的哈希值,且对待接入区块进行哈希计算得到的哈希值小于挖矿门限哈希值;将待接入区块广播至区块链网络中的其他节点;
获取模块101,还用于获取末位区块的哈希值和节点账户的账户地址;
哈希计算模块103,还用于对末位区块的哈希值和节点账户的账户地址进行哈希计算得到目标哈希值;
发送模块104,用于将待接入区块广播至区块链网络中的其他节点。
作为本实施例中一种可选的实施方式,末位区块的区块信息至少包括:中签并挖矿成功账户的账户地址;如图4所示,节点10还包括:验证模块105,用于在获取模块获取区块链上的末位区块之后,在获取节点的节点账户的账户信息之前,对末位区块进行验证,在验证通过后,根据中签并挖矿成功账户的账户地址获取中签并挖矿成功账户的账户信息,判断中签并挖矿成功账户的账户信息是否满足预设的最小资产条件,在中签并挖矿成功账户的账户信息满足预设的最小资产条件的情况下,触发获取模块101执行获取当前节点的节点账户的账户信息的操作。
作为本实施例中一种可选的实施方式,如图4所示,节点10还包括:判断模块106,还用于判断节点账户的账户信息是否满足预设的最小资产条件,如果是,则触发获取模块执行获取末位区块的哈希值和节点账户的账户地址的操作。
作为本实施例中一种可选的实施方式,发送模块104,还用于在获取模块获取区块链上的末位区块之前,向区块链网络内其他节点广播加入抽签的声明。发送模块104,还用于向区块链网络内其他节点广播退出抽签的声明。
在本实施例中,基于POW,加入抽签环节,只有中签的账户可以参与挖矿,可以非常大的减少计算,减少能耗。区块链网络中各节点基于各自节点的节点账户的账户地址和末位区块的哈希值进行哈希运算得到目标哈希值,目标哈希值小于目标门限值为中签,因为哈希算法不可逆的特点,可以保证目标哈希值完全单向不可预测,进一步增强目标哈希值的随机性,即保证待接入区块的记账节点是随机产生的,保证区块链中各节点完全平等地竞争记账权,可鼓励更多人参与到区块链中,有利于区块链的推广和应用;当前节点利用中签的账户完成POW工作量证明,当前节点即为待接入区块的记账节点,进而达成区块链共识。
本领域技术人员应明白,本文的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
尽管已描述了本文的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本文范围的所有变更和修改。
显然,本领域的技术人员可以对本文进行各种改动和变型而不脱离本文的精神和范围。这样,倘若本文的这些修改和变型属于本文权利要求及其等同技术的范围之内,则本文的意图也包含这些改动和变型在内。
Claims (10)
1.一种区块链共识方法,其特征在于,包括:
当前节点获取区块链上的末位区块;
获取所述当前节点的节点账户的账户信息;
对于所述当前节点的每个节点账户,所述当前节点执行以下操作:获取所述末位区块的哈希值和所述节点账户的账户地址;对所述末位区块的哈希值和所述节点账户的账户地址进行哈希计算得到目标哈希值;判断所述目标哈希值是否小于目标门限值,如果小于,则抽签抽中;生成待接入区块,其中,所述待接入区块包括所述末位区块的哈希值,且对所述待接入区块进行哈希计算得到的哈希值小于挖矿门限哈希值;将所述待接入区块广播至区块链网络中的其他节点。
2.根据权利要求1所述的方法,其特征在于,
所述末位区块的区块信息至少包括:中签并挖矿成功账户的账户地址;在所述当前节点获取区块链上的末位区块之后,在所述获取所述当前节点的节点账户的账户信息之前,所述方法还包括:
对所述末位区块进行验证,在验证通过后,根据所述中签并挖矿成功账户的账户地址获取所述中签并挖矿成功账户的账户信息,判断所述中签并挖矿成功账户的账户信息是否满足预设的最小资产条件,在所述中签并挖矿成功账户的账户信息满足预设的最小资产条件的情况下,执行所述获取所述当前节点的节点账户的账户信息的步骤。
3.根据权利要求1所述的方法,其特征在于,在所述获取所述末位区块的哈希值和所述节点账户的账户地址之前,所述方法还包括:
判断所述节点账户的账户信息是否满足预设的最小资产条件,如果是,则执行所述获取所述末位区块的哈希值和所述节点账户的账户地址的步骤。
4.根据权利要求1所述的方法,其特征在于,在所述当前节点获取区块链上的末位区块之前,所述方法还包括:
所述当前节点向所述区块链网络内其他节点广播加入抽签的声明。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述当前节点向所述区块链网络内其他节点广播退出抽签的声明。
6.一种节点,其特征在于,包括:
获取模块,用于获取区块链上的末位区块;还用于获取所述节点的节点账户的账户信息;
挖矿模块,用于对于所述节点的每个节点账户,执行以下操作:触发获取模块获取所述末位区块的哈希值和所述节点账户的账户地址;触发计算模块对所述末位区块的哈希值和所述节点账户的账户地址进行哈希计算得到目标哈希值;判断所述目标哈希值是否小于目标门限值,如果小于,则抽签抽中;生成待接入区块,其中,所述待接入区块包括所述末位区块的哈希值,且对所述待接入区块进行哈希计算得到的哈希值小于挖矿门限哈希值;将所述待接入区块广播至区块链网络中的其他节点;
所述获取模块,还用于获取所述末位区块的哈希值和所述节点账户的账户地址;
所述哈希计算模块,还用于对所述末位区块的哈希值和所述节点账户的账户地址进行哈希计算得到所述目标哈希值;
所述发送模块,用于将所述待接入区块广播至区块链网络中的其他节点。
7.根据权利要求6所述的节点,其特征在于,
所述末位区块的区块信息至少包括:中签并挖矿成功账户的账户地址;所述节点还包括:
验证模块,用于在所述获取模块获取区块链上的末位区块之后,在获取所述节点的节点账户的账户信息之前,对所述末位区块进行验证,在验证通过后,根据所述中签并挖矿成功账户的账户地址获取所述中签并挖矿成功账户的账户信息,判断所述中签并挖矿成功账户的账户信息是否满足预设的最小资产条件,在所述中签并挖矿成功账户的账户信息满足预设的最小资产条件的情况下,触发所述获取模块执行所述获取所述当前节点的节点账户的账户信息的操作。
8.根据权利要求6所述的节点,其特征在于,还包括:
判断模块,还用于判断所述节点账户的账户信息是否满足预设的最小资产条件,如果是,则触发所述获取模块执行获取所述末位区块的哈希值和所述节点账户的账户地址的操作。
9.根据权利要求6所述的节点,其特征在于,还包括:
所述发送模块,还用于在所述获取模块获取区块链上的末位区块之前,向所述区块链网络内其他节点广播加入抽签的声明。
10.根据权利要求6所述的节点,其特征在于,
所述发送模块,还用于向所述区块链网络内其他节点广播退出抽签的声明。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911374164.XA CN111177263A (zh) | 2019-12-27 | 2019-12-27 | 一种区块链共识方法及节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911374164.XA CN111177263A (zh) | 2019-12-27 | 2019-12-27 | 一种区块链共识方法及节点 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111177263A true CN111177263A (zh) | 2020-05-19 |
Family
ID=70655799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911374164.XA Pending CN111177263A (zh) | 2019-12-27 | 2019-12-27 | 一种区块链共识方法及节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111177263A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076376A (zh) * | 2021-03-29 | 2021-07-06 | 湖北央中巨石信息技术有限公司 | 基于区块链的多方异步抽样共识方法及系统及装置及介质 |
CN113761071A (zh) * | 2021-10-09 | 2021-12-07 | 支付宝(杭州)信息技术有限公司 | 一种共识方法、区块链系统和共识节点 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566124A (zh) * | 2017-08-24 | 2018-01-09 | 深圳市易成自动驾驶技术有限公司 | 基于抽签机制的共识建立方法、区块链系统及存储介质 |
CN109889397A (zh) * | 2019-03-31 | 2019-06-14 | 杭州复杂美科技有限公司 | 抽签方法、区块生成方法、设备及存储介质 |
US20190379546A1 (en) * | 2018-06-12 | 2019-12-12 | Chunghwa Telecom Co., Ltd. | Method for reaching consensus on public distributed ledgers and system using the same |
-
2019
- 2019-12-27 CN CN201911374164.XA patent/CN111177263A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566124A (zh) * | 2017-08-24 | 2018-01-09 | 深圳市易成自动驾驶技术有限公司 | 基于抽签机制的共识建立方法、区块链系统及存储介质 |
US20190379546A1 (en) * | 2018-06-12 | 2019-12-12 | Chunghwa Telecom Co., Ltd. | Method for reaching consensus on public distributed ledgers and system using the same |
CN109889397A (zh) * | 2019-03-31 | 2019-06-14 | 杭州复杂美科技有限公司 | 抽签方法、区块生成方法、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076376A (zh) * | 2021-03-29 | 2021-07-06 | 湖北央中巨石信息技术有限公司 | 基于区块链的多方异步抽样共识方法及系统及装置及介质 |
CN113076376B (zh) * | 2021-03-29 | 2024-02-06 | 湖北央中巨石信息技术有限公司 | 基于区块链的多方异步抽样共识方法及系统及装置及介质 |
CN113761071A (zh) * | 2021-10-09 | 2021-12-07 | 支付宝(杭州)信息技术有限公司 | 一种共识方法、区块链系统和共识节点 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109075964B (zh) | 支持用于区块验证的多个单向函数的区块链 | |
CN109639430B (zh) | 安全高速轻量级的区块链系统及方法 | |
CN110599173B (zh) | 区块链的共识节点确定方法、装置、设备及存储介质 | |
CN108512652B (zh) | 基于时间证明的去中心化共识方法、系统及区块链系统 | |
CN108648084B (zh) | 一种区块链网络的数据处理方法、装置、设备及存储介质 | |
CN107171810B (zh) | 区块链的验证方法及装置 | |
CN110011974B (zh) | 区块链的记账方法、装置、终端和计算机可读存储介质 | |
CA3037833C (en) | System and method for information protection | |
CN108805627B (zh) | 媒体资源分配方法、装置、系统、介质及设备 | |
CN104915249A (zh) | 矿池中挖虚拟数字币的方法和装置 | |
CN110738472B (zh) | 区块链的存储方法和区块链的节点 | |
CN111445247B (zh) | 用于防止区块链分叉的方法和设备 | |
CN111010284B (zh) | 一种待共识区块的处理方法、相关装置及区块链系统 | |
CN111966538B (zh) | 一种区块链数据的恢复方法和装置 | |
CN111177263A (zh) | 一种区块链共识方法及节点 | |
CN112907369A (zh) | 基于区块链的数据共识方法及装置、电子设备、存储介质 | |
CN109840769B (zh) | 基于区块链的存证方法及装置、系统与存储介质 | |
CN111639080A (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN112015822B (zh) | 一种区块链数据的删除方法和装置 | |
CN112651830A (zh) | 应用于电力资源共享网络的区块链共识方法 | |
CN110659905A (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
CN111861459A (zh) | 一种基于DPoS共识算法的Iota账本优化系统及方法 | |
CN111597264A (zh) | 一种区块链记账方法及装置 | |
Saad et al. | Decentralized directed acyclic graph based dlt network | |
CN113448694B (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 |