暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss 账本数据库的概念与函数

MTL 2022-11-09
201

1、什么是账本数据库:

账本数据库融合了区块链思想,将用户操作记录至两种历史表中:用户历史表和全局区块表。当用户创建防篡改用户表时,系统将自动为该表添加一个hash列来保存每行数据的hash摘要信息,同时在blockchain模式下会创建一张用户历史表来记录对应用户表中每条数据的变更行为;而用户对防篡改用户表的一次修改行为将记录至全局区块表中。由于历史表具有只可追加不可修改的特点,因此历史表记录串联起来便形成了用户对防篡改用户表的修改历史。

用户历史表命名和结构如下:

表 1 用户历史表blockchain.<schemaname>_<tablename>_hist所包含的字段

字段名

类型

描述

rec_num

bigint

行级修改操作在历史表中的执行序号。

hash_ins

hash16

INSERT或UPDATE操作插入的数据行的hash值。

hash_del

hash16

DELETE或UPDATE操作删除的数据行的hash值。

pre_hash

hash32

当前用户历史表的数据整体摘要。

表 2 hash_ins与hash_del场景对应关系

-

hash_ins

hash_del

INSERT

(√) 插入行的hash值

DELETE

(√) 删除行的hash值。

UPDATE

(√) 新插入数据的hash值

(√) 删除前该行的hash值。


2、账本数据库的函数

  • get_dn_hist_relhash(text, text)

    描述:返回指定防篡改用户表的表级数据hash值。该函数仅供分布式使用。

    参数类型:text

    返回值类型:hash16

  • ledger_hist_check(text, text)

    描述:校验指定防篡改用户表的表级数据hash值与其对应历史表hash一致性。

    参数类型:text

    返回值类型:Boolean

  • ledger_hist_repair(text, text)

    描述:修复指定防篡改用户表对应的历史表hash值,使之与用户表hash一致,返回hash差值。

    参数类型:text

    返回值类型:hash16

  • ledger_hist_archive(text, text)

    描述:归档指定防篡改用户表对应的历史表至审计日志目录中hist_back文件夹下。

    参数类型:text

    返回值类型:Boolean

  • ledger_gchain_check(text, text)

    描述:校验指定防篡改用户表对应的历史表hash与全局历史表对应的relhash一致性。

    参数类型:text

    返回值类型:Boolean

  • ledger_gchain_repair(text, text)

    描述:修复验指定防篡改用户表在全局历史表中的relhash,使之与其历史表hash一致,返回hash差值。

    参数类型:text

    返回值类型:hash16

  • ledger_gchain_archive(void)

    描述:归档全局历史表至审计日志目录中hist_back文件夹下。

    参数类型:void

    返回值类型:Boolean

  • hash16in(cstring)

    描述:将输入16进制字符串转化成内部hash16形式。

    参数类型:cstring

    返回值类型:hash16

  • hash16out(hash16)

    描述:将内部hash16类型的数据转码转化为16进制cstring类型。

    参数类型:hash16

    返回值类型:cstring

  • hash32in(cstring)

    描述:将输入16进制字符串(32个字符)转化成内部类型hash32形式。

    参数类型:cstring

    返回值类型:hash32

  • hash32out(hash32)

    描述:将内部hash32类型的数据转码转化为16进制cstring类型。

    参数类型:cstring

    返回值类型:hash32

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论