CN111695132A - 基于业务数据区块链的投票数据存储方法及*** - Google Patents
基于业务数据区块链的投票数据存储方法及*** Download PDFInfo
- Publication number
- CN111695132A CN111695132A CN202010270284.1A CN202010270284A CN111695132A CN 111695132 A CN111695132 A CN 111695132A CN 202010270284 A CN202010270284 A CN 202010270284A CN 111695132 A CN111695132 A CN 111695132A
- Authority
- CN
- China
- Prior art keywords
- user
- voting
- data
- tree
- information
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 title claims abstract description 28
- 239000000126 substance Substances 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 7
- 230000010354 integration Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 description 10
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000007115 recruitment Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Economics (AREA)
- Computational Linguistics (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Computing Systems (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于业务数据区块链的投票数据存储方法及***,方法应用于业务数据区块链的投票数据存储***中,包括:投票区块链节点接收投票客户端发送用户投票操作数据上链请求;通过链式结构和树形结构存储用户投票数据;链式结构用于存储用户投票操作数据,所述树形结构用于存储用户投票操作后的状态数据;树形结构包括状态树和关系树,状态树用于存储用户投票操作数据的全局状态,全局状态为用户投票操作后的全局状态,关系树用于存储用户投票操作后全局状态之间的关联关系。本申请实现用户投票操作数据的上链,且采用链式存储和树形存储的方式,提升了投票操作数据的查询效率。
Description
技术领域
本发明涉及互联网大数据技术领域,公开一种基于业务数据区块链的投票数据存储方法及***。
背景技术
目前,区块链技术是运用加密算法、共识机制等技术的分布式存储账本。随着区块链技术的运用,越来越多的互联网数据会存储在区块链上。
现有的区块链中,只能存储交易数据,交易数据包括转账方地址、接收方地址以及转账金额;针对各种业务数据(例如:存证数据、溯源数据、金融数据、旅游数据、搜索数据、自媒体数据、调研数据、广告数据、招聘数据、社区数据、知识问答数据、电商数据、知识付费数据、共享单车数据、生活服务数据、租房数据、投票数据、OTO数据(也称为线上到线下数据)、社交数据、点赞数据、评价数据、网约车数据等互联网相关数据)而言,不仅需要在区块链上表达出数据本身,还需要在区块链上表达出数据之间的关联关系。
因此,如何实现在区块链上存储投票数据,成为亟待解决的问题。
以上描述仅仅为了方便理解,并不应限定为本申请的现有技术。
发明内容
基于上述问题,本申请提供一种基于业务数据区块链的投票数据存储方法及其***,该方法通过在业务区块链上存储用户投票操作数据,实现用户投票操作数据的上链。
本申请第一方面公开了一种基于业务数据区块链的投票数据存储方法,所述方法应用于业务数据区块链的投票数据存储***中,所述业务数据区块链的投票数据存储***包括多个投票区块链节点;包括:
投票区块链节点接收投票客户端发送用户投票操作数据上链请求;
通过链式结构和树形结构存储用户投票数据;其中,所述用户投票数据包括用户投票操作数据和用户投票操作后的状态数据,所述链式结构用于存储用户投票操作数据,所述树形结构用于存储用户投票操作后的状态数据;所述树形结构包括状态树和关系树,所述状态树用于存储用户投票操作数据的全局状态,所述全局状态为用户投票操作后的全局状态,所述关系树用于存储用户投票操作后全局状态之间的关联关系;所述链式结构为区块的链式存储结构;
发送用户所述操作数据上链响应给所述投票客户端。
在一种可能的实施方式中,所述用户投票操作数据包括时间戳、操作用户地址、***作地址、操作类型、操作的值、积分地址、用户对用户投票操作数据的签名以及用户投票操作数据的哈希值中的一种或多种;其中,
所述投票数据操作类型包括用户对投票数据的操作和对积分的操作,所述***作地址包括对投票数据的操作地址和其他投票数据操作用户的地址。
在一种可能的实施方式中,所述状态树存储的用户投票操作数据全局状态包括用户信息、投票数据以及积分数据中的一种或多种。
在一种可能的实施方式中,所述关系树存储的关联关系包括用户投票操作数据和用户信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个用户信息;和/或
所述关系树存储的关联关系包括用户信息和积分信息的关联关系;其中,一个用户信息对应一个或多个积分信息;和/或
所述关系树存储的关联关系包括用户投票操作数据信息和积分信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个积分信息。
在一种可能的实施方式中,所述树形结构采用支持属性查询的数据库或KV数据库,其中,所述支持属性查询的数据库包括关系数据库和内存数据库。
在一种可能的实施方式中,所述用户信息、所述用户投票操作数据、所述积分信息、所述用户投票操作数据-用户信息、所述用户信息-积分信息以及所述用户投票操作数据-积分信息中的任意一种信息被组织到MPT树或默克尔树;其中,
任意一棵树的树根存储在区块头中,所述MPT树是融合了前缀树的树形结构的默克尔树变种,所述默克尔树为Merkle Patricia Tree树。
在一个示例中,所述关系树中叶子节点存储关系子树的树根,所述关系子树叶子节点的value存储用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中一种或多种;或
所述关系树中叶子节点的value以数组或哈希表的方式存储用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中一种或多种。
在一个示例中,所述用户信息、所述实体信息、所述积分信息、用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中任意一种信息以数据表的形式存储在支持属性查询的数据库中,以便于用户根据所述数据表中的属性字段进行查询;其中,一种信息对应一种数据表,任意一种数据表中的任意一行对应一条信息,一种信息包括多行信息。
本申请第二方面公开了一种基于业务数据区块链的投票数据存储***,所述业务数据区块链的投票数据存储***包括多个投票区块链节点;所述投票区块链节点包括接收单元、处理单元以及发送单元;其中,
所述接收单元,接收投票客户端发送用户投票操作数据上链请求;
所述处理单元,通过链式结构和树形结构存储用户投票数据;其中,所述用户投票数据包括用户投票操作数据和用户投票操作后的状态数据,所述链式结构用于存储用户投票操作数据,所述树形结构用于存储用户投票操作后的状态数据;所述树形结构包括状态树和关系树,所述状态树用于存储用户投票操作数据的全局状态,所述全局状态为用户投票操作后的全局状态,所述关系树用于存储用户投票操作后全局状态之间的关联关系;所述链式结构为区块的链式存储结构;
所述发送单元,发送用户所述操作数据上链响应给所述投票客户端。
在一种可能的实施方式中,所述用户投票操作数据包括时间戳、操作用户地址、***作地址、操作类型、操作的值、积分地址、用户对用户投票操作数据的签名以及用户投票操作数据的哈希值中的一种或多种;其中,
所述投票数据操作类型包括用户对投票数据的操作和对积分的操作,所述***作地址包括对投票数据的操作地址和其他投票数据操作用户的地址。
在一种可能的实施方式中,所述状态树存储的用户投票操作数据全局状态包括用户信息、投票数据以及积分数据中的一种或多种。
在一种可能的实施方式中,所述关系树存储的关联关系包括用户投票操作数据和用户信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个用户信息;和/或
所述关系树存储的关联关系包括用户信息和积分信息的关联关系;其中,一个用户信息对应一个或多个积分信息;和/或
所述关系树存储的关联关系包括用户投票操作数据信息和积分信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个积分信息。
在一种可能的实施方式中,所述树形结构采用支持属性查询的数据库或KV数据库,其中,所述支持属性查询的数据库包括关系数据库和内存数据库。
在一种可能的实施方式中,所述用户信息、所述用户投票操作数据、所述积分信息、所述用户投票操作数据-用户信息、所述用户信息-积分信息以及所述用户投票操作数据-积分信息中的任意一种信息被组织到MPT树或默克尔树;其中,
任意一棵树的树根存储在区块头中,所述MPT树是融合了前缀树的树形结构的默克尔树变种,所述默克尔树为Merkle Patricia Tree树。
本申请第三方面提供一种计算机可读存储介质,该存储介质存储有计算机指令,该计算机指令被处理器执行时,实现如上所述任意一项技术方案。
本申请第四方面提供一种电子设备,该电子设备包括处理器,所述处理器用于执行如上所述任意一项技术方案。
本申请通过在业务数据区块链上存储用户投票操作数据,实现用户投票操作数据的上链;同时,业务数据区块链中采用链式存储和树形存储的方式,方便了用户投票操作数据的查询,提升了查询效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开了一种基于业务数据区块链的投票数据存储方法流程示意图;
图2为本申请公开了一种业务数据区块链***的结构示意图;
图3为本申请公开了一种基于业务数据区块链的投票数据存储结构示意图;
图4为本申请公开了一种业务数据区块链***中区块头结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请中的“第一”“第二”仅仅是便于理解,给技术词做区分,并不理解为先后,或作为限制性的理解。
为便于对本发明实施例的理解,下面将结合附图以具体实施例作进一步的解释说明,实施例并不构成对本发明实施例的限定。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。
而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化***,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于物理世界产生的真实数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备进行共识,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
在区块链领域,有一个重要的概念就是账户(Account);以以太坊为例,以太坊通常将账户划分为外部账户和合约账户两类;外部账户就是由用户直接控制的账户;而合约账户则是由用户通过外部账户创建的,包含合约代码的账户(即智能合约)。
当然,对于一些基于以太坊的架构而衍生出的区块链项目,还可以对区块链支持的账户类型,进行进一步的扩展,在本说明书中不进行特别限定。
对于区块链中的账户而言,通常会通过一个结构体,来维护账户的账户状态。当区块中的交易被执行后,区块链中与该交易相关的账户的状态通常也会发生变化。
以以太坊为例,账户的结构体通常包括Balance,Nonce,Code和storage等字段。其中:
Balance字段,用于维护账户目前的账户余额;
Nonce字段,用于该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击。
code字段,用于维护该账户的合约代码;在实际应用中,code字段中通常仅维护合约代码的hash值;因而,code字段通常也称之为codehash字段。对于外部账户而言,该字段为空值。
storage字段,用于维护该账户的存储(默认为空)。在实际应用中,storage字段仅维护基于账户的存储内容构建的MPT(Merkle Patricia Trie)树的根节点;因此,storage字段通常也称之为storageRoot字段。
其中,对于外部账户而言,以上示出的code字段和storage字段为空值。
而大多数区块链项目,通常都会使用Merkle树;或者,基于Merkle树的数据结构,来存储和维护数据。以以太坊为例,以太坊使用了MPT树(一种Merkle树变种),作为数据组织形式,用来组织和管理账户状态、交易信息等重要数据。
以太坊针对区块链中需要存储和维护的数据,设计了三颗MPT树,分别是MPT状态树、MPT交易树和MPT收据树。
MPT状态树,是区块链中所有账户的账户状态数据(state),组织成的MPT树;MPT交易树是区块中的交易数据(transaction),组织成的MPT树;MPT收据树,是区块中的交易执行完毕后生成的与每笔交易对应的交易收据receipt),组织成的MPT树。以上示出的MPT状态树、MPT交易树和MPT收据树的根节点的hash值,都会被添加至区块头中。
其中,MPT交易树和MPT收据树,与区块相对应,每一个区块都有自己的MPT交易树和MPT收据树。而MPT状态树是一个全局的MPT树,并不与某一个特定的区块相对应,而是涵盖了区块链中所有账户的账户状态数据。
对于组织成的MPT交易树、MPT收据树和MPT状态树,最终都会在采用多级数据存储结构的Key-Value型数据库(比如,LevelDB)中进行存储。
而采用多级存储结构的上述数据库,通常可以被划分为n级数据存储;例如,各级数据存储可以依次设为L0,L1,L2,L3....L(n-1);对于上述数据库中的各级数据存储而言,等级编号越小通常级别越高;例如,L0存储的是最新的若干区块的数据,L1存储的是次新的若干区块数据,依次类推。
其中,各级数据存储对应的存储介质的读写性能,通常也可以存在性能差异;级别高(即等级编号较小的)的数据存储对应的存储介质的读写性能,可以高于级别低的数据存储对应的存储介质的读写性能。
例如,在实际应用中,级别高的数据存储,可以使用读写性能较高的存储介质;而级别低的数据存储,可以使用单位成本低,且容量较大的存储介质。
在实际应用中,随着区块高度的增长,在数据库中存储的数据,会包含很多历史数据;而且,区块号越小的区块中的数据越久远,越不重要。因此,为了降低整体的存储成本,通常需要对不同区块高度的数据进行“区别对待”;
例如,可以将区块号较小的区块中的数据,存储至成本较低的存储介质上;而将区块号较大的区块中的数据,存储在成本较高的存储介质上
MPT状态树上的node,最终也是以Key-Value键值对的形式存储在数据库中;
其中,当MPT状态树上的node在数据库中进行存储时,MPT状态树上的node的键值对中的key,为node所包含的数据内容的hash值;MPT状态树上的node的键值对中的Value,为node所包含的数据内容。
也即,在将MPT状态树上的node存储至数据库时,可以计算该node所包含的数据内容的hash值(即对node整体进行hash计算),并将计算出的hash值作为key,将该node所包含的数据内容作为value,生成Key-Value键值对;然后,将生成的Key-Value键值对存储至数据库中。
由于MPT状态树上的node,是以node所包含的数据内容的hash值为Key,node所包含的数据内容为value进行存储;因此,在需要查询MPT状态树上的node时,通常可以基于node所包含的数据内容的hash值作为key来进行内容寻址。而采用“内容寻址”,对于一些“内容重复”的node,则通常可以进行“复用”,以节约数据存储的存储空间。
以上是区块链中的存储结构说明,下面对本申请中的业务数据区块链的存储结构进行说明。
本说明书公开了基于业务数据区块链的投票数据存储方法,如图1所示,所述方法应用于业务数据区块链的投票数据存储***中,所述业务数据区块链的投票数据存储***包括多个投票区块链节点;该方法包括S101-S102。
本说明书中的用户信息、用户投票数据以及积分数据均包括关联属性和非关联属性,关联属性是指属性值能够增减;用户信息是指用户的描述信息,用户信息包括用户地址;积分信息指用户发行的积分,是除了区块链上原生积分以外的积分信息,积分信息包括积分的名称、总量。
此外,本说明书中的业务数据区块链是指包括链式存储结构和树形存储结构,且用于存储业务数据的区块链。
并且,本说明书中,对于用户投票操作数据的打包成区块,完成共识验证等流程没有做出说明,可以采用常用的数据上链方式。
S101、投票区块链节点接收投票客户端发送用户投票操作数据上链请求。
在一个示例中,所述用户投票操作数据包括时间戳、操作用户地址、***作地址、操作类型、操作的值、积分地址、用户对用户投票操作数据的签名以及用户投票操作数据的哈希值中的一种或多种;其中,所述投票数据操作类型包括用户对投票数据的操作和对积分的操作,所述***作地址包括对投票数据的操作地址和其他投票数据操作用户的地址。
需要说明的是,本说明书中,客户端可以是服务器,也可以是用户设备。
S102、通过链式结构和树形结构存储用户投票数据;其中,所述用户投票数据包括用户投票操作数据和用户投票操作后的状态数据,所述链式结构用于存储用户投票操作数据,所述树形结构用于存储用户投票操作后的状态数据;所述树形结构包括状态树和关系树,所述状态树用于存储用户投票操作数据的全局状态,所述全局状态为用户投票操作后的全局状态,所述关系树用于存储用户投票操作后全局状态之间的关联关系;所述链式结构为区块的链式存储结构。
S103、发送用户所述操作数据上链响应给所述投票客户端。
在一个示例中,所述状态树存储的用户投票操作数据全局状态包括用户信息、投票数据以及积分数据中的一种或多种。
在一个示例中,所述关系树存储的关联关系包括用户投票操作数据信息和用户信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个用户信息。
投票操作数据包括投票对象发布数据、投票数据、投票结果评价数据、投票结果点赞数据、投票结果踩数据等。如:针对同一个投票对象,会有一个或多个用户投票;这种投票对应关系会存在区块链上,不可篡改,可信度高,而且方便查询;且供其他用户参考。
在一个示例中,所述关系树存储的关联关系包括用户信息和积分信息的关联关系;其中,一个用户信息对应一个或多个积分信息。
投票对象的发布可以是定向发布,也就是当用户拥有对应类型的积分,且积分到达一定数量时,才能进行投票。因此,用户面对多个投票对象时,可能拥有一个或多个积分,这些积分可以是相同的类型,也可以是不同的类型。该对应关系存在区块链上,不可篡改,方便查询。
在一个示例中,所述关系树存储的关联关系包括用户投票操作数据信息和积分信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个积分信息。
这里的是将用户投票操作的权限转换为积分,也就是,当用户拥有积分,数量和类型都匹配时,用户才有该积分对应的投票操作权限。一个用户投票操作权限可以是一个积分,也可以是多个积分;不同的用户投票操作权限对应的积分,可以是同一种类型,也可以是不同种类型。例如:针对一个投票对象的投票权限,可以对应一个或多个积分。用户获得积分的方式,可以是通过参加投票对象发布用户的活动来获得。
此外,积分的获得可以通过抵押原生积分来获得。原生积分是使用区块链***所需的积分,只有抵押原生积分,用户才能够使用区块链***的网络和存储资源;原生积分也能够避免用户无限制的使用区块链***的网络资源,造成区块链***资源的浪费。此时,用户转移积分,就相当于转移投票相关操作的权限。
在一个示例中,所述树形结构采用支持属性查询的数据库或KV数据库,其中,所述支持属性查询的数据库包括关系数据库和内存数据库。
该关系数据库可以是MySql数据库,内存数据库可以是MongoDB数据库;采用支持属性查询的数据库存储用户操作投票数据时,方便用户通过属性字段查询,提升用户查询的效率。
当采用KV数据库时,例如采用Key-Value数据库,查询时需要通过地址查询;例如:用户信息根据用户地址进行查询,用户投票操作数据根据用户投票操作地址查询,用户积分数据根据积分地址查询;用户信息-积分信息需要根据用户地址进行查询,用户投票操作数据信息-积分信息需要根据用户投票操作数据地址进行查询,用户投票操作数据信息-用户信息需要根据用户投票操作数据地址进行查询。
需要指出的是,用户信息的地址可以根据用户公钥进行多次哈希运算后得到;用户投票操作数据地址或积分地址,均可以根据用户创建积分操作或者发起用户投票操作进行哈希运算后,取运算结果的预定前几位字符得到。
在一个示例中,所述用户信息、所述用户投票操作数据信息、所述积分信息、所述用户投票操作数据信息-用户信息、所述用户信息-积分信息以及所述用户投票操作数据信息-积分信息中的任意一种信息被组织成MPT状态树;其中,任意一棵MPT状态树的树根存储在区块头中(如图4所示),所述MPT状态树是融合了前缀树Trie的树形结构的默克尔树Merkle变种,所述默克尔树Merkle为Merkle Patricia Tree状态树。
在一个示例中,所述关系树中叶子节点存储关系子树的树根,所述关系子树叶子节点的value存储用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中一种或多种;或
所述关系树中叶子节点的value以数组或哈希表的方式存储用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中一种或多种。
在一个示例中,所述用户信息、所述实体信息、所述积分信息、用户信息-积分信息、实体信息-用户信息以及实体信息-积分信息中任意一种信息以数据表的形式存储在支持属性查询的数据库中,以便于用户根据所述数据表中的属性字段进行查询;其中,一种信息对应一种数据表,任意一种数据表中的任意一行对应一条信息,一种信息包括多行信息。
图4中Action表示用户投票操作,Account表示用户信息,Asset表示积分,Object表示用户投票操作数据,Object-Asset表示用户投票操作数据-用户信息的关联关系,Account-Asset表示用户信息-积分信息的关联关系,Object-Asset表示用户投票操作数据-积分信息的关联关系。Root表示树根。简要来说,区块包括区块头和区块体,图4中所示的MPT状态树的树根是存储在区块头中。
本申请通过在业务数据区块链上存储用户投票操作数据,实现用户投票操作数据的上链;同时,业务数据区块链中采用链式存储和树形存储的方式,方便了用户投票操作数据的查询,提升了查询效率。
本说明书还公开了基于业务数据区块链的投票数据存储***,如图2所示。实际中,区块链节点的数量并不以此为限。所述业务数据区块链的投票数据存储***包括多个投票区块链节点;所述投票区块链节点包括接收单元、处理单元以及发送单元。
所述接收单元,接收投票客户端发送用户投票操作数据上链请求。
所述处理单元,通过链式结构和树形结构存储用户投票数据;其中,所述用户投票数据包括用户投票操作数据和用户投票操作后的状态数据,所述链式结构用于存储用户投票操作数据,所述树形结构用于存储用户投票操作后的状态数据;所述树形结构包括状态树和关系树,所述状态树用于存储用户投票操作数据的全局状态,所述全局状态为用户投票操作后的全局状态,所述关系树用于存储用户投票操作后全局状态之间的关联关系;所述链式结构为区块的链式存储结构。
所述发送单元,发送用户所述操作数据上链响应给所述投票客户端。
在一个示例中,所述用户投票操作数据包括时间戳、操作用户地址、***作地址、操作类型、操作的值、积分地址、用户对用户投票操作数据的签名以及用户投票操作数据的哈希值中的一种或多种;其中,
所述投票数据操作类型包括用户对投票数据的操作和对积分的操作,所述***作地址包括对投票数据的操作地址和其他投票数据操作用户的地址。
在一个示例中,所述状态树存储的用户投票操作数据全局状态包括用户信息、投票数据以及积分数据中的一种或多种。
在一个示例中,所述关系树存储的关联关系包括用户投票操作数据和用户信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个用户信息;和/或
所述关系树存储的关联关系包括用户信息和积分信息的关联关系;其中,一个用户信息对应一个或多个积分信息;和/或
所述关系树存储的关联关系包括用户投票操作数据信息和积分信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个积分信息。
在一个示例中,所述树形结构采用支持属性查询的数据库或KV数据库,其中,所述支持属性查询的数据库包括关系数据库和内存数据库。
在一个示例中,所述用户信息、所述用户投票操作数据、所述积分信息、所述用户投票操作数据-用户信息、所述用户信息-积分信息以及所述用户投票操作数据-积分信息中的任意一种信息被组织到MPT树或默克尔树;其中,
任意一棵树的树根存储在区块头中,所述MPT树是融合了前缀树的树形结构的默克尔树变种,所述默克尔树为Merkle Patricia Tree树。
本申请通过在业务数据区块链上存储用户投票操作数据,实现用户投票操作数据的上链;同时,业务数据区块链中采用链式存储和树形存储的方式,方便了用户投票操作数据的查询,提升了查询效率。
上述装置实施例中与上述方法实施例中相同或相近之处可相互参见,在此不再赘述。
本说明书还公开了一种计算机可读存储介质,该存储介质存储有计算机指令,该计算机指令被处理器执行时,实现如上所述任意一项技术方案。
本说明书还公开了一种电子设备,该电子设备包括处理器,所述处理器用于执行如上所述任意一项技术方案。
与此同时,本申请还提供一种实体装置的实施例。
图3示出了一种计算机设备结构示意图,该计算机设备可以包括:处理器310、存储器320、输入/输出接口330、通信接口340和总线350。其中处理器340、存储器320、输入/输出接口330和通信接口340通过总线350实现彼此之间在设备内部的通信连接。
处理器310可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器320可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器320可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器320中,并由处理器310来调用执行。
输入/输出接口330用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口340用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线350包括一通路,在设备的各个组件(例如处理器310、存储器320、输入/输出接口330和通信接口340)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器310、存储器320、输入/输出接口330、通信接口340以及总线350,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的范围之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.基于业务数据区块链的投票数据存储方法,其特征在于,所述方法应用于业务数据区块链的投票数据存储***中,所述业务数据区块链的投票数据存储***包括多个投票区块链节点;包括:
投票区块链节点接收投票客户端发送用户投票操作数据上链请求;
通过链式结构和树形结构存储用户投票数据;其中,所述用户投票数据包括用户投票操作数据和用户投票操作后的状态数据,所述链式结构用于存储用户投票操作数据,所述树形结构用于存储用户投票操作后的状态数据;所述树形结构包括状态树和关系树,所述状态树用于存储用户投票操作数据的全局状态,所述全局状态为用户投票操作后的全局状态,所述关系树用于存储用户投票操作后全局状态之间的关联关系;所述链式结构为区块的链式存储结构;
发送用户所述操作数据上链响应给所述投票客户端。
2.根据权利要求1所述的投票数据存储方法,其特征在于,所述用户投票操作数据包括时间戳、操作用户地址、***作地址、操作类型、操作的值、积分地址、用户对用户投票操作数据的签名以及用户投票操作数据的哈希值中的一种或多种;其中,
所述投票数据操作类型包括用户对投票数据的操作和对积分的操作,所述***作地址包括对投票数据的操作地址和其他投票数据操作用户的地址。
3.根据权利要求1所述的投票数据存储方法,其特征在于,所述状态树存储的用户投票操作数据全局状态包括用户信息、投票数据以及积分数据中的一种或多种。
4.根据权利要求3所述的投票数据存储方法,其特征在于,所述关系树存储的关联关系包括用户投票操作数据和用户信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个用户信息;和/或
所述关系树存储的关联关系包括用户信息和积分信息的关联关系;其中,一个用户信息对应一个或多个积分信息;和/或
所述关系树存储的关联关系包括用户投票操作数据信息和积分信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个积分信息。
5.根据权利要求1所述的投票数据存储方法,其特征在于,所述树形结构采用支持属性查询的数据库或KV数据库,其中,所述支持属性查询的数据库包括关系数据库和内存数据库。
6.根据权利要求4所述的投票数据存储方法,其特征在于,所述用户信息、所述用户投票操作数据、所述积分信息、所述用户投票操作数据-用户信息、所述用户信息-积分信息以及所述用户投票操作数据-积分信息中的任意一种信息被组织到MPT树或默克尔树;其中,
任意一棵树的树根存储在区块头中,所述MPT树是融合了前缀树的树形结构的默克尔树变种,所述默克尔树为MerklePatriciaTree树。
7.基于业务数据区块链的投票数据存储***,其特征在于,所述业务数据区块链的投票数据存储***包括多个投票区块链节点;所述投票区块链节点包括接收单元、处理单元以及发送单元;其中,
所述接收单元,接收投票客户端发送用户投票操作数据上链请求;
所述处理单元,通过链式结构和树形结构存储用户投票数据;其中,所述用户投票数据包括用户投票操作数据和用户投票操作后的状态数据,所述链式结构用于存储用户投票操作数据,所述树形结构用于存储用户投票操作后的状态数据;所述树形结构包括状态树和关系树,所述状态树用于存储用户投票操作数据的全局状态,所述全局状态为用户投票操作后的全局状态,所述关系树用于存储用户投票操作后全局状态之间的关联关系;所述链式结构为区块的链式存储结构;
所述发送单元,发送用户所述操作数据上链响应给所述投票客户端。
8.根据权利要求7所述的投票数据存储***,其特征在于,所述用户投票操作数据包括时间戳、操作用户地址、***作地址、操作类型、操作的值、积分地址、用户对用户投票操作数据的签名以及用户投票操作数据的哈希值中的一种或多种;其中,
所述投票数据操作类型包括用户对投票数据的操作和对积分的操作,所述***作地址包括对投票数据的操作地址和其他投票数据操作用户的地址。
9.根据权利要求7所述的投票数据存储***,其特征在于,所述状态树存储的用户投票操作数据全局状态包括用户信息、投票数据以及积分数据中的一种或多种。
10.根据权利要求9所述的投票数据存储***,其特征在于,所述关系树存储的关联关系包括用户投票操作数据和用户信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个用户信息;和/或
所述关系树存储的关联关系包括用户信息和积分信息的关联关系;其中,一个用户信息对应一个或多个积分信息;和/或
所述关系树存储的关联关系包括用户投票操作数据信息和积分信息的关联关系;其中,一个用户投票操作数据信息对应一个或多个积分信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010270284.1A CN111695132A (zh) | 2020-04-08 | 2020-04-08 | 基于业务数据区块链的投票数据存储方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010270284.1A CN111695132A (zh) | 2020-04-08 | 2020-04-08 | 基于业务数据区块链的投票数据存储方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111695132A true CN111695132A (zh) | 2020-09-22 |
Family
ID=72476343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010270284.1A Pending CN111695132A (zh) | 2020-04-08 | 2020-04-08 | 基于业务数据区块链的投票数据存储方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111695132A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115604121A (zh) * | 2022-11-27 | 2023-01-13 | 中国信息通信研究院(Cn) | 基于区块链的工业互联网业务处理方法、装置和设备 |
-
2020
- 2020-04-08 CN CN202010270284.1A patent/CN111695132A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115604121A (zh) * | 2022-11-27 | 2023-01-13 | 中国信息通信研究院(Cn) | 基于区块链的工业互联网业务处理方法、装置和设备 |
CN115604121B (zh) * | 2022-11-27 | 2023-03-14 | 中国信息通信研究院 | 基于区块链的工业互联网业务处理方法、装置和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111488396B (zh) | 业务数据区块链的数据同步方法及装置 | |
CN111488614A (zh) | 基于业务数据区块链的数字身份存储方法及装置 | |
CN111488608A (zh) | 业务数据区块链的数据验证方法及装置 | |
CN111737726A (zh) | 基于业务数据区块链的关系数据查询方法及装置 | |
CN111488344A (zh) | 基于业务数据区块链的用户操作数据上链方法及*** | |
CN111488356A (zh) | 业务数据区块链的数据存储方法及其装置 | |
CN111488610A (zh) | 基于业务数据区块链的状态数据查询方法及装置 | |
CN111488349A (zh) | 基于业务数据区块链的数据查询方法及装置 | |
CN111695136A (zh) | 业务数据区块链的实现方法及其*** | |
CN111695132A (zh) | 基于业务数据区块链的投票数据存储方法及*** | |
CN111488611B (zh) | 业务数据区块链的关系数据存储方法及装置 | |
CN111737729A (zh) | 基于业务数据区块链的评价数据存储方法及*** | |
CN111737728A (zh) | 基于业务数据区块链的自媒体数据存储方法及*** | |
CN111695139A (zh) | 基于业务数据区块链的知识问答数据存储方法及*** | |
CN111523137A (zh) | 基于业务数据区块链的数据推荐方法及装置 | |
CN111695137A (zh) | 基于业务数据区块链的旅游数据存储方法及*** | |
CN111488345A (zh) | 业务数据区块链的存储优化方法及装置 | |
CN111488613A (zh) | 业务数据区块链的数据高效查询方法及装置 | |
CN111488607A (zh) | 业务数据区块链的数据处理方法及其装置 | |
CN111488606B (zh) | 基于业务数据区块链的数据共享方法及装置 | |
CN111737731A (zh) | 基于业务数据区块链的共享单车数据存储方法及*** | |
CN111695141A (zh) | 基于业务数据区块链的社交数据存储方法及*** | |
CN111695138A (zh) | 基于业务数据区块链的租房数据存储方法及*** | |
CN111695144A (zh) | 基于业务数据区块链的生活服务数据存储方法及*** | |
CN111695140A (zh) | 基于业务数据区块链的招聘数据存储方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200922 |