Issue created by aionick (on Monday Oct 15, 2018 at 14:27 GMT)
The JarEntrys created by the ImmortalDappModule do not explicitly set a modification time and so the default system time is used. The issue with this is that this produces different jars (viewed at the byte level) depending on when the jar is created. The kernel actually invokes the same transaction multiple times so that it can construct and validate blocks and transactions, and each invocation produces a merkel tree and the kernel will reject any transaction whose merkel root hash differs between invocations.
Issue created by aionick (on Monday Oct 15, 2018 at 14:27 GMT)
The
JarEntry
s created by theImmortalDappModule
do not explicitly set a modification time and so the default system time is used. The issue with this is that this produces different jars (viewed at the byte level) depending on when the jar is created. The kernel actually invokes the same transaction multiple times so that it can construct and validate blocks and transactions, and each invocation produces a merkel tree and the kernel will reject any transaction whose merkel root hash differs between invocations.