-
Notifications
You must be signed in to change notification settings - Fork 160
fix handler csdb usage, fixes consensus error again #516
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -62,8 +62,10 @@ func handleMsgEthereumTx(ctx sdk.Context, k Keeper, msg types.MsgEthereumTx) (*s | |
|
||
// Prepare db for logs | ||
// TODO: block hash | ||
k.CommitStateDB.Prepare(ethHash, common.Hash{}, k.TxCount) | ||
k.TxCount++ | ||
if !st.Simulate { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. why is this the case? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. the txCount is used in the stateDB, and since a simulated tx is run only on the node it's submitted to, then this will cause the txCount/stateDB of the node that ran the simulated tx to be different than the other nodes, causing the consensus error There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ahh great catch! I can we document this on the comments? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. sure I'll open a follow up with comments! |
||
k.CommitStateDB.Prepare(ethHash, common.Hash{}, k.TxCount) | ||
k.TxCount++ | ||
} | ||
|
||
config, found := k.GetChainConfig(ctx) | ||
if !found { | ||
|
@@ -75,13 +77,15 @@ func handleMsgEthereumTx(ctx sdk.Context, k Keeper, msg types.MsgEthereumTx) (*s | |
return nil, err | ||
} | ||
|
||
// update block bloom filter | ||
k.Bloom.Or(k.Bloom, executionResult.Bloom) | ||
if !st.Simulate { | ||
// update block bloom filter | ||
k.Bloom.Or(k.Bloom, executionResult.Bloom) | ||
|
||
// update transaction logs in KVStore | ||
err = k.SetLogs(ctx, common.BytesToHash(txHash), executionResult.Logs) | ||
if err != nil { | ||
panic(err) | ||
// update transaction logs in KVStore | ||
err = k.SetLogs(ctx, common.BytesToHash(txHash), executionResult.Logs) | ||
if err != nil { | ||
panic(err) | ||
} | ||
} | ||
|
||
// log successful execution | ||
|
@@ -143,8 +147,10 @@ func handleMsgEthermint(ctx sdk.Context, k Keeper, msg types.MsgEthermint) (*sdk | |
} | ||
|
||
// Prepare db for logs | ||
k.CommitStateDB.Prepare(ethHash, common.Hash{}, k.TxCount) | ||
k.TxCount++ | ||
if !st.Simulate { | ||
k.CommitStateDB.Prepare(ethHash, common.Hash{}, k.TxCount) | ||
k.TxCount++ | ||
} | ||
|
||
config, found := k.GetChainConfig(ctx) | ||
if !found { | ||
|
@@ -157,12 +163,14 @@ func handleMsgEthermint(ctx sdk.Context, k Keeper, msg types.MsgEthermint) (*sdk | |
} | ||
|
||
// update block bloom filter | ||
k.Bloom.Or(k.Bloom, executionResult.Bloom) | ||
if !st.Simulate { | ||
k.Bloom.Or(k.Bloom, executionResult.Bloom) | ||
|
||
// update transaction logs in KVStore | ||
err = k.SetLogs(ctx, common.BytesToHash(txHash), executionResult.Logs) | ||
if err != nil { | ||
panic(err) | ||
// update transaction logs in KVStore | ||
err = k.SetLogs(ctx, common.BytesToHash(txHash), executionResult.Logs) | ||
if err != nil { | ||
panic(err) | ||
} | ||
} | ||
|
||
// log successful execution | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lol, we def need to fix this