..

ledger entry not valid for type

背景

修改一个需求,再次运行底层系统的时候, 报运行时错误,出现了该提示。

操作

在此之前主要修改了一个地方,就是账本的 SLE 结构新加了一个Type字段。 其实这是个好习惯,每次修改后测试通过一处就 commit 一处,像这样出现了问题,也能快速的定位。
找到 runtime error 的代码,看了下实现,就是在每次启动的时候,会对本地的账本类型在一个再次交易,防止在此期间有恶意修改数据的情况发生,因为新的结构跟老结构存在差异,于是系统就认为当前的数据已经发生了破坏,提示了这个runtime error。

解决

把本地的测试数据删除,使用新的结构就可以了。 本地没有了数据,就不存在校验这一行为,再用新数据后,直接操作的新数据,同时保证了结构的一致。


Nothing