-
Notifications
You must be signed in to change notification settings - Fork 313
Description
I would like to propose the missedtickets, existsmissedtickets, existsexpiredtickets, rebroadcastmissed, and notifyspentandmissedtickets RPCs be deprecated in the v1.7.0 release and then removed entirely in the release after that. The only known way these RPCs are used is to support wallet staking statistics, but due to the upcoming automatic revocations consensus change, wallets will not really need the RPCs to calculate the vast majority of the information anymore since they can detect missed and expired tickets through a combination of seeing the revocation and comparing the number of confirmations against the ticket purchase height.
Further, these RPCs are really not something that dcrd should be maintaining by default anyway because they have some fairly significant downsides:
- The set of missed tickets and revoked tickets are both unbounded which means they take up more and more resources over time
- With the upcoming automatic revocations consensus change, the entire notion of a missed category will effectively no longer exist
- The sets are already large enough that they take a non-trivial amount of RAM and I/O and will only become more burdensome over time
- Even though the missed category will effectively no longer exist, continued support of these RPCs requires the current ticket database and related consensus code to continue to be able to track and manipulate these unbounded sets
That final point is perhaps one of the most important ones, because the ticket database design can be significantly optimized due to the introduction of the automatic revocations consensus change so long as the RPCs in question are no longer supported.
Proposed Roadmap
If we decide to move forward with this, I would expect the v1.7.0 release to:
- Mark the relevant RPCs and supporting
blockchainandstakecode as deprecated
Then, in the following release:
- Remove the relevant RPCs and supporting
blockchainandstakecode