-
Notifications
You must be signed in to change notification settings - Fork 992
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
WIP: Tracking Transaction Pool Implementation #48
WIP: Tracking Transaction Pool Implementation #48
Conversation
…id instead of hash
…Contains lots of cleanup on the internal flow. Still TODO: Double spend within orphans detection
…rphans internal conflicts
…atly simplifies the logic.
…ck acceptance test.
…ut block reconciliation test; bugfix for mark_transaction
…ans data structures
…action to Pool from TransactionPool
/// Happens under an exclusive mutable reference gated by the write portion | ||
/// of a RWLock. | ||
/// | ||
pub fn add_to_memory_pool(&mut self, source: TxSource, tx: transaction::Transaction) -> Result<(), PoolError> { |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
You win the prize of the largest, most comprehensive pull request to date!! About the PR itself, I just had one minor comment. The rest looked reasonable to me. Regarding your open questions:
Now for process, I'll have a need for a transaction pool soon, so I'm tempted to merge this very soon. Anything you'd absolutely want to finish up first? Otherwise I believe everything that's missing could be addressed in more isolated, smaller PRs. What do you think? |
Thanks for the comments! Currently, to its detriment, the transaction pool is almost entirely disconnected from the rest of the system. This does work to our advantage in terms of merging early without too much pain, however. I'm happy to do whatever you feel makes sense. IMO, the highest priority of the remaining tasks is to get mining transaction selection working. I have an implementation in the pipeline based on a topological graph sorting algorithm, but if you prefer I can merge in the simplest possible solution to my branch (which would be returning the list of "roots" of the pool set) at an earlier time. Given the current isolation between the pool and everything else, I have no preference between doing this before or after merging in the pool chunk. |
Minimum transaction selection is now merged into my branch; still working on the cleanup in |
|
That looked good, merged. Congrats and thanks for the awesome work! |
Howdy,
This pull request covers the current state of the transaction pool implementation I've been working on. I'd love some feedback- I know there's stuff that can be improved.
This is a WIP, the things under "What's missing" are being worked on and will get merged into this branch as they near completion.
What's there:
What's missing:
Open questions:
Thanks for any comments and review!