-
Notifications
You must be signed in to change notification settings - Fork 16
Invalid TX corrupts the local node's blockchain state #70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Update:The above commits were attempting to bring more encapsulation to the ABCI package and while it looks like it was successful, after more thought I came to conclusion it wasn't. Writing object oriented code in GoLang while using pointers looks visually better, more comprehensive but it couples things even more because it pushes the shared state, dependency, behind more abstraction which only hides the problem under the carpet. A different approach is needed where the ABCI dependencies and all the states are properly decoupled from the legacy codebase. In order to do so, we should first have solid tests covering the bases to ensure the changes behave as expected. I will close this task by only documenting the ABCI and refactoring naming conventions across the ABCI implementation but won't introduce more changes till tests are in place. A new PR from branch: feature/70-consensus_db_pkgs_cleanup_no_breaking_changes will be created in few mins. |
…ocessor! There is another Struct called BlockProcessor that is completely different.
…ocessor! There is another Struct called BlockProcessor that is completely different.
Blocked until we have integration tests proving the issue and validating rest of Lightchain functionalities work in the current moment as expected. Blocked by: #76 |
Tracing is down, now blocked till all the absolutely necessary mainet tasks are finished and then we fix the sad path that corrupts local account's nonce. If this happens, here are instructions how to easily fix the problem: https://github.com/lightstreams-network/lightchain/#troubleshooting |
Fixed on last commit 0042c87 |
Steps to reproduce:
Additional details
The above behaviour is due to different states being maintained across the application. In this case, the issue is TX Pool forcing a new nonce and not unregistering invalid TXs that didn't get through.
How to reproduce
workload
truffle test and wait for first txs to be broadcastedSolution
ABCI::checkTx()
side than Ethereum inTxPool::validateTx()
, remove the TX from the pool or reset the nonce.Note: I will first submit a PR cleaning the codebase, adding doc adding more logging etc and then a separate PR with a fix
The text was updated successfully, but these errors were encountered: