CN110175178B - 一种数据处理的方法、节点设备和系统 - Google Patents
一种数据处理的方法、节点设备和系统 Download PDFInfo
- Publication number
- CN110175178B CN110175178B CN201910294361.4A CN201910294361A CN110175178B CN 110175178 B CN110175178 B CN 110175178B CN 201910294361 A CN201910294361 A CN 201910294361A CN 110175178 B CN110175178 B CN 110175178B
- Authority
- CN
- China
- Prior art keywords
- node device
- node
- data processing
- group
- intelligent contract
- 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
- 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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据处理的方法、节点设备和系统,该方法应用于去中心化网络中的区块链群,该方法包括:区块链群中的第一节点设备接收数据处理请求;第一节点设备根据数据处理请求执行智能合约得到第一数据处理结果;第一节点设备获取区块链群中除第一节点设备之外的每个节点设备执行智能合约得到的多个第二数据处理结果;第一节点设备采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果,提高了数据的安全性,提高了数据处理的公平性和可信度。
Description
技术领域
本申请实施例涉及区块链技术领域,尤其涉及一种数据处理的方法、节点设备和系统。
背景技术
传统分布式存储系统采用高度中心化数据管理机制,即传统分布式存储系统由某一中心控制节点进行数据管理。中心控制节点将传统分布式存储系统内的数据分解成若干片段,然后将若干片段的数据分别存储在传统分布式存储系统的各个节点上。
由于传统分布式存储系统由某一中心控制节点进行管理,数据的网络安全问题存在质疑与挑战,例如用户无法确认数据是否被服务运营商篡改,或受到黑客攻击。在互联网数据爆炸性增长的情况下,为了提高网络数据的安全,需服务运营商额外增加管理机制或技术,进一步增加了传统分布式存储系统的维护成本,降低了传统分布式存储系统的运行效率。
发明内容
本申请实施例提供了一种数据处理的方法、节点设备和系统,基于区块链技术建立区块链群,并基于去中心化的区块链群实现数据的处理,提高了信息的安全性。
第一方面,提供了一种数据处理方法,该方法应用于去中心化网络中的区块链群,该方法包括:
区块链群中的第一节点设备接收数据处理请求;第一节点设备根据数据处理请求执行智能合约得到第一数据处理结果;第一节点设备获取区块链群中除第一节点设备之外的每个节点设备执行智能合约得到的多个第二数据处理结果;第一节点设备采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果。
采用区块链群,区块链群中的节点设备为去中心化的节点设备,区块链群中第一节点设备都拥有区块链群中所有节点设备的节点数据,同理,区块链群中的每一个节点设备都分别拥有区块链群中所有节点设备的节点数据,在数据处理过程中,第一节点设备的数据处理结果都是透明化的,而且,在第三数据处理结果的处理过程中,即使区块链群中的少部分节点设备的节点数据被篡改或者受到黑客攻击,第一节点设备通过共识算法对节点数据进行处理也会得到正确安全的数据处理结果,提高了数据的安全性,提高了数据处理的公平性和可信度。
结合第一方面,在第一方面的第一种可能实现的方式中,第一节点设备根据数据处理请求执行智能合约得到第一数据处理结果,包括:第一节点设备执行智能合约确定第一节点设备中的本地账本中满足智能合约中第一预设条件的节点数据为第一数据处理结果,其中,本地账本中的节点数据包括区块链群中所有节点设备的节点数据。
结合第一方面或者第一方面的第一种可能实现的方式,在第一方面的第二种可能实现的方式中,第一节点设备采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果,包括:第一节点设备采用共识算法确定第一数据处理结果和多个第二数据处理结果中满足第二预设条件的数据处理结果为第三数据处理结果。
结合第一方面或第一方面的上述任一可能实现的方式,在第一方面的第三种可能实现的方式中,该方法还包括:第一节点设备分别向区块链群中除第一节点设备之外的每个节点设备发送第一数据处理结果。
结合第一方面或第一方面的上述任一可能实现的方式,在第一方面的第四种可能实现的方式中,在第一节点设备采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果之后,方法还包括:第一节点设备向服务器发送第三数据处理结果。
结合第一方面或第一方面的上述任一可能实现的方式,在第一方面的第五种可能实现的方式中,第一节点设备是包括显示屏,在第一节点设备采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果之后,方法还包括:第一节点设备的显示屏显示提示消息,提示消息包括第三数据处理结果,提高了用户体验。
结合第一方面或第一方面的上述任一可能实现的方式,在第一方面的第六种可能实现的方式中,在第一节点设备接收数据处理请求之前,该方法还包括:第一节点设备建立区块链群。
结合第一方面的第六种可能实现的方式,在第一方面的第七种可能实现的方式中,智能合约包括建立区块链群条件;第一节点设备建立区块链群,包括:第一节点设备接收建立区块链群的请求;当第一节点设备的本地账本中第一节点设备的节点数据满足建立区块链群条件时,第一节点设备根据建立区块链群的请求建立区块链群。
结合第一方面的第七种可能实现的方式,在第一方面的第八种可能实现的方式中,建立区块链群条件包括智能合约的版本信息与预设版本信息一致,或者第一节点设备所在区块链群的数量小于预设阈值。
结合第一方面的第六种、第七种或第八种可能实现的方式,在第一方面的第九种可能实现的方式中,在第一节点设备根据建立区块链群的请求建立区块链群之前,该方法还包括:第一节点设备从服务器下载或更新智能合约,以保证智能合约满足数据处理的需求。
结合第一方面的第九种可能实现的方式,在第一方面的第十种可能实现的方式中,第一节点设备更新智能合约,包括:
第一节点设备获取服务器上智能合约的版本信息;当服务器上智能合约的版本信息高于第一节点设备上智能合约的版本信息时,第一节点设备从服务器下载并更新智能合约。
结合第一方面或第一方面的上述任一可能实现的方式,在第一方面的第十一种可能实现的方式中,在第一节点设备接收数据处理请求之前,该方法还包括:第一节点设备邀请第二节点设备加入区块链群。
结合第一方面的第十一种可能实现的方式,在第一方面的第十二种可能实现的方式中,第一节点设备邀请第二节点设备加入区块链群,包括:第一节点设备向第二节点设备发送邀请加入请求,邀请加入请求用于第二节点设备确定第二节点设备的本地账本中的第二节点设备的节点数据满足加入区块链群条件,第二节点设备的本地账本包括区块链群中所有节点设备的节点数据;第一节点设备接收第二节点设备发送的加入用户群成功的信息。
结合第一方面的第十二种可能实现的方式,在第一方面的第十三种可能实现的方式中,该方法还包括:
第一节点设备分别向区块链中除第一节点设备和第二节点设备之外的节点设备发送通知消息,通知消息用于除第一节点设备和第二节点设备之外的节点设备获取第二节点设备的节点数据。
第二方面,提供了一种节点设备、该节点设备为第一节点设备,第一节点设备是去中心化网络中区块链群中的节点设备,第一节点设备包括收发器,处理器和存储器,存储器存储有程序代码,所述程序代码当被处理器运行时,使所述第一节点设备执行所述第一方面和第一方面的任一实现方式所涉及的方法。
第三方面,提供了一种系统,该系统应用于去中心化网络,该系统包括服务器和至少一个区块链群,每个区块链群包括前述的节点设备,服务器用于为节点设备提供智能合约。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在计算机或处理器上运行时,使得计算机或处理器执行第一方面或第一方面的任一可能实现方式中的方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机或处理器上运行时,使得计算机或处理器执行第一方面或第一方面的任一可能实现方式中的方法。
基于提供的数据处理方法、节点设备和系统,应用于去中心化网络中的区块链群,区块链群中的第一节点设备接收数据处理请求,根据数据处理请求执行智能合约得到第一数据处理结果,获取区块链群中除第一节点设备之外的每个节点设备执行智能合约得到的多个第二数据处理结果,并采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果,提高了数据的安全性,提高了数据处理的公平性和可信度。
附图说明
图1是本申请实施例提供的一种应用系统架构示意图;
图2是本申请实施例提供的一种下载或更新智能合约的流程示意图;
图3是本申请实施例提供的一种用户群建立方法的流程示意图;
图4是本申请实施例提供的一种终端显示界面示意图;
图5是本申请实施例提供的一种区块链群建立方法的流程示意图;
图6是本申请实施例提供的一种区块链群建立方法的流程示意图;
图7是本申请实施例提供的一种邀请终端加入用户群的方法流程示意图;
图8a是本申请实施例提供的一种终端显示界面示意图;
图8b是本申请实施例提供的一种终端显示界面示意图;
图8c是本申请实施例提供的一种终端显示界面示意图;
图8d是本申请实施例提供的一种终端显示界面示意图;
图9是本申请实施例提供的一种终端显示界面的示意图;
图10是本申请实施例提供的一种终端显示界面示意图;
图11是本申请实施例提供的一种邀请终端加入用户群方法的流程示意图;
图12是本申请实施例提供的一种邀请终端加入用户群方法的流程示意图;
图13是本申请实施例提供的一种数据处理的方法流程示意图;
图14是本申请实施例提供的一种数据处理方法的流程示意图;
图15是本申请实施例提供的一种数据处理方法的流程示意图;
图16是本申请实施例提供的一种终端显示界面示意图;
图17是本申请实施例提供的一种最终数据处理结果上报的流程示意图;
图18是本申请实施例提供的一种节点设备的结构示意图;
图19是本申请实施例提供的一种节点设备的结构示意图。
具体实施方式
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。也因其通过分布式数据存储、点对点传输、共识机制、加密算法等技术的集成,在传统交易模式中,有效解决了数据在系统内流转过程中的造假行为,从而构建可信交易环境,共建可信社会。
区块链的核心技术包括分布式账本、共识机制、智能合约和密码学等。
分布式账本技术(distributed ledger technology,DLT)本质上是一种可以在多个网络节点或者多个组织构成的网络中进行数据分享、同步和复制的去中心化数据存储技术。相较于传统的分布式存储系统,分布式账本技术具备两种不同的特征:
传统分布式存储系统执行受某一中心节点设备或权威机构的设备控制。而分布式账本技术往往是基于一定的共识规则,采用多方决策、共同维护的方式进行数据的存储、复制等操作。另外,面对互联网数据的爆炸性增长,当前由单一中心组织构建数据管理系统的方式正受到更多的挑战,为了提高信息的安全性,服务方不得不持续追加投资构建大型数据中心,这样不仅带来了计算、网络、存储等各种庞大资源池效率的问题,同时不断推升的系统规模和复杂度也带来了愈加严峻的可靠性问题。而分布式账本技术是去中心化的数据维护策略,恰恰可以有效减少系统臃肿的负担,甚至,在一些应用场景,还可以有效利用互联网中大量零散节点设备所沉淀的庞大资源池。
传统分布式存储系统将系统内的数据分解成若干片段,然后将若干段数据分别存储在分布式系统中的各个节点设备上。而采用分布式账本技术,可以使分布式存储系统中任何一个节点设备都各自拥有独立的、完整的一份数据存储,各节点设备之间彼此互不干涉、权限等同,通过相互之间的周期性或事件驱动的共识达成数据存储的最终一致。
由于传统分布式存储系统中对业务数据的高度中心化管理,在数据可信,网络安全方面的短板已经日益受到人们的关注,普通用户无法确定自己的数据是否被服务提供商窃取或篡改,在受到黑客攻击或产生安全泄露时显得更加无能为力,为了提高数据可信度和网络安全方面的问题,服务提供商不断增加额外的管理机制或技术,这种情况进一步推高了传统分布式存储系统的维护成本、降低了传统分布式存储系统的运行效率。
而分布式账本技术可以在根本上大幅度改善这一现象,由于分布式账本技术是去中心化的分布式存储系统,且各个节点设备均各自维护了一套完整的数据,任一单节点设备或少数节点设备的数据被修改,均无法对系统内大多数节点设备的数据造成影响,换句话讲,无论是服务提供商在无授权情况下的蓄意修改,还是网络黑客的恶意攻击,均需要同时影响到分布式存储系统中的大部分节点设备的数据,才得以实现对已有数据的篡改,否则分布式存储系统中未被恶意修改或恶意攻击的节点设备通过区块链的校验机制将很快发现并追溯到分布式存储系统中的恶意行为,这大大提升了分布式存储系统中数据的可信度和安全性。
共识机制是分布式存储系统中,有数据变化时,解决数据一致性问题的过程。而区块链是一个历史可追溯,不可篡改,解决多方互信问题的分布式(去中心化)存储系统,且必然面临一致性问题,因此通过共识机制解决其一致性问题。
分布式存储系统中各节点设备之间达成共识,需要依赖可靠的共识算法,共识算法通常解决的是分布式存储系统中由哪个节点设备发起提案,以及其他节点设备如何就这个提案达成一致的问题。根据传统分布式存储系统与区块链的分布式存储系统的区别,将共识算法分为可信节点设备的共识算法和不可信节点设备的共识算法。可信节点设备之间的共识算法已经被深入研究,并在现有流行的分布式存储系统中广泛应用,比如Paxos算法,Raft算法及其相应的变种算法。不可信节点设备之间的共识算法虽然也早被研究,但直到近些年区块链技术发展的如火如荼,其相应的共识算法才得到大量应用。根据应用场景的不同,不可信节点设备之间的共识算法分为工作量证明(proof of work,POW)算法、股权证明(proof of stake,POS)算法等为代表的适用于公链的共识算法,以及使用拜占庭容错算法(practical byzantine fault tolerance,PBFT)算法及其变种算法为代表的适用于联盟链或私有链的共识算法。
智能合约(smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追溯且不可逆转,其目的是提供优于传统合同方法的安全,并减少与合同相关的其他交易成本。
智能合约的概念可追溯到20世纪90年代,由计算机科学家、法学家及密码学家尼克·萨博(Nick Szabo)首次提出。他对智能合约的定义如下:“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议”。尼克·萨博等研究学者希望能够借助密码学和其他数学安全机制,将传统合同条款的制定与履行方式置于计算机技术上,以降低相关成本。然而,由于当时许多技术尚未成熟,缺乏能够支持可编程合约的数字化系统和技术,尼克·萨博关于智能合约的工作理论迟迟没有实现。
但随着区块链技术的出现与成熟,智能合约作为区块链及其未来互联网合约的重要研究方向,才得以快速发展。基于区块链的智能合约包括事件处理和保存的机制,以及一个完备的状态机,用于接受和处理各种智能合约,数据的状态处理在合约中完成。事件信息传入智能合约后,触发智能合约进行状态机判断;如果事件信息满足状态机的触发条件,那么由状态机根据预设信息选择合约动作自动执行。因此,智能合约作为一种计算机技术,不仅能够有效地对信息进行处理,而且能够保证合约双方在不必引入第三方权威机构的条件下,强制履行合约,避免了违约行为的出现。
信息安全及密码学技术是整个信息技术的基石,在区块链中,也大量使用了现代信息安全和密码学的技术成果,主要包括但不限于以下几种:哈希算法、对称加密、非对称加密、数字签名、数字证书、同态加密、零知识证明等。
本申请实施例基于区块链技术,并将区块链技术应用于终端上,提供了一种去中心化的用户群,该用户群是区块链群,该区块链群的建立方法,以及在该区块链群基础上实现的一种数据处理的方法,例如,抽奖过程中,抽奖结果的处理方法。
下面结合附图对本申请实施例提供的方案进行描述。
图1是本申请实施例提供的一种应用系统架构示意图,是基于去中心化的用户群的数据处理架构示意图,该数据处理可以以抽奖为例进行说明。如图1所示,该应用系统100包括抽奖业务云,即服务器110,以及至少一个区块链群120,每个区块链群包括至少一个节点设备121。在本申请实施例中,区块链群可以称为用户群。区块链群中的每个节点设备121都是一个终端。终端可以是智能设备,例如手机、平板电脑等设备。
其中,服务器110是应用系统100(如抽奖系统)的服务器,用于将可执行的智能合约分发给所有参与抽奖的节点设备121,并且接收各区块链群120的抽奖结果,进而执行抽奖结果和奖品的公布。
智能合约是一种脚本,可包括以下逻辑:节点设备建立区块链群、节点设备加入区块链群的条件,以及区块链群内数据处理(如抽奖)规则等。
区块链群中每一个节点设备都拥有智能合约,节点设备执行智能合约可实现相应的逻辑,例如创建区块链群,邀请其他节点设备加入区块链群,以及进行数据处理等等。节点设备基于区块链中分布式账本技术记录执行智能合约相关逻辑的过程,以及每个过程产生的数据等信息,并存储在节点设备的本地账本中。
可选地,在一个实施例中,每个节点设备121上可安装有数据处理第三方应用程序(application,APP)。用户通过数据处理APP(例如用户点击(或滑动等操作)数据处理APP中的菜单或者按钮)触发节点设备121与服务器110进行通信。当数据处理时,用户通过数据处理APP触发节点设备121执行智能合约,以实现相应的数据处理,进而得到数据处理结果。
节点设备121与服务器110之间的通信可以包括节点设备121从服务器110下载智能合约。节点设备121从服务器110下载智能合约的具体过程如图2所示,当节点设备121接收到下载或更新智能合约的指令时,节点设备121从服务器110下载智能合约。
节点设备121能接收到下载或更新智能合约指令的情况包括但不限于以下几种:
在一个实施例中,节点设备121接收用户点击数据处理APP中下载或更新智能合约的指令,节点设备121根据指令从服务器110下载指令合约。在一个实施例中,当节点设备121还未安装或下载智能合约时,节点设备121根据指令从服务器110下载智能合约并安装。当节点设备121已经安装或已下载智能合约时,节点设备121查询服务器110的智能仓库中存储的智能合约的版本信息,并与已安装或已下载的智能合约的版本信息进行比较,当智能仓库中存储的智能合约的版本信息高于节点设备121已安装或已下载的智能合约的版本信息时,节点设备121从服务器110下载高版本的智能合约,以更新节点设备121已安装或已下载的智能合约。
在一个实施例中,当节点设备121上的数据处理APP被用户打开或启动时,即节点设备121接收到打开数据处理APP的指令时,节点设备121自动下载或更新智能合约。
除此外,在一个实施例中,节点设备121还可以周期性自动下载或更新智能合约。
需说明的是,在一个实施例中,节点设备121可通过节点设备121中的智能合约的下载和刷新模块实现智能合约的下载或更新。节点设备121下载的智能合约存储在节点设备121的智能合约存储模块中,智能合约存储模块提供智能合约的存储、删除、替换、查询等功能接口。
在应用系统100中,当节点设备121获取到智能合约时,节点设备121可根据用户的需求,用户可自主触发节点设备121创建一个用户群。在节点设备121创建了用户群,或节点设备121已加入到用户群中时,节点设备121可邀请其他终端加入到创建或已加入到的用户群。进而节点设备各自执行智能合约的逻辑实现数据处理(例如抽奖),并得到数据处理结果(如抽奖结果)。需说明的是,数据处理的逻辑可根据需要灵活定义,在本申请实施例中对此不作限定。
然后各个节点设备分别基于共识算法达成共识,确定出最终的数据处理结果(如最终抽奖结果)。之后数据处理结果对应的节点设备,如最终抽奖结果是节点设备A,节点设备A向服务器110发送数据处理结果,并执行器数据处理结果,如执行奖品的派发等。
在一个实施例中,当各个终端通过共识算法得到最终数据处理结果时,可通过任一节点设备向服务器发送最终数据处理结果。
通过用户自主触发节点设备建立区块链群,即去中心化的用户群,进一步邀请其他节点设备加入用户群,进而基于去中心化的用户群发起数据处理,得到数据处理结果,并由最终数据处理结果对应的节点设备将最终数据处理结果发送给服务器,由服务器执行该最终数据处理结果。
以上整个过程都基于区块链的分布式账本技术记录在账本中。每个终端都拥有账本,即实现了用户群内各个节点设备的共享查询,实现了整个过程透明化。
因此,降低了服务运营商泄露用户信息的风险,提高了信息的安全性。同时基于去中心化的用户群,有效利用了联网的大量终端资源,而且也不需要中心服务器,从而降低了服务运营商为提高信息安全而增设额外设备和技术的成本,减少了服务运营商在计算、网络、存储等资源的投资成本。另外,基于去中心化的用户群进行数据处理,保证了数据处理的公平性,提高了数据处理的可信度。
图1描述了用户群的应用场景架构,下面对本申请实施例提供的区块链群建立方法、邀请其他节点设备加入区块链群,以及基于区块链群进行数据处理方法进行描述。
图3是本申请实施例提供的一种建立区块链群的方法流程示意图。该方法的执行主体是节点设备,该节点设备可以是区块链群中任意一个节点设备,例如第一节点设备。需要说明的是,在本申请实施例中,提到的“第一”,“第二”仅仅是为了区分事物,例如节点设备或者条件等信息,并对不事物本身进行限定。
如图3所示,该方法可以包括以下步骤:
S201,第一节点设备接收建立区块链群的请求。
区块链群可称为用户群。
在一个实施例中,节点设备(如终端)安装有数据处理APP,节点设备接收用户通过数据处理APP发起的建立区块链群的请求,其中,用户发起建链请求的过程可以具体是:用户点击数据处理APP操作界面的创建菜单或创建按钮,如图4所示,所述创建菜单或创建按钮用于请求创建去中心化的用户群,该区块链群是图1所示的区块链群。其中,数据处理APP是节点设备已安装的数据处理APP。
S202,当第一节点设备的本地账本中第一节点设备的节点数据满足建立区块链群条件时,第一节点设备根据建立区块链群的请求建立区块链群。
区块链群中的各个节点设备都有本地账本,用于记录自身的节点数据以及区块链群中其他节点设备的节点数据。
在一个实施例中,第一节点设备根据建立区块链群的请求建立区块链群,包括:
S2021,第一节点设备根据建链请求确定第一节点设备是否满足智能合约中建立区块链群条件。
智能合约是第一节点设备预先存储的一种脚本,或者是其他具有创建区块链群逻辑的可执行信息。
第一节点设备执行智能合约,确定第一节点设备是否满足智能合约中的建立区块链群条件,比如智能合约的版本信息与预设版本信息一致,或者第一节点设备最多可以加入区块链群的数量小于预设阈值N。
当第一节点设备满足建立区块链群条件时,终端执行S2021,否则终端执行S2022。
S2022,第一节点设备更新本地账本的节点数据,并生成区块链群建立成功的信息。
账本是基于分布式账本技术记录节点设备执行智能合约相关逻辑过程产生的数据等信息的单元。区块链群中的每个节点设备上都有账本,用于记录自身的节点数据以及区块链群中其他节点设备的节点数据。第一节点设备更新本地账本的节点数据是第一节点更新自身账本的节点数据。
在一个实施例中,当第一节点设备是首次建立区块链群,且仅存在于该创建的区块链群中时,第一节点设备记录创建区块链群整个过程的数据,并更新本地账本中的节点数据,即将第一节点设备加入区块链群的节点数据存储到账本中。
在另一个实施例中,当该第一节点设备在创建区块链群之前,已经是某个区块链群中的节点设备,第一节点设备建立了区块链群之后,更新了第一节点设备的本地账本时,第一节点设备所在区块链群中的其他节点设备也会跟别更新本地账单,以使得区块链群中每个节点设备都保存有相同的数据。
第一节点设备更新本地账本的节点数据,并生成区块链群建立成功的信息,以用于通知用户建立区块链群成功。
可选地,在一个实施例中,第一节点设备更新本地账本的节点数据,但不生成区块链群建立成功的信息,直接建立区块链群。
可选地,在一个实施例中,如图3所示,该方法还可以包括:
S2023,第一节点设备卸载智能合约,并生成区块链群建立失败的信息。
当第一节点设备不满足建立区块链群条件,且第一节点设备不在任何一个区块链群时,第一节点设备卸载智能合约,并生成区块链群建立失败的信息。
在一个实施例中,当第一节点设备不满足建立区块链群条件时,且第一节点设备存在于其他任意一个区块链群时,第一节点设备不卸载智能合约,以用于后续执行数据处理,仅生成区块链群建立失败的信息。
可选地,在一个实施例中,如图3所示,该方法还可以包括:
S203,第一节点设备的显示屏显示提示消息,提示消息包括区块链群建立成功的信息或区块链群群建立失败的信息。
第一节点设备的显示屏显示提示消息,以便于第一节点设备的使用者(或用户)获知区块链群建立成功或失败,从而便于用户做进一步的操作。
在一个实施例中,如图5和图6所示,第一节点设备(如终端)可包括安装的数据处理APP,区块链核心功能模块,以及用于数据处理APP和区块链核心功能模块之间通信的区块链接口模块。
图4所示实施例中,第一节点设备是终端,终端执行S201至S203的过程可具体为:终端接收用户打开数据处理APP的指令,该指令用于数据处理APP通过区块链接口模块请求终端安装智能合约,并发起建立区块链群的请求。此时请求终端安装智能合约包括以下情况:1、终端未下载和安装用于数据处理的智能合约(如用于抽奖的智能合约);2、终端已下载和安装了用于数据处理的智能合约,但为了保证智能合约是最新版本的智能合约,所以此次安装智能合约,以更新智能合约为最新版本的智能合约。
区块链核心功能模块在智能合约运行环境中安装智能合约,并运行智能合约,以判断终端是否满足智能合约中建立区块链群的条件;如果终端满足建立区块链群的条件,那么区块链核心功能模块更新账本的节点数据,并生成区块链群建立成功的信息,进一步,区块链核心功能模块将区块链群建立成功的信息发送给区块链接口模块;区块链接口模块再将区块链群建立成功的信息返回给数据处理APP;数据处理APP的显示界面显示提示消息,提示消息包括区块链群建立成功的信息。
如果终端不满足建立区块链群的条件,那么终端卸载智能合约,区块链的核心功能模块生成区块链群建立失败的信息;区块链核心功能模块将区块链群建立失败的信息返回给数据处理APP,数据处理APP的显示界面显示提示消息,提示消息包括区块链群建立失败的信息。
在一个实施例中,数据处理APP的显示界面显示提示消息的方式可以是弹窗,也或者是其他的方式,在本实施例中对此不作限定。
本申请实施例还提供了一种邀请节点设备加入区块链群的方法,该方法的执行主体是区块链群中任一节点设备,比如第一节点设备,第一节点设备邀请第二节点设备加入区块链群。在一个实施例中,第一节点设备向第二节点设备发送邀请加入请求。该邀请加入请求用于第二节点设备确定第二节点设备的本地账本中的第二节点设备的节点数据是否满足加入区块链群条件。当第二节点设备的节点数据满足加入区块链群条件时,第二节点设备向第一节点设备发送加入区块链群成功的信息,此时,第二节点设备加入区块链群。
可选地,在一个实施例中,第一节点设备邀请第二节点设备加入区块链群的具体过程如图7所示,在该实施例中,第一节点设备和第二节点设备均是终端,第一节点设备是第一终端,第二节点设备是第二终端。该方法可以包括以下步骤:
S301,第一终端接收加入请求,该加入请求用于预请求终端加入区块链群。
在一个实施例中,在数据处理APP打开的情况下,如图8a所示,第一终端接收用户点击数据处理APP操作界面上的邀请加入的按钮所下发的加入请求,以预邀请其他终端(如第二终端)加入,此时数据处理APP的操作界面示意图如图8b所示,显示搜索栏、面对面扫描、碰一碰,等等加入区块链群的方式。其中,搜索栏用于第一终端的使用者(或用户)在其中输入所要邀请的第二终端的标识,如用户名:qwe123,以便搜索第二终端并邀请第二终端加入区块链群。
S302,第一终端接收邀请加入请求,并向第二终端发送该邀请加入请求,该邀请加入请求用于邀请第二终端加入区块链群。
S301与S302的区别在于,S301是第一终端先接收用户输入的加入请求,以准备邀请其他终端加入第一终端所在的区块链群。S302是第一终端接收到加入请求之后,用户通过图8(b)所示任一方式发起邀请加入请求,即第一终端接收用户输入的邀请加入请求。
在一个实施例中,如图8c所示,用户在搜索栏目中输入被邀请的第二终端的标识,并点击搜索按钮,当第一终端接收到用户点击搜索指令时,第一终端根据标识搜索第二终端,并在操作界面上显示搜索到的第二终端qwe123,如图8d所示,用户点击所搜到的第二终端qwe123,即第一终端接收到邀请第二终端加入区块链群的指令,以邀请该第二终端加入区块链群。
在一个实施例中,第一终端还可以通过面对面扫描,或者碰一碰等方式实现第一终端邀请第二终端加入区块链群。
S303,第二终端接收邀请加入请求,并在第二终端的数据处理APP的操作界面显示邀请加入请求对应的信息。
可选地,当第二终端接收到第一终端发送的邀请加入请求时,第二终端的数据处理APP的操作界面上显示邀请加入请求对应的信息,以便于第二终端的使用者(或用户)确认该邀请加入请求。
在一个实施例中,在第二终端的数据处理APP操作界面上显示的邀请加入请求对应的信息可以是一个弹窗,具体可如图9所示。在图9中,弹窗包括接受按钮和拒接按钮,接受按钮用于表示接受加入区块链群;拒绝按钮用于表示拒绝加入区块链群。
S304,第二终端接收用户输入的接受加入区块链群的请求,并向第一终端发送第一响应消息,第一响应消息包括第二终端接受加入区块链群的信息。
在一个实施例中,如图9所示,当用户点击第二终端的数据处理APP操作界面上的接受按钮时,即第二终端接受用户输入的接收加入区块链群的请求,第二终端向第一终端发送第一响应消息,第一响应消息包括第二终端接受加入区块链群的信息,以通知第一终端同意加入区块链群。
S305,第二终端与第一终端建立连接,并确定第二终端是否满足加入区块链群的条件。
当第二终端与第一终端建立连接时,第二终端执行智能合约,以确定第二终端是否满足智能合约中加入区块链群的条件。智能合约中加入区块链群的条件可以包括:如终端最多可加入N个区块链群,其中,N可根据需求自定义,在本申请实施例中对此不作限定。
当第二终端满足加入区块链群的条件时,执行S306,否则执行S308。
在一个实施例中,在第二终端设备执行智能合约之前,该方法还可以包括:第二终端检验智能版本信息,以确定第二终端下载和安装的智能合约的版本信息是符合该数据处理的智能合约的版本信息,如第二终端下载和安装的智能合约的版本信息是否是智能合约的最高版本信息。
在一个实施例中,当第二终端检验已安装的智能合约的版本信息符合数据处理的智能合约的版本信息时,第二终端加载智能合约,并进一步执行智能合约,以确定第二终端是否满足加入区块链群的条件。
在一个实施例中,当第二终端检验已安装的智能合约的版本信息不符合数据处理的智能合约的版本信息时,执行S308。
S306,第二终端更新本地账本的节点数据,并向第一终端发送加入区块链群成功的信息。
第二终端更新本地账本的节点数据,集将第二终端加入区块链群的信息存储在本地账本中,并向第一终端发送加入区块链群成功的信息。
S307,第一终端通知区块链群中的其他终端分别更新账本的节点数据。
当第一终端接收到第二终端发送的加入区块链群成功的信息时,通知第一终端所在区块链群内其他的终端各自更新本地账本的节点数据,以使得区块链群中各个终端都拥有相同的数据。
S308,第二终端向第一终端发送加入区块链群失败的信息。
在S305中,当第二终端检验已安装的智能合约的版本信息不符合数据处理的智能合约的版本信息,或第二终端不满足加入区块链群的条件时,第二终端向第一终端发送加入区块链群失败的信息。
可选地,在一个实施例中,该方法还可以包括:
S309,第一终端的显示屏显示提示消息。
如图10所示,所述提示消息包括加入区块链群成功的信息或加入区块链群失败的信息,以向用户展示是否第二终端是否成功加入区块链群。
在一个实施例中,如图11和图12所示,第一终端(如终端A)包括已安装的数据处理APP 1,区块链核心功能模块1,以及用于数据处理APP 1和区块链核心功能模块1之间通信的区块链接口模块1;第二终端(如终端B)包括已安装的数据处理APP 2,区块链核心功能模块2,以及用于数据处理APP 2和区块链核心功能模块2之间通信的区块链接口模块2。其中,区块链核心功能模块1和区块链核心功能模块2分别包括智能合约运行环境、账本和P2P网络通信单元,P2P网络通信单元是用于实现区块链核心技术中P2P网络的功能单元。
图7所示实施例中,第一终端和第二终端执行S301至S309的过程可以具体是:如图11和图12所示,在终端A的数据处理APP 1打开的情况下,数据处理APP 1接收用户点击操作界面上的邀请加入的按钮所下发的加入请求,如图8a所示,以预邀请其他终端(如终端B)加入区块链群。用户点击数据处理APP 1操作界面的邀请加入的按钮之后,操作界面切换为图8b所示的操作界面。用户通过自主选择图8b所示操作界面中的任一方式发起邀请加入请求,在一个实施例中,如图8c所示,用户选择通过搜索终端标识发起邀请加入请求,即用户在搜索栏中输入终端B的标识qwe123,并点击搜索按钮,搜索终端B;当搜索到终端B时,操作界面可切换为图8d所示的操作界面。用户点击所搜索到的终端B发起邀请终端B加入区块链群,即数据处理APP接收邀请终端B加入区块链群的请求。
这里需要说明,终端A可采用任何一种方式发起邀请其他终端加入区块链群的请求,比如,摇一摇,面对面扫码等方式。
当终端B的数据处理APP 2接收到数据处理APP 1发送的邀请加入请求时,数据处理APP 2的操作界面显示邀请加入请求对应的信息,如图9所示,以便于终端B的使用者(或用户)确定是否接受其邀请。当用户在数据处理APP 2的操作界面选择接受按钮时,向数据处理APP 1返回第一响应消息,以通知数据处理APP 1数据处理APP 2接受了该加入区块链群的邀请。
当数据处理APP 1接收到第一响应消息时,通过区块链接口模块1向区块链核心功能模块1发送加入区块链群的操作请求,即数据处理APP 1将加入区块链群的操作请求发送给区块链接口1,区块链接口1再将区块链群的操作请求发送给区块链核心功能模块1。区块链核心功能模块1与区块链核心功能模块2通过P2P网络通信单元建立连接,并邀请加入区块链群。
终端A和终端B建立连接后,终端B的区块链核心功能模块2校验智能合约的版本信息;当终端B已安装的智能合约的版本信息符合数据处理的智能合约的版本信息时,区块链核心功能模块2加载智能合约,并在智能合约运行环境中运行智能合约,即执行智能合约,判断终端B是否满足加入区块链群的条件;如果终端B满足加入区块链群的条件时,进入加入区块链群操作:区块链核心功能模块2同步账本的节点数据,并将终端B的信息加入到账本的节点数据中,并向区块链核心功能模块1返回加入区块链群成功的信息。
当终端B已安装的智能合约的版本信息不符合数据处理的智能合约的版本信息,或终端B不满足加入区块链群的条件时,区块链核心功能模块2向区块链核心功能模块1返回加入区块链群失败的信息。
当区块链核心功能模块1接收到区块链核心功能模块2返回的加入区块链群成功的信息时,区块链核心功能模块1通知终端A所在区块链群内的其他终端各自更新本地账本的节点数据。
进一步,区块链核心功能模块1将加入区块链群成功的信息或加入区块链群失败的信息发送给区块链接口模块1,区块链接口模块1再将加入区块链群成功的信息或加入区块链群失败的信息发送给数据处理APP 1。在一个实施例中,数据处理APP 1的操作界面上显示加入区块链群成功的信息或加入区块链群失败的信息,以向用户展示终端B是否已成功加入区块链群。
图3、图5和图6描述了节点设备如何建立区块链群,图7、图11和图12描述了节点设备如何邀请节点设备加入区块链群。下面结合附图13、附图14和附图15对本申请实施例提供的数据处理方法进行描述。
图13是本申请实施例提供的一种数据处理的方法。该方法由图1所示区块链群中的任一节点设备执行,比如由区块链群中的第一节点设备执行,如图13所示,该方法可以包括以下步骤:
S401,第一节点设备接收数据处理请求。
在一个实施例中,在第一节点设备的数据处理APP被打开的情况下,第一节点设备接收用户通过数据处理APP发起的数据处理请求,例如,用户点击数据处理APP操作界面上的数据处理菜单或按钮发起数据处理请求。
S402,第一节点数据根据数据处理请求执行智能合约得到第一数据处理结果。
当第一节点设备接收到数据处理请求时,第一节点设备执行智能合约确定第一节点设备的本地账本中满足智能合约中第一预设条件的节点数据为第一数据处理结果,例如第一节点设备存储的节点数据包括区块链群中各个节点设备的标识,标识用数字表示,如11、12、13、14、25、36、47、58、69等等;第一预设条件可以是选择标识中有数字9的节点设备;第一节点设备执行智能合约确定满足标识中有数字9的节点设备,确定出的第一数据结果是标识为69的节点设备。
第一节点设备得到第一数据处理结果后,第一节点设备更新本地账本,存储第一数据处理结果,并分别向区块链群中除第一节点设备之外的每个节点设备发送第一数据处理结果,以使得区块链群中的每个节点设备都拥有相同的数据。
S403,第一节点设备获取区块链群中除第一节点设备之外的每个节点设备执行智能合约得到的多个第二数据处理结果。
在一个实施例中,第一节点设备分别获取区块链群中除第一节点设备之外的其他节点设备的第二数据处理结果,其中,其他节点设备得到第二数据处理结果的方式与S402中第一节点设备执行智能合约得到第一数据的方式相同,为简洁描述,在此不再赘述。
需要说明的是,在同一区块链群中,每个节点设备拥有的数据是相同的,当各个节点设备执行智能合约后得到的数据处理结果应该是相同的,即第一数据处理结果和多个第二数据处理结果应该是相同的,如果在各个节点设备执行智能合约得到第一数据处理结果和多个第二数据处理结果后,有少部分节点设备的数据处理结果被恶意修改或黑客攻击造成数据被篡改时,那么,第一数据处理结果和第二数据处理结果不完全相同,因此第一节点设备或者区块链群中的各个节点设备分别获取到的第一数据结果和多个第二数据结果的数据处理结果也不完全相同。
S404,第一节点设备采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果。
第一节点设备采用共识算法确定第一数据处理结果和多个第二数据结果中满足第二预设条件的数据处理结果为第三数据处理结果。
例如:区块链群中有100个节点设备,第一节点设备有100个数据处理结果(包括1个第一数据处理结果和99个第二数据处理结果);当第二预设条件是数据处理结果中相同的数据处理结果的数量占总数据处理结果数量的比值达到1/2时,第一节点设备采用共识算法确定100个数据处理结果中满足1/2的相同数据结果,比如,有88个相同的数据处理结果69,另外12个数据处理结果可以相同或者不同,那么第一节点设备确定标识为69的节点设备为第三数据处理结果。
需说明的是,区块链中各个节点设备拥有相同的共识算法和第二预设条件。在第一节点设备采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果时,区块链中的其他各个节点设备也可以同时采用共识算法从第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果,即区块链群中的各个节点设备通过区块链的共识机制使各个节点设备达成共识得到第三数据处理结果,以使得区块链群中各个节点设备得到第三数据处理结果,实现了数据处理过程的透明化,提高了数据处理的公正性。
可选地,在一个实施例中,第一节点设备为终端,在第一节点设备采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第二数据处理结果之后,该方法还包括:
S405,第一节点设备的显示屏显示提示消息。
所述提示消息包括第三数据处理结果,以向第一节点设备的使用者(又称为用户)展示第三数据处理结果。
基于区块链技术进行数据处理,提高了数据的可靠性,同时保证了数据处理结果的公正性。
可选地,在一个实施例中,在第一节点设备采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果之后,该方法还可以包括:
S406,第一节点设备向服务器发送第三数据处理结果。
在一个实施例中,第一节点设备采用共识算法得到第三数据处理结果时,向服务器发送第三数据处理结果,以便于服务器根据第三数据处理结果进行下一步的操作,例如,数据处理过程是抽奖过程,第三数据处理结果是中奖结果,第一节点设备将抽奖结果发送给服务器,以便于服务器根据抽奖结果进行奖品发放等操作。
在一个实施例中,区块链群中的第一节点设备或者其他节点设备采用共识算法达成共识得到第三数据处理结果时,可由第三数据处理结果对应的节点设备向服务器发送第三数据处理结果。比如第三数据处理结果为标识为69的节点设备,如果第一节点设备的标识是69,那么由第一节点设备向服务器发送第三数据处理结果。
采用区块链群,区块链群中的节点设备为去中心化的节点设备,区块链群中第一节点设备都拥有区块链群中所有节点设备的节点数据,同理,区块链群中的每一个节点设备都分别拥有区块链群中所有节点设备的节点数据,在数据处理过程中,第一节点设备的数据处理结果都是透明化的,而且,在第三数据处理结果的处理过程中,即使区块链群中的少部分节点设备的节点数据被篡改或者受到黑客攻击,第一节点设备通过共识算法对节点数据进行处理也会得到正确安全的数据处理结果,提高了节点设备数据处理过程中数据的安全性,数据处理的公平性和可信度。
可选地,在一个实施例中,区块链群中的各个节点设备均可以是终端,如图14和图15所示,终端可以包括安装的数据处理APP,区块链核心功能模块,以及用于数据处理APP和区块链核心功能模块之间通信的区块链接口模块。区块链核心功能模块包括智能合约运行环境、账本、P2P网络通信单元以及用于计算第三数据处理结果的共识算法。
在一个实施例中,图13所示实施例中,第一节点设备执行S401至S406的过程可以具体是:如图14和图15所示,用户点击数据处理APP操作界面上的数据处理菜单或按钮,以发起数据处理请求,如图16所示。当数据处理APP接收到用户发起的数据处理请求时,数据处理APP通过区块链接口模块向区块链核心功能模块发送数据处理请求;区块链核心功能模块根据智能合约中数据处理的逻辑在智能合约运行环境中执行智能合约,以对数据进行处理得到数据处理结果;区块链核心功能模块将数据处理结果记录在本地账本中,并通过P2P网络通信单元通知区块链群中的其他终端分别更新账本,以使得区块链群中的每个终端都拥有一套完整的数据,这里的一套完整的数据是指区块链群中所有终端的数据处理结果;区块链核心功能模块更新账本,同样也获取区块链群中其他终端的数据处理结果。之后,区块链核心功能功能模块基于共识算法与区块链群中其他终端达成共识得到最终的数据处理结果(又称为第三数据处理结果);区块链核心功能模块通过区块链接口模块将最终的数据处理结果发送给数据处理APP;数据处理APP在操作界面上显示最终的数据处理结果。
在这里需再次说明,区块链群中每个终端的数据处理过程和最终处理结果都会存储在区块链群的所有终端上,即区块链群中的每个终端都存储了区块链群中所有终端的数据处理结果和最终处理结果。
可选地,数据处理APP接收到最终数据处理结果时,数据处理APP将最终的数据处理结果发送给服务器,便于服务器进行下一步的操作。如图17所示,例如数据处理APP是用于抽奖的数据处理APP,服务器是用于抽奖业务的服务器。在一个实施例中,终端的数据处理结果上报模块将最终数据处理结果,即抽奖结果发送给抽奖业务服务器,以使得服务器进一步执行抽奖结果,比如派发奖品等。
图3至图12,终端基于区块链技术,实现了去中心化的区块链群,构建了图1所示的数据处理系统;图13至图15基于去中心化的用户区块链群实现了数据处理。相比传统基于中心服务器的用户群,存在以下优点:降低了计算、网络、存储等资源的投资成本;提高了用户信息的安全性,即降低了中心服务器泄露终端信息的风险;提高了数据处理的公平性和可信度,即降低了数据处理服务方对数据处理结果作弊的可能。
本申请实施例提供了一种节点设备、该节点设备为第一节点设备,第一节点设备是去中心化网络中区块链群中的节点设备,如图18所示,该第一节点设备包括接收单元510,执行单元520、获取单元530、确定单元540和存储单元550,存储单元550存储有智能合约;
接收单元510,用于接收数据处理请求;
执行单元520,用于根据数据处理请求,从存储单元调用并执行智能合约得到第一数据处理结果;
获取单元530,还用于获取区块链群中除第一节点设备之外的每个节点设备执行智能合约得到的多个第二数据处理结果;
确定单元540,还用于采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果。
采用区块链技术,节点设备进行数据处理提高了数据的安全性,提高了数据处理的公平性和可信度。
在一个实施例中,执行单元520具体用于执行智能合约确定满足智能合约中第一预设条件的本地账本中的节点数据为第一数据处理结果,其中,本地账本中的节点数据包括区块链群中所有节点设备的节点数据。
在一个实施例中,确定单元540具体用于采用共识算法确定第一数据处理结果和多个第二数据处理结果中满足第二预设条件的数据处理结果为第三数据处理结果。
在一个实施例中,第一节点设备还包括发送单元560,用于分别向区块链中除第一节点设备之外的每个节点设备发送第一数据处理结果。
在一个实施例中发送单元560,用于向服务单元发送第三数据处理结果。
在一个实施例中,第一节点设备包括显示单元570,显示屏用于显示提示消息,提示消息包括第三数据处理结果。
可选地,在一个实施例中,第一节点设备还包括建立区块链单元580,还用于建立区块链群。
在一个实施例中,接收单元510接收建立区块链群的请求;
建立区块链单元580用于,当第一节点设备的本地账本中的第一节点设备的节点数据满足建立区块链群条件时,根据建立区块链群的请求建立区块链群。
在一个实施例中,建立区块链群条件包括智能合约的版本信息与预设版本信息一致,或者第一节点设备所在区块链群的数量小于预设阈值。
在一个实施例中,第一节点设备还包括下载单元590用于从服务单元下载或更新智能合约。
在一个实施例中,获取单元530获取服务单元上智能合约的版本信息;当服务单元上智能合约的版本信息高于第一节点设备上智能合约的版本信息时,下载单元590从服务单元下载并更新智能合约。
在一个实施例中,发送单元560,用于邀请第二节点设备加入区块链群。
在一个实施例中,发送单元560用于向第二节点设备发送邀请加入请求,邀请加入请求用于第二节点设备确定第二节点设备的本地账本中的第二节点设备的节点数据满足加入区块链群条件,第二节点设备的本地账本包括区块链群中所有节点设备的节点数据;
接收单元510接收第二节点设备发送的加入用户群成功的信息。
在一个实施例中,发送单元560,用于分别向区块链中除第一节点设备和第二节点设备之外的节点设备发送通知消息,通知消息用于除第一节点设备和第二节点设备之外的节点设备获取第二节点设备的节点数据。
该第一节点设备中的各功能单元的功能,可以通过图3至图17所示实施例中的第一节点设备或终端所执行的各步骤来实现,并达到其相应的技术效果,因此,本发明实施例提供的第一节点设备的具体工作过程,在此不复赘述。
本申请实施例提供了一种节点设备、该节点设备为第一节点设备,第一节点设备是去中心化网络中区块链群中的节点设备,如图19所示,第一节点设备包括收发器610,处理器620和存储器630,存储器630存储有智能合约和程序代码,当程序代码被处理器运行时,使第一节点设备执行如下步骤:
接收数据处理请求;根据数据处理请求,从存储器调用并执行智能合约得到第一数据处理结果;获取区块链群中除第一节点设备之外的每个节点设备执行智能合约得到的多个第二数据处理结果;采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果。
采用区块链技术,区块链群中的节点设备为去中心化的节点设备,区块链群中第一节点设备都拥有区块链群中所有节点设备的节点数据,同理,区块链群中的每一个节点设备都分别拥有区块链群中所有节点设备的节点数据,在数据处理过程中,第一节点设备的数据处理结果都是透明化的,而且,在第三数据处理结果的处理过程中,即使区块链群中的少部分节点设备的节点数据被篡改或者受到黑客攻击,第一节点设备通过共识算法对节点数据进行处理也会得到正确安全的数据处理结果,提高了节点设备数据处理过程中数据的安全性,数据处理的公平性和可信度。
在一个实施例中,程序代码使第一节点设备根据数据处理请求执行智能合约得到第一数据处理结果具体为:第一节点设备执行智能合约确定满足智能合约中第一预设条件的本地账本中的节点数据为第一数据处理结果,其中,本地账本中的节点数据包括区块链群中所有节点设备的节点数据。
在一个实施例中,程序代码使第一节点设备采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果具体为:第一节点设备采用共识算法确定第一数据处理结果和多个第二数据处理结果中满足第二预设条件的数据处理结果为第三数据处理结果。
在一个实施例中,程序代码当被处理器运行时,还使第一节点设备执行如下步骤:分别向区块链中除第一节点设备之外的每个节点设备发送第一数据处理结果。
在一个实施例中,在第一节点设备采用共识算法在第一数据处理结果和多个第二数据处理结果中确定第三数据处理结果之后,程序代码还使第一节点设备向服务器发送第三数据处理结果。
在一个实施例中,第一节点设备还包括显示屏640,程序代码使显示屏显示提示消息,提示消息包括第三数据处理结果。
可选地,在一个实施例中,在第一节点设备接收数据处理请求之前,程序代码使第一节点设备建立区块链群。
在一个实施例中,智能合约包括建立区块链群条件;程序代码使第一节点设备建立区块链群具体为:所述第一节点设备接收建立区块链群的请求;当第一节点设备的本地账本中的第一节点设备的节点数据满足建立区块链群条件时,根据建立区块链群的请求建立区块链群。
在一个实施例中,建立区块链群条件包括智能合约的版本信息与预设版本信息一致,或者第一节点设备所在区块链群的数量小于预设阈值。
在一个实施例中,在第一节点设备根据建立区块链群的请求建立区块链群之前,程序代码使第一节点设备从服务器下载或更新智能合约。
在一个实施例中,程序代码使第一节点设备更新智能合约具体为:第一节点设备获取服务器上智能合约的版本信息;当服务器上智能合约的版本信息高于第一节点设备上智能合约的版本信息时,从服务器下载并更新智能合约。
可选地,在一个实施例中,在第一节点设备接收数据处理请求之前,程序代码使第一节点设备邀请第二节点设备加入区块链群。
在一个实施例中,程序代码使第一节点设备邀请第二节点设备加入区块链群具体为:第一节点设备向第二节点设备发送邀请加入请求,邀请加入请求用于第二节点设备确定第二节点设备的本地账本中的第二节点设备的节点数据满足加入区块链群条件,第二节点设备的本地账本包括区块链群中所有节点设备的节点数据,并接收第二节点设备发送的加入用户群成功的信息。
在一个实施例中,程序代码还使第一节点设备分别向区块链中除第一节点设备和第二节点设备之外的节点设备发送通知消息,通知消息用于除第一节点设备和第二节点设备之外的节点设备获取第二节点设备的节点数据。
该第一节点设备中的各功能器件的功能,可以通过图3至图17所示实施例中的第一节点设备或终端所执行的各步骤来实现,并达到其相应的技术效果,因此,本发明实施例提供的第一节点设备的具体工作过程,在此不复赘述。
本申请实施例提供了一种系统,该系统如图1所示,该系统应用于去中心化网络,该系统包括服务器和至少一个区块链群,每个区块链群包括至少一个节点设备,该节点设备具有执行图3至图17所示实施例中的第一节点设备或终端所执行的各步骤,服务器用于为节点设备提供智能合约。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在计算机或处理器上运行时,使得计算机或处理器执行图3至图17中第一节点设备或终端所执行的方法。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机或处理器上运行时,使得计算机或处理器执行图3至图17中第一节点设备或终端所执行的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、节点设备和方法,可以通过其它的方式实现。例如,以上所描述的节点设备实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例该方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (27)
1.一种数据处理方法,其特征在于,所述方法应用于去中心化网络中的区块链群,所述方法包括:
所述区块链群中的第一节点设备接收数据处理请求;
所述第一节点设备根据所述数据处理请求执行智能合约得到第一数据处理结果,所述第一数据结果为所述第一节点设备的本地账本中满足所述智能合约中第一预设条件的节点数据;
所述第一节点设备获取所述区块链群中除所述第一节点设备之外的每个节点设备执行所述智能合约得到的多个第二数据处理结果,所述多个第二数据结果为除所述第一节点设备之外的每个节点设备的本地账本中满足所述智能合约中第一预设条件的节点数据;
所述第一节点设备采用共识算法在所述第一数据处理结果和所述多个第二数据处理结果中确定第三数据处理结果,所述第三数据处理结果为所述第一节点设备采用共识算法确定所述第一数据处理结果和所述多个第二数据处理结果中满足第二预设条件的数据处理结果。
2.根据权利要求1所述的方法,其特征在于,所述第一节点设备根据所述数据处理请求执行智能合约得到第一数据处理结果,包括:
所述第一节点设备执行所述智能合约,确定所述第一节点设备中的本地账本中满足所述智能合约中第一预设条件的节点数据为所述第一数据处理结果,其中,所述本地账本中的节点数据包括所述区块链群中所有节点设备的节点数据。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一节点设备分别向所述区块链群中除所述第一节点设备之外的每个节点设备发送所述第一数据处理结果。
4.根据权利要求1至3任一项所述的方法,其特征在于,在所述第一节点设备采用共识算法在所述第一数据处理结果和所述多个第二数据处理结果中确定第三数据处理结果之后,所述方法还包括:
所述第一节点设备向服务器发送所述第三数据处理结果。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述第一节点设备包括显示屏,在所述第一节点设备采用共识算法在所述第一数据处理结果和所述多个第二数据处理结果中确定第三数据处理结果之后,所述方法还包括:
所述第一节点设备的显示屏显示提示消息,所述提示消息包括所述第三数据处理结果。
6.根据权利要求1至3任一项所述的方法,其特征在于,在所述第一节点设备接收数据处理请求之前,所述方法还包括:
所述第一节点设备建立所述区块链群。
7.根据权利要求6所述的方法,其特征在于,所述智能合约包括建立区块链群条件;所述第一节点设备建立所述区块链群,包括:
所述第一节点设备接收建立区块链群的请求;
当所述第一节点设备的本地账本中所述第一节点设备的节点数据满足所述建立区块链群条件时,所述第一节点设备根据所述建立区块链群的请求建立所述区块链群。
8.根据权利要求7所述的方法,其特征在于,所述建立区块链群条件包括智能合约的版本信息与预设版本信息一致,或者所述第一节点设备所在区块链群的数量小于预设阈值。
9.根据权利要求6所述的方法,其特征在于,在所述第一节点设备根据所述建立区块链群的请求建立所述区块链群之前,所述方法还包括:
所述第一节点设备从服务器下载或更新智能合约。
10.根据权利要求9所述的方法,其特征在于,所述第一节点设备更新智能合约,包括:
所述第一节点设备获取服务器上智能合约的版本信息;
当所述服务器上智能合约的版本信息高于所述第一节点设备上智能合约的版本信息时,所述第一节点设备从所述服务器下载并更新智能合约。
11.根据权利要求1至3任一项所述的方法,其特征在于,在所述第一节点设备接收数据处理请求之前,所述方法还包括:
所述第一节点设备邀请第二节点设备加入所述区块链群。
12.根据权利要求11所述的方法,其特征在于,所述第一节点设备邀请所述第二节点设备加入所述区块链群,包括:
所述第一节点设备向所述第二节点设备发送邀请加入请求,所述邀请加入请求用于所述第二节点设备确定所述第二节点设备的本地账本中的第二节点设备的节点数据满足加入区块链群条件,所述第二节点设备的本地账本包括所述区块链群中所有节点设备的节点数据;
所述第一节点设备接收所述第二节点设备发送的加入用户群成功的信息。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述第一节点设备分别向所述区块链中除所述第一节点设备和所述第二节点设备之外的节点设备发送通知消息,所述通知消息用于除所述第一节点设备和所述第二节点设备之外的节点设备获取所述第二节点设备的节点数据。
14.一种节点设备,其特征在于,所述节点设备为第一节点设备,所述第一节点设备是去中心化网络中区块链群中的节点设备,所述第一节点设备包括收发器,处理器和存储器,所述存储器存储有程序代码,所述程序代码当被所述处理器运行时,使所述第一节点设备执行如下步骤:
接收数据处理请求;
根据所述数据处理请求,从所述存储器调用并执行智能合约得到第一数据处理结果,所述第一数据结果为所述第一节点设备的本地账本中满足所述智能合约中第一预设条件的节点数据;
获取所述区块链群中除所述第一节点设备之外的每个节点设备执行所述智能合约得到的多个第二数据处理结果,所述多个第二数据结果为除所述第一节点设备之外的每个节点设备的本地账本中满足所述智能合约中第一预设条件的节点数据;
采用共识算法在所述第一数据处理结果和所述多个第二数据处理结果中确定第三数据处理结果,所述第三数据处理结果为所述第一节点设备采用共识算法确定所述第一数据处理结果和所述多个第二数据处理结果中满足第二预设条件的数据处理结果。
15.根据权利要求14所述的节点设备,其特征在于,所述程序代码使所述第一节点设备根据所述数据处理请求执行智能合约得到第一数据处理结果具体为:所述第一节点设备执行所述智能合约,确定满足所述智能合约中第一预设条件的本地账本中的节点数据为所述第一数据处理结果,其中,所述本地账本中的节点数据包括所述区块链群中所有节点设备的节点数据。
16.根据权利要求14所述的节点设备,其特征在于,所述程序代码当被所述处理器运行时,还使所述第一节点设备执行如下步骤:分别向所述区块链中除所述第一节点设备之外的每个节点设备发送所述第一数据处理结果。
17.根据权利要求14至16任一项所述的节点设备,其特征在于,在所述第一节点设备采用共识算法在所述第一数据处理结果和所述多个第二数据处理结果中确定第三数据处理结果之后,所述程序代码还使所述第一节点设备向服务器发送所述第三数据处理结果。
18.根据权利要求14至16任一项所述的节点设备,其特征在于,所述第一节点设备包括显示屏,所述程序代码使所述显示屏显示提示消息,所述提示消息包括所述第三数据处理结果。
19.根据权利要求14至16任一项所述的节点设备,其特征在于,在所述第一节点设备接收数据处理请求之前,所述程序代码使所述第一节点设备建立所述区块链群。
20.根据权利要求19所述的节点设备,其特征在于,所述智能合约包括建立区块链群条件;所述程序代码使所述第一节点设备建立所述区块链群具体为:
所述第一节点设备接收建立区块链群的请求;
当所述第一节点设备的本地账本中的所述第一节点设备的节点数据满足所述建立区块链群条件时,根据所述建立区块链群的请求建立所述区块链群。
21.根据权利要求20所述的节点设备,其特征在于,所述建立区块链群条件包括智能合约的版本信息与预设版本信息一致,或者所述第一节点设备所在区块链群的数量小于预设阈值。
22.根据权利要求19所述的节点设备,其特征在于,在所述第一节点设备根据所述建立区块链群的请求建立所述区块链群之前,所述程序代码使所述第一节点设备从服务器下载或更新智能合约。
23.根据权利要求22所述的节点设备,其特征在于,所述程序代码使所述第一节点设备更新智能合约具体为:所述第一节点设备获取所述服务器上智能合约的版本信息;当所述服务器上智能合约的版本信息高于所述第一节点设备上智能合约的版本信息时,从所述服务器下载并更新智能合约。
24.根据权利要求14至16任一项所述的节点设备,其特征在于,在所述第一节点设备接收数据处理请求之前,所述程序代码使所述第一节点设备邀请第二节点设备加入所述区块链群。
25.根据权利要求24所述的节点设备,其特征在于,所述程序代码使所述第一节点设备邀请所述第二节点设备加入所述区块链群具体为:所述第一节点设备向第二节点设备发送邀请加入请求,所述邀请加入请求用于所述第二节点设备确定所述第二节点设备的本地账本中的第二节点设备的节点数据满足加入区块链群条件,所述第二节点设备的本地账本包括所述区块链群中所有节点设备的节点数据,并接收所述第二节点设备发送的加入用户群成功的信息。
26.根据权利要求25所述的节点设备,其特征在于,所述程序代码还使所述第一节点设备分别向所述区块链中除所述第一节点设备和所述第二节点设备之外的节点设备发送通知消息,所述通知消息用于除所述第一节点设备和所述第二节点设备之外的节点设备获取所述第二节点设备的节点数据。
27.一种系统,其特征在于,所述系统应用于去中心化网络,所述系统包括服务器和至少一个区块链群,每个区块链群包括至少一个权利要求14至权利要求26任一项所述的节点设备,所述服务器用于为所述节点设备提供智能合约。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811297303 | 2018-11-01 | ||
CN2018112973039 | 2018-11-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110175178A CN110175178A (zh) | 2019-08-27 |
CN110175178B true CN110175178B (zh) | 2022-06-07 |
Family
ID=67689709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910294361.4A Active CN110175178B (zh) | 2018-11-01 | 2019-04-12 | 一种数据处理的方法、节点设备和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110175178B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110598462B (zh) * | 2019-09-29 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 数据公示方法、装置、系统、电子设备及存储介质 |
CN110798529B (zh) * | 2019-11-06 | 2022-05-13 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、区块链节点设备以及计算机存储介质 |
CN111935251B (zh) * | 2020-07-28 | 2021-11-05 | 成都质数斯达克科技有限公司 | 区块链网络管理方法、网络、装置、设备及存储介质 |
CN113301129B (zh) * | 2021-05-11 | 2023-04-28 | 郑州阿帕斯数云信息科技有限公司 | 一种数据传输方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107079059A (zh) * | 2016-12-21 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 区块链存储方法、装置及节点设备 |
CN107332876A (zh) * | 2017-05-31 | 2017-11-07 | 深圳前海微众银行股份有限公司 | 区块链状态的同步方法及装置 |
CN107451485A (zh) * | 2017-06-02 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
CN107844704A (zh) * | 2017-11-01 | 2018-03-27 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链可信智能合约加固方法 |
CN108599969A (zh) * | 2018-05-02 | 2018-09-28 | 北京链链信息技术有限公司 | 一种区块链中数据共享的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10360191B2 (en) * | 2016-10-07 | 2019-07-23 | International Business Machines Corporation | Establishing overlay trust consensus for blockchain trust validation system |
-
2019
- 2019-04-12 CN CN201910294361.4A patent/CN110175178B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107079059A (zh) * | 2016-12-21 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 区块链存储方法、装置及节点设备 |
CN107332876A (zh) * | 2017-05-31 | 2017-11-07 | 深圳前海微众银行股份有限公司 | 区块链状态的同步方法及装置 |
CN107451485A (zh) * | 2017-06-02 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种基于区块链的数据处理方法及设备 |
CN107844704A (zh) * | 2017-11-01 | 2018-03-27 | 济南浪潮高新科技投资发展有限公司 | 一种基于区块链可信智能合约加固方法 |
CN108599969A (zh) * | 2018-05-02 | 2018-09-28 | 北京链链信息技术有限公司 | 一种区块链中数据共享的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110175178A (zh) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110175178B (zh) | 一种数据处理的方法、节点设备和系统 | |
CN110192380B (zh) | 用于管理区块链云服务的系统和方法 | |
CN110636492B (zh) | 使用区块链切换移动服务提供商 | |
CN110380858B (zh) | 用于处理区块链的游戏共识协议的方法和系统 | |
CN111191283B (zh) | 基于联盟区块链的北斗定位信息安全加密方法及装置 | |
US11367055B2 (en) | Decentralized pooled mining for enabling proof-of-work on blockchains | |
CN111144881A (zh) | 对资产转移数据的选择性访问 | |
CN111488393A (zh) | 虚拟区块链 | |
CN112231741B (zh) | 基于区块链系统的数据处理方法、装置、介质及电子设备 | |
KR20200019944A (ko) | 블록체인 네트워크에서 계층적 토큰 분산을 위한 시스템 및 방법 | |
CN112527912A (zh) | 基于区块链网络的数据处理方法、装置及计算机设备 | |
CN112822267B (zh) | 基于区块链的数据处理方法和装置 | |
CN111698198B (zh) | 秘密生成和份额分发 | |
US20190385183A1 (en) | Method for automatically providing cryptocurrency to recommender using propagation on sns | |
CN111798233A (zh) | 令牌的链接 | |
CN113689216A (zh) | 跨链事务处理方法及装置、设备、存储介质、程序产品 | |
CN116150260A (zh) | 区块链系统的数据处理方法、装置、介质及电子设备 | |
CN115865537A (zh) | 基于中心化系统管理的隐私计算方法、电子设备和存储介质 | |
US11379867B2 (en) | Method for automatically providing cryptocurrency to recommender using propagation on SNS | |
CN115086353A (zh) | 区块链事件处理方法及相关装置、设备、平台和存储介质 | |
CN116126480A (zh) | 事务的跨区块链处理方法、装置及智能设备、介质、产品 | |
Sidhu et al. | Trust development for blockchain interoperability using self-sovereign identity integration | |
CN116186749A (zh) | 基于区块链的业务处理方法、装置、电子设备和可读介质 | |
US20200286050A1 (en) | Method of automatically providing cryptocurrency to recommender using sns propagation | |
CN113591161A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220510 Address after: 523799 Room 101, building 4, No. 15, Huanhu Road, Songshanhu Park, Dongguan City, Guangdong Province Applicant after: Petal cloud Technology Co.,Ltd. Address before: 523000 South factory building (phase I), No.2, Xincheng Avenue, Songshanhu high tech Industrial Development Zone, Dongguan City, Guangdong Province Applicant before: HUAWEI DEVICE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |