CN109727030A - 一种区块链中账户数据存储方法 - Google Patents
一种区块链中账户数据存储方法 Download PDFInfo
- Publication number
- CN109727030A CN109727030A CN201811553074.2A CN201811553074A CN109727030A CN 109727030 A CN109727030 A CN 109727030A CN 201811553074 A CN201811553074 A CN 201811553074A CN 109727030 A CN109727030 A CN 109727030A
- Authority
- CN
- China
- Prior art keywords
- account
- target
- field
- list
- data
- 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
Abstract
本发明实施例公开一种区块链中账户数据存储方法,其中方法包括如下步骤:在区块链系统的数据块中设置账户列表字段;根据所述账户列表字段对应的数据计算规则计算账户数据针对所述账户列表字段的字段值;将所述字段值存储至所述账户列表字段所指示的数据块头中,并将所述账户数据存储至数据块体中。采用本发明,通过在区块链的数据块中设置账户列表字段,可以在数据块中引入账户,实现账户数据的快速查询,进而可以提高区块链的交易速率。
Description
【技术领域】
本发明涉及互联网技术领域,尤其涉及一种区块链中账户数据存储方法。
【背景技术】
在传统的区块链系统中,关于账目采用了“借贷记帐法”,账目分成借方和贷方,每发生一笔业务都要登记两个以上的科目。这种记账法也有缺点,就是容易产生记账错误和记账误差。一笔交易需要登记两条以上的账目,本质上记录的是“交易的结果”,而不是“交易本身”。
比特币系统没有采用这种复杂的记账方案,而是采用了一种追踪比特币的流水账记录法:(Unspent Transaction Output,UTXO)。本质上,就是只记录交易本身,而不记录交易的结果。从金融系统设计角度来说,这种方式有点“交易清算分离”的意思。区块链系统只处理所有的交易,而需要清算、查看余额等信息,由区块链节点自行处理。
比特币采用UTXO方法来记账。UTXO系统遵守两个规则:除了挖矿交易之外,所有的资金来源都必须来自前面某一个或者几个交易的UXTO;任何一笔交易的输入总量必须等于输出总量,等式两边必须配平。(在比特币系统中,一般输出小于输入,差额则是转账手续费,归矿工所有。)
UTXO模式最大的好处就是,它忠实地记录了交易。我们的现实世界是随着时间流动的,交易一笔一笔地发生,比特币的区块链系统一笔一笔忠实地记录着这个世界发生的事情,不能回滚,不能删除。只要交易记录准确了、清楚了,那么每个人进行清算的结果就都不会出错。
然而,当进行交易时,需要账户余额来进行验证,计算账户余额是通过查找该账户的UTXO记录来实现,具体的实现过程是通过遍历所有数据块block返回UTXO集合,并缓存该UTXO集合,以供后续查询使用,当客户端程序重启时,需要重新执行上述动作。随着区块链数据不断膨胀增大,这种方法的执行效率愈加低下,影响区块链交易速率,无法满足大并发量规模的交易需求。
【发明内容】
本发明实施例提供一种区块链中账户数据存储方法,通过在区块链的数据块中设置账户列表字段,可以在数据块中引入账户,实现账户数据的快速查询,进而可以提高区块链的交易速率。
本发明实施例提供了一种区块链中账户数据存储方法,可包括:
在区块链系统的数据块中设置账户列表字段;
根据所述账户列表字段对应的数据计算规则计算账户数据针对所述账户列表字段的字段值;
将所述字段值存储至所述账户列表字段所指示的数据块头中,并将所述账户数据存储至数据块体中。
在本发明实施例中,通过在区块链系统的数据块中设置账户列表字段,根据账户列表字段对应的数据计算规则计算账户数据针对账户列表字段的字段值,然后将字段值存储至账户列表字段所指示的数据块头中,并将账户数据存储至数据块体中。通过在区块链的数据块中设置账户列表字段,在数据块中引入了账户,实现了账户数据的快速查询,进而提高了区块链的交易速率。
【附图说明】
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种区块链中账户数据存储方法的流程示意图;
图2是本发明实施例提供的计算根哈希值的结构示意图;
图3是本发明实施例提供的一种区块链中账户数据存储方法对应的数据查找方法的流程示意图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将结合附图1-附图3,对本发明实施例提供的区块链中账户数据存储方法进行详细介绍。
请参见图1,为本发明实施例提供了一种区块链中账户数据存储方法的流程示意图。如图1所示,本发明实施例的所述方法可以包括以下步骤S101- 步骤S103。
S101,在区块链系统的数据块中设置账户列表字段。
可以理解的是,传统的区块链系统的每个数据块完整的块头字段包括:版本、父区块头哈希值、Merkle根、时间戳、难度目标以及Nonce。在本发明实施例中,数据存储设备可以在所述数据块的块头新设置一个账户列表字段,该字段用于在数据块中引入账户这一概念。可选的,所述账户列表字段可以是HashList根字段。需要说明的是,所述数据存储设备可以可以包括平板电脑、个人计算机(PC)、智能手机、掌上电脑以及移动互联网设备(MID)等终端设备。
S102,根据所述账户列表字段对应的数据计算规则计算账户数据针对所述账户列表字段的字段值。
具体的,所述数据存储设备可以根据所述账户列表字段对应的数据计算规则计算账户数据针对所述账户列表字段的字段值。可以理解的是,所述账户数据可以是所述区块链系统中当前账户对应的账户余额等账户相关的数据。
在可选实施例中,所述数据存储设备计算所述字段值的过程可以是如图2所示的由下到上的执行过程。具体的,所述设备可以获取所述区块链系统中当前账户的账户地址,其中,所述当前账户包括至少两个账户,例如,当前账户为账户A、账户B、账户C……账户N。所述账户地址可以是所述当前账户的账户ID。
进一步的,所述设备可以根据所述账户地址对所述当前账户对应的账户列表进行排序,可以理解的是,所述设备可以根据账户ID的大小对所述账户列表中的各个账户进行由小到大的排序。
进一步的,所述设备可以计算排序后当前账户中各账户的账户哈希值,可选的,所述设备可以获取所述当前账户中各账户的账户字段,对所述账户字段进行哈希运算生成当前账户中各账户的账户哈希值,所述哈希运算可以是对各个账户的所有账户字段进行拼接,再采用哈希算法计算出账户哈希值。
进一步的,所述设备可以将所述账户哈希值存储至所述账户列表对应的哈希值列表,所述哈希值列表可以是各个账户的账户哈希值组成的列表,由于当前账户中的各个账户是由大到小的顺序排列的,所述哈希值列表对应的也可以是由大到小的顺序排列的。
进一步的,所述设备可以对所述哈希值列表中的账户哈希值进行根哈希运算生成根哈希值,将所述根哈希值确定为所述账户列表字段的字段值。可选的,所述设备可以将所述哈希值列表中的账户哈希值进行拼接,再采用哈希算法计算出根哈希值,所述根哈希值为所述账户列表字段对应的哈希值。
进一步的,所述设备可以将所述根哈希值确定为所述账户列表字段的字段值。
S103,将所述字段值存储至所述账户列表字段所指示的数据块头中,并将所述账户数据存储至数据块体中。
具体的,所述设备可以将所述字段值存储至所述账户列表字段所指示的数据块头中,并将所述账户数据存储至数据块体中。所述数据块头和所述数据块体组成了所述区块链中的数据块。所述数据块头用于存储所述数据块中的所有字段,所述数据块体用于存储所述数据块中的所有交易数据。
在本发明实施例中,通过在区块链系统的数据块中设置账户列表字段,根据账户列表字段对应的数据计算规则计算账户数据针对账户列表字段的字段值,然后将字段值存储至账户列表字段所指示的数据块头中,并将账户数据存储至数据块体中。通过在区块链的数据块中设置账户列表字段,在数据块中引入了账户,实现了账户数据的快速查询,进而提高了区块链的交易速率。
请参见图3,为本发明实施例提供了与上述区块链中账户数据存储方法相对应的区块链中账户数据的查找方法的流程示意图。如图3所示,本发明实施例的所述方法可以包括以下步骤S201-步骤S204。
S201,获取所述区块链系统中目标数据块的目标账户列表字段。
具体的,所述设备可以获取所述区块链系统中目标数据块的目标账户列表字段,可以理解的是,所述目标数据块可以是当前待查找的数据块。在可选实施例中,所述设备可以将所述区块链系统中的最后一个数据块确定为目标数据块,也可以采用其他选择规则选取一个目标数据块,例如,随机选取一个数据块作为目标数据块或者将所述区块链中的第一个数据块作为目标数据块等。所述目标账户列表字段可以是所述目标数据块中的账户列表字段。
S202,获取所述目标账户列表字段对应的目标账户列表。
具体的,所述设备可以获取所述账户列表字段对应的目标账户列表。在可选实施例中,所述设备可以将图2所示的过程反过来由上到下执行,可以获取所述目标账户列表字段对应的目标字段值,并可以根据所述目标字段值反推出所述目标账户列表对应的目标哈希值列表,再根据所述目标哈希值列表获取所述目标账户列表。可以理解的是,所述目标账户列表中的账户是按照账户地址由大到小的顺序排序的。
S203,基于预设账户查找方法在所述目标账户列表中查找待查账户的待查账户地址。
具体的,所述设备可以基于预设账户查找方法在所述目标账户列表中查找待查账户的待查账户地址,所述预设账户查找方法可以是二分法,所述二分法的具体实现方式为:确定所述目标账户列表的中间位置mid=(left +right)/2;然后用待查账户地址与中间位置的账户地址进行比较:若相等,则查找成功;若大于,则在后(右)半个区域继续进行折半查找;若小于,则在前(左)半个区域继续进行折半查找,最后对确定的缩小区域再按折半公式,重复上述步骤。
S204,当所述目标账户列表中不存在待查账户的待查账户地址时,将所述最后一个数据块的前一个数据块确定为目标数据块,转入执行获取所述区块链系统中目标数据块的目标账户列表字段的步骤。
S205,当所述目标账户列表中存在待查账户的待查账户地址时,输出所述待查账户地址对应的账户数据。
具体的,当所述目标账户列表中存在待查账户的待查账户地址时,所述设备可以输出所述待查账户地址对应的账户数据。
在本发明实施例中,通过在区块链的数据块中设置账户列表字段,在数据块中引入了账户,实现了账户数据的快速查询,进而提高了区块链的交易速率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体 (Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (9)
1.一种区块链中账户数据存储方法,其特征在于,包括:
在区块链系统的数据块中设置账户列表字段;
根据所述账户列表字段对应的数据计算规则计算账户数据针对所述账户列表字段的字段值;
将所述字段值存储至所述账户列表字段所指示的数据块头中,并将所述账户数据存储至数据块体中。
2.根据权利要求1所述的方法,其特征在于,在根据所述账户列表字段对应的数据计算规则计算账户数据针对所述账户列表字段的字段值时,所述方法包括:
获取所述区块链系统中当前账户的得账户地址,所述当前账户包括至少两个账户;
根据所述账户地址对所述当前账户对应的账户列表进行排序;
计算排序后当前账户中各账户的账户哈希值,并将所述账户哈希值存储至所述账户列表对应的哈希值列表;
对所述哈希值列表中的账户哈希值进行根哈希运算生成根哈希值,将所述根哈希值确定为所述账户列表字段的字段值。
3.根据权利要求1所述的方法,其特征在于,在计算所述当前账户中各账户的账户哈希值时,所述方法包括:
获取所述当前账户中各账户的账户字段,对所述账户字段进行哈希运算生成当前账户中各账户的账户哈希值。
4.根据权利要求1所述的方法,其特征在于,所述账户列表字段为HashList根字段。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述区块链系统中目标数据块的目标账户列表字段;
获取所述目标账户列表字段对应的目标账户列表;
基于预设账户查找方法在所述目标账户列表中查找待查账户的待查账户地址;
当所述目标账户列表中存在待查账户的待查账户地址时,输出所述待查账户地址对应的账户数据。
6.根据权利要求5所述的方法,其特征在于,所述预设账户查找方法为二分法。
7.根据权利要求5所述的方法,其特征在于,在获取所述目标账户列表字段对应的目标账户列表时,所述方法包括:
获取所述目标账户列表字段的目标字段值,根据所述目标字段值提取目标哈希值列表;
根据所述目标哈希值列表生成目标账户列表。
8.根据权利要求5所述的方法,其特征在于,在获取所述区块链系统中目标数据块的目标账户列表字段之前,所述方法还包括:
将所述区块链系统中的最后一个数据块确定为目标数据块。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述目标账户列表中不存在待查账户的待查账户地址时,将所述最后一个数据块的前一个数据块确定为目标数据块,转入执行获取所述区块链系统中目标数据块的目标账户列表字段的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811553074.2A CN109727030A (zh) | 2018-12-18 | 2018-12-18 | 一种区块链中账户数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811553074.2A CN109727030A (zh) | 2018-12-18 | 2018-12-18 | 一种区块链中账户数据存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109727030A true CN109727030A (zh) | 2019-05-07 |
Family
ID=66296925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811553074.2A Pending CN109727030A (zh) | 2018-12-18 | 2018-12-18 | 一种区块链中账户数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109727030A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347679A (zh) * | 2019-06-20 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种基于收据的数据存储方法、装置及设备 |
CN111988408A (zh) * | 2020-08-20 | 2020-11-24 | 长沙理工大学 | 一种区块链数值信息传输装置、方法、设备及计算机介质 |
US10944549B2 (en) | 2019-06-20 | 2021-03-09 | Advanced New Technologies Co., Ltd. | Blockchain-type data storage |
CN112632086A (zh) * | 2021-01-08 | 2021-04-09 | 海南雷贝科技有限公司 | 一种基于区块链的数字资产动态余额存储方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108876335A (zh) * | 2018-09-07 | 2018-11-23 | 杭州复杂美科技有限公司 | 一种余额管理方法和系统、设备及存储介质 |
-
2018
- 2018-12-18 CN CN201811553074.2A patent/CN109727030A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108876335A (zh) * | 2018-09-07 | 2018-11-23 | 杭州复杂美科技有限公司 | 一种余额管理方法和系统、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
李博: ""比特币矿工节点的区块链存储分析与优化研究"", 《中国优秀硕士学位论文全文数据库 经济与管理科学辑》 * |
陈佳华: ""联盟区块链的容量优化模型研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347679A (zh) * | 2019-06-20 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种基于收据的数据存储方法、装置及设备 |
CN110347679B (zh) * | 2019-06-20 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 一种基于收据的数据存储方法、装置及设备 |
US10944549B2 (en) | 2019-06-20 | 2021-03-09 | Advanced New Technologies Co., Ltd. | Blockchain-type data storage |
US10999062B2 (en) | 2019-06-20 | 2021-05-04 | Advanced New Technologies Co., Ltd. | Blockchain-type data storage |
US11005648B2 (en) | 2019-06-20 | 2021-05-11 | Advanced New Technologies Co., Ltd. | Blockchain-type data storage |
US11223471B2 (en) | 2019-06-20 | 2022-01-11 | Advanced New Technologies Co., Ltd. | Blockchain-type data storage |
CN111988408A (zh) * | 2020-08-20 | 2020-11-24 | 长沙理工大学 | 一种区块链数值信息传输装置、方法、设备及计算机介质 |
CN112632086A (zh) * | 2021-01-08 | 2021-04-09 | 海南雷贝科技有限公司 | 一种基于区块链的数字资产动态余额存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109727030A (zh) | 一种区块链中账户数据存储方法 | |
CN110471795B (zh) | 区块链状态数据恢复方法及装置、电子设备 | |
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
US9361343B2 (en) | Method for parallel mining of temporal relations in large event file | |
CN102831222B (zh) | 一种基于重复数据删除的差量压缩方法 | |
US7925652B2 (en) | Methods and systems for implementing approximate string matching within a database | |
US8666976B2 (en) | Methods and systems for implementing approximate string matching within a database | |
US8738486B2 (en) | Methods and apparatus for implementing an ensemble merchant prediction system | |
US8301588B2 (en) | Data storage for file updates | |
US11269902B2 (en) | Time series data management method, device, and apparatus | |
CN105446991A (zh) | 数据存储方法、查询方法及设备 | |
CN109558421A (zh) | 基于缓存的数据处理方法、系统、装置及存储介质 | |
CN106326475A (zh) | 一种高效的静态哈希表实现方法及系统 | |
CN105389329A (zh) | 一种基于群体评论的开源软件推荐方法 | |
CN106326499A (zh) | 一种数据处理方法及装置 | |
CN105447166A (zh) | 一种基于关键字查找信息的方法及系统 | |
CN104423982A (zh) | 请求的处理方法和处理设备 | |
CN115544377A (zh) | 基于云端存储的档案的热度评估和更新方法 | |
CN107402982A (zh) | 数据写入、数据匹配方法、装置及计算设备 | |
CN107958023A (zh) | 数据同步方法、数据同步装置和计算机可读存储介质 | |
CN110020272A (zh) | 缓存方法、装置以及计算机存储介质 | |
CN105183892A (zh) | 广告信息搜索方法及装置 | |
CN104408097A (zh) | 一种基于字符段热更新的混合索引方法及系统 | |
CN105354149B (zh) | 一种内存数据查找方法和装置 | |
CN105956203A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190507 |