-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Nonce account migration and re-enabling durable nonce transactions #25787
Comments
An alternative to the |
Trent informed me there are ~60k, so that's probably a deal-breaker for that alternative ^ |
I think it's better to avoid runtime specific changes whenever possible |
Hi, I have a question
Is anyone must be the nonce account authority? or anyonce can upgrade any nonce account? |
The authority will not need to sign for the nonce account upgrade. Anyone can upgrade any nonce account and the upgrade can only happen once. |
This is awesome. Really excited for this barrage of fixes. I've read through this plan, and most of the source, and have concluded that – except for maybe wanting to add the |
I don't think any web3 changes are needed. The explorer could be updated to parse the new instruction though. It makes use of the parsed RPC response rather than relying on web3 parsing methods. |
Heya! thx for tracking this so nicely.
|
@ptrdsh audits are done, releases and feature activation will start next week, but each one needs an epoch. |
@aeyakovenko that is no longer necessary. We can activate them all at the same epoch.
@ptrdsh The main change is that the nonce account cannot be used for durable transactions until it is advanced once. If you execute either of |
Are durable nonces activated or not yet? |
They are activated on testnet and devnet. |
This comment was marked as off-topic.
This comment was marked as off-topic.
Durable nonce transactions have been re-enabled on mainnet-beta and also fixed on devnet and testnet clusters. Security audit reports should be publicly viewable soon. |
Problem
Durable nonce transactions were disabled after they contributed to the mainnet-beta outage on June 1st. Under certain circumstances, durable nonce transactions could be re-processed if they previously failed. For more details, read the outage report here: https://solana.com/news/06-01-22-solana-mainnet-beta-outage-report-2
Before re-enabling durable nonce transactions, the re-processing issue needs to be fixed.
Proposed Solution
Ensure that new nonce transactions cannot be processed as normal transactions by no longer using raw blockhashes for durable nonces: separates durable nonce and blockhash domains #25744
hash("NONCE_BLOCKHASH", recent_blockhash)
as the nonce hash.separate_nonce_from_blockhash
andenable_durable_nonce
separate_nonce_from_blockhash
feature is activated:enable_durable_nonce
feature unless another nonce issue is identifiedUpgradeNonceAccount
which can be executed by anyone to migrate a nonce account from the old version to the new version.Ensure that past transactions cannot be processed as nonce transactions by rejecting any durable nonce transaction that uses a raw blockhash: permanently disables durable nonces with chain blockhash domain #25788
Ensure that nonce transactions always advance the nonce hash so that they cannot be processed again
Ensure that nonce accounts can only be advanced by the nonce authority: Reject durable nonce transactions not signed by authority #25831
Rollout Progress
Audits (scheduled to be finished by Friday, June 10th)
Release the patches in a new v1.9 and v1.10 release [v1.9.29 and v1.10.25 have all patches]
Activate features on testnet and devnet clusters
Wait for 95% of mainnet-beta staked validators to upgrade to v1.9.29 / v1.10.25
Wait for mainnet-beta RPC nodes to upgrade to v1.9.29 / v1.10.25
Activate features on mainnet-beta cluster
Automate nonce upgrades on the testnet cluster
Automate nonce upgrades on the devnet cluster
Automate nonce upgrades on the mainnet-beta cluster
Communication
solana nonce
andsolana nonce-account
will not work correctly after nonce accounts are upgraded0
will need to be updated to properly parse nonce accounts that have been upgraded to version1
. The data layout is otherwise unchanged. (Note that the web3NonceAccount.fromAccountData
method was implemented to be forwards compatible and is not impacted)The text was updated successfully, but these errors were encountered: