feat(ethexe-tx-pool): Introduce basic tx-pool #4366
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a basic logic for the ethexe tx pool which works as following:
InputTask
is a task that is requested to be executed by the tx pool. The task is sent viaTxPoolInputTaskSender
sending end of the channel between the sender and the tx pool service. The sendind end is supplied to the main service and the rpc.InputTask
and calls corresponding tx pool core method to handle the task.InputTask::AddTransaction
task triggers tx pool core to 1) validate the transaction, 2) store it in dbInputTask::AddTransaction
is executed successfully the tx pool services sendsOutputTask::PropogateTransaction
to the main service.OutputTask::PropogateTransaction
by gossiping it to other nodes.InputTask::AddTransaction
task and sends it to the tx pool. If tx exists, it's not added to the storage.Here you can also find a tiny refactoring of the
ethexe-signer
which is all about clarifying comments, simplified API and moving types to their own modules.