Fabric的账本包含两部分:World state和区块链。World state通常使用数据库保存一组账本当前的状态值,这样就不用遍历所有的交易日志去计算当前的状态值,通常使用key-value键值对表示,状态值可被创建,更新和删除。区块链记录着决定World state状态的交易日志。交易的信息会收集起来追加到区块链,一旦写入,就不能修改。链码包中的删除功能是指从World state中删除指定的状态值,而区块链中的数据不会被删除,会增加一条新的交易记录“记录什么时间谁删除了什么数据”。预置链码包中已提供getHistory方法,线下业务系统可通过调用该方法获取到数据所有的增删改记录。
举例说明(简单说明删除功能,不代表获取历史记录只返回如下信息):保存test的值为a,更新test的值为b,此时获取test值为b,获取历史记录就会得到以下两条记录:1、test:a 2、test:b ,然后删除 test,获取test值提示查询的信息不存在,但是获取历史记录就会得到三条记录:1、test:a 2、test:b 3、已删除。