亲,你好。fabric中交易的确认是以区块为单位的,假设一个区块中有2笔交易,两笔交易都是对k1做了修改,但是两笔交易都是单独发起的,模拟执行的时候彼此不知道对方的存在,所以在最开始读取k1的值的时候都是以上一个区块的k1值为准。这里的未提交的前序交易是针对交易2来说的,指的是交易1。当我们校验交易2的时候,发现k1在交易1中已经被修改了,但是交易2模拟的前提是k1在上一个区块提交后的值,这中间就有了前提差异,所以交易2无效。
因此交易验证的时候需要包括 未提交的前序交易。当然如果交易2没有操作k1,那么交易2仍然是有效的。
祝你学习愉快!