-
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 { | ||
|
Contributor
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?
Contributor
Author
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
Contributor
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?
Contributor
Author
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