校验账本数据一致性
前提条件
数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时
段内有账本操作记录结果产生。
背景信息
账本数据库校验功能目前提供两种校验接口,分别为:ledger_hist_check(text,...和
ledger_gchain_check(text...。普通用户调用校验接口,仅能校验自己有权限访问的表。
校验防篡改用户表和用户历史表的接口为pg_catalog.ledger_hist_check,操作
为:
SELECT pg_catalog.ledger_hist_check(schema_name text,table_name text);
如果校验通过,函数返回t,反之则返回f。
校验防篡改用户表、用户历史表和全局区块表三者是否一致的接口为
pg_catalog.ledger_gchain_check,操作为:
SELECT pg_catalog.ledger_gchain_check(schema_name text, table_name text);
如果校验通过,函数返回t,反之则返回f。
操作步骤
步骤1 校验防篡改用户表ledgernsp.usertable 与其对应的历史表是否一致。
postgres=# SELECT pg_catalog.ledger_hist_check('ledgernsp', 'usertable');
查询结果如下:
ledger_hist_check
-------------------
t
(1 row)
该结果表明:防篡改用户表和用户历史表中记录的结果能够一一对应,保持一致。
步骤2 查询防篡改用户表ledgernsp.usertable 与其对应的历史表以及全局区块表中关于该表
的记录是否一致。
postgres=# SELECT pg_catalog.ledger_gchain_check('ledgernsp', 'usertable');
查询结果如下:
GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
212
ledger_gchain_check
---------------------
t
(1 row)
查询结果显示,上述三表中关于ledgernsp.usertable 的记录保持一致,未发生篡改行为。
----结束