Péter Szilágyi
Péter Szilágyi
This part of the code has been reworked with some concurrency changes in statedb. IMO everything should be correct now (TM), but if something's still off for you, please ping...
If we do a round of benchmarks, we should probably apply @holiman's suggestion too.
I think we need to make a conscious decision here: either allow copy of only finalized states (then either implicitly finalize or error out); or allow copying dirty states too,...
This issue was fixed with a different pr.
I've tried to repro this on a local dev chain, but couldn't: ``` $ geth --dev console ``` ``` > eth.sendTransaction({from: eth.accounts[0], data: "0x60806040526001600055348015601457600080fd5b506075806100236000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806343c9250414602d575b600080fd5b60336035565b005b60008054600101905556fea265627a7a723158204ab640601aa22be0d859e025aa75f73ee1738552892def5cfef1eaaaa49a8f3f64736f6c634300050b0032"}) INFO [09-24|14:35:40.094] Submitted contract creation fullhash=0x448b70c65a88f4e8c521d93f21a700828d3950189e717fe81422c0c589aa317a...
Hmm, the gas used is funky. Are you sure your byte code mathes the solidity file? Either way, I did redeploy the bytecode from my compilation via remix and the...
Perhaps you are running a more complex suite with contract interactions? Could you share a repro that we could run standalone?
Ah, I think I see what the issue is. When you call `sdb.Commit(false)`, you essentially simulate a new block being started. This is valid and does exactly what block processing...
This "side effect" where slots get dirtied was introduced for Istanbul (actually, for Constantinople too, but reverted by Petersburg). That's why you've hit it only now, because before Istanbul, there...
Though, if sdb3 is then finalized, should it matter? Could it be that you reuse the same gasPool instance in 2 transaction invocations?