-
Notifications
You must be signed in to change notification settings - Fork 106
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
feat(ethexe-tx-pool): Introduce basic tx-pool #4366
base: master
Are you sure you want to change the base?
Conversation
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.
after review call
… tx pool for that
…tex from the tx pool service stream and use channel to notify on readiness
…pc crate size and compilation time
PropogateTransaction(SignedTransaction), | ||
} | ||
|
||
impl Stream for TxPoolService { |
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.
@breathx I'm not sure that we really need it in the current design, as after TxPoolService::process returnes successfully Ok
in the main service tokio::select
statement, we can just call propagation procedures without any need in this intermediate stream
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.UPD
Changes in #4427 related to this PR
TxPoolTrait
,TxPoolCore
Transaction
trait is heavily changedEthexeTransaction
is changed, as all transactions.UPD
#4427 merged into this PR