CN111242625B - 一种皮肤块、皮肤链网络及其实现方法 - Google Patents
一种皮肤块、皮肤链网络及其实现方法 Download PDFInfo
- Publication number
- CN111242625B CN111242625B CN202010118148.0A CN202010118148A CN111242625B CN 111242625 B CN111242625 B CN 111242625B CN 202010118148 A CN202010118148 A CN 202010118148A CN 111242625 B CN111242625 B CN 111242625B
- Authority
- CN
- China
- Prior art keywords
- block
- node
- skin
- data
- nodes
- 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
- 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
- G06Q20/3827—Use of message hashing
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种皮肤块,每一个皮肤块中包含一个区块头部和一个或多个数据块。所述区块头部包括三个字段;“本块HASH编码”字段记录本皮肤块的哈希编码;“区块序号”字段记录本皮肤块的区块序号;所有皮肤块的区块序号各不相同;“前块HASH编码”字段记录本皮肤块所连接的前一个皮肤块的哈希编码。所述数据块根据登记数据、查询数据、通证转让、通证质押、通证赎回、通证分红的不同交易类别分别具有不同数据格式;所有数据块都包括 “数据块序号”字段、“数据块源数据HASH”字段、“数据块类别”字段。本申请大大降低了处理节点的存储资源要求,使得处理节点更容易支撑起大量交易数据,显著提升了皮肤链网络的安全性、抗攻击性、自适应调整性。
Description
技术领域
本申请涉及一种区块链(Blockchain)以及区块链网络。
背景技术
2016年10月18日工业和信息化部发布的《中国区块链技术和应用发展白皮书》中,将区块链定义为一种无须中介参与、亦能在互不信任或弱信任的参与者之间维系一套不可篡改的账本记录的技术。首先,区块链是一种以区块(block)为单位的链(chain)状数据结构,每一个区块都与前续区块通过密码学证明的方式链接在一起。其次,区块链是一种全网共享的分布式账本(distributed ledger)。许多场景中,区块链与分布式账本这两个技术术语具有相同含义。
典型地,区块链技术被P2P网络(peer-to-peer network)的全部或部分节点用来根据某种共识算法验证新的区块,通过验证的新区块被新增到区块链数据结构的末尾。采用区块链技术的P2P网络就被称为区块链网络。共识是指多方参与的节点在预设规则下,通过多个节点交互对某些数据、行为或流程达成一致的过程。共识机制是定义共识过程的算法、协议和规则。
发明内容
本申请所要解决的技术问题是提供一种新型的区块链网络,称为皮肤链网络,能够支撑起大量交易的发生,安全性好。本申请还要提供一种皮肤块,即所述皮肤链网络中的区块,能够减少对节点的存储资源的要求。本申请还要提供一种皮肤链网络的实现方法,具有安全性好、自适应调整的特点。
为解决上述技术问题,本申请提供了一种皮肤块,所述皮肤块构成的链状数据结构为皮肤链;所述皮肤链是一种区块链;所述皮肤块是构成区块链的每一个区块;每一个皮肤块中包含一个区块头部和一个或多个数据块。所述区块头部包括三个字段;“本块HASH编码”字段记录本皮肤块的哈希编码;“区块序号”字段记录本皮肤块的区块序号;所有皮肤块的区块序号各不相同;“前块HASH编码”字段记录本皮肤块所连接的前一个皮肤块的哈希编码。所述数据块根据登记数据、查询数据、通证转让、通证质押、通证赎回、通证分红的不同交易类别分别具有不同数据格式;所有数据块都包括如下三个字段;“数据块序号”字段记录本数据块在皮肤块中的序号;“数据块源数据HASH”字段记录本数据块所对应的原始数据的哈希编码;“数据块类别”字段记录本数据块所属交易类别。所述皮肤块与现有的区块链中的区块相比,显著特点在于不存储原始数据,只存储原始数据的哈希编码,从而大大降低了对节点的存储资源的要求,使得小存储空间的节点也能支撑起大交易量的数据。
进一步的,登记数据类别的数据块还包括如下字段;“数据简要描述”字段记录源数据登记方对所登记数据的概要描述。“数据块源数据链接”字段记录本数据块所对应的原始数据的网络链接地址。“数据块源数据校验回调函数”字段记录一个校验回调函数;该函数只能由皮肤链“智能校验合约程序”调用;该函数的输入参数为“数据块源数据链接”字段和“数据块源数据HASH”字段记录的内容;该函数在执行时,根据“数据块源数据链接”字段记录的内容调用源数据,被调用的源数据需要提供完整数据,“智能校验合约程序”计算出源数据的哈希编码,与“数据块源数据HASH”字段记录的内容进行对比;如果两者相同,返回源数据未被篡改;如果两者不同,返回源数据已被篡改。“数据块源数据查询鉴权回调函数”字段记录一个查询鉴权回调函数;该函数调用源数据登记方的鉴权页面,在鉴权通过后,源数据登记方提供源数据的内容供访问;该函数在有权访问源数据的内容后,还计算出源数据的哈希编码,与“数据块源数据HASH”字段记录的内容进行对比;如果两者相同,返回源数据未被篡改;如果两者不同,返回源数据已被篡改。这是一种示例。
优选的,登记数据类别的数据块还包括“数据块上游数据块”字段;当某个数据块中的数据存在上游数据时,则该字段存在;该字段记录当前数据块中的数据的上游数据所在皮肤块的区块序号、以及该上游数据所在皮肤块中的数据块的数据块序号。这样可以方便查询到上游数据。
进一步的,查询数据类别的数据块还包括如下字段;“查询节点账号”字段记录发起查询的节点的账号信息。“被查询数据块”字段记录被查询的数据块所属皮肤块的区块序号、以及被查询的数据块在所属皮肤块中的数据块序号。这是一种示例。
进一步的,通证转让类别的数据块还包括如下字段;“转让通证数量”字段记录转让的通证的数量。“转出账号”字段记录通证的转出节点的账号信息。“转入账号”字段记录通证的转入节点的账号信息。这是一种示例。
进一步的,通证质押类别的数据块还包括如下字段;“质押通证数量”字段记录质押的通证的数量。“质押通证给予方”字段记录质押通证的给予方节点的账号信息。“质押通证获取方”字段记录质押通证的获取方节点的账号信息。这是一种示例。
进一步的,通证赎回类别的数据块还包括如下字段;“通证赎回数量”字段记录赎回的通证的数量。“通证赎回承兑方”字段记录赎回通证的承兑方节点的账号信息。“通证赎回发起方”字段记录赎回通证的发起方节点的账号信息。这是一种示例。
进一步的,通证分红类别的数据块还包括如下字段;“通证分红比例”字段记录通证分红的比例信息。“通证分红时间”字段记录通证分红的时间信息。“分红通证接收账号”字段记录用来接收分红通证的节点的账号信息。这是一种示例。
本申请还提供了一种皮肤链网络,这是采用皮肤链的P2P网络,包括多个节点;节点分为“处理节点”和“客户端节点”两大类。处理节点是指分担处理皮肤链网络的业务负荷的计算机或计算机集群;每一个处理节点都是皮肤链的一个全备份节点;所述处理节点又分为“出块节点”、“验证节点”、“同步节点”三小类;出块节点是指负责计算交易并决定新增的皮肤块的节点;验证节点是指负责接收出块节点的新增的皮肤块的结果并进行验证、给出“通过”或“拒绝”的验证结论的节点;同步节点是指负责将验证结论为“通过”的新增的皮肤块增加到本地存储的皮肤链的末尾的节点;出块节点和验证节点也会将验证结论为“通过”的新增的皮肤块增加到本地存储的皮肤链的末尾。客户端节点是指不分担皮肤链网络的业务负荷也不存储皮肤链、可以发起交易的计算机或计算机集群。所述皮肤链网络与现有的区块链网络相比,显著特点在于对节点进行了两大类的划分,其中的处理节点又根据功能划分为三小类。
本申请还提供了一种皮肤链网络的实现方法,所述皮肤链网络的共识算法包括如下步骤。步骤S901:在所有处理节点中随机选取第一数量的多个节点作为验证节点,除了验证节点以外的处理节点均作为同步节点;当处理节点的总数小于或等于第一数量时,全部处理节点都是验证节点,此时无同步节点。步骤S902:在所有验证节点中随机选取第二数量的节点作为出块节点;选出来的出块节点不再作为验证节点;第二数量小于第一数量,第二数量的取值为一个或多个。步骤S903:出块节点产生新的皮肤块并进行自检;自检通过,则进入步骤S904;自检未通过,进入步骤S910。步骤S904:所有验证节点对通过自检的新的皮肤块进行校验和表决,当第二预定比例的验证节点通过新的皮肤块的校验,则给出“通过”的验证结论,进入步骤S905;否则,给出“拒绝”的验证结论,则进入步骤S910。所述第二预定比例≥50%。步骤S905:同步节点、出块节点和验证节点均将通过验证的新产生的皮肤块加入到本地存储的皮肤链的末尾。步骤S906:当出块节点产生的新的皮肤块的数量小于设定的阈值,则回到步骤S903;当出块节点产生的新的皮肤块的数量等于设定的阈值,则将所有出块节点改作为同步节点,同时在所有同步节点中随机选取第二数量的节点作为验证节点,补充到现有的验证节点中,回到步骤S902。步骤S910:将产生自检未通过或验证未通过的皮肤块的所有出块节点冻结;冻结期间不作为处理节点;同时回到步骤S902重新随机选取第二数量的出块节点;冻结达到设定的时间后,原出块节点改作为同步节点。所述皮肤链网络的实现方法在共识过程中具有双随机、双表决的特点,极大地增强了皮肤链网络的安全性、抗攻击性。
优选的,所述步骤S901中,第一数量的取值为21;或者,第一数量的取值为Max(处理节点总数×5%,21),其中Max函数表示取最大值。这是一种优选示例。
优选的,所述步骤S902中,第二数量的取值为Max(验证节点数×5%,1);当计算结果为偶数时,将计算结果加1作为第二数量。这是一种优选示例。
优选的,所述步骤S903中,在一个设定的时间段内发生的所有交易数据构成一个新的皮肤块;如果设定的时间段尚未结束,但是交易数据已达到设定的数量,则立即产生一个新的皮肤块。这是一种优选示例。
优选的,所述步骤S903中,如果出块节点有多个,则出块节点的自检就是第一预定比例的出块节点的一致性检查;如果预定比例的一致性检查通过,则表示新的皮肤块通过自检;否则表示新的皮肤块未通过自检。所述第一预定比例≥50%。这是一种优选示例。
优选的,所述步骤S904中,当给出“通过”的验证结论的验证节点数等于给出“拒绝”的验证结论的验证节点数,则将所有验证节点冻结;冻结期间不作为处理节点;同时回到步骤S901重新随机选取第一数量的验证节点;冻结达到设定的时间后,原验证节点改作为同步节点。这是一种优选示例。
本申请还提供了一种皮肤链网络的实现方法,一个处理节点由一个或多个原子节点构成;原子节点是指一台满足过去一段时间内在线时间大于一定阈值、且满足皮肤链网络所要求的物理资源的最低要求的计算机;一个处理节点内的原子节点分担处理节点的运算和存储,每个处理节点都完整存储一份完整的皮肤链数据,一个原子节点只存储完整皮肤链数据的一部分。当处理节点只包含一个原子节点时,该原子节点存储完整的皮肤链数据。所述皮肤链网络的实现方法明确界定了处理节点和原子节点的区别,物理意义上的原子节点无法左右逻辑意义上的处理节点,从而增强了皮肤链网络的安全性、抗攻击性。
进一步的,每一个原子节点被测算物理资源的能力后根据每一种物理资源的权重系数计算出贡献系数;一个处理节点的总贡献系数等于组成该处理节点的所有原子节点的贡献系数之和。所述原子节点的贡献系数跟随皮肤链网络的资源需求情况而进行自调整;当皮肤链网络急需某种硬件资源,那么贡献紧缺资源较多的原子节点的贡献系数被调高;当皮肤链网络富余某种硬件资源,那么贡献富余资源较多的原子节点的贡献系数被调低。所述处理节点与原子节点的对应关系也跟随皮肤链网络的资源需求情况而进行自调整,称为处理节点的重组。这表明原子节点、处理节点跟随皮肤链网络的资源需求情况而自行调整。
优选的,所述处理节点的重组包括如下步骤。步骤S1001:定义存在递增关系的多级告警门限值;下面同时进入步骤S1002和步骤S1012。步骤S1002:当所有出块节点在一段时间内有任意一项物理资源的实际消耗达到第二小的告警门限值,就把告警项的物理资源的权重参数增加。步骤S1003:重复步骤S1002一次或多次,每次采用更大的告警门限值和/或采用更大的告警项的物理资源的权重参数的增加值;或者,该步骤省略。步骤S1004:当所有出块节点在一段时间内有任意一项物理资源的实际消耗达到最大的告警门限值,就触发处理节点合并逻辑;所述处理节点合并逻辑以最危险的告警项的物理资源为依据,计算该项物理资源达到不告警状态最小要合并进入的原子节点数,而后将所计算的原子节点合并到处理节点中进行处理节点重新生成;合并后告警消失并恢复各项物理资源的权重参数;如果依旧有告警项,对应告警项增大相应的物理资源的权重参数。这一步中,如果皮肤链网络内的处理节点总数小于或等于第一数量,则处理节点不再合并。步骤S1012:当所有处理节点在一段时间内的所有物理资源的实际消耗均低于最小的告警门限值时,就触发处理节点拆分或解散逻辑;所述处理节点拆分或解散逻辑为:定义倍数=向上取整{第一参数/该物理节点消耗最大的物理资源的实际资源消耗值},计算新的处理节点的总贡献系数为介于{当前处理节点总贡献系数/倍数*第二参数,当前处理节点总贡献系数/(倍数-1)*第三参数}之间;依据新的物理节点的总贡献系数,将当前处理节点拆分成倍数个或倍数减一个处理节点。第二参数<1<第三参数。这一步中,如果处理节点仅由一个原子节点构成,则该处理节点不再拆分。这是处理节点的重组的第一实施例。
优选的,所述步骤S1012中,如果拆分后的一个或多个处理节点的总贡献系数不满足介于{当前处理节点总贡献系数/倍数*第二参数,当前处理节点总贡献系数/(倍数-1)*第三参数}之间,则拆分后的这一个或多个处理节点解散,其中原子节点重新组合形成新的处理节点、或加入其它处理节点。这是一个优选示例。
优选的,所述处理节点的重组包括如下步骤;所述皮肤链网络将所有处理节点划分为多块;某一时刻起,某一块中的所有处理节点不再参与交易的出块、校验和同步,这一块中的所有处理节点全部解散并开始按照新的贡献系数的要求进行重组;这一块重组完毕后,完成一次同步数据,而后恢复处理皮肤链网络的交易的出块、校验和同步的工作;此时另一块中所有处理节点解散并开始按照新的贡献系数的要求进行重组。这是处理节点的重组的第二实施例。
优选的,所述处理节点的重组包括如下步骤;每经过一个处理间隔,处理节点依据在上一个处理间隔的业务繁忙程度,进行一次处理节点的重组。如果上一个处理间隔的业务变多,则增强处理节点的能力,在现有的处理节点中合并进入更多的原子节点,同时某些现有的处理节点解散以释放原子节点如果上一个处理间隔的业务变少,则减小处理节点的能力,拆分现有的处理节点。如果上一个处理间隔的业务不变,则保持处理节点的能力不变,即不对现有的处理节点进行扩容、解散或缩编。这是处理节点的重组的第三实施例。
本申请取得的技术效果是大大降低了处理节点的存储资源要求,使得处理节点更容易支撑起大量交易数据,显著提升了皮肤链网络的安全性、抗攻击性、自适应调整性。
附图说明
图1是本申请提供的皮肤块的数据结构示意图。
图2是图1中的区块头部的数据结构示意图。
图3是图1中的数据块为登记数据类别的数据结构示意图。
图4是图1中的数据块为查询数据类别的数据结构示意图。
图5是图1中的数据块为通证转让类别的数据结构示意图。
图6是图1中的数据块为通证质押类别的数据结构示意图。
图7是图1中的数据块为通证赎回类别的数据结构示意图。
图8是图1中的数据块为通证分红类别的数据结构示意图。
图9是本申请提供的皮肤链网络的共识算法的流程图。
图10是本申请提供的处理节点重组方法的实施例一的流程图。
具体实施方式
本申请提供了一种区块链,称为皮肤链。构成所述皮肤链的每一个区块,称为皮肤块。每一个皮肤块都与前续的皮肤块通过密码学证明的方式链接在一起,形成的链状数据结构就是皮肤链。采用所述皮肤链的P2P网络称为皮肤链网络。
请参阅图1,每一个皮肤块中包含一个区块头部和一个或多个数据块。优选地,一个皮肤块中包含的数据块的数量最少为1个,最多为1024个或其他设定值。
请参阅图2,所述区块头部包括三个字段。“本块HASH编码”字段记录本皮肤块的哈希编码(hash code),作为本皮肤块的唯一索引。“区块序号”字段记录本皮肤块的区块序号,用来快速查找皮肤块。所有皮肤块的区块序号各不相同,且按照明确的规律前后排序。比如,各皮肤块的区块序号采用正整数递进,或者按照一个公式的计算结果递进,以便于根据区块序号快速找到皮肤块的位置。“前块HASH编码”字段记录本皮肤块所连接的前一个皮肤块的哈希编码。
所述皮肤链网络中,交易分为六种类别,分别是登记数据、查询数据、通证转让、通证质押、通证赎回、通证分红。其中通证(token)是指区块链网络上可流通的加密数字权益证明。每种交易类别的数据块具有不同格式。
请参阅图3,登记数据类别的数据块至少包括七个字段,还可能包含一个可选字段。
“数据块序号”字段记录本数据块的序号。如果一个皮肤块中包含M个数据块,则该皮肤块中所有数据块的“数据块序号”字段例如分别取值为1至M。
“数据块源数据HASH”字段记录本数据块所对应的原始数据的哈希编码,用来对源数据进行校验防止其被篡改。
“数据块类别”字段记录本数据块所属交易类别。
“数据简要描述”字段记录源数据登记方对所登记数据的概要描述,长度例如为128字节以下。
“数据块源数据链接”字段记录本数据块所对应的原始数据的网络链接地址。现有的区块链会存储上链的源数据(即原始交易数据),这使得源数据在区块链网络中的多个节点被重复地存储多次。本申请的皮肤链不存储上链的源数据,源数据可由上链的源数据登记方自己存储或者购买第三方的存储服务,皮肤链中仅存储源数据的哈希编码以及网络链接地址。这有利于节省存储资源,同时确保源数据的安全保密和访问可控,也能对源数据进行校验以防止其被篡改。
“数据块源数据校验回调函数”字段记录一个校验回调函数。该函数只能由皮肤链“智能校验合约程序”调用。该函数的输入参数为“数据块源数据链接”字段和“数据块源数据HASH”字段记录的内容。该函数在执行时,根据“数据块源数据链接”字段记录的内容调用源数据,被调用的源数据需要提供完整数据,“智能校验合约程序”会计算出源数据的哈希编码,与“数据块源数据HASH”字段记录的内容进行对比。如果两者相同,返回源数据未被篡改。如果两者不同,返回源数据已被篡改。客户端节点虽然无权查看源数据内容,但是可以由此得知源数据是否被篡改,在对源数据保密的同时,对源数据进行监督。
“数据块源数据查询鉴权回调函数”字段记录一个查询鉴权回调函数。该函数调用源数据登记方的鉴权页面,在输入必要的账号密码(假如有)且鉴权通过后,源数据登记方提供源数据的内容供访问。该函数在有权访问源数据的内容后,还会计算出源数据的哈希编码,与“数据块源数据HASH”字段记录的内容进行对比。如果两者相同,返回源数据未被篡改。如果两者不同,返回源数据已被篡改。被授权的客户端节点可以查看源数据内容,并得知源数据是否被篡改,确保访问的是无篡改的源数据。
“数据块上游数据块”字段是一个可选字段,可以没有,也可以有一个或多个。当某个数据块中的数据存在上游数据时,则该字段存在,其数量例如为1至65535个。例如,涉及白酒零售的数据,其上游数据包括原料商、包装厂、灌装厂、运输商、批发商等的数据。涉及冷鲜鸡零售的数据,其上游数据包括养鸡场、加工厂、冷链运输商、批发商等的数据。该字段记录当前数据块中的数据的上游数据所在皮肤块的区块序号、以及该上游数据所在皮肤块中的数据块的数据块序号。该字段将当前数据块与其上游数据块相关联,便于客户端节点在查询当前数据块时快速找到相关联的上游数据块。
请参阅图4,查询数据类别的数据块包括五个字段。“数据块序号”字段记录本数据块的序号。“数据块源数据HASH”字段记录本数据块所对应的原始数据的哈希编码。“数据块类别”字段记录本数据块所属交易类别。“查询节点账号”字段记录发起查询的节点的账号信息。“被查询数据块”字段记录被查询的数据块所属皮肤块的区块序号、以及被查询的数据块在所属皮肤块中的数据块序号。
请参阅图5,通证转让类别的数据块包括六个字段。“数据块序号”字段记录本数据块的序号。“数据块源数据HASH”字段记录本数据块所对应的原始数据的哈希编码。“数据块类别”字段记录本数据块所属交易类别。“转让通证数量”字段记录转让的通证的数量。“转出账号”字段记录通证的转出节点的账号信息。“转入账号”字段记录通证的转入节点的账号信息。
请参阅图6,通证质押类别的数据块包括六个字段。“数据块序号”字段记录本数据块的序号。“数据块源数据HASH”字段记录本数据块所对应的原始数据的哈希编码。“数据块类别”字段记录本数据块所属交易类别。“质押通证数量”字段记录质押的通证的数量。“质押通证给予方”字段记录质押通证的给予方节点的账号信息。“质押通证获取方”字段记录质押通证的获取方节点的账号信息。
请参阅图7,通证赎回类别的数据块包括六个字段。“数据块序号”字段记录本数据块的序号。“数据块源数据HASH”字段记录本数据块所对应的原始数据的哈希编码。“数据块类别”字段记录本数据块所属交易类别。“通证赎回数量”字段记录赎回的通证的数量。“通证赎回承兑方”字段记录赎回通证的承兑方节点的账号信息。“通证赎回发起方”字段记录赎回通证的发起方节点的账号信息。
请参阅图8,通证分红类别的数据块包括六个字段。“数据块序号”字段记录本数据块的序号。“数据块源数据HASH”字段记录本数据块所对应的原始数据的哈希编码。“数据块类别”字段记录本数据块所属交易类别。“通证分红比例”字段记录通证分红的比例信息。“通证分红时间”字段记录通证分红的时间信息,例如为每月1号。“分红通证接收账号”字段记录用来接收分红通证的节点的账号信息。
现有的区块链通常会存储原始交易数据,这带来了两个问题。第一,随着交易数量不断增加,区块链的体积越大越大,对各节点的存储资源提出了越来越高的要求。第二,某些数据方不愿意公开原始交易数据,因此选择不上链。
本申请的皮肤链不存储原始交易数据,仅存储原始交易数据的哈希编码与网络链接地址。这大大减轻了对各节点的存储资源的要求,存储资源匮乏的节点也能支撑不断增加的交易数量。同时数据方也乐意将原始交易数据的相关信息上链,而将原始交易数据另行存储。
所述皮肤链网络中具有多个节点,节点分为“处理节点”和“客户端节点”两大类。
处理节点是指分担处理皮肤链网络的业务负荷的计算机或计算机集群。每一个处理节点都是皮肤链的一个全备份节点。所述处理节点又分为“出块节点”、“验证节点”、“同步节点”三小类。出块节点是指负责计算交易并决定新增的皮肤块(即出块)的节点。验证节点是指负责接收出块节点的新增的皮肤块的结果并进行验证、给出“通过”或“拒绝”的验证结论的节点。同步节点是指负责将验证结论为“通过”的新增的皮肤块增加到本地存储的皮肤链的末尾的节点。当然,出块节点和验证节点也会将验证结论为“通过”的新增的皮肤块增加到本地存储的皮肤链的末尾。
客户端节点是指运行皮肤链客户端程序、可以发起交易的计算机或计算机集群。客户端节点不分担皮肤链网络的业务负荷,也不存储皮肤链。通常,客户端节点为一台计算机。客户端节点每次发起交易都会消耗通证。例如,登记数据消耗5通证/次,查询数据消耗1通证/次,通证转让消耗0.3%转让通证总数/次,通证质押消耗0.3%质押通证总数/次,通证赎回消耗0.3%赎回通证总数/次,通证分红消耗新增分红通证的1%。
所述皮肤链网络的共识算法用来在所有处理节点中就新的皮肤块的生成、校验、同步的方法达成数据一致,还用来在所有处理节点中就谁出块、谁校验、谁同步达成一致。请参阅图9,所述皮肤链网络的共识算法包括如下步骤。
步骤S901:在所有处理节点中随机选取第一数量的多个节点作为验证节点,除了验证节点以外的处理节点均作为同步节点。当处理节点的总数小于或等于第一数量时,全部处理节点都是验证节点,此时无同步节点。
优选地,所述第一数量的取值为21。
或者优选地,所述第一数量的取值为Max(处理节点总数×5%,21),其中Max函数表示取最大值。
步骤S902:在所有验证节点中随机选取第二数量的节点作为出块节点。选出来的出块节点不再作为验证节点。第二数量小于第一数量,第二数量的取值为一个或多个。
优选地,所述第二数量的取值为Max(验证节点数×5%,1)。当计算结果为偶数时,将计算结果加1作为第二数量。
步骤S903:出块节点产生新的皮肤块并进行自检。自检通过,则进入步骤S904。自检未通过,进入步骤S910。
所述皮肤链网络中,当有交易发生时,会产生新的皮肤块。在一个设定的时间段(例如10秒)内发生的所有交易数据构成一个新的皮肤块。如果设定的时间段尚未结束,但是交易数据已达到设定的数量(例如1024个),则立即产生一个新的皮肤块。
如果出块节点有多个,则出块节点的自检就是第一预定比例的出块节点的一致性检查。如果一致性检查通过,则表示新的皮肤块通过自检;否则表示新的皮肤块未通过自检。所述第一预定比例≥50%,优选为二分之一、或者三分之二。
步骤S904:所有验证节点对通过自检的新的皮肤块进行校验和表决,当第二预定比例的验证节点通过新的皮肤块的校验,则给出“通过”的验证结论,进入步骤S905。否则,给出“拒绝”的验证结论,则进入步骤S910。所述第二预定比例≥50%,优选为二分之一。
步骤S905:同步节点将通过验证的新产生的皮肤块加入到本地存储的皮肤链的末尾。出块节点和验证节点一样将通过验证的新产生的皮肤块加入到本地存储的皮肤链的末尾。
步骤S906:当出块节点产生的新的皮肤块的数量小于设定的阈值,则回到步骤S903。当出块节点产生的新的皮肤块的数量等于设定的阈值,则将所有出块节点改作为同步节点,同时在所有同步节点中随机选取第二数量的节点作为验证节点,补充到现有的验证节点中,回到步骤S902。
步骤S910:将产生自检未通过或验证未通过的皮肤块的所有出块节点冻结。冻结期间不作为处理节点,不作为出块节点,不作为验证节点,不作为同步节点。同时回到步骤S902重新随机选取第二数量的出块节点。冻结达到设定的时间(例如48小时)后,原出块节点改作为同步节点。
所述步骤S904中还包括一种特殊情况,即给出“通过”的验证结论的验证节点数等于给出“拒绝”的验证结论的验证节点数。此时,将所有验证节点冻结。冻结期间不作为处理节点,不作为出块节点,不作为验证节点,不作为同步节点。同时回到步骤S901重新随机选取第一数量的验证节点。冻结达到设定的时间(例如48小时)后,原验证节点改作为同步节点。
与现有的区块链网络的共识算法相比,本申请提供的皮肤链网络的共识算法具有双随机、双表决的机制,这大大增强了本申请的皮肤链网络的安全性与防攻击性。
双随机是指验证节点是从处理节点中随机产生的,出块节点是从验证节点中随机产生的。出块节点出块出错被冷冻结束后或者完成出块任务后,就变成了同步节点。由于验证节点和出块节点都是随机抽取的,且出块节点出错后会被立即剥夺出块资格且冻结;因此验证节点和出块节点的身份都是不停地随机变化的,所以黑客找到出块节点或验证节点进行攻击的难度非常高。例如,皮肤链网络的处理节点数为10万个,其中出块节点有13个,验证节点有40个。如果黑客控制了6个出块节点,一次出块出错6个受控制的出块节点就全部被冻结出局。
双表决是指新产生的皮肤块先要经过所有出块节点的自检表决,通过自检的皮肤块再要经过所有验证节点的验证表决。任何一次表决如果未达到1/2多数以上(或者2/3多数以上、或者其他预定比例)的节点支持,新产生的皮肤块就会被放弃。而且出块节点出错后、验证节点在特殊情况下还可能被冻结,重新随机挑选出块节点或验证节点,这也提高了本申请的皮肤链网络的安全性。
物理上,一个处理节点由一个或多个原子节点构成。一个处理节点内的原子节点分担处理节点的运算和存储,每个处理节点都完整存储一份完整的皮肤链数据,但是一个原子节点只存储完整皮肤链数据的一部分。当处理节点只包含一个原子节点时,该原子节点存储完整的皮肤链数据。
原子节点是指一台运行皮肤链服务端程序、且满足过去一段时间(例如30天)内在线时间大于一定阈值(例如99.9%)、且满足皮肤链网络所要求的关于CPU、内存、带宽、存储等物理资源的最低要求的计算机。每一个原子节点在运行皮肤链服务端程序后,会被测算CPU、内存、网络带宽,磁盘空间等物理资源的能力,而后计算出该原子节点的贡献系数。例如将某种硬件资源的能力定义为测试结果/标准参考结果,某个原子节点的CPU能力为1.2,内存能力为1.3,网络带宽能力为1.2,磁盘空间能力为1.5。每一种硬件资源有一个权重参数,例如CPU、内存、带宽、存储的权重参数分别为1、1、0.5、0.2。对这4组数字求最小二乘,得到该原子节点的贡献系数为0.85。例如定义X,Y,使得“(1.2-X)2*(1-Y)2+(1.3-X) 2*(1-Y)2+(1.2-X) 2*(0.5-Y)2+(1.5-X) 2*(0.2-Y)2”的值最小,那么X*Y就是贡献系数。参加皮肤链网络的节点提供者只能提供原子节点,而不能决定这个原子节点和谁一起组成处理节点,更不能决定原子节点在皮肤链网络中扮演什么角色。这种原子节点的物理身份与处理节点的逻辑身份相隔离的策略,使得即使一个矿池提供了51%或更多的原子节点,依旧无法左右皮肤链网络的计算结果。
所述原子节点的贡献系数将跟随皮肤链网络的资源需求情况而进行自调整。当皮肤链网络急需某种硬件资源,那么贡献紧缺资源较多的原子节点的贡献系数将被调高,以鼓励原子节点多提供紧缺资源。当皮肤链网络富余某种硬件资源,那么贡献富余资源较多的原子节点的贡献系数将被调低,以鼓励原子节点少提供富余资源。这可以通过调整每种硬件资源的权重参数来实现。
所述处理节点与原子节点的对应关系也将跟随皮肤链网络的资源需求情况而进行自调整,称为处理节点的重组。
请参阅图10,这是处理节点重组的实施例一,包括如下步骤。
步骤S1001:定义存在递增关系的多级告警门限值。
例如,将第1级告警门限值定义为CPU为60%,内存为60%,带宽为80%,存储为70%。将第2级告警门限值CPU定义为70%,内存为70%,带宽为90%,存储为80%。将第3级告警门限值CPU定义为80%,内存为80%,带宽为100%,存储为90%。将第4级告警门限值定义为CPU为20%,内存为20%,带宽为20%,存储为20%。可以发现第4级告警门限值、第1级告警门限值、第2级告警门限值、第3级告警门限值之间依次构成递增关系。下面同时进入步骤S1002和步骤S1012。
步骤S1002:当所有出块节点在一段时间(例如超出30%的设定时间段)内有任意一项物理资源的实际消耗达到第二小的告警门限值,就把告警项的物理资源的权重参数增加(例如增大20%至50%之间)。同时可选地将该项物理资源的权重参数调整提示给所有原子节点的管理界面。
步骤S1003:重复步骤S1002一次或多次,每次采用更大的告警门限值和/或采用更大的告警项的物理资源的权重参数的增加值。这是一个可选步骤,也可以省略。
步骤S1004:当所有出块节点在一段时间(例如超出30%的设定时间段)内有任意一项物理资源的实际消耗达到最大的告警门限值,就触发处理节点合并逻辑。所述处理节点合并逻辑以最危险的告警项的物理资源为依据,计算该项物理资源达到不告警状态最小要合并进入的原子节点数,而后将所计算的原子节点合并到处理节点中进行处理节点重新生成。合并后告警消失并恢复各项物理资源的权重参数。如果依旧有告警项,对应告警项增大相应的物理资源的权重参数。
所述步骤S1004中,如果皮肤链网络内的处理节点总数小于或等于第一数量,则处理节点不再合并。
步骤S1012:当所有处理节点在一段时间(例如100%的设定时间段)内的所有物理资源的实际消耗均低于最小的告警门限值时,就触发处理节点拆分或解散逻辑。所述处理节点拆分或解散逻辑为:定义倍数=向上取整{第一参数/该物理节点消耗最大的物理资源的实际资源消耗值},一个处理节点的总贡献系数等于组成该处理节点的所有原子节点的贡献系数之和,计算新的处理节点的总贡献系数为介于{当前处理节点总贡献系数/倍数*第二参数,当前处理节点总贡献系数/(倍数-1)*第三参数}之间。依据新的物理节点的总贡献系数,将当前处理节点拆分成倍数个或倍数减一个处理节点,减小单个处理节点的能力,增加处理节点的数量,扩大皮肤链网络的处理节点规模,提升皮肤链网络的代码信用和防攻击能力。第二参数<1<第三参数。优选的,第一参数为某一级告警门限值中某一种物理资源的参数,例如为20%以上。优选的,第二参数为80%到99%之间,例如为90%。优选的,第三参数为101%到120%之间,例如为110%。
所述步骤S1012中,如果处理节点仅由一个原子节点构成,则该处理节点不再拆分。
所述步骤S1012中,如果拆分后的一个或多个处理节点的总贡献系数不满足介于{当前处理节点总贡献系数/倍数*第二参数,当前处理节点总贡献系数/(倍数-1)*第三参数}之间,则拆分后的这一个或多个处理节点解散,其中原子节点重新组合形成新的处理节点、或加入其它处理节点。
本申请还提供了处理节点重组的实施例二。所述皮肤链网络将所有处理节点划分为A、B两块。某一时刻起,A块所有处理节点不再参与交易的出块、校验和同步,A块所有处理节点全部解散并开始按照新的贡献系数的要求进行重组。A块重组完毕后,完成一次同步数据,而后接替B块处理皮肤链网络的交易的出块、校验和同步的工作。此时B块所有处理节点解散并开始按照新的贡献系数的要求进行重组。所述新的贡献系数是指新的处理节点中所有原子节点的贡献系数之和。数字上,如果倍数大于1,则逐步增加原子节点数,直到新处理节点的新总贡献系数介于{当前处理节点总贡献系数/倍数*90%,当前处理节点总贡献系数/(倍数-1)*110%}之间。B块重组完成后,和A块融合为一个完整的皮肤链网络。分为A、B两块只是举例,实际上可以按照节点数划成min(1000个节点,10%节点)数量的块,然后依次重组。其中min为取最小值。这样可以确保处理节点的扩容或缩编不会影响皮肤链网络中的交易正常进行。
本申请还提供了处理节点重组的实施例三。每经过一个处理间隔(比如每累计出1024个皮肤块,或者每1小时),处理节点会依据在上一个处理间隔的业务繁忙程度,进行一次处理节点的重组。如果上一个处理间隔的业务变多,则增强处理节点的能力,这通常需要在现有的处理节点中合并进入更多的原子节点,同时某些现有的处理节点也可能解散以释放原子节点。如果上一个处理间隔的业务变少,则减小处理节点的能力,这通常需要拆分现有的处理节点。如果上一个处理间隔的业务不变,则保持处理节点的能力不变,这通常是不对现有的处理节点进行扩容、解散或缩编。
由以上三个实施例可知,本申请的皮肤链网络中,处理节点的组成和数量呈现弹性变化,使得皮肤链网络的处理节点规模和组合更难被黑客发现,安全性更好。
与现有的区块链网络相比,本申请的皮肤链网络具有如下有益效果。
第一,由于皮肤连不存储原始交易数据,皮肤块的数据小,能保证每个处理节点都完整存储所有皮肤链数据,代码信任监督的能力强。
第二,原始交易数据由数据方另行存储,皮肤块中仅记录源数据的哈希编码。只有授权的第三方才可以查询原始交易数据本身,在防篡改和公开的同时保证了原始交易数据的机密性。
第三,共识算法采用双随机选择出块节点和验证节点,出块节点和验证节点双表决的机制,出块节点和验证节点同时发生变化,出错节点立即冻结,提升了皮肤链的鲁棒性和防攻击能力。
第四,按需调整物理资源的权重参数,有利于促使原子节点提供方快速扩容皮肤链网络的紧缺物理资源。
第五,每个处理节点由一个或多个原子节点组合而成,处理节点还可根据物理资源的实际消耗(实施例一)、分块(实施例二)或处理间隔的业务情况(实施例三)进行重组。这使得处理节点的计算和存储能力自调整,确保皮肤链网络存续期长久。如果处理节点采用分块重组(实施例二),则处理节点(或处理节点群)轮流出块,处理节点不内耗或少内耗,能处理高密集的业务。
以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种皮肤块,所述皮肤块构成的链状数据结构为皮肤链;所述皮肤链是一种区块链;所述皮肤块是构成区块链的每一个区块;其特征是,每一个皮肤块中包含一个区块头部和一个或多个数据块;
所述区块头部包括三个字段;“本块HASH编码”字段记录本皮肤块的哈希编码;“区块序号”字段记录本皮肤块的区块序号;所有皮肤块的区块序号各不相同;“前块HASH编码”字段记录本皮肤块所连接的前一个皮肤块的哈希编码;
所述数据块根据登记数据、查询数据、通证转让、通证质押、通证赎回、通证分红的不同交易类别分别具有不同数据格式;所有数据块都包括如下三个字段;
“数据块序号”字段记录本数据块在皮肤块中的序号;
“数据块源数据HASH”字段记录本数据块所对应的原始数据的哈希编码;
“数据块类别”字段记录本数据块所属交易类别;
所述登记数据类别的数据块还包括如下字段;
“数据简要描述”字段记录源数据登记方对所登记数据的概要描述;
“数据块源数据链接”字段记录本数据块所对应的原始数据的网络链接地址;
“数据块源数据校验回调函数”字段记录一个校验回调函数;该函数只能由皮肤链“智能校验合约程序”调用;该函数的输入参数为“数据块源数据链接”字段和“数据块源数据HASH”字段记录的内容;该函数在执行时,根据“数据块源数据链接”字段记录的内容调用源数据,被调用的源数据需要提供完整数据,“智能校验合约程序”计算出源数据的哈希编码,与“数据块源数据HASH”字段记录的内容进行对比;如果两者相同,返回源数据未被篡改;如果两者不同,返回源数据已被篡改;
“数据块源数据查询鉴权回调函数”字段记录一个查询鉴权回调函数;该函数调用源数据登记方的鉴权页面,在鉴权通过后,源数据登记方提供源数据的内容供访问;该函数在有权访问源数据的内容后,还计算出源数据的哈希编码,与“数据块源数据HASH”字段记录的内容进行对比;如果两者相同,返回源数据未被篡改;如果两者不同,返回源数据已被篡改;
当某个数据块中的数据存在上游数据时,则所述登记数据类别的数据块还包括“数据块上游数据块”字段;该字段记录当前数据块中的数据的上游数据所在皮肤块的区块序号、以及该上游数据所在皮肤块中的数据块的数据块序号;
所述查询数据类别的数据块还包括如下字段;
“查询节点账号”字段记录发起查询的节点的账号信息;
“被查询数据块”字段记录被查询的数据块所属皮肤块的区块序号、以及被查询的数据块在所属皮肤块中的数据块序号;
所述通证转让类别的数据块还包括如下字段;
“转让通证数量”字段记录转让的通证的数量;
“转出账号”字段记录通证的转出节点的账号信息;
“转入账号”字段记录通证的转入节点的账号信息;
所述通证质押类别的数据块还包括如下字段;
“质押通证数量”字段记录质押的通证的数量;
“质押通证给予方”字段记录质押通证的给予方节点的账号信息;
“质押通证获取方”字段记录质押通证的获取方节点的账号信息;
所述通证赎回类别的数据块还包括如下字段;
“通证赎回数量”字段记录赎回的通证的数量;
“通证赎回承兑方”字段记录赎回通证的承兑方节点的账号信息;
“通证赎回发起方”字段记录赎回通证的发起方节点的账号信息;
所述通证分红类别的数据块还包括如下字段;
“通证分红比例”字段记录通证分红的比例信息;
“通证分红时间”字段记录通证分红的时间信息;
“分红通证接收账号”字段记录用来接收分红通证的节点的账号信息。
2.一种皮肤链网络,这是采用皮肤链的P2P网络,包括多个节点;所述皮肤链是一种区块链,是由权利要求1所述的皮肤块构成的链状数据结构;其特征是,节点分为“处理节点”和“客户端节点”两大类;
处理节点是指分担处理皮肤链网络的业务负荷的计算机或计算机集群;每一个处理节点都是皮肤链的一个全备份节点;所述处理节点又分为“出块节点”、“验证节点”、“同步节点”三小类;出块节点是指负责计算交易并决定新增的皮肤块的节点;验证节点是指负责接收出块节点的新增的皮肤块的结果并进行验证、给出“通过”或“拒绝”的验证结论的节点;同步节点是指负责将验证结论为“通过”的新增的皮肤块增加到本地存储的皮肤链的末尾的节点;出块节点和验证节点也会将验证结论为“通过”的新增的皮肤块增加到本地存储的皮肤链的末尾;
客户端节点是指不分担皮肤链网络的业务负荷也不存储皮肤链、可以发起交易的计算机或计算机集群。
3.一种如权利要求2所述的皮肤链网络的实现方法,其特征是,所述皮肤链网络的共识算法包括如下步骤;
步骤S901:在所有处理节点中随机选取第一数量的多个节点作为验证节点,除了验证节点以外的处理节点均作为同步节点;当处理节点的总数小于或等于第一数量时,全部处理节点都是验证节点,此时无同步节点;
步骤S902:在所有验证节点中随机选取第二数量的节点作为出块节点;选出来的出块节点不再作为验证节点;第二数量小于第一数量,第二数量的取值为一个或多个;
步骤S903:出块节点产生新的皮肤块并进行自检;自检通过,则进入步骤S904;自检未通过,进入步骤S910;
步骤S904:所有验证节点对通过自检的新的皮肤块进行校验和表决,当第二预定比例的验证节点通过新的皮肤块的校验,则给出“通过”的验证结论,进入步骤S905;否则,给出“拒绝”的验证结论,则进入步骤S910;所述第二预定比例≥50%;
步骤S905:同步节点、出块节点和验证节点均将通过验证的新产生的皮肤块加入到本地存储的皮肤链的末尾;
步骤S906:当出块节点产生的新的皮肤块的数量小于设定的阈值,则回到步骤S903;当出块节点产生的新的皮肤块的数量等于设定的阈值,则将所有出块节点改作为同步节点,同时在所有同步节点中随机选取第二数量的节点作为验证节点,补充到现有的验证节点中,回到步骤S902;
步骤S910:将产生自检未通过或验证未通过的皮肤块的所有出块节点冻结;冻结期间不作为处理节点;同时回到步骤S902重新随机选取第二数量的出块节点;冻结达到设定的时间后,原出块节点改作为同步节点。
4.根据权利要求3所述的皮肤链网络的实现方法,其特征是,所述步骤S901中,第一数量的取值为21;或者,第一数量的取值为Max(处理节点总数×5%,21),其中Max函数表示取最大值。
5.根据权利要求3所述的皮肤链网络的实现方法,其特征是,所述步骤S902中,第二数量的取值为Max(验证节点数×5%,1);当计算结果为偶数时,将计算结果加1作为第二数量。
6.根据权利要求3所述的皮肤链网络的实现方法,其特征是,所述步骤S903中,在一个设定的时间段内发生的所有交易数据构成一个新的皮肤块;如果设定的时间段尚未结束,但是交易数据已达到设定的数量,则立即产生一个新的皮肤块。
7.根据权利要求3所述的皮肤链网络的实现方法,其特征是,所述步骤S903中,如果出块节点有多个,则出块节点的自检就是第一预定比例的出块节点的一致性检查;如果一致性检查通过,则表示新的皮肤块通过自检;否则表示新的皮肤块未通过自检;所述第一预定比例≥50%。
8.根据权利要求3所述的皮肤链网络的实现方法,其特征是,所述步骤S904中,当给出“通过”的验证结论的验证节点数等于给出“拒绝”的验证结论的验证节点数,则将所有验证节点冻结;冻结期间不作为处理节点;同时回到步骤S901重新随机选取第一数量的验证节点;冻结达到设定的时间后,原验证节点改作为同步节点。
9.一种如权利要求2所述的皮肤链网络的实现方法,其特征是,一个处理节点由一个或多个原子节点构成;原子节点是指一台满足过去一段时间内在线时间大于一定阈值、且满足皮肤链网络所要求的物理资源的最低要求的计算机;一个处理节点内的原子节点分担处理节点的运算和存储,每个处理节点都完整存储一份完整的皮肤链数据,一个原子节点只存储完整皮肤链数据的一部分;当处理节点只包含一个原子节点时,该原子节点存储完整的皮肤链数据。
10.根据权利要求9所述的皮肤链网络的实现方法,其特征是,每一个原子节点被测算物理资源的能力后根据每一种物理资源的权重系数计算出贡献系数;一个处理节点的总贡献系数等于组成该处理节点的所有原子节点的贡献系数之和;
所述原子节点的贡献系数跟随皮肤链网络的资源需求情况而进行自调整;当皮肤链网络急需某种硬件资源,那么贡献紧缺资源较多的原子节点的贡献系数被调高;当皮肤链网络富余某种硬件资源,那么贡献富余资源较多的原子节点的贡献系数被调低;
所述处理节点与原子节点的对应关系也跟随皮肤链网络的资源需求情况而进行自调整,称为处理节点的重组。
11.根据权利要求9所述的皮肤链网络的实现方法,其特征是,所述处理节点的重组包括如下步骤;
步骤S1001:定义存在递增关系的多级告警门限值;下面同时进入步骤S1002和步骤S1012;
步骤S1002:当所有出块节点在一段时间内有任意一项物理资源的实际消耗达到第二小的告警门限值,就把告警项的物理资源的权重参数增加;
步骤S1003:重复步骤S1002一次或多次,每次采用更大的告警门限值和/或采用更大的告警项的物理资源的权重参数的增加值;或者,该步骤省略;
步骤S1004:当所有出块节点在一段时间内有任意一项物理资源的实际消耗达到最大的告警门限值,就触发处理节点合并逻辑;所述处理节点合并逻辑以最危险的告警项的物理资源为依据,计算该项物理资源达到不告警状态最小要合并进入的原子节点数,而后将所计算的原子节点合并到处理节点中进行处理节点重新生成;合并后告警消失并恢复各项物理资源的权重参数;如果依旧有告警项,对应告警项增大相应的物理资源的权重参数;
这一步中,如果皮肤链网络内的处理节点总数小于或等于第一数量,则处理节点不再合并;
步骤S1012:当所有处理节点在一段时间内的所有物理资源的实际消耗均低于最小的告警门限值时,就触发处理节点拆分或解散逻辑;所述处理节点拆分或解散逻辑为:定义倍数=向上取整{第一参数/该物理节点消耗最大的物理资源的实际资源消耗值},计算新的处理节点的总贡献系数为介于{当前处理节点总贡献系数/倍数*第二参数,当前处理节点总贡献系数/(倍数-1)*第三参数}之间;依据新的物理节点的总贡献系数,将当前处理节点拆分成倍数个或倍数减一个处理节点;第二参数<1<第三参数;
这一步中,如果处理节点仅由一个原子节点构成,则该处理节点不再拆分。
12.根据权利要求11所述的皮肤链网络的实现方法,其特征是,所述步骤S1012中,如果拆分后的一个或多个处理节点的总贡献系数不满足介于{当前处理节点总贡献系数/倍数*第二参数,当前处理节点总贡献系数/(倍数-1)*第三参数}之间,则拆分后的这一个或多个处理节点解散,其中原子节点重新组合形成新的处理节点、或加入其它处理节点。
13.根据权利要求9所述的皮肤链网络的实现方法,其特征是,所述处理节点的重组包括如下步骤;所述皮肤链网络将所有处理节点划分为多块;某一时刻起,某一块中的所有处理节点不再参与交易的出块、校验和同步,这一块中的所有处理节点全部解散并开始按照新的贡献系数的要求进行重组;这一块重组完毕后,完成一次同步数据,而后恢复处理皮肤链网络的交易的出块、校验和同步的工作;此时另一块中所有处理节点解散并开始按照新的贡献系数的要求进行重组。
14.根据权利要求9所述的皮肤链网络的实现方法,其特征是,所述处理节点的重组包括如下步骤;每经过一个处理间隔,处理节点依据在上一个处理间隔的业务繁忙程度,进行一次处理节点的重组;
如果上一个处理间隔的业务变多,则增强处理节点的能力,在现有的处理节点中合并进入更多的原子节点,同时某些现有的处理节点解散以释放原子节点;
如果上一个处理间隔的业务变少,则减小处理节点的能力,拆分现有的处理节点;
如果上一个处理间隔的业务不变,则保持处理节点的能力不变,即不对现有的处理节点进行扩容、解散或缩编。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118148.0A CN111242625B (zh) | 2020-02-26 | 2020-02-26 | 一种皮肤块、皮肤链网络及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118148.0A CN111242625B (zh) | 2020-02-26 | 2020-02-26 | 一种皮肤块、皮肤链网络及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111242625A CN111242625A (zh) | 2020-06-05 |
CN111242625B true CN111242625B (zh) | 2023-06-20 |
Family
ID=70880063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010118148.0A Active CN111242625B (zh) | 2020-02-26 | 2020-02-26 | 一种皮肤块、皮肤链网络及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111242625B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018032371A1 (zh) * | 2016-08-13 | 2018-02-22 | 深圳市樊溪电子有限公司 | 一种区块链功耗感知的PoW共识机制 |
CN107766540A (zh) * | 2017-10-31 | 2018-03-06 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区存储的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719185B (zh) * | 2016-01-22 | 2019-02-15 | 杭州复杂美科技有限公司 | 区块链的数据对比及共识方法 |
CN106603198A (zh) * | 2016-12-02 | 2017-04-26 | 深圳大学 | 具有网络编码的区块链分布式存储方法及系统 |
RU2684513C1 (ru) * | 2017-12-20 | 2019-04-09 | Максим Александрович Бреус | Способ обеспечения достоверности доказательств и устройство для его осуществления, способ работы этого устройства |
CN108615148B (zh) * | 2018-03-26 | 2019-03-15 | 北交金科金融信息服务有限公司 | 一种基于区块链技术的担保资产前置交易方法及系统 |
CN109327512B (zh) * | 2018-09-19 | 2021-04-13 | 广东微链科技有限公司 | 基于区块链hash寻址和重加密的游戏数据分区储存方法 |
CN109191003A (zh) * | 2018-09-25 | 2019-01-11 | 仲恺农业工程学院 | 基于区块链的果蔬农产品质量安全溯源系统 |
-
2020
- 2020-02-26 CN CN202010118148.0A patent/CN111242625B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018032371A1 (zh) * | 2016-08-13 | 2018-02-22 | 深圳市樊溪电子有限公司 | 一种区块链功耗感知的PoW共识机制 |
CN107766540A (zh) * | 2017-10-31 | 2018-03-06 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区存储的方法 |
Non-Patent Citations (1)
Title |
---|
基于区块链的数字作品DCI管控模型;李悦;黄俊钦;王瑞锦;;计算机应用(11);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111242625A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Baird | The swirlds hashgraph consensus algorithm: Fair, fast, byzantine fault tolerance | |
CN106372533B (zh) | 基于区块链技术的内容存储方法 | |
CN109889382B (zh) | 一种基于区块链混合共识的域名信息维护系统 | |
Alzahrani et al. | Block-supply chain: A new anti-counterfeiting supply chain using NFC and blockchain | |
Di Francesco Maesa et al. | Data-driven analysis of bitcoin properties: exploiting the users graph | |
Nguyen et al. | A survey about consensus algorithms used in blockchain. | |
CN110941673B (zh) | 区块链数据结构及任务处理方法和装置 | |
CN108881163B (zh) | 一种带区块发布机制的多中心区块链系统 | |
US20200067697A1 (en) | Method for operating a blockchain | |
EP3837627B1 (en) | Transaction system and method of operation thereof | |
CN110868440A (zh) | 区块链公链 | |
CN111061769B (zh) | 一种区块链系统的共识方法及相关设备 | |
CN110046894B (zh) | 一种基于纠删码的分组可重构区块链建立方法 | |
Hassanzadeh-Nazarabadi et al. | LightChain: Scalable DHT-based blockchain | |
EP3709568A1 (en) | Deleting user data from a blockchain | |
Ali et al. | Blockstack: Design and implementation of a global naming system with blockchains | |
CN109784857B (zh) | 基于区块链的数据处理方法、装置和系统 | |
Naz et al. | Why the new consensus mechanism is needed in blockchain technology? | |
Nguyen et al. | Lachesis: Scalable asynchronous BFT on DAG streams | |
CN115796261A (zh) | 一种基于区块链的轻量级分组共识的联邦学习方法 | |
Durand et al. | Stakecube: Combining sharding and proof-of-stake to build fork-free secure permissionless distributed ledgers | |
KR102349014B1 (ko) | 고속 동기화 가능 탈중앙화 분산 데이터베이스 구성 방법 및 시스템 | |
CN111242625B (zh) | 一种皮肤块、皮肤链网络及其实现方法 | |
Rana et al. | Optimal bootstrapping of pow blockchains | |
Takahashi | Proof-of-approval: A distributed consensus protocol for blockchains |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210310 Address after: Room B209, building 1, 2588 Jinhai Road, Pudong New Area, Shanghai, 201209 Applicant after: TIANJIA (SHANGHAI) INFO TECH Co.,Ltd. Address before: 201205 room b317, building 1, 2588 Jinhai Road, Pudong New Area, Shanghai Applicant before: Shanghai flash crystal Information Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |