-
Notifications
You must be signed in to change notification settings - Fork 51
Closed
Labels
AUTO: Upstream UpdatesAuto-generated from tracking upstream reposAuto-generated from tracking upstream repos
Description
SIMD
Opened
Closed
- Update SIMD-0166 with feature key solana-foundation/solana-improvement-documents#314
- SIMD-0313: Drop unchained merkle shreds solana-foundation/solana-improvement-documents#313
- SIMD-0166: SBPF Dynamic stack frames solana-foundation/solana-improvement-documents#166
Agave Wiki
a52a1d6b824db896cb22f5bcdd6f4dcfd37c1211^..f1df6587da8b9a50e7020f8bdda0321289fc03f8
diff --git a/2025-07-02-Testnet-Rollback-and-Restart.md b/2025-07-02-Testnet-Rollback-and-Restart.md
new file mode 100644
index 0000000..85ee038
--- /dev/null
+++ b/2025-07-02-Testnet-Rollback-and-Restart.md
@@ -0,0 +1,122 @@
+## Edit
+As of 2025-07-03 16:00 UTC testnet is back online. The instructions below are no longer relevant. Nodes that haven't yet joined the cluster will need to update their shred version, download a snapshot, and start normally:
+
+ --expected-shred-version 9065 n+
+***
+This testnet restart is NOT urgent. Follow these instructions when you have time, but don’t skip sleep or disrupt other plans for this.
+
+## Summary
+|Attribute|Value|
+|---------|-----|
+|Validator version|Agave: v2.3.2 </br> Frankendancer: v0.603.20216|
+|Snapshot slot|343175552|
+|Restart slot|343175553|
+|Shred version|9065|
+|Expected bank hash|4oMrSXsLTiCc1X7S27kxSfGVraTCZoZ7YTy2skEB9bPk|
+
+
+## Step 1. Stop validator process if you haven’t already
+
+## Step 2: Install Latest Version
+This is necessary in order to create the correct snapshot in step 3.
+
+Agave: `agave-install init v2.3.2`
+
+Frankendancer: Install `v0.603.20216`
+
+## Step 3. Create snapshot
+This command creates a snapshot but removes 4 activated feature gate account.
+
+ agave-ledger-tool --ledger <ledger-path> create-snapshot n+ --incremental n+ --snapshot-archive-path <snapshot-path> n+ --hard-fork 343175552 n+ --deactivate-feature-gate n+ 2aQJYqER2aKyb3cZw22v4SL2xMX7vwXBRWfvS4pTrtED n+ LTsNAP8h1voEVVToMNBNqoiNQex4aqfUrbFhRH3mSQ2 n+ 5KLGJSASDVxKPjLCDWNtnABLpZjsQSrYZ8HKwcEdAMC8 n+ 6oMCUgfY6BzZ6jwB681J6ju5Bh6CjVXbd7NeWYqiXBSu n+ --enable-capitalization-change n+ -- 343175552 <snapshot-path>
+
+
+The output should include this at (or near) the end:
+```
+ Successfully created snapshot for slot 343175553, hash 4oMrSXsLTiCc1X7S27kxSfGVraTCZoZ7YTy2skEB9bPk, base slot: <BASE_SLOT>>: /home/sol/ledger-snapshots/incremental-snapshot-<BASE_SLOT>-343175553-<SNAPSHOT_HASH>.tar.zst
+ Capitalization change: -3814080 lamports
+ Shred version: 9065
+```
+
+The capitalization change is expected because we deactivated a feature gate.
+
+Note that each operator's snapshot file name may contain different base slot number and hash, but
+* the bank hash should be 4oMrSXsLTiCc1X7S27kxSfGVraTCZoZ7YTy2skEB9bPk
+* the second slot number should be 343175553
+* the shred version should be 9065
+
+Once you have created a snapshot move all the other snapshots to a backup directory, so your snapshot directory contains one full snapshot and one incremental snapshot. Note that the <BASE_SLOT> in these two filenames should match.
+
+ snapshot-<BASE_SLOT>-<BASE_SNAPSHOT_HASH>.tar.zst
+ incremental-snapshot-<BASE_SLOT>-343175553-<SNAPSHOT_HASH>.tar.zst
+
+If you fail to create a snapshot see the appendix for possible fixes.
+
+## Step 5: Update startup config and start your validator
+### Agave
+Add these arguments to your validator startup script:
+
+ --wait-for-supermajority 343175553 n+ --expected-shred-version 9065 n+ --expected-bank-hash 4oMrSXsLTiCc1X7S27kxSfGVraTCZoZ7YTy2skEB9bPk n+
+
+As it starts, the validator will load the snapshot for slot `343175553` and wait for 80% of the stake to come online before producing/validating new blocks.
+
+To confirm your restarted validator is correctly waiting for 80% stake, look for this periodic log message to confirm it is waiting:
+
+ INFO solana_core::validator] Waiting for 80% of activated stake at slot 343175553 to be in gossip...
+
+And if you have RPC enabled, ask it for the current slot:
+
+ solana --url http://127.0.0.1:8899 slot
+
+Any number other than `343175553` means you did not complete the steps correctly.
+
+Once started you should see log entries for “active stake” visible in gossip and “waiting for 80% of stake” to be visible. You can track these to see how the stake progresses.
+
+
+***
+
+## Appendix (use this only if step 3 failed)
+
+If you get an error like this:
+
+ Error: Slot 343175552 is not available
+
+Or this:
+
+ Unable to process blockstore from starting slot <slot> to 343175552; the ending slot is less than the starting slot. The starting slot will be the latest snapshot slot, or genesis if the --no-snapshot flag is specified or if no snapshots are found.
+
+Your snapshots directory contains a snapshot that is for a slot `>343175552`. If you also have a snapshot for slot `<=343175552` then move snapshots for slots `>343175552` to a backup directory and run the `agave-ledger-tool` command again. If you do not have a snapshot for slot `<=343175552` then you will need to download a snapshot
+
+If you successfully created a snapshot, resume the instructions above starting at Step 4. If you are unable to create a snapshot, follow the instructions below on downloading a snapshot.
+
+If you couldn’t produce your snapshot locally follow these appendix steps
+
+### Step 1: Download a snapshot from a known validator
+
+If you are unable to generate a snapshot locally for slot `343175553` you will need to download one from a known validator. Add these lines to your startup script.
+
+ --known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on n+ --expected-shred-version 9065 n+
+Remove the flag `--no-snapshot-fetch` in your startup script if it is present.
+
+### Step 2: After download, restart
+
+Verify that you have a new snapshot in your snapshot directory. If the snapshot is done downloading, stop your validator process.
+
+Add the flag `--no-snapshot-fetch` to your startup script
+
+Resume the instructions above starting at Step 4.
diff --git a/2025-07-03-Devnet-rollback-and-restart.md b/2025-07-03-Devnet-rollback-and-restart.md
new file mode 100644
index 0000000..73cc419
--- /dev/null
+++ b/2025-07-03-Devnet-rollback-and-restart.md
@@ -0,0 +1,119 @@
+## Edit
+As of 2025-07-03 16:10 UTC devnet is back online. The instructions below are no longer relevant. Nodes that haven't yet joined the cluster will need to update their shred version, download a snapshot, and start normally:
+
+ --expected-shred-version 29062 n+
+***
+This devnet restart is NOT urgent. Follow these instructions when you have time, but don’t skip sleep or disrupt other plans for this.
+
+## Summary
+|Attribute|Value|
+|---------|-----|
+|Validator version|Agave: v2.3.2 |
+|Snapshot slot|391843993|
+|Restart slot|391843994|
+|Shred version|29062|
+|Expected bank hash|TvMCp3TJJTQmpYyXh5E36wLkH9DqpmKZqXy882S8PnK|
+
+
+## Step 1. Stop validator process
+
+## Step 2: Install the Latest Version
+
+This is necessary in order to create the correct snapshot in step 3.
+
+Agave: `agave-install init v2.3.2`
+
+## Step 3. Create snapshot
+This command creates a snapshot but removes 2 activated feature gate account.
+
+ agave-ledger-tool --ledger <ledger-path> create-snapshot n+ --incremental n+ --snapshot-archive-path <snapshot-path> n+ --hard-fork <snapshot-slot> n+ --deactivate-feature-gate n+ 2aQJYqER2aKyb3cZw22v4SL2xMX7vwXBRWfvS4pTrtED n+ LTsNAP8h1voEVVToMNBNqoiNQex4aqfUrbFhRH3mSQ2 n+ --enable-capitalization-change n+ -- <snapshot-slot> <snapshot-path>
+
+
+The output should include this at (or near) the end:
+```
+ Successfully created snapshot for slot 391843994, hash TvMCp3TJJTQmpYyXh5E36wLkH9DqpmKZqXy882S8PnK, base slot: <BASE_SLOT>>: /home/sol/ledger-snapshots/incremental-snapshot-<BASE_SLOT>-391843994-<SNAPSHOT_HASH>.tar.zst
+ Capitalization change: -1907040 lamports
+ Shred version: 29062
+```
+
+The capitalization change is expected because we deactivated a feature gate.
+
+Note that each operator's snapshot file name may contain different base slot number and hash, but
+* the bank hash should be TvMCp3TJJTQmpYyXh5E36wLkH9DqpmKZqXy882S8PnK
+* the second slot number should be 391843994
+* the shred version should be 29062
+
+Once you have created a snapshot move all the other snapshots to a backup directory, so your snapshot directory contains one full snapshot and one incremental snapshot. Note that the <BASE_SLOT> in these two filenames should match.
+
+ snapshot-<BASE_SLOT>-<BASE_SNAPSHOT_HASH>.tar.zst
+ incremental-snapshot-<BASE_SLOT>-391843994-<SNAPSHOT_HASH>.tar.zst
+
+If you fail to create a snapshot see the appendix for possible fixes.
+
+## Step 4: Update startup config and start your validator
+### Agave
+Add these arguments to your validator startup script:
+
+ --wait-for-supermajority 391843994 n+ --expected-shred-version 29062 n+ --expected-bank-hash TvMCp3TJJTQmpYyXh5E36wLkH9DqpmKZqXy882S8PnK n+
+
+As it starts, the validator will load the snapshot for slot `391843994` and wait for 80% of the stake to come online before producing/validating new blocks.
+
+To confirm your restarted validator is correctly waiting for 80% stake, look for this periodic log message to confirm it is waiting:
+
+ INFO solana_core::validator] Waiting for 80% of activated stake at slot 391843994 to be in gossip...
+
+And if you have RPC enabled, ask it for the current slot:
+
+ solana --url http://127.0.0.1:8899 slot
+
+Any number other than `391843994` means you did not complete the steps correctly.
+
+Once started you should see log entries for “active stake” visible in gossip and “waiting for 80% of stake” to be visible. You can track these to see how the stake progresses.
+
+
+***
+
+## Appendix (use this only if step 3 failed)
+
+If you get an error like this:
+
+ Error: Slot <SNAPSHOT_SLOT> is not available
+
+Or this:
+
+ Unable to process blockstore from starting slot <slot> to 391843993; the ending slot is less than the starting slot. The starting slot will be the latest snapshot slot, or genesis if the --no-snapshot flag is specified or if no snapshots are found.
+
+Your snapshots directory contains a snapshot that is for a slot `>391843993`. If you also have a snapshot for slot `<=391843993` then move snapshots for slots `>391843993` to a backup directory and run the `agave-ledger-tool` command again. If you do not have a snapshot for slot `<=391843993` then you will need to download a snapshot
+
+If you successfully created a snapshot, resume the instructions above starting at Step 4. If you are unable to create a snapshot, follow the instructions below on downloading a snapshot.
+
+If you couldn’t produce your snapshot locally follow these appendix steps
+
+### Step 1: Download a snapshot from a known validator
+
+If you are unable to generate a snapshot locally for slot `391843994` you will need to download one from a known validator. Add these lines to your startup script.
+
+ --known-validator dv1ZAGvdsz5hHLwWXsVnM94hWf1pjbKVau1QVkaMJ92 n+ --expected-shred-version 29062 n+
+Remove the flag `--no-snapshot-fetch` in your startup script if it is present.
+
+### Step 2: After download, restart
+
+Verify that you have a new snapshot in your snapshot directory. If the snapshot is done downloading, stop your validator process.
+
+Add the flag `--no-snapshot-fetch` to your startup script
+
+Resume the instructions above starting at Step 4.
diff --git a/Feature-Gate-Tracker-Schedule.md b/Feature-Gate-Tracker-Schedule.md
index 01784ee..16028f9 100644
--- a/Feature-Gate-Tracker-Schedule.md
+++ b/Feature-Gate-Tracker-Schedule.md
@@ -20,12 +20,14 @@ The version floor is the current minimum supported software version for a cluste
| Key | SIMD | Agave Version | FD Version | Jito Version | Testnet | Devnet | Description | Owner |
|-----|------|---------------|------------|--------------|---------|--------|-------------|-------|
| LTsNAP8h1voEVVToMNBNqoiNQex4aqfUrbFhRH3mSQ2 | 0220 | v2.2.0 | v0.503.20214 | v2.2.0 | 804 | | Snapshots use Accounts Lt Hash | brooksprumo |
+| 5KLGJSASDVxKPjLCDWNtnABLpZjsQSrYZ8HKwcEdAMC8 | 0313 | v2.2.8 | v0.603.20216 | | 805 | | drop unchained Merkle shreds | AshwinSekar |
### Pending Testnet Activation
| Key | SIMD | Agave Version | FD Version | Jito Version | Testnet | Devnet | Description | Owner |
|-----|------|---------------|------------|--------------|---------|--------|-------------|-------|
-| 5KLGJSASDVxKPjLCDWNtnABLpZjsQSrYZ8HKwcEdAMC8 | | v2.2.8 | v0.603.20216 | | | | drop unchained Merkle shreds | AshwinSekar |
| 6oMCUgfY6BzZ6jwB681J6ju5Bh6CjVXbd7NeWYqiXBSu | 0256 | v2.2.7 | v0.501.20212 | | | | Raise Block Limits to 60M CU | bw-solana |
| 6M4oQ6eXneVhtLoiAr4yRYQY43eVLjrKbiDZDJc892yk | 0196 | v2.1.10 | v0.503.20214 | | | | Feature Gate: Migrate Stake program to Core BPF | 2501babe |
| F6UVKh1ujTEFK3en2SyAL3cdVnqko1FVEXWhmdLRu6WP | 0173, 0174 | v2.2.0 | v0.503.20214 | v2.2.0 | | | Feature Gate: Enables deployment and execution of SBPFv2 programs | Lichtso |
+| 5JsG4NWH8Jbrqdd8uL6BNwnyZK3dQSoieRXG5vmofj9y | 0180 | v2.3.0 | | | | | SIMD-0180: Use Vote Account Address To Key Leader Schedule | jstarry |
+| bn2puAyxUx6JUabAxYdKdJ5QHbNNmKw8dCGuGCyRrFN | 0222 | v2.2.0 | | | | | Fix alt_bn128_multiplication input length | samkim-crypto |
diff --git a/_Sidebar.md b/_Sidebar.md
index 6578aac..b031dc0 100644
--- a/_Sidebar.md
+++ b/_Sidebar.md
@@ -19,4 +19,4 @@
* **Migration**
* [Agave v2.0 Migration](Agave-v2.0-Transition-Guide)
* **Restart Instructions**
- * [2025-01-14 Testnet Restart](2025-01-14-Testnet-Rollback-and-Restart)
+ * [2025-07-02 Testnet Restart](2025-07-02-Testnet-Rollback-and-Restart)
diff --git a/feature-gate-tracker-schedule.json b/feature-gate-tracker-schedule.json
index 486d276..3bfa671 100644
--- a/feature-gate-tracker-schedule.json
+++ b/feature-gate-tracker-schedule.json
@@ -1232,9 +1232,7 @@
"Status": "2 - Ready for Devnet",
"Testnet Epoch": 804,
"Title": "Snapshots use Accounts Lt Hash"
- }
- ],
- "3 - Ready for Testnet": [
+ },
{
"Comms Required": null,
"Description": null,
@@ -1254,15 +1252,17 @@
],
"Planned Testnet Order": 4420,
"SIMD Links": [
- ""
+ "https://github.com/solana-foundation/solana-improvement-documents/blob/main/proposals/0313-drop-unchained-merkle-shreds.md"
],
"SIMDs": [
- ""
+ "0313"
],
- "Status": "3 - Ready for Testnet",
- "Testnet Epoch": "",
+ "Status": "2 - Ready for Devnet",
+ "Testnet Epoch": 805,
"Title": "drop unchained Merkle shreds"
- },
+ }
+ ],
+ "3 - Ready for Testnet": [
{
"Comms Required": null,
"Description": null,
@@ -1347,6 +1347,62 @@
"Status": "3 - Ready for Testnet",
"Testnet Epoch": "",
"Title": "Feature Gate: Enables deployment and execution of SBPFv2 programs"
+ },
+ {
+ "Comms Required": null,
+ "Description": null,
+ "Devnet Epoch": null,
+ "Feature ID": "5JsG4NWH8Jbrqdd8uL6BNwnyZK3dQSoieRXG5vmofj9y",
+ "Min Agave Versions": [
+ "v2.3.0"
+ ],
+ "Min FD Versions": [
+ ""
+ ],
+ "Min Jito Versions": [
+ ""
+ ],
+ "Owners": [
+ "jstarry"
+ ],
+ "Planned Testnet Order": 4710,
+ "SIMD Links": [
+ "https://github.com/solana-foundation/solana-improvement-documents/blob/main/proposals/0180-vote-account-leader-schedule.md"
+ ],
+ "SIMDs": [
+ "0180"
+ ],
+ "Status": "3 - Ready for Testnet",
+ "Testnet Epoch": "",
+ "Title": "SIMD-0180: Use Vote Account Address To Key Leader Schedule"
+ },
+ {
+ "Comms Required": null,
+ "Description": null,
+ "Devnet Epoch": null,
+ "Feature ID": "bn2puAyxUx6JUabAxYdKdJ5QHbNNmKw8dCGuGCyRrFN",
+ "Min Agave Versions": [
+ "v2.2.0"
+ ],
+ "Min FD Versions": [
+ ""
+ ],
+ "Min Jito Versions": [
+ ""
+ ],
+ "Owners": [
+ "samkim-crypto"
+ ],
+ "Planned Testnet Order": "",
+ "SIMD Links": [
+ "https://github.com/solana-foundation/solana-improvement-documents/blob/main/proposals/0222-fix-alt-bn128-multiplication-length-check.md"
+ ],
+ "SIMDs": [
+ "0222"
+ ],
+ "Status": "3 - Ready for Testnet",
+ "Testnet Epoch": "",
+ "Title": "Fix alt_bn128_multiplication input length"
}
],
"No Status": [
@@ -1872,7 +1928,7 @@
"Comms Required": null,
"Description": null,
"Devnet Epoch": null,
- "Feature ID": null,
+ "Feature ID": "7VVhpg5oAjAmnmz1zCcSHb2Z9ecZB2FQqpnEwReka9Zm",
"Min Agave Versions": [
""
],
@@ -1885,10 +1941,10 @@
"Owners": [],
"Planned Testnet Order": "",
"SIMD Links": [
- ""
+ "https://github.com/solana-foundation/solana-improvement-documents/blob/main/proposals/0242-static-nonce-account.md"
],
"SIMDs": [
- ""
+ "0242"
],
"Status": null,
"Testnet Epoch": "",
Metadata
Metadata
Assignees
Labels
AUTO: Upstream UpdatesAuto-generated from tracking upstream reposAuto-generated from tracking upstream repos