CN113919846B - 区块链节点动态分组方法、装置、计算机设备和存储介质 - Google Patents
区块链节点动态分组方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113919846B CN113919846B CN202111532282.6A CN202111532282A CN113919846B CN 113919846 B CN113919846 B CN 113919846B CN 202111532282 A CN202111532282 A CN 202111532282A CN 113919846 B CN113919846 B CN 113919846B
- Authority
- CN
- China
- Prior art keywords
- grouping
- data
- packet
- node
- result
- 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/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- 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
- 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/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- 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/3825—Use of electronic 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
- G06Q20/3827—Use of message hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种区块链节点动态分组方法、装置、计算机设备和存储介质。所述方法涉及区块链技术,包括:当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果;根据第一分组结果和与分组交易请求对应的分组属性数据,得到第一分组证明数据;将第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组。采用本方法能够解决区块链节点治理中分组或角色固化,不能动态调整分组或角色的数量或者含义的问题,避免出现部分节点屡次调用,部分节点长时间空闲的情况,从而进一步提升区块链网络的治理效率。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种区块链节点动态分组方法、装置、计算机设备和存储介质。
背景技术
随着区块链技术的发展,以及区块链相关应用产品在人们生活工作中的逐步推广使用,对于区块链技术的应用过程中,由于信息量和使用者均不断增加,为保证链上信息的安全以及区块链网络的稳定运行,对于区块链治理的要求日提升。
传统上,多采用基于区块链的共识机制,如DPoS共识机制等,或采用联盟链中的Fabric项目,来实现区块链网络中节点的治理。其中,DPoS共识机制需要从所有区块链节点中选取部分节点作为共识节点,而Fabric项目则是采用预先配置的方式将节点角色进行固定分配,包括order节点和背书节点,以达到对区块链网络中各节点进行治理。
但传统的区块链节点治理方式中,多采用在节点启动时固定节点的所属角色或分组的方式,比如共识节点、同步节点、order节点以及背书节点等,由于节点的分组较为固化,无法真正满足各类实际应用场景下的不同需求,经常存在节点分配不均,比如部分节点调用不及时,部分节点长时间空闲的问题,导致区块链资源出现浪费,区块链网络治理效率较为低下。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升区块链网络治理效率的区块链节点动态分组方法、装置、计算机设备和存储介质。
一种区块链节点动态分组方法,应用于区块链网络中的各节点,所述方法包括:
当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果;
根据所述第一分组结果和与所述分组交易请求对应的分组属性数据,得到第一分组证明数据;
将所述第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组。
一种区块链节点动态分组装置,所述装置包括:
第一分组结果确定模块,用于当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果;
第一分组证明数据生成模块,用于根据所述第一分组结果和与所述分组交易请求对应的分组属性数据,得到第一分组证明数据;
有效分组确定模块, 用于将所述第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果;
根据所述第一分组结果和与所述分组交易请求对应的分组属性数据,得到第一分组证明数据;
将所述第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果;
根据所述第一分组结果和与所述分组交易请求对应的分组属性数据,得到第一分组证明数据;
将所述第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组。
一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果;
根据所述第一分组结果和与所述分组交易请求对应的分组属性数据,得到第一分组证明数据;
将所述第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组。
上述区块链节点动态分组方法、装置、计算机设备和存储介质中,当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果,并根据第一分组结果和与分组交易请求对应的分组属性数据,得到第一分组证明数据,进而通过将第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组,以便后续调用有效分组进一步执行区块链治理或分组计算等操作,解决了区块链节点治理中分组或角色固化,不能动态调整分组或角色的数量或者含义的问题,避免出现部分节点屡次调用,部分节点长时间空闲的情况,从而进一步提升区块链网络的治理效率。
附图说明
图1为一个实施例中区块链节点动态分组方法的应用环境图;
图2为一个实施例中区块链节点动态分组方法的流程示意图;
图3为一个实施例中区块链节点动态分组方法的区块链组成结构示意图;
图4为一个实施例中区块链节点动态分组方法的区块结构示意图;
图5为一个实施例中将第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组的流程示意图;
图6为一个实施例中确定针对其它节点的第二分组结果的流程示意图;
图7为另一个实施例中区块链节点动态分组方法的流程示意图;
图8为又一个实施例中区块链节点动态分组方法的流程示意图;
图9为一个实施例中区块链节点动态分组装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的区块链节点动态分组方法涉及区块链技术,其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
本申请提供的区块链节点动态分组方法,可以应用于如图1所示的应用环境中。参照图1可知,该区块链节点动态分组方法,应用于区块链网络10中所包括的各区块链节点102,其中,区块链节点102具体可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等,但并不局限于此。区块链节点102还可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。其中,当区块链节点102接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果,并根据第一分组结果和与分组交易请求对应的分组属性数据,得到第一分组证明数据。进一步地,区块链节点102将第一分组证明数据,在区块链网络10中进行广播,以基于共识机制确定有效分组。
在一个实施例中,如图2所示,提供了一种区块链节点动态分组方法,以该方法应用于图1中的区块链节点为例进行说明,包括以下步骤:
步骤S202,当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果。
具体地,在当前区块链节点接收到分组交易请求时,获取与分组交易请求对应的分组属性数据,其中,分组属性数据包括与分组交易请求对应的调用者所指定的目标分组策略,即调用者指定的具体分组算法,比如Algo 1基础分组算法等,也可以是其他可实现区块链节点分组的不同分组算法,可根据调用者实际需求进行调整。
其中,动态分组策略数据中包括有多种分组策略,可以根据不同的实际应用场景来进行策略部署,并不局限于本申请中提及的具体某种分组算法,则计算分组时所需要的分组属性数据等(可包含在分组交易请求携带的参数以及节点配置数据中)也可不同,不局限于本申请中限定的节点唯一标识、动态分组因子以及分组个数等数据。进而针对调用者所指定的目标分组策略,可通过判断所部署的动态分组策略数据中,是否包括调用者所指定的目标分组策略,来确定是否支持相应的目标分组策略进行节点动态分组。
进一步地,根据所获取的分组属性数据确定出调用者所指定的目标分组策略,且确定当前区块链节点部署有动态分组策略数据时,判断所部署的动态分组策略数据中,是否包括调用者所指定的目标分组策略。其中,当从动态分组策略数据中成功匹配到目标分组策略时,即确定动态分组策略数据所包括的多个分组策略中存在目标分组策略时,调用动态分组策略数据中的目标分组策略进行节点动态分组操作,计算得到针对区块链节点的第一分组结果。
其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链由多个区块组成,参见图3,图3为区块链节点动态分组方法的区块链组成结构一个可选的示意图,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
关于区块链的区块结构可参见图4,图4是为区块链节点动态分组方法的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
而区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。
步骤S204,根据第一分组结果和与分组交易请求对应的分组属性数据,得到第一分组证明数据。
具体地,基于第一分组结果和与分组交易请求对应的分组属性数据,进行序列化处理,得到第一分组字节数据,并对第一分组字节数据进行哈希运算处理,得到第一哈希摘要值。进而基于第一哈希摘要值进行签名处理,得到节点签名,并根据第一分组结果、分组属性数据以及节点签名,得到第一分组证明数据。
其中,分组属性数据包括有与分组交易请求对应的分组编号、调用者身份标识、分组个数、目标分组算法以及动态分组因子,则具体是对分组编号、调用者身份标识、分组个数、目标分组算法、动态分组因子以及第一分组结果进行序列化处理,得到第一分组字节数据。
进一步地,通过对第一分组字节数据进行哈希运算处理,以得到相应的第一哈希摘要值。其中,具体可以是对第一分组字节数据进行sha256运算处理,sha256运算处理表示为计算特征值所用的特征值算法,通过进行sha256运算处理,可得到对应的sha256摘要值。而通过对第一哈希摘要值进行签名处理,可得到节点签名,进而可根据第一分组结果、分组属性数据以及节点签名,得到第一分组证明数据。
在一个实施例中,区块链网络中的各节点部署的动态分组策略数据,可以理解为智能合约,即通过调用智能合约实现节点的动态分组。其中,智能合约包括不同分组策略,具备动态分组功能和分组结果验证功能。具体地,智能合约实现节点动态分组的具体过程如下:
1)获取调用者所指定的目标分组策略,并判断是否能成功从智能合约中匹配得到调用者指定的目标分组策略。
2)当成功匹配到调用者指定的目标分组策略时,调用智能合约中的分组策略,对区块链节点的节点唯一标识和动态分组因子进行组合。
其中,节点唯一标识可以是节点在区块链中的身份地址或者其他唯一标识,动态分组因子为随机生成数,用于和节点唯一标识进行组合。
3)对组合得到的节点分组标识进行哈希计算,得到分组哈希结果。
其中,进行哈希计算的哈希函数,可根据实际应用场景或调用者的需求进行设置、选择、调整或修改,不进行具体限定。
4)获取调用者输入的分组个数,并根据计算得到的分组哈希结果对分组个数进行取余处理,确定区块链节点所在的分组,生成分组结果。
5)获取调用者输入的分组编号、调用者身份标识、分组个数、目标分组算法以及动态分组因子,得到分组属性数据,并对分组结果和分组属性数据进行序列化处理,得到分组字节数据。
6)对分组字节数据进行哈希运算处理,得到对应的哈希摘要值,并对哈希摘要值进行签名处理,得到节点签名。
其中,具体可以是对分组字节数据进行sha256运算处理,sha256运算处理表示为计算特征值所用的特征值算法,通过进行sha256运算处理,可得到对应的sha256摘要值。其中,还可还用其他各类特征值算法进行运算处理,本实施例中不做具体限定。
7)根据分组结果、分组属性数据以及节点签名,生成分组证明数据。
8)根据分组编号、调用者身份标识以及节点唯一标识,得到分组证明存储索引数据,并将分组证明索引数据和第一分组证明数据关联存储至区块链网络中。
9)将分组证明数据以交易的形式广播至区块链上供其他节点进行验证。
在一个实施例中,由于调用智能合约对节点进行动态分组需要所有节点均发送交易,资源消耗的代价较大,为了避免攻击,影响区块链的正常运转,可以根据不同的情况设计一定的调用限制条件。比如在公链上可以提高此合约调用的手续费(在以太坊上则表示为gas费用),而在联盟链上可以使用多签验证来允许符合特定身份标识的用户才能进行调用。
步骤S206,将第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组。
具体地,通过将第一分组证明数据,在区块链网络中进行广播,并接收区块链网络中其它节点的第二分组证明数据,进而基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行分组结果验证操作,确定针对其它节点的第二分组结果。其中,若计算的其它节点的第二分组结果与接收到的其它节点的第二分组证明数据中的第二分组结果一致,则存储其它节点的第二分组证明数据。进而基于共识机制确定第一分组结果为有效有组,将第一分组证明数据存储在本地节点。
其中,区块链网络中的各节点,在将自身的第一分组证明数据广播至区块链网络中的其他节点进行验证时,同样也会收到区块链网络中其他节点广播出的第二分组证明数据。由于区块链网络中的节点同样也部署有分组证明验证策略数据,进行可基于分组证明验证策略数据,对其他节点广播出的第二分组证明数据进行分组结果验证操作,确定其他节点的分组结果是否有效。
同样地,在当前区块链节点将自身的第一分组证明数据,广播至区块链网络中的其他节点进行验证时,其他节点同样调用自身所部署的分组证明验证策略数据,对当前区块链节点的第一分组证明数据进行验证,并得到相应的验证结果。
进一步地,由于区块链(Blockchain)本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,其具有共识机制,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。可以理解的是,当前区块链节点可基于共识机制,确定自身的第一分组结果是否为有效分组,同样地,其他节点也可基于共识机制,确定各自的第二分组结果是否为有效分组。在当前区块链节点确定自身的第一分组结果为有效分组时,将第一分组证明数据存储在本地节点。
在一个实施例中,区块链网络中的各节点部署的分组证明验证策略数据,可以理解为智能合约,即通过调用智能合约实现其他节点的分组结果验证。智能合约实现节点分组结果验证的具体过程如下:
1)调用智能合约对分组证明数据进行反序列化处理,得到结构化的分组证明数据。
2)从分组证明数据中提取出节点签名,并对分组证明结构数据中的分组结果和分组属性数据进行序列化处理,得到序列化后的分组字节数据。
3)对分组字节数据进行哈希运算处理,得到对应的哈希摘要值。
其中,具体可以是对分组字节数据进行sha256运算处理,sha256运算处理表示为计算特征值所用的特征值算法,通过进行sha256运算处理,可得到对应的sha256摘要值。其中,还可还用其他各类特征值算法进行运算处理,本实施例中不做具体限定。
4)根据哈希摘要值和调用者身份标识,对节点签名进行验签,得到验签结果。
5)当验签结果为验签通过时,从第二分组字节数据中提取目标分组策略,并调用目标分组策略,计算得到针对其它节点的第二分组结果。
6)当验签结果为验签失败时,则确定当前分组交易为无效交易,并丢弃当前分组交易。
7)判断计算的其它节点的第二分组结果与接收到的其它节点的第二分组证明数据中的第二分组结果是否一致。
8)当计算的其它节点的第二分组结果与接收到的其它节点的第二分组证明数据中的第二分组结果一致时,则对其他节点的验证通过,将其他节点的第二分组证明数据进行存储。
9)当不一致时,则对其他节点的验证失败,丢弃对应其他节点的第二分组证明数据。
上述区块链节点动态分组方法中,当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果,并根据第一分组结果和与分组交易请求对应的分组属性数据,得到第一分组证明数据,进而通过将第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组,以便后续调用有效分组进一步执行区块链治理或分组计算等操作,解决了区块链节点治理中分组或角色固化,不能动态调整分组或角色的数量或者含义的问题,避免出现部分节点屡次调用,部分节点长时间空闲的情况,从而进一步提升区块链网络的治理效率。
在一个实施例中,如图5所示,将第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组,具体包括:
步骤S502,将第一分组证明数据,在区块链网络中进行广播,并接收区块链网络中其它节点的第二分组证明数据。
具体地,区块链网络中的各节点,在将自身的第一分组证明数据广播至区块链网络中的其他节点进行验证时,同样也会收到区块链网络中其他节点广播出的第二分组证明数据。
同样地,在当前区块链节点将自身的第一分组证明数据,广播至区块链网络中的其他节点进行验证时,其他节点同样调用自身所部署的分组证明验证策略数据,对当前区块链节点的第一分组证明数据进行验证,并得到相应的验证结果。
其中,针对每个区块链节点而言,当任一分组至少包含一个节点的有效分组证明时,则可理解为当前区块链节点已收到足够多的有效分组证明,表明当前区块链节点的分组证明数据通过验证,对应分组结果为有效分组。其中,有效分组证明表示区块链网络中其他节点,对当前区块链节点的第一分组证明数据进行验证后,得到的验证结果为验证通过时,则对应分组证明数据则为有效分组证明。
步骤S504,基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行分组结果验证操作,确定针对其它节点的第二分组结果。
具体地,当前区块链节点部署有分组证明验证策略数据,用于对其他节点的第二分组证明数据进行分组结果验证操作。其中,当前区块链节点,基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行反序列化处理,得到分组证明结构数据,并从分组证明结构数据中提取出节点签名,以对分组证明结构数据中出节点签名外的第二分组结果和分组属性数据,进行序列化处理,得到第二分组字节数据。
其中,其他节点的第二分组证明数据包括第二分组结果,分组属性数据以及节点签名,其中,分组属性数据包括有与分组交易请求对应的分组编号、调用者身份标识、分组个数、目标分组算法以及动态分组因子,则具体是对第二分组结果、分组编号、调用者身份标识、分组个数、目标分组算法以及动态分组因子,进行序列化处理,得到第二分组字节数据。
进一步地,通过对第二分组字节数据进行哈希运算处理,得到第二哈希摘要值,并根据第二哈希摘要值和调用者身份标识,对节点签名进行验签,得到验签结果。其中,当验签结果为验签通过时,从第二分组字节数据中提取目标分组策略,并调用目标分组策略,计算得到针对其它节点的第二分组结果。
其中,具体可以是对第二分组字节数据进行sha256运算处理,sha256运算处理表示为计算特征值所用的特征值算法,通过进行sha256运算处理,可得到对应的sha256摘要值,即第二哈希摘要值。而根据第二哈希摘要值和调用者身份标识,对节点签名进行验签,可得到验签结果。
在一个实施例中,当验签结果为验签通过时,从第二分组字节数据中提取目标分组策略,并调用目标分组策略,计算得到针对其它节点的第二分组结果。而当验签结果为验签失败时,则确定当前分组交易为无效交易,并丢弃当前分组交易。
步骤S506,若计算的其它节点的第二分组结果与接收到的其它节点的第二分组证明数据中的第二分组结果一致,则存储其它节点的第二分组证明数据。
具体地,通过将第二分组证明数据中的第二分组结果,和当前实际计算得到的第二分组结果进行比对,判断两者是否一致。其中,当计算的其它节点的第二分组结果与接收到的其它节点的第二分组证明数据中的第二分组结果一致时,则对其他节点的验证通过,将其他节点的第二分组证明数据进行存储。
其中,当计算的其它节点的第二分组结果与接收到的其它节点的第二分组证明数据中的第二分组结果不一致时,则对其他节点的验证失败,丢弃对应其他剧节点的第二分组证明数据。
步骤S508,基于共识机制确定第一分组结果为有效有组,将第一分组证明数据存储在本地节点。
具体地,由于区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,其具有共识机制,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪作用)和生成下一个区块。可以理解的是,当前区块链节点可基于共识机制,确定自身的第一分组结果是否为有效分组,同样地,其他节点也可基于共识机制,确定各自的第二分组结果是否为有效分组。在当前区块链节点确定自身的第一分组结果为有效分组时,将第一分组证明数据存储在本地节点。
本实施例中,通过将第一分组证明数据,在区块链网络中进行广播,并接收区块链网络中其它节点的第二分组证明数据,并基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行分组结果验证操作,确定针对其它节点的第二分组结果。若计算的其它节点的第二分组结果与接收到的其它节点的第二分组证明数据中的第二分组结果一致,则存储其它节点的第二分组证明数据,进而基于共识机制确定第一分组结果为有效有组,将第一分组证明数据存储在本地节点。实现了通过区块链网络中部署的分组证明验证策略数据,对节点的分组证明数据进行分组结果验证操作,以确保被验证的区块链节点的分组证明数据是否真实有效,避免遗漏恶意节点发起的无效或非法的数据处理操作,提升区块链网络的数据安全性能以及保障区块链网络的稳定运行。
在一个实施例中,分组属性数据还包括:与分组交易请求对应的分组编号和调用者身份标识,在根据第一分组结果和与分组交易请求对应的分组属性数据,得到第一分组证明数据之后,还包括:
根据分组编号、调用者身份标识以及节点唯一标识,得到分组证明存储索引数据;将分组证明索引数据和第一分组证明数据关联存储至区块链网络中。
具体地,当根据第一分组结果和分组属性数据,生成第一分组证明数据后,进一步根据分组编号、调用者身份标识以及节点唯一标识,得到分组证明存储索引数据,则后续需要调用所存储的第一分组证明数据时,可根据分组证明索引数据直接进行检索和匹配,获取与分组证明索引数据关联存储的第一分组证明数据。
在一个实施例中,不同分组编号用于根据实际业务场景需求并行执行节点动态分组操作,得到与不同实际业务场景对应的有效分组。
具体地,由于不同调用者的业务需求以及实际业务场景有所不同,为达到对区块链网络中各节点的高效应用,则可通过设置分组编号的方式区分不同调用者,则同一分组编号内的各区块链节点可根据调用者输入的分组个数,进行分组,得到相应的有效分组,进一步调用有效分组进行后续的大规模批量计算任务,或者基于有效分组实现对区块链网络的有效治理和维护。
其中,对于需要调用分组有效分组执行计算任务的调用者来说,并不需要等待区块链上所有节点都分组完成,才认为是分组完成,只需要等待所有分组至少分配一个节点时,即可认为分组成功,从而开始执行分组计算。
在一个实施例中,区块链节点中部署的动态分组策略数据以及分组证明验证策略数据,包括了分组策略和节点签名,一方面增加了分组证明的可信性,另一方面也很方便对分组证明进行有效性验证。
本实施例中,根据分组编号、调用者身份标识以及节点唯一标识,得到分组证明存储索引数据,并将分组证明索引数据和第一分组证明数据关联存储至区块链网络中。实现了对第一分组证明数据和分组证明索引数据的关联存储,以便后续需要调用所存储的第一分组证明数据时,可根据分组证明索引数据进行检索和匹配,直接获取其关联存储的第一分组证明数据,以提升第一分组证明数据的获取效率,进一步提升区块链网络中的节点分组处理效率。
在一个实施例中,调用动态分组策略数据中的目标分组策略进行节点动态分组操作,计算得到针对区块链节点的第一分组结果的步骤,包括:
调用动态分组策略数据中的目标分组策略,将节点唯一标识和动态分组因子进行组合,得到节点分组标识;基于节点分组标识进行哈希计算,生成对应的分组哈希结果;根据分组哈希结果和分组个数,计算得到针对区块链节点的第一分组结果。其中,当根据与分组交易请求对应的分组属性数据,确定出调用者所指定的目标分组策略后,且确定当前区块链节点部署有动态分组策略数据时,判断所部署的动态分组策略数据中,是否包括调用者所指定的目标分组策略。
具体地,当从动态分组策略数据中成功匹配到目标分组策略时,即确定动态分组策略数据所包括的多个分组策略中存在目标分组策略时,调用动态分组策略数据中的目标分组策略,将节点唯一标识和动态分组因子进行组合,得到节点分组标识。其中,节点唯一标识可以是节点在区块链中的身份地址或者其他唯一标识,动态分组因子为随机生成数,用于和节点唯一标识进行组合。
进一步地,基于节点分组标识进行哈希计算,生成对应的分组哈希结果,并根据分组哈希结果对分组个数进行取余处理,确定区块链节点所在的分组,即计算得到针对区块链节点的第一分组结果。
其中,进行哈希计算的哈希函数,可根据实际应用场景或调用者的需求进行设置、选择、调整或修改,不进行具体限定。
本实施例中,通过调用动态分组策略数据中的目标分组策略,将节点唯一标识和动态分组因子进行组合,以得到节点分组标识,并基于节点分组标识进行哈希计算,生成对应的分组哈希结果,进一步根据分组哈希结果和分组个数,可计算得到针对区块链节点的第一分组结果。实现了基于动态分组策略数据中的目标分组策略,实现对区块链节点的动态分组,解决了区块链节点治理中分组或角色固化问题,进一步提升区块链网络的治理效率。
在一个实施例中,如图6所示,确定针对其它节点的第二分组结果的步骤,即基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行分组结果验证操作,确定针对其它节点的第二分组结果的步骤,具体包括:
步骤S602,基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行反序列化处理,得到分组证明结构数据。
具体地,区块链网络中的各节点,在将自身的第一分组证明数据广播至区块链网络中的其他节点进行验证时,同样也会收到区块链网络中其他节点广播出的第二分组证明数据,则当确定当前区块链节点部署有分组证明验证策略数据时,则根据部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行反序列化处理,得到结构化的分组证明结构数据。
同样地,在当前节点对其他节点广播出的第二分组证明数据进行验证时,其他节点同样调用自身所部署的分组证明验证策略数据,对当前区块链节点的第一分组证明数据进行验证,并得到相应的验证结果。
步骤S604,从分组证明结构数据中提取出节点签名,并对分组证明结构数据中的第二分组结果和分组属性数据进行序列化处理,得到第二分组字节数据。
具体地,通过从结构化的分组证明结构数据中提取出节点签名,并对除节点签名外的分组证明结构数据中的第二分组结果和分组属性数据进行序列化处理,得到第二分组字节数据。
其中,由于结构化的分组证明结构数据中的节点签名,后续需要进行进一步的验签,则需要将节点签名从分组证明结构数据中提取出,以便对分组证明结构数据中的其他数据进行序列化处理,得到第二分组字节数据。
步骤S606,对第二分组字节数据进行哈希运算处理,得到第二哈希摘要值。
具体地,通过对第二分组字节数据进行哈希运算处理,具体是对第二分组字节数据进行sha256运算处理,其中,sha256运算处理表示为计算特征值所用的特征值算法,通过进行sha256运算处理,可得到对应的sha256摘要值,即第二哈希摘要值。
其中,还可还用其他各类特征值算法进行运算处理,本实施例中不做具体限定。
步骤S608,根据第二哈希摘要值和调用者身份标识,对节点签名进行验签,得到验签结果。
具体地,调用者身份标识可以理解为生成分组证明数据对应的节点公钥,则具体是根据第二哈希摘要值和生成分组证明数据对应的节点公钥,对节点签名进行验签,得到验签结果。
步骤S610,当验签结果为验签通过时,从第二分组字节数据中提取目标分组策略。
具体地,当验签结果为验签通过时,则表明其他节点的第二分组证明数据未被恶意篡改,属于有效交易,则进一步从第二分组字节数据中提取目标分组策略。
其中,验签结果包括验签通过和验签失败,当验签结果为验签失败时,则确定当前分组交易为无效交易,并丢弃当前分组交易。
步骤S612,调用目标分组策略,计算得到针对其它节点的第二分组结果。
具体地,由于对节点签名的验签通过时,表明其他节点的第二分组证明数据未被恶意篡改,属于有效交易,则需要根据从第二分组证明数据中提取的目标分组策略,计算得到针对其它节点的第二分组结果。
进一步地,通过调用目标分组策略,对其他节点的节点唯一标识和动态分组因子进行组合,得到节点分组标识,并基于节点分组标识进行哈希计算,生成对应的分组哈希结果,进而根据分组哈希结果和其他节点所要求的分组个数,计算得到针对其他区块链节点的第二分组结果。本实施例中,基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行反序列化处理,得到分组证明结构数据,并从分组证明结构数据中提取出节点签名,进而对分组证明结构数据中的第二分组结果和分组属性数据进行序列化处理,得到第二分组字节数据。进一步通过对第二分组字节数据进行哈希运算处理,得到第二哈希摘要值,并据第二哈希摘要值和调用者身份标识,对节点签名进行验签,得到验签结果。当验签结果为验签通过时,从第二分组字节数据中提取目标分组策略,并调用目标分组策略,计算得到针对其它节点的第二分组结果。实现了基于分组证明验证策略数据,对其他节点的第二分组证明数据进行分组结果验证,使得区块链网络中各节点的分组证明数据均能得到其他节点的进一步验证,以避免出现恶意节点的恶意调用或非法申请,从而提升区块链网络的数据安全性能,保障区块链网络的安全稳定运行。
在一个实施例中,如图7所示,提供了一种区块链节点动态分组方法,具体包括:
步骤S701,在当前区块链节点接收到分组交易请求时,获取与分组交易请求对应的分组属性数据。
步骤S702,当从动态分组策略数据中成功匹配到目标分组策略时,调用动态分组策略数据中的目标分组策略,将节点唯一标识和动态分组因子进行组合,得到节点分组标识。
步骤S703,基于节点分组标识进行哈希计算,生成对应的分组哈希结果。
步骤S704,根据分组哈希结果和分组个数,计算得到针对区块链节点的第一分组结果。
步骤S705,基于第一分组结果和与分组交易请求对应的分组属性数据,进行序列化处理,得到第一分组字节数据。
步骤S706,对第一分组字节数据进行哈希运算处理,得到第一哈希摘要值。
步骤S707,基于第一哈希摘要值进行签名处理,得到节点签名。
步骤S708,根据第一分组结果、分组属性数据以及节点签名,得到第一分组证明数据。
步骤S709,将第一分组证明数据,在区块链网络中进行广播,并接收区块链网络中其它节点的第二分组证明数据。
步骤S710,基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行反序列化处理,得到分组证明结构数据。
步骤S711,从分组证明结构数据中提取出节点签名,并对分组证明结构数据中的第二分组结果和分组属性数据进行序列化处理,得到第二分组字节数据。
步骤S712,对第二分组字节数据进行哈希运算处理,得到第二哈希摘要值。
步骤S713,根据第二哈希摘要值和调用者身份标识,对节点签名进行验签,得到验签结果。
步骤S714,当验签结果为验签通过时,从第二分组字节数据中提取目标分组策略,调用目标分组策略,计算得到针对其它节点的第二分组结果。
步骤S715,若计算的其它节点的第二分组结果与接收到的其它节点的第二分组证明数据中的第二分组结果一致,则存储其它节点的第二分组证明数据。
步骤S716,基于共识机制确定第一分组结果为有效有组,将第一分组证明数据存储在本地节点。
在一个实施例中,提供了一种区块链节点动态分组的实例,假设在一个区块链网络中,有500个节点加入网络,节点分别命名为N1, N2, N3, …, N500,其中,节点唯一标识和节点名称相同,调用者A希望将所有节点分成100个分组,分组分别命名为G1, G2, G3,…, G100,智能合约的合约功能包含分组算法Algo1(组合节点唯一标识和分组因子,然后将所有字节二进制值相加得到哈希值,将哈希值对分组个数取余)、动态分组功能以及分组验证功能。节点动态分组具体过程如下:
1)调用者发送分组交易请求TxA,分组交易请求携带的参数分别为:分组编号为GroupForCompute,目标分组策略(即Algo1分组算法),动态分组因子为533,分组个数为100。其中,动态分组因子为533为随机数,不局限于某个具体取值。
3)节点N1执行动态分组过程,如下:
A、检查智能合约中是否存在分组算法Algo1。
B、当确定智能合约中存在分组算法Algo1时,将节点唯一标识N1和动态分组因子533进行组合,得到N1533,即节点分组标识。
C、将组合之后的节点分组标识进行哈希计算,生成对应的分组哈希结果,即将组合之后的节点分组标识内的所有字节二进制值相加,得到结果为282。
D、将结果值对分组个数100进行取余,得到的结果为82,即节点N1所在分组为82。
4)将分组编号、分组个数、目标分组策略、动态分组因子、分组结果以及节点唯一标识进行序列化,并得到序列化之后的分组字节数据,结果示例如下:
{"GroupId":"GroupForCompute","GroupNum":100,"GroupAlgo":"Algo1","GroupRandom":"533","GroupResult":82,"NodeIdent":"N1"}
其中,GroupId为分组编号,GroupForCompute表示为区块链节点的具体分组编号名称,GroupNum为分组个数,本实施例中分组个数为100,GroupAlgo表示为分组算法,即分组策略,具体可以是Algo1,GroupRandom表示为动态分组因子,本实施例中为随机数533,GroupResult为分组结果,即当前区块链节点N1所处的具体分组,为82。
5)对序列化之后的字节数据进行sha256运算,得到sha256摘要值,结果如下(十六进制表示):
4b36d43c40091668799a5d4ed27dd1db58d86e6179672ae69615e9d67aba6bd8
6)使用节点私钥对摘要值进行签名,这里使用的私钥如下:
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIHy1PfsCiAjF+qz7f3XIwdrDVpJR7jC4lFwj48yUTW1boAoGCCqGSM49
AwEHoUQDQgAER/nbcCJf1RY+A9vyuTAYcaGqNCMJNdaII+MGkw11l5VTytdeVGHk
bVgGV7huE7RuGIEs+LzywFG+p+LhILA6Gg==
-----END EC PRIVATE KEY-----
进一步地,签名结果如下(十六进制表示):
3045022100e5adb3b10c8aa3a2c7fa8bf84ba1f027d70bb3295046419af9cbf9838a6a97cb0220370776d61b61dcf9bbfcff1dc18e5e059c9f6c94a88d1e7b92e43dbcad3ee255
在一个实施例中,分组证明数据的结构定义如下:
根据前面得到分组证明序列化之后为:
{"GroupId":"GroupForCompute","GroupNum":100,"GroupAlgo":"Algo1","GroupRandom":"533","GroupResult":82,"NodeIdent":"N1","Signature":"3045022100e5adb3b10c8aa3a2c7fa8bf84ba1f027d70bb3295046419af9cbf9838a6a97cb0220370776d61b61dcf9bbfcff1dc18e5e059c9f6c94a88d1e7b92e43dbcad3ee255"}
7)组合分组编号(即GroupForCompute)、分组调用者身份标识(这里以为调用者A进行指代,实际使用中可以使用交易发起者公钥的hash)和节点唯一标识作为Key,最终得到的Key值为:GroupForComputeAN1。
8)将Key和分组证明数据关联存储至状态数据库。
9)调用智能合约的分组校验功能,其中,参数为分组证明数据和节点公钥(即调用者身份标识),将交易广播到区块链以广播N1的分组结果。
上述区块链节点动态分组方法中,当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果,并根据第一分组结果和与分组交易请求对应的分组属性数据,得到第一分组证明数据,进而通过将第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组,以便后续调用有效分组进一步执行区块链治理或分组计算等操作,解决了区块链节点治理中分组或角色固化,不能动态调整分组或角色的数量或者含义的问题,避免出现部分节点屡次调用,部分节点长时间空闲的情况,从而进一步提升区块链网络的治理效率。
在一个实施例中,如图8所示,提供了一种区块链节点动态分组方法,该方法应用于联盟链,具体包括以下步骤:
步骤S801,当接收到分组交易请求时,获取分组交易请求对应的分组参数,包括分组编号、分组个数、目标分组策略以及动态分组因子。
步骤S802,判断是否支持调用目标分组策略对区块链节点进行动态分组。
其中,具体是通过判断联盟链上配置的各分组策略中,是否包括目标分组策略,即是否能够从联盟链上配置的各分组策略中成功匹配出目标分组策略,来确定是否支持调用目标分组策略对区块链节点进行动态分组的。
步骤S803,当确定支持调用目标分组策略对区块链节点进行动态分组时,查询所有参与分组的区块链节点。
其中,当确定支持调用目标分组策略对区块链节点进行动态分组时,即能够从联盟链上配置的各分组策略中成功匹配出目标分组策略,则查询所有参与分组的区块链节点。
而当确定不支持调用目标分组策略对区块链节点进行动态分组时,则结束当前分组交易请求应的工作任务。
步骤S804,判断所有参与分组的区块链节点中是否存在待分组节点。
具体地,通过查询到所有参与分组的区块链节点后,进一步获取各区块链节点的分组情况,判断是否存在待分组的节点。
步骤S805,当确定存在待分组节点时,将待分组节点的节点唯一标识和动态分组因子进行组合,得到节点分组标识。
其中,当确定不存在待分组节点时,则结束当前分组交易请求应的工作任务。
步骤S806,基于节点分组标识进行哈希计算,生成对应的分组哈希结果。
步骤S807,根据分组哈希结果对分组个数进行区域处理,计算得到待分组节点所属的分组。
步骤S808,将分组编号、分组个数、目标分组策略、动态分组因子、待分组节点所属的分组以及节点唯一标识,确定为分组结果。
步骤S809,将分组结果进行序列化处理,得到分组结果字节数据。
步骤S810,将分组编号和节点唯一标识进行组合得到分组索引数据,并将分组结果字节数据和分组索引数据关联存储至状态数据库中。
其中,在联盟链场景中,由于节点信息透明,任意一个节点都能拿到所有其他的节点信息,所以可以在出块节点进行所有节点的分组计算,然后达成共识的方式来完成分组,则可以减少传统的区块链网络中将分组证明数据进行广播,以及其他节点对当前节点的分组证明数据进行验证的过程。
上述区块链节点动态分组方法,通过在接收到分组交易请求时,获取分组交易请求对应的分组参数,包括分组编号、分组个数、目标分组策略以及动态分组因子,并在确定支持调用目标分组策略对区块链节点进行动态分组时,查询所有参与分组的区块链节点,进一步判断所有参与分组的区块链节点中是否存在待分组节点。而当确定存在待分组节点时,将待分组节点的节点唯一标识和动态分组因子进行组合,得到节点分组标识,并基于节点分组标识进行哈希计算,生成对应的分组哈希结果,进而根据分组哈希结果对分组个数进行区域处理,计算得到待分组节点所属的分组。通过将分组编号、分组个数、目标分组策略、动态分组因子、待分组节点所属的分组以及节点唯一标识,确定为分组结果,并将分组结果进行序列化处理,得到分组结果字节数据,最终将分组编号和节点唯一标识进行组合得到分组索引数据,并将分组结果字节数据和分组索引数据关联存储至状态数据库中。实现了基于联盟链场景下的区块链节点的动态分组,解决了区块链节点治理中分组或角色固化,不能动态调整分组或角色的数量或者含义的问题,避免出现部分节点屡次调用,部分节点长时间空闲的情况,从而进一步提升区块链网络的治理效率。
应该理解的是,虽然上述实施例涉及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例涉及的各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种区块链节点动态分组装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:第一分组结果确定模块902、第一分组证明数据生成模块904以及有效分组确定模块906,其中:
第一分组结果确定模块902,用于当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果。
第一分组证明数据生成模块904,用于根据第一分组结果和与分组交易请求对应的分组属性数据,得到第一分组证明数据。
有效分组确定模块906, 用于将第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组。
上述区块链节点动态分组装置中,当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果,并根据第一分组结果和与分组交易请求对应的分组属性数据,得到第一分组证明数据,进而通过将第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组,以便后续调用有效分组进一步执行区块链治理或分组计算等操作,解决了区块链节点治理中分组或角色固化,不能动态调整分组或角色的数量或者含义的问题,避免出现部分节点屡次调用,部分节点长时间空闲的情况,从而进一步提升区块链网络的治理效率。
在一个实施例中,有效分组确定模块还用于:
将第一分组证明数据,在区块链网络中进行广播,并接收区块链网络中其它节点的第二分组证明数据;基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行分组结果验证操作,确定针对其它节点的第二分组结果;若计算的其它节点的第二分组结果与接收到的其它节点的第二分组证明数据中的第二分组结果一致,则存储其它节点的第二分组证明数据;基于共识机制确定第一分组结果为有效有组,将第一分组证明数据存储在本地节点。
在一个实施例中,有效分组确定模块还用于:
基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行反序列化处理,得到分组证明结构数据;从分组证明结构数据中提取出节点签名,并对分组证明结构数据中的第二分组结果和分组属性数据进行序列化处理,得到第二分组字节数据;对第二分组字节数据进行哈希运算处理,得到第二哈希摘要值;根据第二哈希摘要值和调用者身份标识,对节点签名进行验签,得到验签结果;当验签结果为验签通过时,从第二分组字节数据中提取目标分组策略;调用目标分组策略,计算得到针对其它节点的第二分组结果。
在一个实施例中,第一分组结果确定模块,还用于:
当接收到分组交易请求时,获取与分组交易请求对应的分组属性数据;分组属性数据包括与分组交易请求对应的调用者所指定的目标分组策略;当从动态分组策略数据中成功匹配到目标分组策略时,调用动态分组策略数据中的目标分组策略进行节点动态分组操作,计算得到针对区块链节点的第一分组结果。
在一个实施例中,第一分组结果确定模块,还用于:
调用动态分组策略数据中的目标分组策略,将节点唯一标识和动态分组因子进行组合,得到节点分组标识;基于节点分组标识进行哈希计算,生成对应的分组哈希结果;根据分组哈希结果和分组个数,计算得到针对区块链节点的第一分组结果。
在一个实施例中,第一分组证明数据生成模块,还用于:
基于第一分组结果和与分组交易请求对应的分组属性数据,进行序列化处理,得到第一分组字节数据;对第一分组字节数据进行哈希运算处理,得到第一哈希摘要值;基于第一哈希摘要值进行签名处理,得到节点签名;根据第一分组结果、分组属性数据以及节点签名,得到第一分组证明数据。
在一个实施例中,提供了一种区块链节点动态分组装置,该装置还包括:
分组证明存储索引数据生成模块,用于根据分组编号、调用者身份标识以及节点唯一标识,得到分组证明存储索引数据。
关联存储模块,用于将分组证明索引数据和第一分组证明数据关联存储至区块链网络中。
在一个实施例中,提供了一种区块链节点动态分组装置,该装置包括:
分组交易请求接收模块,用于当接收到分组交易请求时,获取分组交易请求对应的分组参数,包括分组编号、分组个数、目标分组策略以及动态分组因子。
第一判断模块,用于判断是否支持调用目标分组策略对区块链节点进行动态分组。
区块链节点查询模块,用于当确定支持调用目标分组策略对区块链节点进行动态分组时,查询所有参与分组的区块链节点。
第二判断模块,用于判断所有参与分组的区块链节点中是否存在待分组节点。
节点分组标识生成模块,用于当确定存在待分组节点时,将待分组节点的节点唯一标识和动态分组因子进行组合,得到节点分组标识。
分组哈希结果生成模块,用于基于节点分组标识进行哈希计算,生成对应的分组哈希结果。
分组计算模块,用于根据分组哈希结果对分组个数进行区域处理,计算得到待分组节点所属的分组。
分组结果确定模块,用于将分组编号、分组个数、目标分组策略、动态分组因子、待分组节点所属的分组以及节点唯一标识,确定为分组结果。
分组结果字节数据生成模块,用于对分组结果进行序列化处理,得到分组结果字节数据。
存储模块,用于将分组编号和节点唯一标识进行组合得到分组索引数据,并将分组结果字节数据和分组索引数据关联存储至状态数据库中。
关于区块链节点动态分组装置的具体限定可以参见上文中对于区块链节点动态分组方法的限定,在此不再赘述。上述区块链节点动态分组装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储动态分组策略数据、第一分组结果、第一分组证明数据、第二分组结果、第二分组证明数据以及有效分组。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链节点动态分组方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种区块链节点动态分组方法,应用于区块链网络中的各节点,其特征在于,所述方法包括:
当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果;
根据所述第一分组结果和与所述分组交易请求对应的分组属性数据,得到第一分组证明数据;
将所述第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组;其中,在将所述第一分组证明数据在区块链网络中进行广播时,接收所述区块链网络中其他节点广播出的第二分组证明数据,并基于部署的分组证明验证策略数据,对其他节点广播出的第二分组证明数据进行分组结果验证操作,确定针对其它节点的第二分组结果;
基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行分组结果验证操作,确定针对其它节点的第二分组结果,包括:
基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行反序列化处理,得到分组证明结构数据;从所述分组证明结构数据中提取出节点签名,并对所述分组证明结构数据中的第二分组结果和分组属性数据进行序列化处理,得到第二分组字节数据;对所述第二分组字节数据进行哈希运算处理,得到第二哈希摘要值;根据所述第二哈希摘要值和调用者身份标识,对所述节点签名进行验签,得到验签结果;当验签结果为验签通过时,从所述第二分组字节数据中提取目标分组策略;调用所述目标分组策略,计算得到针对其它节点的第二分组结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组,包括:
将所述第一分组证明数据,在区块链网络中进行广播,并接收所述区块链网络中其它节点的第二分组证明数据;
基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行分组结果验证操作,确定针对其它节点的第二分组结果;
若计算的其它节点的第二分组结果与接收到的其它节点的第二分组证明数据中的第二分组结果一致,则存储其它节点的第二分组证明数据;
基于共识机制确定所述第一分组结果为有效有组,将所述第一分组证明数据存储在本地节点。
3.根据权利要求1所述的方法,其特征在于,所述当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果,包括:
当接收到分组交易请求时,获取与所述分组交易请求对应的分组属性数据;所述分组属性数据包括与所述分组交易请求对应的调用者所指定的目标分组策略;
当从所述动态分组策略数据中成功匹配到所述目标分组策略时,调用所述动态分组策略数据中的目标分组策略进行节点动态分组操作,计算得到针对区块链节点的第一分组结果。
4.根据权利要求3所述的方法,其特征在于,所述分组属性数据还包括:节点唯一标识、分组个数以及动态分组因子;调用所述动态分组策略数据中的目标分组策略进行节点动态分组操作,计算得到针对区块链节点的第一分组结果,包括:
调用所述动态分组策略数据中的目标分组策略,将所述节点唯一标识和所述动态分组因子进行组合,得到节点分组标识;
基于所述节点分组标识进行哈希计算,生成对应的分组哈希结果;
根据所述分组哈希结果和所述分组个数,计算得到针对区块链节点的第一分组结果。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一分组结果和与所述分组交易请求对应的分组属性数据,得到第一分组证明数据,包括:
基于所述第一分组结果和与所述分组交易请求对应的分组属性数据,进行序列化处理,得到第一分组字节数据;
对所述第一分组字节数据进行哈希运算处理,得到第一哈希摘要值;
基于所述第一哈希摘要值进行签名处理,得到节点签名;
根据所述第一分组结果、分组属性数据以及节点签名,得到第一分组证明数据。
6.根据权利要求5所述的方法,其特征在于,所述分组属性数据还包括:与所述分组交易请求对应的分组编号和调用者身份标识;在所述根据所述第一分组结果和与所述分组交易请求对应的分组属性数据,得到第一分组证明数据之后,还包括:
根据所述分组编号、调用者身份标识以及所述节点唯一标识,得到分组证明存储索引数据;
将所述分组证明索引数据和所述第一分组证明数据关联存储至所述区块链网络中。
7.根据权利要求6所述的方法,其特征在于,不同所述分组编号用于根据实际业务场景需求并行执行节点动态分组操作,得到与不同所述实际业务场景对应的有效分组。
8.一种区块链节点动态分组装置,其特征在于,所述装置包括:
第一分组结果确定模块,用于当接收到分组交易请求时,基于部署的动态分组策略数据进行节点动态分组操作,确定针对区块链节点的第一分组结果;
第一分组证明数据生成模块,用于根据所述第一分组结果和与所述分组交易请求对应的分组属性数据,得到第一分组证明数据;
有效分组确定模块,用于将所述第一分组证明数据,在区块链网络中进行广播,以基于共识机制确定有效分组;其中,在将所述第一分组证明数据在区块链网络中进行广播时,接收所述区块链网络中其他节点广播出的第二分组证明数据,并基于部署的分组证明验证策略数据,对其他节点广播出的第二分组证明数据进行分组结果验证操作,确定针对其它节点的第二分组结果;
所述有效分组确定模块,还用于:
基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行反序列化处理,得到分组证明结构数据;从所述分组证明结构数据中提取出节点签名,并对所述分组证明结构数据中的第二分组结果和分组属性数据进行序列化处理,得到第二分组字节数据;对所述第二分组字节数据进行哈希运算处理,得到第二哈希摘要值;根据所述第二哈希摘要值和调用者身份标识,对所述节点签名进行验签,得到验签结果;当验签结果为验签通过时,从所述第二分组字节数据中提取目标分组策略;调用所述目标分组策略,计算得到针对其它节点的第二分组结果。
9.根据权利要求8所述的装置,其特征在于,所述有效分组确定模块,还用于:
将所述第一分组证明数据,在区块链网络中进行广播,并接收所述区块链网络中其它节点的第二分组证明数据;基于部署的分组证明验证策略数据,对其他节点的第二分组证明数据进行分组结果验证操作,确定针对其它节点的第二分组结果;若计算的其它节点的第二分组结果与接收到的其它节点的第二分组证明数据中的第二分组结果一致,则存储其它节点的第二分组证明数据;基于共识机制确定所述第一分组结果为有效有组,将所述第一分组证明数据存储在本地节点。
10.根据权利要求8所述的装置,其特征在于,所述第一分组结果确定模块,还用于:
当接收到分组交易请求时,获取与所述分组交易请求对应的分组属性数据;所述分组属性数据包括与所述分组交易请求对应的调用者所指定的目标分组策略;当从所述动态分组策略数据中成功匹配到所述目标分组策略时,调用所述动态分组策略数据中的目标分组策略进行节点动态分组操作,计算得到针对区块链节点的第一分组结果。
11.根据权利要求10所述的装置,其特征在于,所述第一分组结果确定模块,还用于:
调用所述动态分组策略数据中的目标分组策略,将节点唯一标识和动态分组因子进行组合,得到节点分组标识;基于所述节点分组标识进行哈希计算,生成对应的分组哈希结果;根据所述分组哈希结果和分组个数,计算得到针对区块链节点的第一分组结果。
12.根据权利要求11所述的装置,其特征在于,所述第一分组证明数据生成模块,还用于:
基于所述第一分组结果和与所述分组交易请求对应的分组属性数据,进行序列化处理,得到第一分组字节数据;对所述第一分组字节数据进行哈希运算处理,得到第一哈希摘要值;基于所述第一哈希摘要值进行签名处理,得到节点签名;根据所述第一分组结果、分组属性数据以及节点签名,得到第一分组证明数据。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
分组证明存储索引数据生成模块,用于根据分组编号、调用者身份标识以及所述节点唯一标识,得到分组证明存储索引数据;将所述分组证明索引数据和所述第一分组证明数据关联存储至所述区块链网络中。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111532282.6A CN113919846B (zh) | 2021-12-15 | 2021-12-15 | 区块链节点动态分组方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111532282.6A CN113919846B (zh) | 2021-12-15 | 2021-12-15 | 区块链节点动态分组方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113919846A CN113919846A (zh) | 2022-01-11 |
CN113919846B true CN113919846B (zh) | 2022-03-08 |
Family
ID=79248893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111532282.6A Active CN113919846B (zh) | 2021-12-15 | 2021-12-15 | 区块链节点动态分组方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113919846B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679457B (zh) * | 2022-03-30 | 2023-11-21 | 蚂蚁区块链科技(上海)有限公司 | 一种区块链中的节点分组方法及区块链节点 |
CN117574875B (zh) * | 2024-01-08 | 2024-04-26 | 成都愿景仿视科技有限公司 | 一种自然语言理解建模方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109756558A (zh) * | 2018-12-04 | 2019-05-14 | 广州通链计算机智能技术有限责任公司 | 一种基于异步分组交换的拜占庭容错共识算法 |
WO2019125814A1 (en) * | 2017-12-21 | 2019-06-27 | Eland Blockchain Fintech Inc. | Blockchain based information security system and method |
CN110852882A (zh) * | 2019-11-11 | 2020-02-28 | 北京众享比特科技有限公司 | 用于区块链网络的分组共识方法、装置、设备和介质 |
CN111131209A (zh) * | 2019-12-16 | 2020-05-08 | 国网重庆市电力公司客户服务中心 | 一种改进的高效共识方法、系统、计算机设备及存储介质 |
CN113568577A (zh) * | 2021-07-27 | 2021-10-29 | 天津大学 | 一种基于联盟区块链的分布式分组存储方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678865A (zh) * | 2017-09-20 | 2018-02-09 | 中国银行股份有限公司 | 基于交易分组的区块链的验证方法以及系统 |
US11971874B2 (en) * | 2019-01-31 | 2024-04-30 | Salesforce, Inc. | Systems, methods, and apparatuses for implementing efficient storage and validation of data and metadata within a blockchain using distributed ledger technology (DLT) |
CN111291060B (zh) * | 2020-01-14 | 2023-10-27 | 腾讯科技(深圳)有限公司 | 一种管理区块链节点的方法、装置及计算机可读介质 |
CN111143885B (zh) * | 2020-04-02 | 2020-07-17 | 支付宝(杭州)信息技术有限公司 | 区块链交易处理方法及装置和区块链节点 |
CN113765956B (zh) * | 2020-06-03 | 2024-05-24 | 华为技术有限公司 | 报文处理方法、设备、系统及存储介质 |
CN111611317B (zh) * | 2020-06-08 | 2023-05-30 | 杭州复杂美科技有限公司 | 区块链分布式存储分组方法、设备和存储介质 |
CN113672987B (zh) * | 2021-09-06 | 2023-09-05 | 上海万向区块链股份公司 | PoW机制下分组式记账节点的选择方法及系统 |
-
2021
- 2021-12-15 CN CN202111532282.6A patent/CN113919846B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019125814A1 (en) * | 2017-12-21 | 2019-06-27 | Eland Blockchain Fintech Inc. | Blockchain based information security system and method |
CN109756558A (zh) * | 2018-12-04 | 2019-05-14 | 广州通链计算机智能技术有限责任公司 | 一种基于异步分组交换的拜占庭容错共识算法 |
CN110852882A (zh) * | 2019-11-11 | 2020-02-28 | 北京众享比特科技有限公司 | 用于区块链网络的分组共识方法、装置、设备和介质 |
CN111131209A (zh) * | 2019-12-16 | 2020-05-08 | 国网重庆市电力公司客户服务中心 | 一种改进的高效共识方法、系统、计算机设备及存储介质 |
CN113568577A (zh) * | 2021-07-27 | 2021-10-29 | 天津大学 | 一种基于联盟区块链的分布式分组存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113919846A (zh) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11651109B2 (en) | Permission management method, permission verification method, and related apparatus | |
WO2022042301A1 (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
US10824701B2 (en) | System and method for mapping decentralized identifiers to real-world entities | |
Samaniego et al. | Zero-trust hierarchical management in IoT | |
CN111556120B (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN113919846B (zh) | 区块链节点动态分组方法、装置、计算机设备和存储介质 | |
CN112152778B (zh) | 一种节点管理方法、装置、及电子设备 | |
CN109919771B (zh) | 一种应用分层区块链技术的工业互联网交易装置 | |
Lu et al. | Accelerating at the edge: A storage-elastic blockchain for latency-sensitive vehicular edge computing | |
CN113301114B (zh) | 区块链共识节点选择方法、装置、计算机设备和存储介质 | |
CN111416709B (zh) | 基于区块链系统的投票方法、装置、设备及存储介质 | |
CN110990790B (zh) | 一种数据处理方法及设备 | |
CN110910110B (zh) | 一种数据处理方法、装置及计算机存储介质 | |
Zhao et al. | Fuzzy identity-based dynamic auditing of big data on cloud storage | |
CN114900316A (zh) | 一种基于区块链的物联网设备快速身份认证方法及系统 | |
CN113591103B (zh) | 一种电力物联网智能终端间的身份认证方法和系统 | |
CN114710370B (zh) | 基于雾区块链和属性加密的细粒度访问控制方法及系统 | |
CN113869901B (zh) | 密钥生成方法、装置、计算机可读存储介质及计算机设备 | |
Tu et al. | A blockchain implementation of an attendance management system | |
Xie et al. | A raft algorithm with byzantine fault-tolerant performance | |
CN113949508B (zh) | 基于随机数共识机制的过程数据处理方法及装置 | |
Li et al. | Audit as You Go: A Smart Contract‐Based Outsourced Data Integrity Auditing Scheme for Multiauditor Scenarios with One Person, One Vote | |
CN117035740B (zh) | 桥梁结构检测监测与维修数据溯源系统的构建方法 | |
CN112653557B (zh) | 数字身份处理方法、装置、电子设备和可读存储介质 | |
Bai et al. | Smart Contract Assisted Public Key Infrastructure for Internet of Things |
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 |