The invention discloses a block chain state storage method based on SQL database, the method in the chain initialization, creating a database, each contract can create a number of data tables, and the table structure and table data of SQL syntax CRUD operations based on the letter and put on some permissions interface call for other account. The node generates a database change log (log) after each transaction is executed, and the log is used as a continuous hash store for the world state to ensure consistent data of each node. This method solves the current block chain store only simple data structure, the data table structure widely used, support CRUD operations, and even cross contract combination query, enrich the chain of intelligent contract can express function, and reduce the difficulty of the chain docking system.
【技术实现步骤摘要】
一种基于SQL数据库的区块链状态存储方法
本专利技术在现有区块链协议和智能合约技术的基础上,添加了状态存储相关的协议,特别是基于SQL数据库的数据组织和存储方法。
技术介绍
区块链是一种新的分布式技术,由一个个顺序排列而成的交易组成块,再由一个个顺序排列而成的块组成链,每个块包含一个自增的高度作为编号,还有一个时间戳用于记载打包时间。智能合约扩展了原本简单的为地址记录余额的功能,可以让账户拥有丰富的状态数据,记录复杂的数据结构。目前智能合约技术的这些数据存储结构大都为顺序排列的半结构化数据,支持一些基础的数据类型和一些数组类数据结构。外部账户由事先定义的统一数据结构存储,合约账户由自定义的数据结构存储,这些数据结构经过序列化后变为二进制数据作为账户的状态,并经一系列哈希运算后得出世界状态根。这种半结构化数据无法像目前广泛使用的SQL数据库一样,对数据按照表结构进行组织,也无法支持大数据或复杂的数据结构,更无法进行SQL语法的查询,造成了智能合约开发和外部系统对接上的麻烦。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供一种基于SQL数据库的区块链状态存储方法本专利技术的目的是通过以下技术方案实现的:一种基于SQL数据库的区块链状态存储方法,包括以下步骤(1)生成创世块配置文件,在进行基础配置之后,增加对SQL数据库软件选型、软件版本、协议版本、数据库名称、用户名、密码等的配置。所述协议版本的配置方式为:(1.1)在现有SQL基础协议上,指定对表、表结构和表数据的SQL语法增删改查操作。(1.2)删除现有SQL协议中会引发分布式系统不一致的功能,如随 ...
【技术保护点】
一种基于SQL数据库的区块链状态存储方法,其特征在于,包括以下步骤(1)生成创世块配置文件,在进行基础配置之后,增加对SQL数据库软件选型、软件版本、协议版本、数据库名称、用户名、密码等的配置。所述协议版本的配置方式为:(1.1)在现有SQL基础协议上,指定对表、表结构和表数据的SQL语法增删改查操作。(1.2)删除现有SQL协议中会引发分布式系统不一致的功能,如随机数random等函数。(1.3)修改现有SQL协议中关于当前时间的实现方式,由从本地系统时间获取改为从所属高度块的时间戳获取,如now、today等函数。(2)在创世块中添加基础账户的智能合约模板,确定基础公私钥账户的数据表结构。(3)所有节点根据创世块配置文件进行初始化,按照配置新建一个数据库实例,生成数据库日志(log),将数据库日志(log)哈希后做为初始世界状态哈希(state_hash);所述节点拥有完全读写权限,同时为节点外系统创建只读权限账户。(4)用户发起部署合约交易,在合约内部创建若干张表,并指定合约内唯一的表名称(name);出块节点收到用户发起的部署合约交易,若发起的交易是创建账户交易,则读取基础账户 ...
【技术特征摘要】
1.一种基于SQL数据库的区块链状态存储方法,其特征在于,包括以下步骤(1)生成创世块配置文件,在进行基础配置之后,增加对SQL数据库软件选型、软件版本、协议版本、数据库名称、用户名、密码等的配置。所述协议版本的配置方式为:(1.1)在现有SQL基础协议上,指定对表、表结构和表数据的SQL语法增删改查操作。(1.2)删除现有SQL协议中会引发分布式系统不一致的功能,如随机数random等函数。(1.3)修改现有SQL协议中关于当前时间的实现方式,由从本地系统时间获取改为从所属高度块的时间戳获取,如now、today等函数。(2)在创世块中添加基础账户的智能合约模板,确定基础公私钥账户的数据表结构。(3)所有节点根据创世块配置文件进行初始化,按照配置新建一个数据库实例,生成数据库日志(log),将数据库日志(log)哈希后做为初始世界状态哈希(state_hash);所述节点拥有完全读写权限,同时为节点外系统创建只读权限账户。(4)用户发起部署合约交易,在合约内部创建若干张表,并指定合约内唯一的表名称(name);出块节点收...
【专利技术属性】
技术研发人员:谢晗剑,岳利鹏,
申请(专利权)人:杭州秘猿科技有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。