-
Notifications
You must be signed in to change notification settings - Fork 791
RBF Timelines #2847
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
RBF Timelines #2847
Conversation
This is cool - thanks for working on this!
I disagree with this. Looking at the RBF data I've collected over the past years it's quite common that e.g. two or even multiple (like 20+ transactions) transactions are merged into one. Happy to extract some statistics on this if you're interested. IMO a tree like structure is the way to go here.
Right. Might make sense have two ways to sort here:
|
Thanks for the feedback!
Admittedly this was based on only a very unscientific survey of the last few days. I'd love to see some proper statistics, if it's not too much of a hassle to extract. |
This are stats based on the replacements my Bitcoin Core node has seen between 2022-04-01 and 2022-11-01. There were a total of 1344596 replacements during these 7 months. My intuition with "quite common" in #2847 (comment) might have been biased a bit as I've spent the most time looking at the more interesting multi-replacements. You'll be fine in >98% of the cases with a simple timeline.
|
awesome, thank you! |
3b0dcd4
to
cf6c07f
Compare
cf6c07f
to
b0e7147
Compare
b0e7147
to
a7f123c
Compare
Rebased on master, fixed some bugs, and removed dependency on PR #2845. |
Suggestions
Bugs:
It looks like the E2E "shows RBF transactions properly" fail and needs to be updated |
771a19d
to
078a5e7
Compare
Implemented
Fixed:
|
@mononaut please rebase on master |
0a0ea16
to
aef9070
Compare
Rebased on master, made compatible with recent disk cache changes, and added some other minor frontend improvements. |
frontend/src/app/components/transaction/transaction.component.html
Outdated
Show resolved
Hide resolved
aef9070
to
b4a6a36
Compare
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.
tested ACK @ [c9ed2e1]
c9ed2e1
to
b325f8c
Compare
rebased on current master [8db7326] |
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.
tested ACK @ [b325f8c]
This PR attempts to better visualize RBF events.
It adds a new section to the transaction page (where relevant), showing a timeline of replacements:
Each 'node' on the timeline is a different version of the transaction, with the one currently being viewed circled in purple. Clicking on a node navigates to that tx version.
If a version has been mined, the corresponding node is circled in green.
The timeline scrolls horizontally to fit longer sequences of replacements, and updates via websocket as subsequent replacements come in.
The PR also adds a new page listing (up to 25 sets of) the latest RBF events, using the same timeline components:
The listing updates in real time via websocket, and includes a toggle to switch between all RBF events and only Full RBF replacements if the instance is running Full RBF.
The page isn't linked anywhere on the main site yet. Perhaps we could add a mini widget version to one of the dashboards?
Limitations
Multi-replacementsTechnically, a single transaction can replace multiple others by fee, which would turn our linear timeline into more like a tree structure. In practice, that doesn't seem to happen very often, if ever.This implementation breaks any trees into separate linear leaf-to-root timelines, and only shows one such timeline on each transaction page.(edit) The PR now supports arbitrary trees of replacements, e.g:
Pagination
Grouping replacements into timelines makes sorting by recency unstable, so pagination is difficult.
Todo
Extensions for future PRs
/rbf
page