CN111080290B - 一种基于账户分类的区块链交易执行与数据存储方法 - Google Patents
一种基于账户分类的区块链交易执行与数据存储方法 Download PDFInfo
- Publication number
- CN111080290B CN111080290B CN201911135137.7A CN201911135137A CN111080290B CN 111080290 B CN111080290 B CN 111080290B CN 201911135137 A CN201911135137 A CN 201911135137A CN 111080290 B CN111080290 B CN 111080290B
- Authority
- CN
- China
- Prior art keywords
- account
- transaction
- contract
- database
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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/2379—Updates performed during online database operations; commit processing
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Databases & Information Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于账户分类的区块链交易执行与数据存储方法。本方法中将账户分类为普通账户与合约账户,从而将账户数据与合约数据拆分。在区块链执行过程中,交易主要分为转账交易与其余涉及合约操作的交易,转账交易可只调用账户数据库,而合约交易则根据具体情况调用账户与合约数据库。整个交易执行步骤如下:首先执行模块标记区块开始执行,然后按顺序解析交易并在虚拟机中进行交易的执行,根据交易的不同类型读取数据库,获得交易对于底层数据库的修改集,最终在需要提交区块的时候将修改集刷入数据库。本发明解决了传统区块链账本数据存储的分库问题,提升了区块链存储的效率和灵活性。
Description
技术领域
本发明涉及区块链技术、交易执行,尤其涉及一种基于账户分类的区块链交易执行与数据存储方法。
背景技术
区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成。而目前区块链将执行获得的结果全部存储于一个数据库中,限制了其数据持久化的性能,不够灵活并且可用性不够高,为了保证区块链的高可用性、可拓展性,数据库分库是不可或缺的技术。
发明内容
本发明的目的是针对现有技术的不足,提供一种基于账户分类的区块链交易执行与数据存储方法,能够提升区块链存储的性能、灵活性、可用性、可扩展性,增加其实用性。
具体技术方案如下:
一种基于账户分类的区块链交易执行与数据存储方法,将账户体系区块链的账户分为普通账户类型与合约账户类型,并将区块链账本数据分为账户数据和合约数据两个部分进行存储,每一个合约账户将拥有对应的合约数据。
所述的区块链交易执行与数据存储包括如下步骤:
S1:标记当前区块的区块号,作为开始执行该区块的标志;
S2:依次遍历当前区块中的交易,使用虚拟机解析,如果交易仅涉及账户数据库的操作,则读取账户数据库并在内存中标记该账户被修改,并记录该账户相应的更新值;如果是合约交易,仅读取合约数据库或根据需要同时读取账户数据库和合约数据库),并在内存中标记该合约被修改,并记录合约相应的更新值。
S3:完成交易遍历后,遍历当前区块修改的所有合约,将对应的账户标记为修改;计算每个被修改合约的新哈希值,将新哈希值置入相应账户中,计算整个账户数据库的新哈希值。
S4:将所有待修改数据通过批处理方式持久化到底层数据库,标记此区块处理完成。
S5:其他区块按照区块号的顺序也依次执行S1-S4,直至所有区块完成数据持久化。
进一步地,在执行交易时,将针对存储的所有修改都额外记录一份操作记录并持久化,避免系统宕机后内存修改记录的丢失。
进一步地,在执行一条交易之前,记录当前的修改集状态,在交易执行失败时,根据这条交易的修改集回滚区块链世界状态,完成回滚。
进一步地,在执行完一个区块之后,将此区块的执行结果缓存,提前进行下一个区块的执行,当之前的区块获得确认,从缓存中读取执行结果并将其应用到底层数据库。
本发明的有益效果是:本发明的基于账户分类的区块链交易执行与数据存储方法允许区块链系统在数据不断增长的过程中,通过数据库分库获得数据存储性能、灵活性的提升,使区块链系统具有更高的可用性。
附图说明
图1为本发明的基于账户分类的区块链交易执行与数据存储方法的详细流程图。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,一种基于账户分类的区块链交易执行与数据存储方法,将账户体系区块链的账户分为普通账户类型与合约账户类型,并将区块链账本数据分为账户数据和合约数据两个部分进行存储,每一个合约账户将拥有对应的合约数据。
该方法具体包括如下步骤:
S1:标记当前区块的区块号,作为开始执行该区块的标志。
S2:依次遍历区块中的交易,使用虚拟机解析,如果是转账等仅涉及账户数据库的操作,读取账户数据库并在内存中标记该账户被修改,并记录该账户相应新值;如果是合约交易,读取合约数据库(根据需要还可读取账户数据库),在内存中标记该合约被修改,并记录合约相应新值。
S3:完成交易遍历后,遍历当前区块修改的所有合约,将对应的账户标记为修改。计算每个被修改合约的新哈希值,将新哈希值置入相应账户中,计算整个账户数据库的新哈希值。
S4:最终,将所有待修改数据通过批处理方式持久化到底层数据库,标记此区块处理完成。
S5:其他区块按照区块号的顺序也依次执行S1-S4,直至所有区块完成数据持久化。
为了避免系统宕机后内存修改记录的丢失,在执行交易的时候,将针对存储的所有修改都额外记录一份操作记录并持久化。
在执行一条交易之前,记录当前的修改集状态,在交易执行失败时,根据这条交易的修改集回滚区块链世界状态,完成回滚。
作为其中一种实施方式,在执行完一个区块之后,区块可能不会马上获得确认,将此区块的执行结果缓存,提前进行下一个区块的执行,当之前的区块获得确认,从缓存中读取执行结果并将其应用到底层数据库。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
Claims (4)
1.一种基于账户分类的区块链交易执行与数据存储方法,其特征在于,将账户体系区块链的账户分为普通账户类型与合约账户类型,并将区块链账本数据分为账户数据和合约数据两个部分进行存储,每一个合约账户将拥有对应的合约数据。
所述的区块链交易执行与数据存储包括如下步骤:
S1:标记当前区块的区块号,作为开始执行该区块的标志;
S2:依次遍历当前区块中的交易,使用虚拟机解析,如果交易仅涉及账户数据库的操作,则读取账户数据库并在内存中标记该账户被修改,并记录该账户相应的更新值;如果是合约交易,仅读取合约数据库或根据需要同时读取账户数据库和合约数据库,并在内存中标记该合约被修改,并记录合约相应的更新值;
S3:完成交易遍历后,遍历当前区块修改的所有合约,将对应的账户标记为修改;计算每个被修改合约的新哈希值,将新哈希值置入相应账户中,计算整个账户数据库的新哈希值;
S4:将所有待修改数据通过批处理方式持久化到底层数据库,标记此区块处理完成;
S5:其他区块按照区块号的顺序也依次执行S1-S4,直至所有区块完成数据持久化。
2.根据权利要求1所述的基于账户分类的区块链交易执行与数据存储方法,其特征在于,在执行交易时,将针对存储的所有修改都额外记录一份操作记录并持久化,避免系统宕机后内存修改记录的丢失。
3.根据权利要求1所述的基于账户分类的区块链交易执行与数据存储方法,其特征在于,在执行一条交易之前,记录当前的修改集状态,在交易执行失败时,根据这条交易的修改集回滚区块链世界状态,完成回滚。
4.根据权利要求1所述的基于账户分类的区块链交易执行与数据存储方法,其特征在于,在执行完一个区块之后,将此区块的执行结果缓存,提前进行下一个区块的执行,当之前的区块获得确认,从缓存中读取执行结果并将其应用到底层数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911135137.7A CN111080290B (zh) | 2019-11-19 | 2019-11-19 | 一种基于账户分类的区块链交易执行与数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911135137.7A CN111080290B (zh) | 2019-11-19 | 2019-11-19 | 一种基于账户分类的区块链交易执行与数据存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111080290A CN111080290A (zh) | 2020-04-28 |
CN111080290B true CN111080290B (zh) | 2023-05-26 |
Family
ID=70311184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911135137.7A Active CN111080290B (zh) | 2019-11-19 | 2019-11-19 | 一种基于账户分类的区块链交易执行与数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111080290B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112200573B (zh) * | 2020-10-14 | 2021-08-17 | 北京天德科技有限公司 | 一种可回滚的区块链交易设计方法 |
CN112001799B (zh) * | 2020-10-28 | 2021-02-05 | 支付宝(杭州)信息技术有限公司 | 在区块链中执行智能合约的方法和装置 |
CN113159953A (zh) * | 2021-04-30 | 2021-07-23 | 中国工商银行股份有限公司 | 一种基于区块链的数据持久化和并行处理方法及装置 |
CN113268546B (zh) * | 2021-06-15 | 2022-04-01 | 中国电子科技网络信息安全有限公司 | 一种区块链账本数据抓取解析方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526775A (zh) * | 2017-07-18 | 2017-12-29 | 杭州趣链科技有限公司 | 一种区块链数据归档的方法 |
CN108846659A (zh) * | 2018-06-13 | 2018-11-20 | 深圳前海微众银行股份有限公司 | 基于区块链的转账方法、装置及存储介质 |
CN109472678A (zh) * | 2018-09-29 | 2019-03-15 | 刘建平 | 一种基于区块链的会计账本管理方法、电子装置及可读存储介质 |
WO2019074371A1 (en) * | 2017-10-15 | 2019-04-18 | Harmonychain As | DISTRIBUTED DATABASE MANAGER |
WO2019100991A1 (zh) * | 2017-11-27 | 2019-05-31 | 北京京东金融科技控股有限公司 | 信息处理方法、装置及系统、存储介质、电子设备 |
CN110033370A (zh) * | 2019-02-01 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 账户创建方法及装置、电子设备、存储介质 |
CN110245944A (zh) * | 2019-05-20 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 基于用户类型的收据存储方法和节点 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10255342B2 (en) * | 2017-04-12 | 2019-04-09 | Vijay K. Madisetti | Method and system for tuning blockchain scalability, decentralization, and security for fast and low-cost payment and transaction processing |
-
2019
- 2019-11-19 CN CN201911135137.7A patent/CN111080290B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107526775A (zh) * | 2017-07-18 | 2017-12-29 | 杭州趣链科技有限公司 | 一种区块链数据归档的方法 |
WO2019074371A1 (en) * | 2017-10-15 | 2019-04-18 | Harmonychain As | DISTRIBUTED DATABASE MANAGER |
WO2019100991A1 (zh) * | 2017-11-27 | 2019-05-31 | 北京京东金融科技控股有限公司 | 信息处理方法、装置及系统、存储介质、电子设备 |
CN108846659A (zh) * | 2018-06-13 | 2018-11-20 | 深圳前海微众银行股份有限公司 | 基于区块链的转账方法、装置及存储介质 |
CN109472678A (zh) * | 2018-09-29 | 2019-03-15 | 刘建平 | 一种基于区块链的会计账本管理方法、电子装置及可读存储介质 |
CN110033370A (zh) * | 2019-02-01 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 账户创建方法及装置、电子设备、存储介质 |
CN110245944A (zh) * | 2019-05-20 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 基于用户类型的收据存储方法和节点 |
Also Published As
Publication number | Publication date |
---|---|
CN111080290A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111080290B (zh) | 一种基于账户分类的区块链交易执行与数据存储方法 | |
CN101751406B (zh) | 一种实现基于列存储的关系型数据库的方法及装置 | |
CN110555770B (zh) | 一种基于增量哈希的区块链世界状态校验和恢复方法 | |
CN103412803A (zh) | 数据恢复的方法及装置 | |
US20090313501A1 (en) | Method and arrangement for processing transactions in a flash type memory device | |
CN107992492B (zh) | 一种数据区块的存储方法、读取方法、其装置及区块链 | |
US20050138090A1 (en) | Method and apparatus for performing a backup of data stored in multiple source medium | |
CN106201778B (zh) | 信息处理方法及存储设备 | |
WO2006095356A1 (en) | A method of logging transactions and a method of reversing a transaction | |
CN106775481B (zh) | 数据读取方法及设备 | |
CN108304144B (zh) | 数据写入、读取方法与系统、数据读写系统 | |
CN101650692B (zh) | 一种在存储设备中修改数据的方法和装置 | |
CN113596107A (zh) | 一种基于区块链的数据同步方法和装置 | |
CN102906740B (zh) | 压缩数据记录和处理压缩数据记录的方法和系统 | |
CN108846039B (zh) | 数据流向确定方法及装置 | |
CN115712654A (zh) | 一种交易状态查询的方法及装置 | |
CN112698984B (zh) | 嵌入式设备的数据库恢复方法、电子设备及介质 | |
CN115052008A (zh) | 基于云存储的区块链数据链下存储方法 | |
CN108776578B (zh) | 一种快速合并对象的方法和系统 | |
CN111125047A (zh) | 冷热数据目录识别方法及装置 | |
JP2679602B2 (ja) | 退避媒体作成システム | |
CN111752978A (zh) | 基于分布式缓存的卡bin路由选择方法、装置及系统 | |
JPS62245348A (ja) | データベース更新方法 | |
CN109960611A (zh) | 数据恢复的方法、装置、电子设备及机器可读存储介质 | |
CN107169068B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |