【技术实现步骤摘要】
事务执行方法、装置、设备和存储介质
[0001]本申请涉及区块链
,特别涉及一种事务执行方法、装置、设备和存储介质。
技术介绍
[0002]目前,客户端可以向区块链系统发送携带有SQL(Structured Query Language,结构化查询语言)语句的交易。区块链系统接收到客户端发送的交易后,通过执行该交易,可以实现对该交易携带的SQL语句的执行,然后根据SQL语句的执行结果对区块链账本进行操作。
[0003]上述过程中,通过将SQL语句携带于交易中,来实现SQL语句在区块链系统中的执行。但是相比于传统的RDBMS(Relational Database Management System,关系数据库管理系统),区块链系统中的SQL语句的执行缺少了事务的特性。因为目前在区块链系统中一条交易实际上就是一个事务,即一条SQL语句实际上就是一个事务,而传统的RDBMS可以将多条SQL语句的执行变为一个事务进行提交或回滚,所以目前区块链系统没有实现传统的RDBMS中对于多条SQL语句形成的事务的支持,从而在业务 ...
【技术保护点】
【技术特征摘要】
1.一种事务执行方法,其特征在于,应用于区块链系统,所述方法包括:接收到客户端发送的携带有启动事务语句的第一交易后,创建目标事务;接收所述客户端发送的多个第二交易,所述多个第二交易中的每个第二交易均携带有需所述目标事务执行的用于操作区块链账本的结构化查询语言SQL语句;每接收到所述客户端发送的一个第二交易,若所述一个第二交易携带的SQL语句用于修改所述区块链账本中的第一数据,则在所述目标事务对所述第一数据加锁的情况下,根据所述一个第二交易携带的SQL语句修改所述第一数据;若接收到所述客户端发送的携带有提交语句的第三交易,则对所述区块链账本中被所述目标事务加锁的所有数据进行解锁,以对所述目标事务执行的多个SQL语句的修改数据进行提交。2.如权利要求1所述的方法,其特征在于,所述方法还包括:每接收到所述客户端发送的一个第二交易,对所述一个第二交易携带的SQL语句进行解析,得到解析结果,所述解析结果包括键值对和操作类型;若所述操作类型为修改类型,则根据所述键值对中的key值在所述区块链账本中查找对应的数据作为所述一个第二交易携带的SQL语句需修改的所述第一数据。3.如权利要求1所述的方法,其特征在于,所述区块链账本中的数据具有一条或多条版本记录,所述版本记录包括数据值、事务标识和版本号,所述事务标识为生成所述版本记录的事务的标识;所述在所述目标事务对所述第一数据加锁的情况下,根据所述一个第二交易携带的SQL语句修改所述第一数据,包括:若所述第一数据的版本号最大的版本记录中的版本号不是锁版本号,则在所述区块链账本中为所述第一数据新增一条版本号为所述锁版本号、事务标识为所述目标事务的标识的版本记录,以使所述目标事务对所述第一数据加锁,所述锁版本号是版本号所能取得的最大值;或者,若所述第一数据的版本号最大的版本记录中的版本号是所述锁版本号、且事务标识是所述目标事务的标识,则确定所述第一数据已被所述目标事务加锁;根据所述一个第二交易携带的SQL语句对所述第一数据的版本记录中版本号为所述锁版本号的数据值进行修改。4.如权利要求3所述的方法,其特征在于,所述对所述区块链账本中被所述目标事务加锁的所有数据进行解锁,包括:为所述目标事务分配提交版本号;将所述区块链账本中版本号为锁版本号、且事务标识为所述目标事务的标识的所有版本记录中的版本号均修改为所述目标事务的提交版本号,以对所述区块链账本中被所述目标事务加锁的所有数据进行解锁。5.如权利要求3所述的方法,其特征在于,所述方法还包括:每接收到所述客户端发送的一个第二交易,若所述一个第二交易携带的SQL语句用于读取所述区块链账本中的第二数据,则判断所述第二数据是否被所述目标事务加锁;若所述第二数据已被所述目标事务加锁,则读取所述第二数据的版本记录中版本号为所述锁版本号的数...
【专利技术属性】
技术研发人员:张珂杰,尚璇,陶烨琪,邱炜伟,李伟,
申请(专利权)人:杭州趣链科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。