CN114240433A - 基于区块链的数据处理方法及系统 - Google Patents
基于区块链的数据处理方法及系统 Download PDFInfo
- Publication number
- CN114240433A CN114240433A CN202111482458.1A CN202111482458A CN114240433A CN 114240433 A CN114240433 A CN 114240433A CN 202111482458 A CN202111482458 A CN 202111482458A CN 114240433 A CN114240433 A CN 114240433A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- nodes
- block chain
- block
- 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
- 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
- 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
- G06F16/275—Synchronous replication
-
- 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/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- 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/3827—Use of message hashing
-
- 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/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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
Abstract
本申请公开了一种基于区块链的数据处理方法及系统。涉及区块链领域,该方法包括:通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的目标业务的待办数据,其中,区块链中包括多个节点,多个节点包括记账节点和非记账节点,目标节点为记账节点或非记账节点;通过目标节点将待办数据广播给区块链的其他节点,对待办数据进行验证;在通过区块链的其他节点对待办数据进行验证通过后,由目标节点将待办数据发送给代办处理用户端,其中,代办处理用户端为待办数据指示的用于处理待办数据的用户端。通过本申请,解决了相关技术中的分布式系统通过待办节点处理待办数据,存在可靠性低的问题。
Description
技术领域
本申请涉及区块链领域,具体而言,涉及一种基于区块链的数据处理方法及系统。
背景技术
目前行内的待办中心系统,待办数据的保存和处理集中在待办节点这一个节点中。所有的交易都由各应用节点与待办节点交互实现,待办节点负责处理所有数据的存储和查询。随着业务数据的增长,待办节点与应用节点之间,还需要单独实现夜间批量对账,以防止数据出现错误或者丢失。并且,目前行内的待办系统有待办中心和网讯待办两个数据源,对于两个数据源的数据还需要单独实现合并去重的逻辑。
该方法有以下缺点:
缺点一:可靠性低。待办节点为唯一中心节点,当待办节点出现系统故障或者网络故障时,都会使待办数据的交易失败或直接导致数据丢失。
缺点二:维护成本高。为了保证数据的正确和统一,待办中心与接入应用之间,还需要单独实现夜间批量对账或联机对账。
缺点三:接入成本高。接入应用接入待办,必须和待办存量数据同步。
针对相关技术中节点可靠性低、数据维护成本高、应用首次接入成本高等问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种基于区块链的数据处理方法及系统,通过本申请,解决了相关技术中的分布式系统通过待办节点处理待办数据,存在可靠性低的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种基于区块链的数据处理方法。该方法包括:通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的所述目标业务的待办数据,其中,所述区块链中包括多个节点,所述多个节点包括记账节点和非记账节点,所述目标节点为所述记账节点或所述非记账节点;通过所述目标节点将所述待办数据广播给所述区块链的其他节点,对所述待办数据进行验证;在通过所述区块链的其他节点对所述待办数据进行验证通过后,由所述目标节点将所述待办数据发送给代办处理用户端,其中,所述代办处理用户端为所述待办数据指示的用于处理所述待办数据的用户端。
可选的,在通过所述区块链的其他节点对所述待办数据进行验证通过后,由所述目标节点将所述待办数据发送给代办处理用户端之后,还包括:将所述待办数据写入所述区块链的目标区块,其中,所述目标区块为所述区块链当前编辑的区块;将所述目标区块在预设时间内写入的待办数据打包成的新增区块;通过所述记账节点对所述新增区块校验通过后,将所述新增区块连接到所述区块链中,并进行数据同步。
可选的,通过所述目标节点将所述待办数据广播给所述区块链的其他节点,对所述待办数据进行验证包括:用所述目标节点的私钥对所述待办数据签名后,与公钥拼装生成交易数据;将所述交易数据广播给所述区块链中的其他节点,由所述其他节点对所述交易数据进行签名验证,其中,所述其他节点接收到所述交易数据,用预先留存的所述目标节点的所述私钥,对所述交易数据进行签名验证;在所述交易数据的业务逻辑包括在先交易数据的情况下,在所述其他节点对所述交易数据进行签名验证通过的情况下,对所述交易数据的在先交易数据进行验证,在所述在先交易数据验证通过的情况下,确定所述交易数据验证通过;在所述交易数据的业务逻辑不包括在先交易数据的情况下,在所述其他节点随所述交易数据进行签名验证通过的情况下,确定所述交易数据验证通过。
可选的,通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的所述目标业务的待办数据之前,所述方法还包括:创建所述区块链的创世节点以及创世区块,基于所述创世节点,创建多个记账节点,组成所述区块链,其中,在创建多个记账节点的同时,基于所述创世区块作为父区块,创建后续的区块,所述区块包括区块头和区块体,所述区块头中包括服区块哈希值,二叉树根节点哈希值以及时间戳;响应添加请求,基于所述区块链添加非记账节点或记账节点;基于所述区块链添加记账节点包括:基于所述区块链添加认证节点;通过预设的认证方式对所述认证节点进行认证和校验,认证和校验通过的情况下,将所述认证节点作为记账节点。
可选的,通过预设的认证方式对所述认证节点进行认证和校验包括:生成所述认证节点的认证私钥,通过所述认证私钥生成认证公钥,通过所述认证公钥生成所述认证节点的明文证书;将所述明文证书发送给所述预设的认证方式的认证服务器,由所述认证服务器对所述明文证书进行认证,其中,所述认证服务器接收所述明文证书后,对所述明文证书进行哈希运算后用认证服务器的服务私钥加密得到密文证书;通过所述认证节点接收所述认证服务器认证后得到的密文证书,在校验时将所述密文证书和明文证书发送给所述认证服务器,由所述认证服务器进行校验,其中,所述认证服务器通过哈希运算对所述明文证书进行处理,得到第一哈希值,通过所述服务私钥对所述密文证书进行解密,得到第二哈希值,在所述第一哈希值和所述第二哈希值相同的情况下,确定所述认证节点校验成功。
可选的,基于所述区块链添加非记账节点或记账节点组成所述区块链之后,所述方法还包括:通过所述添加的所述非记账节点或记账节点,采用对等网络传输的方式向所述区块链中的已有节点广播上线,其中,所述已有节点接收到所述广播上线的消息后,同步所述已有节点的本地路由信息,与所述添加的所述非记账节点或记账节点组网。
可选的,将所述区块链的共识层采用拜占庭容错算法,在通过所述区块链的其他节点对所述待办数据进行验证通过后,将所述待办数据写入所述区块链的目标区块之前,所述方法还包括:通过所述拜占庭容错算法确定的主节点,向所述主节点的多个副节点的分别对应的备选节点推送所述待办数据,其中,所述主节点为所述区块链中任一记账节点;在所述备选节点将接收到的所述待办数据进行签名验证通过后,将所述备选节点的确认消息广播给所述区块链的所有节点;在节点收到的确认消息的数量达到第一预设数量的情况下,确定所述待办数据允许进行,并向所述区块链的所有节点广播命令消息;在节点收到的命令消息的数量达到所述第一预设数量的情况下,开始处理所述待办数据,处理完成后向所述待办发起用户端发送回复消息;在所述待办发起用户端接收到的回复消息的数量达到第二预设数量的情况下,确定所述待办数据通过投票,执行将所述待办数据写入所述区块链的目标区块的步骤。
为了实现上述目的,根据本申请的另一方面,提供了一种基于区块链的数据处理装置。该装置包括:接收模块,通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的所述目标业务的待办数据,其中,所述区块链中包括多个节点,所述多个节点包括记账节点和非记账节点,所述目标节点为所述记账节点或所述非记账节点;广播模块,通过所述目标节点将所述待办数据广播给所述区块链的其他节点,对所述待办数据进行验证;发送模块,通过所述区块链的其他节点对所述待办数据进行验证通过后,由所述目标节点将所述待办数据发送给代办处理用户端,其中,所述代办处理用户端为所述待办数据指示的用于处理所述待办数据的用户端。
根据本申请的另一方面,还提供了一种计算机可读存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行上述中任意一项所述的基于区块链的数据处理方法。
根据本申请的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实上述中任意一项所述的基于区块链的数据处理方法。
通过本申请,采用以下步骤:通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的目标业务的待办数据,其中,区块链中包括多个节点,多个节点包括记账节点和非记账节点,目标节点为记账节点或非记账节点;通过目标节点将待办数据广播给区块链的其他节点,对待办数据进行验证;在通过区块链的其他节点对待办数据进行验证通过后,由目标节点将待办数据发送给代办处理用户端,其中,代办处理用户端为待办数据指示的用于处理待办数据的用户端,通过利用区块链技术将待办业务发送至区块链中目标节点进行处理,并且区块链中节点共享账本,达到了分摊待办系统待办节点压力和保证数据准确性的目的,实现了分摊待办系统压力和提高数据准确性的效果。通过本申请,解决了相关技术中的分布式系统通过待办节点处理待办数据,存在可靠性低的问题。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的一种基于区块链的数据处理方法的流程图;
图2是根据本申请实施方式提供的CA证书认证流程图;
图3是根据本申请实施方式提供的CA证书校验流程图;
图4是根据本申请实施方式提供的区块结构图;
图5是根据本申请实施方式提供的Merkle树图;
图6是根据本申请实施方式提供的P2P网络拓扑图;
图7是根据本申请实施方式提供的待办中心共识记账时序图;
图8是根据本申请实施方式提供的一种基于区块链的数据处理装置的示意图;
图9是根据本申请实施例提供的一种电子设备的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
图1是根据本申请实施例提供的一种基于区块链的数据处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的目标业务的待办数据,其中,区块链中包括多个节点,多个节点包括记账节点和非记账节点,目标节点为记账节点或非记账节点;
步骤S102,通过目标节点将待办数据广播给区块链的其他节点,对待办数据进行验证;
步骤S103,在通过区块链的其他节点对待办数据进行验证通过后,由目标节点将待办数据发送给代办处理用户端,其中,代办处理用户端为待办数据指示的用于处理待办数据的用户端。
通过上述步骤,通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的目标业务的待办数据,其中,区块链中包括多个节点,多个节点包括记账节点和非记账节点,目标节点为记账节点或非记账节点;通过目标节点将待办数据广播给区块链的其他节点,对待办数据进行验证;在通过区块链的其他节点对待办数据进行验证通过后,由目标节点将待办数据发送给代办处理用户端,其中,代办处理用户端为待办数据指示的用于处理待办数据的用户端,通过利用区块链技术将待办业务发送至区块链中目标节点进行处理,并且区块链中节点共享账本,达到了分摊待办系统待办节点压力和保证数据准确性的目的,实现了分摊待办系统压力和提高数据准确性的效果。通过本申请,解决了相关技术中的分布式系统通过待办节点处理待办数据,存在可靠性低的问题。
上述目标业务可以指由用户端发起的一切注册、查询、交易、注销等需要处理的事务。上述目标业务可以指用于金融或其他技术领域的需要处理的事务。上述目标业务可以包含需要处理的事务的待办数据,上述待办数据可以指待办业务的交易数据,上数据交易数据可以包括交易数量、交易列表所包含的具体交易信息。上述待办发起用户端也即是发起该目标业务的待办数据的用户端,上述待办处理用户端也即是对该待办数据进行处理的用户端,上述待办发起用户端和待办处理用户端可以为不同的用户端,其可以对应区块链中不同的节点。上述目标节点将上述待办数据发送给待办处理用户端,可以将该待办数据发送给代办处理用户端对应的节点,由该节点将待办数据发送给代办处理用户端。
上述目标节点可以为记账节点也可为非记账节点,上述目标节点可以指区块链中对待办的目标业务的处理节点,上述目标节点可以将待办数据发送给用户端上述目标节点可以生成目标业务的交易数据,可以将交易数据打包成新的区块链接上区块链,新的区块可以向全网发送广播,新的区块可以在全网记账节点验证通过后做账本同步,通过上述目标节点对目标业务的处理过程可以避免采用传统的待办节点为唯一中心节点对目标业务进行处理造成待办系统的压力过大,也可以待办节点出现故障造成交易数据丢失的情况产生。
上述记账节点可以理解为具有向区块写入数据的写权限,以及从区块中读取数据的读权限的节点,该节点可以由用户人为设置,保证该节点的安全性,进而保证写入区块的数据的安全性。上述记账可以理解为将待办数据的交易过程写入区块的流程,因此,上述记账节点也可以一定程度上保证记账的准确性。上述非记账节点,可以理解为只具有从区块中读取数据的读权限的节点,为保证区块写入的安全性,在区块链中新创建的节点都为非记账节点,通过人为设置,或者预设的认证方式进行认证后,可以将非记账节点设置为记账节点。
上述区块链的其他节点在对上述交易数据进行验证时,可以通过目标节点对交易数据的私钥签名,对交易数据进行验证。具体在验证时,其他节点根据预先存储的目标节点的私钥对交易数据的签名进行验证。保证该交易数据是由目标节点的发出,避免了交易数据被篡改的可能,提高了交易数据在验证时的安全性。
通过采用区块链技术实现目标节点对用户待办进行处理的方式,达到了避免使用待办节点为唯一中心节点对待办进行处理的方式,实现了分摊待办系统压力和提高交易数据可靠性的技术效果。
可选地,在通过区块链的其他节点对待办数据进行验证通过后,由目标节点将待办数据发送给代办处理用户端之后,还包括:将待办数据写入区块链的目标区块,其中,目标区块为区块链当前编辑的区块;将目标区块在预设时间内写入的待办数据打包成的新增区块;通过记账节点对新增区块校验通过后,将新增区块连接到区块链中,并进行数据同步。
在目标节点将待办数据发送给待办处理用户端后,可以将含有待办数据交易的交易记录写入目标区块,上述目标区块可以指区块链中正进行编辑的区块,该区块链中所有具有写入权限的记账节点都可以对当前正在编辑的区块进行写入,在区块写入完成后,将该区块与之前写好的多个区块形成的区块链连接,形成新的区块链。待办数据的每一条交易(新增或完成)都会写入目标区块中,目标节点可以将预设时间段的待办数据的所有交易记录打包成一个新的区块,新增区块可以连接上区块链,新增区块可以通过记账节点向全网节点进行广播,接收到广播的节点可以进行校验计算,校验通过后,新增区块向上述记账节点做账本同步,账本同步可以实现区块链中接收到广播的记账节点及原新增区块节点共同保存数据,不再使用现有技术中待办节点与应用节点间单独实现夜间批量对账的方法。此处的校验可以理解为其他节点对该新增区块的投票,投票通过则写入新增区块,投票不通过则不写入。
通过将待办数据定时记录打包成新增区块,并进行账本同步,达到数据将交易数据进行分布保存的目的,实现了提高数据可靠性的技术效果。
可选的,通过目标节点将待办数据广播给区块链的其他节点,对待办数据进行验证包括:用目标节点的私钥对待办数据签名后,与公钥拼装生成交易数据;将交易数据广播给区块链中的其他节点,由其他节点对交易数据进行签名验证,其中,其他节点接收到交易数据,用预先留存的目标节点的私钥,对交易数据进行签名验证;在交易数据的业务逻辑包括在先交易数据的情况下,在其他节点对交易数据进行签名验证通过的情况下,对交易数据的在先交易数据进行验证,在在先交易数据验证通过的情况下,确定交易数据验证通过;在交易数据的业务逻辑不包括在先交易数据的情况下,在其他节点随交易数据进行签名验证通过的情况下,确定交易数据验证通过。
目标节点将待办数据向区块链中其他节点进行广播和账本同步前,可以对待办数据进行验证,用户端向目标节点提交待办,用私钥对提交的待办进行签名,再经过公钥拼装成交易数据,目标节点可以将交易数据向区块链中其他节点进行广播,其他节点可以根据目标节点留存的公钥对接收到的交易数据进行验证,验证通过判定为有效交易,可以写入验证通过的其他节点的区块实现账户同步。
具体的,目标节点可以根据用户端的提交待办类型生成新建待办或完成待办,目标节点可以用私钥进行交易数据签名,再拼装上公钥向区块链上的其他节点进行广播,其他节点收到记录后,用事先留存的目标节点的公钥验证签名,如果用户端发起的为新建待办,验证通过后可直接写入其他节点的区块中,做账户同步;如果用户端发起的为完成待办,需进一步判断区块中的交易数据是否已经存在该待办的新建待办交易,如果存在完成待办交易成功,写去区块中,做账户同步,否则交易失败,不写入区块中。
通过对数据进行签名认证的方式,达到了避免错误交易情况发生的目的,实现了保证用户交易正确可行的技术效果。
可选的,通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的目标业务的待办数据之前,方法还包括:创建区块链的创世节点以及创世区块,基于创世节点,创建多个记账节点,组成区块链,其中,在创建多个记账节点的同时,基于创世区块作为服区块,创建后续的区块,区块包括区块头和区块体,区块头中包括父区块哈希值,二叉树根节点哈希值以及时间戳;响应添加请求,基于区块链添加非记账节点或记账节点;基于区块链添加记账节点包括:基于区块链添加认证节点;通过预设的认证方式对认证节点进行认证和校验,认证和校验通过的情况下,将认证节点作为记账节点。
上述创世区块可以是区块链交易的第一台节点,上述创世区块可以通过系统初始化运行自动创建,可以再创世区块创建后,陆续增加多个记账节点或非记账节点,其中如果任意一个记账节点出故障,其他记账节点仍可以正常运行,可以保证交易数据的不会因为一台节点出故障,造成交易不可进行的情况发生。
上述区块链的区块节点结构可以包括区块头和区块体,区块头中包括父区块的哈希值二叉树根节点哈希值以及时间戳,可以通过父区块中的哈希值信息将该区块连接至现有区块链中,可以通过上述二叉树根节点的哈希值验证区块中交易数据,任意一个待办交易数据被修改,都会导致二叉树根节点的哈希值出现变化,从而保证了区块链中数据的安全性。上述二叉树可以为Merkle树。
上述区块链响应添加区块请求,添加节点可以是记账节点或非记账节点,记账节点可以参与记账,可以对交易数据记性记录,非记账节点可以使用服务,不能参与记账,非记账节点可以通过认证和校验成为记账节点,上述认证过程可以指经过系统的认证节点生成认证证书,上述校验过程可以指系统其它节点进行认证。
通过构建整个区块链的构建,和对区块链中节点提供认证服务,达到了保证整个区块链数据安全性的目的,达到了提高系统业务处理的安全可靠性的技术效果。
可选的,通过预设的认证方式对认证节点进行认证和校验包括:生成认证节点的认证私钥,通过认证私钥生成认证公钥,通过认证公钥生成认证节点的明文证书;将明文证书发送给预设的认证方式的认证服务器,由认证服务器对明文证书进行认证,其中,认证服务器接收明文证书后,对明文证书进行哈希运算后用认证服务器的服务私钥加密得到密文证书;通过认证节点接收认证服务器认证后得到的密文证书,在校验时将密文证书和明文证书发送给认证服务器,由认证服务器进行校验,其中,认证服务器通过哈希运算对明文证书进行处理,得到第一哈希值,通过服务私钥对密文证书进行解密,得到第二哈希值,在第一哈希值和第二哈希值相同的情况下,确定认证节点校验成功。
上述通过预设的认证方式对认证节点进行认证和校验可以相当于一个加密认证与解密认证的过程,上述认证节点可以在提供认证服务的认证节点生成私钥,提供认证节点经过私钥签名算法生成公钥,可以通过公钥生成认证明文证书,可以将明文证书发送给认证服务器,认证服务器可以将明文证书通过哈希计算得到第一哈希值,认证服务器可以将第一哈希值用自己的私钥加密签名认证生成密文证书返回给认证节点的服务器,实现上述认证过程。
上述校验过程可以通过提供校验服务的认证节点发送自己接收过的认证服务器认证后得到的密文证书和明文证书记性校验,在校验时校验的节点可以用认证服务器公钥解密密文证书,解密成功可以获取解密值的第二哈希值校验的节点用明文证书进行哈希加密得到实际加密结果的第一哈希值,可以通过判断解密得到的第二哈希值与明文证书加密应当得到的第一哈希值是够一致,判断校验是否成功,如果加密失败或者第一哈希值与第二哈希值不一致,校验过程均失败。
通过认证方式对认证节点进行认证,达到了对节点数据进行保密的目的,实现了提高交易处理过程安全性能的技术效果。
可选的,基于区块链添加非记账节点或记账节点组成区块链之后,方法还包括:通过添加的非记账节点或记账节点,采用对等网络传输的方式向区块链中的已有节点广播上线,其中,已有节点接收到广播上线的消息后,同步已有节点的本地路由信息,与添加的非记账节点或记账节点组网。
上述区块链中记账节点或非记账点数据的传输可以采用对等网络的传输方式,区块链总的每一个节点可以经过计算得到自己的节点的地址信息,两个节点可以根据地址信息计算节点间的网络距离得到对等网络拓扑图,记账节点或非记账节点进行广播,可以探测周围的在线节点更新自己的路由表信息,当需要进行节点访问时,可以通过路由表信息中的地址信息计算网络距离选择路径。
具体的,网络可以采用Kad(Kademlia,P2P重叠网络传输协议)分布式哈希表实现。在网络中每一个节点的公钥经过SHA256(Secure Hash Algorithm,安全散列算法)计算后成为唯一的节点ID。通过两个节点ID异或计算,得到各节点之间的网络距离,便可以得到P2P网络拓扑图,新节点上线后,会通过UDP(User Patagram Protocol,用户数据包协议)协议,向周围探测是否有节点在线,而其他节点也会通过探测判断该新节点上线。然后更新自己的网络路由表。当一个节点需要访问另一个节点时,会计算自己与该节点的异或值和网络距离。然后通过网络距离值,取查找路由表找到离目标节点最近的一个节点的ID。通过第二个节点ID和其保存的路由表,重新计算与目标节点的距离,然后获取得到最新的与目标节点最近的节点ID。重复此步骤后,就可以连接到目标节点。通过建立TCP(TransmissionControl Protocol,传输控制协议)协议开始通信。
通过采用对等网络的方式实现组网,到达了区块链的网络构建的目的,实现了提高网络传输速度的技术效果。
可选的,将区块链的共识层采用拜占庭容错算法,在通过区块链的其他节点对待办数据进行验证通过后,将待办数据写入区块链的目标区块之前,方法还包括:通过拜占庭容错算法确定的主节点,向主节点的多个副节点的分别对应的备选节点推送待办数据,其中,主节点为区块链中任一记账节点;在备选节点将接收到的待办数据进行签名验证通过后,将备选节点的确认消息广播给区块链的所有节点;在节点收到的确认消息的数量达到第一预设数量的情况下,确定待办数据允许进行,并向区块链的所有节点广播命令消息;在节点收到的命令消息的数量达到第一预设数量的情况下,开始处理待办数据,处理完成后向待办发起用户端发送回复消息;在待办发起用户端接收到的回复消息的数量达到第二预设数量的情况下,确定待办数据通过投票,执行将待办数据写入区块链的目标区块的步骤。
用户端发起请求待办交易后,可以通过拜占庭容错算法推选确定的主节点。上述主节点可以是区块链中任一记账节点,区块链中所有节点都可以参与拜占庭容错算法进行主节点推选,在区块链中的所有节点中可以推选出一个主节点,其余节点可以作为副节点,上述区块链可以通过拜占庭容错算法(即少数服从多数的投票机制)来达成共识记账,区块链中节点经过拜占庭容错算法可以确定参与请求待办交易的处理过程的节点,当节点数据达到一定数量,请求待办交易可以进行,并且将待办数据写入目标区块,实现区块链对待办交易进行共同决定,共同存储的效果。
具体的,请求发起节点(客户端)发起请求待办交易request请求后,拜占庭容错算法PBFT推选的主节点开始给所有副节点备选节点推送这一整条交易完整信息预确认消息pre-prepare。所有备选节点收到预确认消息pre-prepare完成Hash签名验证后,将本节点的确认消息prepare广播给所有节点。所有节点收到其他节点的确认消息prepare后,若收到的数量为2f+1(f为系统允许故障节点数),则确认该交易request请求可以进行,并再向其他节点广播允许命令commit。所有节点收到其他节点的commit,若收到的数量为2f+1(f为系统允许故障节点数),则开始处理request请求交易,完成后并再向客户端节点返回回答消息reply。客户端节点收到数量为f+1(f为系统允许故障节点数)的回答消息reply后,确认请求request完成。
通过采用拜占庭容错算法实现共识机制,避免采用现有技术中利用待办中心系统进行夜间批量对账的压力过大的问题,同时也避免了区块链中比特币采用工作量证明存在区块出块慢,耗费计算力等问题,实现了提高系统交易处理速度的技术效果。
需要说明的是,本实施例还提供了一种可选的实施方式,下面对该实施方式进行详细说明。
本实施方式还提供了一种基于区块链的分布式待办处理系统,主要使用的是区块链,机制如下。
本区块链架构将参与节点分为记账节点和非记账节点两类,记账节点在有权限参与记账,非记账节点只能使用服务。首先,区块链交易的第一台节点,通过系统初始化运行自动创建创世区块,至此区块链则有了第一块区块开始。后续陆续增加三台记账节点,共四台记账节点组建成为区块链初始架构。此架构中,允许在任意一个记账节点故障的情况下,记账节点间的共识机制仍然能正常运行,不影响区块链的生成和记录。
除记账节点,非记账节点外,另部署增加CA(Certificate Authority,证书认证机构)证书认证节点。CA证书认证节点不属于待办中心区块链网络的节点,作用是对于需要加入区块链的节点,提供证书认证服务,通过认证的节点则是记账节点。若是CA证书认证节点故障,会导致无法新增记账节点,但不会影响待办中心系统的正常运行。运行期间允许新节点加入,默认作为非记账节点。当所属节点的证书通过CA节点的认证后,被其他节点认证证书,成为记账节点。图2是根据本申请实施方式提供的CA证书认证流程图,图3是根据本申请实施方式提供的CA证书校验流程图;工作流程如图2和图3所示。
若用户a想要新建一条待处理人为用户b待办,处理流程为:用户a通过接口提交该待办交易,用户a通过接口将请求传给了节点A,节点A生成了一条“新建待办”交易。节点A将这一条待办交易,用私钥签名,再拼装上公钥生成一条交易数据用广播发出。链上其他节点收到这条记录后,用事先留存的节点A的公钥验证签名,校验通过后,则判断为有效交易,新建待办交易处理成功,若是签名验证失败,则判断为无效交易,不予写入区块。如果节点A发出的是“完成待办”交易,除了校验签名,还需要校验以前的区块交易数据中是否存在该待办的“新建待办”交易,若是校验发现不存在,则也是判定完成代办交易失败。
待办的每一条交易(新增或完成),都会写入在区块中记录。在一段固定的时间内(如:10分钟),每隔10分钟,节点将此时间段内记录所有的交易记录打包成为一个新的区块,并链接上区块链,成为新的区块,并向全网记账节点广播,其他记账节点通过校验计算,确认认同后完成上链,并做账本同步。
区块链结构为六层模型,从下至上依次为:数据层、网络层、共识层、激励层、合约层、应用层。
1.数据层;
区块链为链式结构,后一个区块中记录着前一个区块的Hash值。每一个区块都连接着它的父区块,这样串联起来,就成为了一个链。
Hash函数(即哈希函数)可以把任意长度的原始信息通过散列算法变换为固定长度的摘要信息。同一个原始信息用同一个Hash函数只会得到相同的摘要信息。任何微小的修改都会导致Hash计算的结果完全不同。从摘要信息无法逆向计算出原始信息,Hash函数计算出来的结果便是该信息的Hash值。
区块是区块链中最重要的一个数据结构,分为区块头和区块体。区块头里主要包含:父区块Hash值、Merkle(梅克尔可信树)根Hash值、时间戳。区块体中主要包含:区块大小、区块头、交易数量、交易列表。其中,除了交易列表的字段长度不固定,其他字段为固定长度,图4是根据本申请实施方式提供的区块结构图,如图4所示。
Merkle树,是一种平衡二叉树。每一个非叶子节点都是其两个子节点Hash值合并计算后的Hash值。每个叶子节点下都挂载一笔交易记录,该叶子节点则是记录着交易信息的Hash值。由下至上,同父节点的两个子节点,将他们的Hash值两两hash后的结果就是其父节点的Hash值。
图5是根据本申请实施方式提供的Merkle树图,如图5所示,Hash1为一条待办交易数据通过Hash函数计算得到的值。Hash9是用Hash函数计算Hash1和Hash2的Hash值,Hash9=Hash(Hash1,Hash2)。所以Merkle根Hash值是第二层的两个子节点Hash值计算得出。
这样的数据结构可以用于递归验证数据。为了验证区块中存在某个交易,只用计算log2(N)个Hash(N为交易总数)。而任意一个待办交易数据被修改,都会导致Merkle根值出现变化,导致区块Hash变化,导致该区块校验失败。
一个节点当收到网络传播的区块时,将会验证区块的Hash值,确认正确后,将通过区块头里的父Hash值信息连接至现有的区块链上。
数据结构中第一个区块由于其特殊性,没有父节点可以引用,所以系统第一次启动时,将会用直接创建出链上第一个区块。
作为参与交互节点,需要使用公钥和私钥。私钥使用随机数生成,然后通过签名算法对私钥进行计算得到公钥。
2.网络层;
网络层采用P2P(Peer-to-peer networking,对等网络)技术传播信息,让参与节点之间具有自动组网的能力。节点上线后,会向其他节点广播上线,其他节点收到后,各自同步本地路由信息。
P2P网络传输(对等网络),是一种对等者(Peer)之间分配任务和工作负载的分布式应用结构,又称点对点技术。P2P网络中没有客户端服务器的概念,所有参与节点都是同级节点,网络通信不需要一个中央服务器,避免由中心服务器故障导致的服务不可用问题。
网络采用Kad分布式哈希表实现。在网络中每一个节点的公钥经过SHA256(SecureHash Algorithm,安全散列算法)计算后成为唯一的节点ID。通过两个节点ID异或计算,得到各节点之间的网络距离,便可以得到P2P网络拓扑图,图6是根据本申请实施方式提供的P2P网络拓扑图,如图6所示。
新节点上线后,会通过UDP(User Patagram Protocol,用户数据包协议)协议,向周围探测是否有节点在线,而其他节点也会通过探测判断该新节点上线。然后更新自己的网络路由表。当一个节点需要访问另一个节点时,会计算自己与该节点的异或值和网络距离。然后通过网络距离值,取查找路由表找到离目标节点最近的一个节点的ID。通过第二个节点ID和其保存的路由表,重新计算与目标节点的距离,然后获取得到最新的与目标节点最近的节点ID。重复此步骤后,就可以连接到目标节点。通过建立TCP(TransmissionControl Protocol,传输控制协议)协议开始通信。
3.共识层;
共识层采用实用拜占庭容错算法PBFT(Practical Byzantine Fault Tolerance,拜占庭容错算法)。在待办中心系统中,参与记账的节点为区块链共识参与节点,发起请求节点为客户端节点。
请求发起节点(客户端)发起请求待办交易request请求后,PBFT推选的主节点开始给所有副节点备选节点推送这一整条交易完整信息预确认消息pre-prepare。所有备选节点收到pre-prepare完成Hash签名验证后,将本节点的确认消息prepare广播给所有节点。所有节点收到其他节点的prepare后,若收到的数量为2f+1(f为系统允许故障节点数),则确认该交易request请求可以进行,并再向其他节点广播commit。所有节点收到其他节点的允许命令commit,若收到的数量为2f+1(f为系统允许故障节点数),则开始处理request请求交易,完成后并再向客户端节点返回reply回答。客户端节点收到数量为f+1(f为系统允许故障节点数)的reply回答后,确认请求request请求完成,图7是根据本申请实施方式提供的待办中心共识记账时序图,如图7所示。
区块链最大的应用比特币采用的是工作量证明POW(挖矿奖励),存在着区块出块慢,耗费算力等问题,不适用于待办中心系统。系统搭建时拜占庭容错算法PBFT算法下,因为每一个交易和区块都是所有节点同一时刻决定的,所以区块链路不会出现分叉问题(比特币存在可以隐藏分叉链路问题,用于完成51%攻击)。拜占庭容错算法PBFT不用采用挖矿机制,每一次共识不必耗费大量算力去计算Hash值,节约功耗。
4.激励层;
由于共识层采用拜占庭容错算法PBFT算法,所以待办中心系统不需要激励层。
5.合约层;
业务逻辑:代办中心业务处理,待办中心系统运维监控,待办中心交易统计报表。
6.应用层;
完整的待办中心区块链系统是一个可以单独打包运行的程序。待办中心系统初始节点上线后,后续的节点可以由接入应用自行部署上线。
新节点上线部署后,在网络可正常访问的情况下,通过P2P网络广播所有在线节点,完成在线组网,即可开始同步账本。若是新上线记账节点,则该节点证书需要通过CA认证,则可以成为记账节点,开始参与投票和记账。
本实施方式,提供一种基于区块链的数据处理方法。利用区块链技术,用户对于待办的操作通过链上广播,直接将数据分发到所有节点进行对账和存储,各个应用节点作为一个区块链的链上节点,可以直接完成数据同步,分摊待办系统的压力和共同保存数据。可以解决节点可靠性,数据维护成本,应用首次接入繁琐等多个问题。
本实施方式,利用区块链技术设计了一种分布式待办处理系统。系统、用户生产的待办数据,可以通过广播传播到所有节点,由所有节点的完成数据校验和数据存储。利用这种方式可以保证服务处理的性能和数据的准确性,同时避免了由于网络或者节点故障导致的服务不可用或数据丢失。
本实施方式,主要利用了区块链技术,区块链技术是一个分布式的共享账本和数据库。具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明特点。它本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块。每一个数据块中包含了一批次的数据信息,用于验证其信息的有效性和生产下一个数据块。
需要说明的是,本实施方式的关键点在于本实施例采用区块链技术,核心采用分布式账本技术实现分布式数据存储,该形式的区块链可以预选多个节点为记账人,每个块的生成由所有的预选节点共同决定(共识机制),其他接入节点只能参与交易,但不参与记账过程(其他接入应用),其他任何人都可以通过开放的API(Application PragrammingInterface,应用程序接口)进行交易(用户)。
上述方法有以下优点:
优点一:待办中心系统去除中心化,成为了分布式服务。
优点二:可以免去接入应用夜间对账,联机对账的复杂对账流程。
优点三:有效避免由于待办中心接口调用或者数据库的故障,导致待办功能瘫痪,或者待办数据丢失。数据的安全性受到保证,因为区块链和分布式账本技术特性,可以保证数据唯一且不丢失,且不可私自串改。
优点四:不需要激励(矿工),取消了公链中需要激励才能记账的限制(激励例子:挖矿获取比特币)
优点五:扩展性好,任意服务节点可以随时加入/退出区块链,不影响待办的数据
优点六:由于广播会传遍所有区块链参与节点,待办数据可以联动所有参与节点,各应用同步到账本数据后可以自行定制用户通知方式,不需要待办中心同意推送消息,使用户受到通知的形式多样化。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例还提供了一种基于区块链的数据处理装置,需要说明的是,本申请实施例的一种基于区块链的数据处理装置可以用于执行本申请实施例所提供的用于一种基于区块链的数据处理方法。以下对本申请实施例提供的一种基于区块链的数据处理装置进行介绍。
图8是根据本申请实施例提供的一种基于区块链的数据处理装置的示意图。如图8所示,该装置包括接收模块82,广播模块84,发送模块86,下面对该装置进行详细说明。
接收模块82,通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的目标业务的待办数据,其中,区块链中包括多个节点,多个节点包括记账节点和非记账节点,目标节点为记账节点或非记账节点;广播模块84,与上述接收模块82相连,通过目标节点将待办数据广播给区块链的其他节点,对待办数据进行验证;发送模86,与上述广播模块84相连,在通过区块链的其他节点对待办数据进行验证通过后,由目标节点将待办数据发送给代办处理用户端,其中,代办处理用户端为待办数据指示的用于处理待办数据的用户端。
本申请实施例提供的一种基于区块链的数据处理装置,通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的目标业务的待办数据,其中,区块链中包括多个节点,多个节点包括记账节点和非记账节点,目标节点为记账节点或非记账节点;通过目标节点将待办数据广播给区块链的其他节点,对待办数据进行验证;在通过区块链的其他节点对待办数据进行验证通过后,由目标节点将待办数据发送给代办处理用户端,其中,代办处理用户端为待办数据指示的用于处理待办数据的用户端,通过利用区块链技术将待办业务发送至区块链中目标节点进行处理,并且区块链中节点共享账本,达到了分摊待办系统待办节点压力和保证数据准确性的目的,实现了分摊待办系统压力和提高数据准确性的效果。通过本申请,解决了相关技术中的分布式系统通过待办节点处理待办数据,存在可靠性低的问题。
所述一种基于区块链的数据处理装置包括处理器和存储器,上述接收模块82,广播模块84,发送模块86,等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来达到了分摊待办系统待办节点压力和保证数据准确性的目的,实现了分摊待办系统压力和提高数据准确性的效果,从而解决了相关技术中的分布式系统通过待办节点处理待办数据,存在可靠性低的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现所述一种基于区块链的数据处理方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述一种基于区块链的数据处理方法。
如图9所示,本发明实施例提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的目标业务的待办数据,其中,区块链中包括多个节点,多个节点包括记账节点和非记账节点,目标节点为记账节点或非记账节点;通过目标节点将待办数据广播给区块链的其他节点,对待办数据进行验证;在通过区块链的其他节点对待办数据进行验证通过后,由目标节点将待办数据发送给代办处理用户端,其中,代办处理用户端为待办数据指示的用于处理待办数据的用户端。
可选的,在通过区块链的其他节点对待办数据进行验证通过后,由目标节点将待办数据发送给代办处理用户端之后,还包括:将待办数据写入区块链的目标区块,其中,目标区块为区块链当前编辑的区块;将目标区块在预设时间内写入的待办数据打包成的新增区块;通过记账节点对新增区块校验通过后,将新增区块连接到区块链中,并进行数据同步。
可选的,通过目标节点将待办数据广播给区块链的其他节点,对待办数据进行验证包括:用目标节点的私钥对待办数据签名后,与公钥拼装生成交易数据;将交易数据广播给区块链中的其他节点,由其他节点对交易数据进行签名验证,其中,其他节点接收到交易数据,用预先留存的目标节点的私钥,对交易数据进行签名验证;在交易数据的业务逻辑包括在先交易数据的情况下,在其他节点对交易数据进行签名验证通过的情况下,对交易数据的在先交易数据进行验证,在在先交易数据验证通过的情况下,确定交易数据验证通过;在交易数据的业务逻辑不包括在先交易数据的情况下,在其他节点随交易数据进行签名验证通过的情况下,确定交易数据验证通过。
可选的,通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的目标业务的待办数据之前,方法还包括:创建区块链的创世节点以及创世区块,基于创世节点,创建多个记账节点,组成区块链,其中,在创建多个记账节点的同时,基于创世区块作为父区块,创建后续的区块,区块包括区块头和区块体,区块头中包括服区块哈希值,二叉树根节点哈希值以及时间戳;响应添加请求,基于区块链添加非记账节点或记账节点;基于区块链添加记账节点包括:基于区块链添加认证节点;通过预设的认证方式对认证节点进行认证和校验,认证和校验通过的情况下,将认证节点作为记账节点。
可选的,通过预设的认证方式对认证节点进行认证和校验包括:生成认证节点的认证私钥,通过认证私钥生成认证公钥,通过认证公钥生成认证节点的明文证书;将明文证书发送给预设的认证方式的认证服务器,由认证服务器对明文证书进行认证,其中,认证服务器接收明文证书后,对明文证书进行哈希运算后用认证服务器的服务私钥加密得到密文证书;通过认证节点接收认证服务器认证后得到的密文证书,在校验时将密文证书和明文证书发送给认证服务器,由认证服务器进行校验,其中,认证服务器通过哈希运算对明文证书进行处理,得到第一哈希值,通过服务私钥对密文证书进行解密,得到第二哈希值,在第一哈希值和第二哈希值相同的情况下,确定认证节点校验成功。
可选的,基于区块链添加非记账节点或记账节点组成区块链之后,方法还包括:通过添加的非记账节点或记账节点,采用对等网络传输的方式向区块链中的已有节点广播上线,其中,已有节点接收到广播上线的消息后,同步已有节点的本地路由信息,与添加的非记账节点或记账节点组网。
可选的,将区块链的共识层采用拜占庭容错算法,在通过区块链的其他节点对待办数据进行验证通过后,将待办数据写入区块链的目标区块之前,方法还包括:通过拜占庭容错算法确定的主节点,向主节点的多个副节点的分别对应的备选节点推送待办数据,其中,主节点为区块链中任一记账节点;在备选节点将接收到的待办数据进行签名验证通过后,将备选节点的确认消息广播给区块链的所有节点;在节点收到的确认消息的数量达到第一预设数量的情况下,确定待办数据允许进行,并向区块链的所有节点广播命令消息;在节点收到的命令消息的数量达到第一预设数量的情况下,开始处理待办数据,处理完成后向待办发起用户端发送回复消息;在待办发起用户端接收到的回复消息的数量达到第二预设数量的情况下,确定待办数据通过投票,执行将待办数据写入区块链的目标区块的步骤。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的目标业务的待办数据,其中,区块链中包括多个节点,多个节点包括记账节点和非记账节点,目标节点为记账节点或非记账节点;通过目标节点将待办数据广播给区块链的其他节点,对待办数据进行验证;在通过区块链的其他节点对待办数据进行验证通过后,由目标节点将待办数据发送给代办处理用户端,其中,代办处理用户端为待办数据指示的用于处理待办数据的用户端。
可选的,在通过区块链的其他节点对待办数据进行验证通过后,由目标节点将待办数据发送给代办处理用户端之后,还包括:将待办数据写入区块链的目标区块,其中,目标区块为区块链当前编辑的区块;将目标区块在预设时间内写入的待办数据打包成的新增区块;通过记账节点对新增区块校验通过后,将新增区块连接到区块链中,并进行数据同步。
可选的,通过目标节点将待办数据广播给区块链的其他节点,对待办数据进行验证包括:用目标节点的私钥对待办数据签名后,与公钥拼装生成交易数据;将交易数据广播给区块链中的其他节点,由其他节点对交易数据进行签名验证,其中,其他节点接收到交易数据,用预先留存的目标节点的私钥,对交易数据进行签名验证;在交易数据的业务逻辑包括在先交易数据的情况下,在其他节点对交易数据进行签名验证通过的情况下,对交易数据的在先交易数据进行验证,在在先交易数据验证通过的情况下,确定交易数据验证通过;在交易数据的业务逻辑不包括在先交易数据的情况下,在其他节点随交易数据进行签名验证通过的情况下,确定交易数据验证通过。
可选的,通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的目标业务的待办数据之前,方法还包括:创建区块链的创世节点以及创世区块,基于创世节点,创建多个记账节点,组成区块链,其中,在创建多个记账节点的同时,基于创世区块作为父区块,创建后续的区块,区块包括区块头和区块体,区块头中包括服区块哈希值,二叉树根节点哈希值以及时间戳;响应添加请求,基于区块链添加非记账节点或记账节点;基于区块链添加记账节点包括:基于区块链添加认证节点;通过预设的认证方式对认证节点进行认证和校验,认证和校验通过的情况下,将认证节点作为记账节点。
可选的,通过预设的认证方式对认证节点进行认证和校验包括:生成认证节点的认证私钥,通过认证私钥生成认证公钥,通过认证公钥生成认证节点的明文证书;将明文证书发送给预设的认证方式的认证服务器,由认证服务器对明文证书进行认证,其中,认证服务器接收明文证书后,对明文证书进行哈希运算后用认证服务器的服务私钥加密得到密文证书;通过认证节点接收认证服务器认证后得到的密文证书,在校验时将密文证书和明文证书发送给认证服务器,由认证服务器进行校验,其中,认证服务器通过哈希运算对明文证书进行处理,得到第一哈希值,通过服务私钥对密文证书进行解密,得到第二哈希值,在第一哈希值和第二哈希值相同的情况下,确定认证节点校验成功。
可选的,基于区块链添加非记账节点或记账节点组成区块链之后,方法还包括:通过添加的非记账节点或记账节点,采用对等网络传输的方式向区块链中的已有节点广播上线,其中,已有节点接收到广播上线的消息后,同步已有节点的本地路由信息,与添加的非记账节点或记账节点组网。
可选的,将区块链的共识层采用拜占庭容错算法,在通过区块链的其他节点对待办数据进行验证通过后,将待办数据写入区块链的目标区块之前,方法还包括:通过拜占庭容错算法确定的主节点,向主节点的多个副节点的分别对应的备选节点推送待办数据,其中,主节点为区块链中任一记账节点;在备选节点将接收到的待办数据进行签名验证通过后,将备选节点的确认消息广播给区块链的所有节点;在节点收到的确认消息的数量达到第一预设数量的情况下,确定待办数据允许进行,并向区块链的所有节点广播命令消息;在节点收到的命令消息的数量达到第一预设数量的情况下,开始处理待办数据,处理完成后向待办发起用户端发送回复消息;在待办发起用户端接收到的回复消息的数量达到第二预设数量的情况下,确定待办数据通过投票,执行将待办数据写入区块链的目标区块的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于区块链的数据处理方法,其特征在于,包括:
通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的所述目标业务的待办数据,其中,所述区块链中包括多个节点,所述多个节点包括记账节点和非记账节点,所述目标节点为所述记账节点或所述非记账节点;
通过所述目标节点将所述待办数据广播给所述区块链的其他节点,对所述待办数据进行验证;
在通过所述区块链的其他节点对所述待办数据进行验证通过后,由所述目标节点将所述待办数据发送给代办处理用户端,其中,所述代办处理用户端为所述待办数据指示的用于处理所述待办数据的用户端。
2.根据权利要求1所述的方法,其特征在于,在通过所述区块链的其他节点对所述待办数据进行验证通过后,由所述目标节点将所述待办数据发送给代办处理用户端之后,还包括:
将所述待办数据写入所述区块链的目标区块,其中,所述目标区块为所述区块链当前编辑的区块;
将所述目标区块在预设时间内写入的待办数据打包成的新增区块;
通过所述记账节点对所述新增区块校验通过后,将所述新增区块连接到所述区块链中,并进行数据同步。
3.根据权利要求2所述的方法,其特征在于,通过所述目标节点将所述待办数据广播给所述区块链的其他节点,对所述待办数据进行验证包括:
用所述目标节点的私钥对所述待办数据签名后,与公钥拼装生成交易数据;
将所述交易数据广播给所述区块链中的其他节点,由所述其他节点对所述交易数据进行签名验证,其中,所述其他节点接收到所述交易数据,用预先留存的所述目标节点的所述私钥,对所述交易数据进行签名验证;
在所述交易数据的业务逻辑包括在先交易数据的情况下,在所述其他节点对所述交易数据进行签名验证通过的情况下,对所述交易数据的在先交易数据进行验证,在所述在先交易数据验证通过的情况下,确定所述交易数据验证通过;
在所述交易数据的业务逻辑不包括在先交易数据的情况下,在所述其他节点随所述交易数据进行签名验证通过的情况下,确定所述交易数据验证通过。
4.根据权利要求2所述的方法,其特征在于,通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的所述目标业务的待办数据之前,所述方法还包括:
创建所述区块链的创世节点以及创世区块,基于所述创世节点,创建多个记账节点,组成所述区块链,其中,在创建多个记账节点的同时,基于所述创世区块作为父区块,创建后续的区块,所述区块包括区块头和区块体,所述区块头中包括服区块哈希值,二叉树根节点哈希值以及时间戳;
响应添加请求,基于所述区块链添加非记账节点或记账节点;
基于所述区块链添加记账节点包括:
基于所述区块链添加认证节点;
通过预设的认证方式对所述认证节点进行认证和校验,认证和校验通过的情况下,将所述认证节点作为记账节点。
5.根据权利要求4所述的方法,其特征在于,通过预设的认证方式对所述认证节点进行认证和校验包括:
生成所述认证节点的认证私钥,通过所述认证私钥生成认证公钥,通过所述认证公钥生成所述认证节点的明文证书;
将所述明文证书发送给所述预设的认证方式的认证服务器,由所述认证服务器对所述明文证书进行认证,其中,所述认证服务器接收所述明文证书后,对所述明文证书进行哈希运算后用认证服务器的服务私钥加密得到密文证书;
通过所述认证节点接收所述认证服务器认证后得到的密文证书,在校验时将所述密文证书和明文证书发送给所述认证服务器,由所述认证服务器进行校验,其中,所述认证服务器通过哈希运算对所述明文证书进行处理,得到第一哈希值,通过所述服务私钥对所述密文证书进行解密,得到第二哈希值,在所述第一哈希值和所述第二哈希值相同的情况下,确定所述认证节点校验成功。
6.根据权利要求4所述的方法,其特征在于,基于所述区块链添加非记账节点或记账节点组成所述区块链之后,所述方法还包括:
通过所述添加的所述非记账节点或记账节点,采用对等网络传输的方式向所述区块链中的已有节点广播上线,其中,所述已有节点接收到所述广播上线的消息后,同步所述已有节点的本地路由信息,与所述添加的所述非记账节点或记账节点组网。
7.根据权利要求2所述的方法,其特征在于,将所述区块链的共识层采用拜占庭容错算法,在通过所述区块链的其他节点对所述待办数据进行验证通过后,将所述待办数据写入所述区块链的目标区块之前,所述方法还包括:
通过所述拜占庭容错算法确定的主节点,向所述主节点的多个副节点的分别对应的备选节点推送所述待办数据,其中,所述主节点为所述区块链中任一记账节点;
在所述备选节点将接收到的所述待办数据进行签名验证通过后,将所述备选节点的确认消息广播给所述区块链的所有节点;
在节点收到的确认消息的数量达到第一预设数量的情况下,确定所述待办数据允许进行,并向所述区块链的所有节点广播命令消息;
在节点收到的命令消息的数量达到所述第一预设数量的情况下,开始处理所述待办数据,处理完成后向所述待办发起用户端发送回复消息;
在所述待办发起用户端接收到的回复消息的数量达到第二预设数量的情况下,确定所述待办数据通过投票,执行将所述待办数据写入所述区块链的目标区块的步骤。
8.一种基于区块链的数据处理装置,其特征在于,包括:
接收模块,通过区块链中的对应目标业务的目标节点,接收待办发起用户端发送的所述目标业务的待办数据,其中,所述区块链中包括多个节点,所述多个节点包括记账节点和非记账节点,所述目标节点为所述记账节点或所述非记账节点;
广播模块,通过所述目标节点将所述待办数据广播给所述区块链的其他节点,对所述待办数据进行验证;
发送模块,通过所述区块链的其他节点对所述待办数据进行验证通过后,由所述目标节点将所述待办数据发送给代办处理用户端,其中,所述代办处理用户端为所述待办数据指示的用于处理所述待办数据的用户端。
9.一种计算机可读存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行权利要求1至7中任意一项所述的基于区块链的数据处理方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的基于区块链的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111482458.1A CN114240433A (zh) | 2021-12-06 | 2021-12-06 | 基于区块链的数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111482458.1A CN114240433A (zh) | 2021-12-06 | 2021-12-06 | 基于区块链的数据处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114240433A true CN114240433A (zh) | 2022-03-25 |
Family
ID=80753498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111482458.1A Pending CN114240433A (zh) | 2021-12-06 | 2021-12-06 | 基于区块链的数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114240433A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866567A (zh) * | 2022-05-26 | 2022-08-05 | 成都质数斯达克科技有限公司 | 一种抗容灾的多层次区块链网络区块同步方法和装置 |
CN117132279A (zh) * | 2023-10-26 | 2023-11-28 | 山东大学 | 一种区块链双链记账方法、系统、设备及介质 |
CN117254975A (zh) * | 2023-11-14 | 2023-12-19 | 深圳市嘉合劲威电子科技有限公司 | 一种基于区块链的数据防伪方法及系统 |
CN117574408A (zh) * | 2024-01-15 | 2024-02-20 | 杭州字节方舟科技有限公司 | 基于区块链的生产资料管理方法、装置及电子设备 |
-
2021
- 2021-12-06 CN CN202111482458.1A patent/CN114240433A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866567A (zh) * | 2022-05-26 | 2022-08-05 | 成都质数斯达克科技有限公司 | 一种抗容灾的多层次区块链网络区块同步方法和装置 |
CN114866567B (zh) * | 2022-05-26 | 2023-06-02 | 成都质数斯达克科技有限公司 | 一种抗容灾的多层次区块链网络区块同步方法和装置 |
CN117132279A (zh) * | 2023-10-26 | 2023-11-28 | 山东大学 | 一种区块链双链记账方法、系统、设备及介质 |
CN117132279B (zh) * | 2023-10-26 | 2024-01-23 | 山东大学 | 一种区块链双链记账方法、系统、设备及介质 |
CN117254975A (zh) * | 2023-11-14 | 2023-12-19 | 深圳市嘉合劲威电子科技有限公司 | 一种基于区块链的数据防伪方法及系统 |
CN117574408A (zh) * | 2024-01-15 | 2024-02-20 | 杭州字节方舟科技有限公司 | 基于区块链的生产资料管理方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109327528B (zh) | 一种基于区块链的节点管理方法和装置 | |
CN110569675B (zh) | 一种基于区块链技术的多Agent交易信息保护方法 | |
US11477032B2 (en) | System and method for decentralized-identifier creation | |
US11139979B2 (en) | Primary and secondary blockchain device | |
CN110535872B (zh) | 在区块链网络中处理数据请求的方法和装置 | |
CN110933020B (zh) | 密码逻辑自执行区块链导出提交 | |
CN109819443B (zh) | 基于区块链的注册认证方法、装置及系统 | |
CN112311735B (zh) | 可信认证方法,网络设备、系统及存储介质 | |
CN114240433A (zh) | 基于区块链的数据处理方法及系统 | |
CN111681003A (zh) | 资源跨链转移方法、装置、计算机设备以及存储介质 | |
US20230316273A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
US11514446B2 (en) | Method and apparatus for starting smart contract, electronic device, and storage medium | |
US11928222B2 (en) | Distributed ledger network implementing a synchronous trust consensus model | |
CN111127021B (zh) | 基于区块链的服务请求方法及装置 | |
CN114528601B (zh) | 基于区块链数据的访问方法和装置、处理器及电子设备 | |
CN109960512B (zh) | 一种软件部署方法及系统 | |
WO2021143364A1 (zh) | 获取去中心化应用集群中的交易处理状态的方法及装置 | |
WO2023082883A1 (zh) | 跨区块链处理事务的方法、装置、计算机设备、计算机存储介质及计算机程序产品 | |
CN115001707B (zh) | 基于区块链的设备认证方法和相关设备 | |
CN116186786A (zh) | 基于区块链的业务处理方法、装置、电子设备和可读介质 | |
CN117061089B (zh) | 一种投票管理方法、装置、设备及存储介质 | |
EP4287560A1 (en) | Encryption and decryption of transactions of a distributed ledger | |
CN116112496A (zh) | 一种基于区块链网络的跨链交互方法及相关设备 | |
CN114124943A (zh) | 区块链节点的处理方法、装置及系统、电子装置 | |
CN116186725A (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 |