Skip to content
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

Support RBF #284

Closed
kayabaNerve opened this issue May 8, 2023 · 4 comments
Closed

Support RBF #284

kayabaNerve opened this issue May 8, 2023 · 4 comments
Labels
feature New feature or request processor

Comments

@kayabaNerve
Copy link
Member

Beyond needing a dedicated secondary signing loop, for re-signing a TX which has taken too long, we need to update the scheduler.

serai/processor/src/main.rs

Lines 221 to 227 in 0c9c1ae

for branch in branches {
substrate_mutable
.schedulers
.get_mut(key.as_ref())
.expect("didn't have a scheduler for a key we have a plan for")
.created_output(branch.expected, branch.actual);
}

This is the problematic block.

@kayabaNerve kayabaNerve added improvement This could be better processor feature New feature or request and removed improvement This could be better labels May 8, 2023
@kayabaNerve
Copy link
Member Author

I had an interesting idea where instead of supporting RBF, we create an anyone-can-spend output on each transaction. If it lags, anyone could use child-pays-for-parent to bump its priority.

Unfortunately, this doesn't work as a malicious actor could spend the output without RBF enabled. If they don't increase the fee rate, this wouldn't be an instance of CPFP, yet an honest volunteer wouldn't be able to perform CPFP due to the occupation of the output.

@kayabaNerve
Copy link
Member Author

mempoolfullrbf solves the above concern. If it's truly enabled by default now, it'd be the solution here.

@kayabaNerve
Copy link
Member Author

Resolved in above commit on the processor-smash branch.

@kayabaNerve
Copy link
Member Author

https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-28.0.md notes how mempoolfullrbf was enabled by default.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request processor
Projects
None yet
Development

No branches or pull requests

1 participant