-
Notifications
You must be signed in to change notification settings - Fork 38.7k
Introduce waitFeesChanged() mining interface #30443
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
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code CoverageFor detailed information about the code coverage, see the test coverage report. ReviewsSee the guideline for information on the review process. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
3efa63f to
cd0d9fc
Compare
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443 This commit changes the C++ Mining interface without changing the corresponding Capn'Proto interface. The capnp interface is updated the next commit.
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443 This commit updates the Cap'n Proto Mining interface after updating the C++ Mining interface last commit.
|
@sdaftuar @sipa I made a branch sv2-cluster that combines #28676 with #29432: The main commit is f646977. It slightly changes the The Template Provider then uses that to see if sending a new It still takes 20-30ms on mainnet to create a template, without or the cluster mempool changes. I guess It doesn't have to be very precise. The user can configure |
cd0d9fc to
b9da31b
Compare
|
Rebased after #30356 landed. Changed |
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443 This commit changes the C++ Mining interface without changing the corresponding Capn'Proto interface. The capnp interface is updated the next commit.
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443 This commit updates the Cap'n Proto Mining interface after updating the C++ Mining interface last commit.
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443 This commit changes the C++ Mining interface without changing the corresponding Capn'Proto interface. The capnp interface is updated the next commit.
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443 This commit updates the Cap'n Proto Mining interface after updating the C++ Mining interface last commit.
b9da31b to
57e8908
Compare
|
Added |
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443 This commit updates the Cap'n Proto Mining interface after updating the C++ Mining interface last commit.
Match the latest bitcoin#30443.
|
I'm moving this to Sjors#52. Since it's astronomically unlikely multiprocess will be in the upcoming v28.0 release, we have at least half a year to flesh out this interface. Hopefully cluster mempool will be further along by then, since that will inform the design. |
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443 This commit updates the Cap'n Proto Mining interface after updating the C++ Mining interface last commit.
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443 This commit changes the C++ Mining interface without changing the corresponding Capn'Proto interface. The capnp interface is updated the next commit.
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443 This commit updates the Cap'n Proto Mining interface after updating the C++ Mining interface last commit.
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443 This commit updates the Cap'n Proto Mining interface after updating the C++ Mining interface last commit.
Add interface changes from bitcoin#30409 bitcoin#30356 bitcoin#30440 bitcoin#30443
This adds
waitFeesChanged()to theMininginterface.The Stratum v2 protocol allows pushing out templates as fees in the mempool increase. This interface lets us know when it's time to do so.
Without Cluster Mempool however the implementation is "fake", instead returning every time a transaction is added to the mempool. So for now I'm keeping this draft. It's here to provide a complete and stable Mining interface for #30437 to build on.
Unlike the entire
Mininginterface so far, this is not a refactor. It adds new functionality.The current implementation is very similiar to how longpolling in
getblocktemplateworks, which checksgetTransactionsUpdatedevery 10 seconds.However once Cluster Mempool is added it will be cheap enough to frequently generate a block template, check if the fees have gone up enough and then return. That would cause a behaviour change if
getblocktemplatewere to usewaitFeesChanged(), which is why this PR does not touch the longpolling code.TODO: