首页 / 专利库 / 银行与财务事项 / 区块链交易 / 一种基于账户分类的区块链交易执行与数据存储方法

一种基于账户分类的链交易执行与数据存储方法

阅读:905发布:2020-05-13

专利汇可以提供一种基于账户分类的链交易执行与数据存储方法专利检索,专利查询,专利分析的服务。并且本 发明 公开一种基于账户分类的 区 块 链 交易执行与数据存储方法。本方法中将账户分类为普通账户与合约账户,从而将账户数据与合约数据拆分。在区块链执行过程中,交易主要分为转账交易与其余涉及合约操作的交易,转账交易可只调用账户 数据库 ,而合约交易则根据具体情况调用账户与合约数据库。整个交易执行步骤如下:首先执行模块标记区块开始执行,然后按顺序解析交易并在 虚拟机 中进行交易的执行,根据交易的不同类型读取数据库,获得交易对于底层数据库的 修改 集,最终在需要提交区块的时候将修改集刷入数据库。本发明解决了传统 区块链账本 数据存储的分库问题,提升了区块链存储的效率和灵活性。,下面是一种基于账户分类的链交易执行与数据存储方法专利的具体信息内容。

1.一种基于账户分类的链交易执行与数据存储方法,其特征在于,将账户体系区块链的账户分为普通账户类型与合约账户类型,并将区块链账本数据分为账户数据和合约数据两个部分进行存储,每一个合约账户将拥有对应的合约数据。
所述的区块链交易执行与数据存储包括如下步骤:
S1:标记当前区块的区块号,作为开始执行该区块的标志;
S2:依次遍历当前区块中的交易,使用虚拟机解析,如果交易仅涉及账户数据库的操作,则读取账户数据库并在内存中标记该账户被修改,并记录该账户相应的更新值;如果是合约交易,仅读取合约数据库或根据需要同时读取账户数据库和合约数据库,并在内存中标记该合约被修改,并记录合约相应的更新值。
S3:完成交易遍历后,遍历当前区块修改的所有合约,将对应的账户标记为修改;计算每个被修改合约的新哈希值,将新哈希值置入相应账户中,计算整个账户数据库的新哈希值。
S4:将所有待修改数据通过批处理方式持久化到底层数据库,标记此区块处理完成。
S5:其他区块按照区块号的顺序也依次执行S1-S4,直至所有区块完成数据持久化。
2.根据权利要求1所述的基于账户分类的区块链交易执行与数据存储方法,其特征在于,在执行交易时,将针对存储的所有修改都额外记录一份操作记录并持久化,避免系统宕机后内存修改记录的丢失。
3.根据权利要求1所述的基于账户分类的区块链交易执行与数据存储方法,其特征在于,在执行一条交易之前,记录当前的修改集状态,在交易执行失败时,根据这条交易的修改集回滚区块链世界状态,完成回滚。
4.根据权利要求1所述的基于账户分类的区块链交易执行与数据存储方法,其特征在于,在执行完一个区块之后,将此区块的执行结果缓存,提前进行下一个区块的执行,当之前的区块获得确认,从缓存中读取执行结果并将其应用到底层数据库。

说明书全文

一种基于账户分类的链交易执行与数据存储方法

技术领域

[0001] 本发明涉及区块链技术、交易执行,尤其涉及一种基于账户分类的区块链交易执行与数据存储方法。

背景技术

[0002] 区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成。而目前区块链将执行获得的结果全部存储于一个数据库中,限制了其数据持久化的性能,不够灵活并且可用性不够高,为了保证区块链的高可用性、可拓展性,数据库分库是不可或缺的技术。

发明内容

[0003] 本发明的目的是针对现有技术的不足,提供一种基于账户分类的区块链交易执行与数据存储方法,能够提升区块链存储的性能、灵活性、可用性、可扩展性,增加其实用性。
[0004] 具体技术方案如下:
[0005] 一种基于账户分类的区块链交易执行与数据存储方法,将账户体系区块链的账户分为普通账户类型与合约账户类型,并将区块链账本数据分为账户数据和合约数据两个部分进行存储,每一个合约账户将拥有对应的合约数据。
[0006] 所述的区块链交易执行与数据存储包括如下步骤:
[0007] S1:标记当前区块的区块号,作为开始执行该区块的标志;
[0008] S2:依次遍历当前区块中的交易,使用虚拟机解析,如果交易仅涉及账户数据库的操作,则读取账户数据库并在内存中标记该账户被修改,并记录该账户相应的更新值;如果是合约交易,仅读取合约数据库或根据需要同时读取账户数据库和合约数据库),并在内存中标记该合约被修改,并记录合约相应的更新值。
[0009] S3:完成交易遍历后,遍历当前区块修改的所有合约,将对应的账户标记为修改;计算每个被修改合约的新哈希值,将新哈希值置入相应账户中,计算整个账户数据库的新哈希值。
[0010] S4:将所有待修改数据通过批处理方式持久化到底层数据库,标记此区块处理完成。
[0011] S5:其他区块按照区块号的顺序也依次执行S1-S4,直至所有区块完成数据持久化。
[0012] 进一步地,在执行交易时,将针对存储的所有修改都额外记录一份操作记录并持久化,避免系统宕机后内存修改记录的丢失。
[0013] 进一步地,在执行一条交易之前,记录当前的修改集状态,在交易执行失败时,根据这条交易的修改集回滚区块链世界状态,完成回滚。
[0014] 进一步地,在执行完一个区块之后,将此区块的执行结果缓存,提前进行下一个区块的执行,当之前的区块获得确认,从缓存中读取执行结果并将其应用到底层数据库。
[0015] 本发明的有益效果是:本发明的基于账户分类的区块链交易执行与数据存储方法允许区块链系统在数据不断增长的过程中,通过数据库分库获得数据存储性能、灵活性的提升,使区块链系统具有更高的可用性。附图说明
[0016] 图1为本发明的基于账户分类的区块链交易执行与数据存储方法的详细流程图

具体实施方式

[0017] 下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0018] 如图1所示,一种基于账户分类的区块链交易执行与数据存储方法,将账户体系区块链的账户分为普通账户类型与合约账户类型,并将区块链账本数据分为账户数据和合约数据两个部分进行存储,每一个合约账户将拥有对应的合约数据。
[0019] 该方法具体包括如下步骤:
[0020] S1:标记当前区块的区块号,作为开始执行该区块的标志。
[0021] S2:依次遍历区块中的交易,使用虚拟机解析,如果是转账等仅涉及账户数据库的操作,读取账户数据库并在内存中标记该账户被修改,并记录该账户相应新值;如果是合约交易,读取合约数据库(根据需要还可读取账户数据库),在内存中标记该合约被修改,并记录合约相应新值。
[0022] S3:完成交易遍历后,遍历当前区块修改的所有合约,将对应的账户标记为修改。计算每个被修改合约的新哈希值,将新哈希值置入相应账户中,计算整个账户数据库的新哈希值。
[0023] S4:最终,将所有待修改数据通过批处理方式持久化到底层数据库,标记此区块处理完成。
[0024] S5:其他区块按照区块号的顺序也依次执行S1-S4,直至所有区块完成数据持久化。
[0025] 为了避免系统宕机后内存修改记录的丢失,在执行交易的时候,将针对存储的所有修改都额外记录一份操作记录并持久化。
[0026] 在执行一条交易之前,记录当前的修改集状态,在交易执行失败时,根据这条交易的修改集回滚区块链世界状态,完成回滚。
[0027] 作为其中一种实施方式,在执行完一个区块之后,区块可能不会上获得确认,将此区块的执行结果缓存,提前进行下一个区块的执行,当之前的区块获得确认,从缓存中读取执行结果并将其应用到底层数据库。
[0028] 本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈