Răsfoiți Sursa

Update SIMD statuses (#280)

* update simds

* fix 153 lints and update 88

* second linter fix
Ben Hawkins 6 luni în urmă
părinte
comite
3b876cba2b

+ 0 - 172
proposals/0009-lockout-violation-detection.md

@@ -1,172 +0,0 @@
----
-simd: '0009'
-title: Lockout Violation Detection
-authors:
-  - carllin
-  - ashwinsekar
-  - wencoding
-category: Standard
-type: Core
-status: Accepted
-created: 2022-12-12
-feature: (fill in with feature tracking issues once accepted)
----
-
-## Summary
-
-An algorithm designed to catch validators that violate lockout rules when
-voting.
-
-## Motivation
-
-Validators that violate lockout rules unfairly earn rewards and put cluster.
-consensus at risk
-
-## Alternatives Considered
-
-None
-
-## New Terminology
-
-None
-
-## Detailed Design
-
-Assume:
-
-1. A database that we will store vote information ingested from
-gossip/turbine, which in turn will be consulted to detect lockout violations
-as follows.
-
-2. Tracking of all SlotHashes on the canonical/rooted fork in the database
-for the last epoch.
-
-The following sections will go over the possible lockout violations that will
-be detected and punished.
-
-### Rooting a different fork
-
-If there are any votes made that have a root `R` missing from the rooted
-SlotHashes list, slash them on the rooted fork since they have committed
-to a different fork
-
-### Removing lockouts
-
-Attempting to illegally *remove* a lockout in a newer vote that that should
-have still existed based on an older vote is a lockout violation. We detect
-this as follows:
-
-1. For all non root slots `S` in each vote, track a range `(S, S + 2^n)` where
-`n` is the confirmation count. For each slot `S` we only have to track the
-greatest such lockout range in the database.
-
-2. For each new vote `V`, for each slot `S` in the vote, lookup in the database
-to see if there's some range `(X, X + 2^n)` where `S` is in this range, but
-`X` is missing from the vote `V`. This is a lockout violation because this
-implies that the validator made a vote where `S` popped off `X`, but the
-lockout on `X` from an earlier vote should have prevented that from happening.
-
-Note for each interval `(S, S + 2^n)` we also need to be able to lookup the
-vote. This is important for being able to pull up the votes later as part of a
-proof.
-
-### Reducing lockout
-
-Attempting to illegally *reduce* a lockout from an older vote in a newer vote
-is a lockout violation.
-
-The tricky bit of this is determining that one vote `V` is *older* than
-another vote `V'`. To this end, we track a flag `is_vote_earlier` whose usage
-we will highlight in the protocol below.
-
-1. We set `is_vote_earlier = false`.
-
-2. For each newly seen vote `V` made by a validator `X`, for each slot `S` in
-`V`:
-    - If `S` exists in the database:
-        - Compare the lockout `L_V` in the vote `V` on `S` against the greatest
-        lockout `L_D` in the database for that slot `S` made by that validator
-        `X`.
-            - If `L_V` < `L_D`, set `is_vote_earlier=true`.
-            - If `L_V` == `L_D`, continue.
-            - If `L_V > L_D`, check if the flag `is_vote_earlier=true`. If so,
-            this implies this vote `V` was *older* than some vote `V'` that
-            comitted the greater `S'` lockout to the database, yet `V` has a
-            lesser lockout on `S`, which means the validator reduced lockout on
-            `S` in a later vote. This is a lockout violation.
-    - If `S` does not exist in the database, the above `Removing lockouts`
-    section describes the protocol that will catch violations.
-
-### Reducing roots
-
-Reducing the root from earlier to later votes is a lockout violation. We detect
-this as follows:
-
-1. For each validator we track a rooted set in the database. We can remove an
-interval `(S, S + 2^n)` from the database once the slot becomes a root add it
-to a rooted set for this validator, and any new votes < root also get added to
-rooted set.
-
-2. When we see a vote with root N on the main fork, then we remove all
-intervals `(M, P)` where `M < N && P >= N` and  add `M` to the rooted set.
-
-So for example if we see:
-(Assume `{slot: confirmation count}` format)
-
-- `{root: 0, 1: 4, 3: 3, 5: 2, 7: 1}`
-
-- `{root: 5, 7: 1}`
-
-- Then we add `{1, 3}` to rooted set and remove their intervals from the
-interval tree because both of those are `< 5`, but have lockouts that extend
-past `5`
-
-Note here also that that artificially increasing your lockout is not a
-slashable offense (here we root 5 however 7 still has a conf count of 1),
-because adopting stricter lockout does not weaken commitment on any previously
-committed fork.
-
-Thus, if we then later saw a vote:
-
-- `{1: 2, 2: 1}` on a different fork we would say it's slashable because the
-lockout on 2 extended past a rooted slot 3 in the rooted fork, so 2 should have
-prevented the vote for 3 from being made, evicted
-- `{1: 2, 4: 1}` on a different fork, then because 3 was rooted and 3 does not
-exist in this vote, it's implied 3 was popped off. However, 3 was rooted so it
-couldn't have been popped off by 4, so that's slashable
-
-Ordering here is tricky though, for instance what if we saw vote 2 then vote 1?
-We would retroactively have to add `{1,3}` to the rooted set
-
-Also note here that evicted slots will not be added to the rooted set. For
-example, imagine:
-
-- `{root: 0, 1: 3, 3: 2, 4: 1}`
-
-- `{root: 0, 1: 4, 3: 3, 7: 2, 9: 1}`
-
-- `{root: 7, 9: 2, 10: 1}`
-
-Here we add `{1, 3}` to the rooted set, but 4 doesn't get added because
-`4 + 2^1 < 7`, so it does not overlap the root of `7`. This means the interval
-`(4, 4 + 2^1)` remains in the database. This is important because:
-
-- If we see a vote `{root: 0, 1: 3, 3: 2, 5: 1}` on another fork, this is only
-known to be slashable by seeing this interval `(4, 4 + 2^1)` (because it
-doesn't include `4` in the vote, but `4's` lockout should have prevented it
-from being popped off)
-- We don't want to add `4` to the rooted set to prevent slashing a valid vote
-on a different fork like `{root: 0, 1, 3, 10}`. If `4` was present in the
-rooted set, we would report an error because `10` should not have popped off `4`
-
-## Impact
-
-Validators snitching on voting misbehavior will be more effective.
-
-## Security Considerations
-
-None
-
-## Backwards Compatibility
-
-Not applicable.

+ 1 - 1
proposals/0075-precompile-for-secp256r1-sigverify.md

@@ -7,7 +7,7 @@ authors:
   - Dean (Web3 Builders Alliance)
 category: Standard
 type: Core
-status: Accepted
+status: Implemented
 created: 2024-02-27
 feature: sr11RdZWgbHTHxSroPALe6zgaT5A1K9LcE4nfsZS4gi (https://github.com/anza-xyz/agave/issues/3656)
 supersedes: "0048"

+ 2 - 2
proposals/0088-enable-core-bpf-programs.md

@@ -5,9 +5,9 @@ authors:
   - Joe Caulfield
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2023-11-07
-feature: (fill in with feature tracking issues once accepted)
+feature: N/A 
 ---
 
 ## Summary

+ 1 - 1
proposals/0089-programify-feature-gate-program.md

@@ -5,7 +5,7 @@ authors:
   - Joe Caulfield
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2023-11-21
 feature: 4eohviozzEeivk1y9UbrnekbAFMDQyJz5JjA9Y6gyvky
 supersedes: '0077'

+ 1 - 1
proposals/0105-dynamic-reserved-accounts-set.md

@@ -5,7 +5,7 @@ authors:
   - Justin Starry
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-01-17
 feature: 8U4skmMVnF6k2kMvrWbQuRUT3qQSiTYpSjqmhmgfthZu (https://github.com/solana-labs/solana/issues/34899)
 development:

+ 1 - 1
proposals/0118-partitioned-epoch-reward-distribution.md

@@ -4,7 +4,7 @@ title: Partitioned Epoch Rewards Distribution
 authors: Haoran Yi (Anza), Justin Starry (Anza), Tyera Eulberg (Anza)
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-02-16
 feature: PERzQrt5gBD1XEe2c9XdFWqwgHY3mr7cYWbm5V772V8 (https://github.com/anza-xyz/agave/issues/426)
 supersedes: '0015'

+ 1 - 1
proposals/0127-get-sysvar-syscall.md

@@ -5,7 +5,7 @@ authors:
   - Joe Caulfield (Anza)
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-03-15
 feature: CLCoTADvV64PSrnR6QXty6Fwrt9Xc6EdxSJE4wLRePjq
 development:

+ 1 - 1
proposals/0128-migrate-address-lookup-table-to-core-bpf.md

@@ -5,7 +5,7 @@ authors:
   - Joe Caulfield - Anza Technology
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-03-13
 feature: C97eKZygrkU4JxJsZdjgbUY7iQR7rKTr4NyDWo2E5pRm
 ---

+ 1 - 1
proposals/0137-curve25519-error.md

@@ -5,7 +5,7 @@ authors:
   - Sam Kim
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-04-08
 feature: FuS3FPfJDKSNot99ECLXtp3rueq36hMNStJkPJwWodLh (https://github.com/anza-xyz/agave/issues/1132)
 development:

+ 2 - 2
proposals/0138-deprecate-legacy-vote-instructions.md

@@ -5,9 +5,9 @@ authors:
   - Ashwin Sekar
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-04-09
-feature: (fill in with feature tracking issues once accepted)
+feature: 6Uf8S75PVh91MYgPQSHnjRAPQq6an5BDv9vomrCwDqLe
 ---
 
 ## Summary

+ 1 - 1
proposals/0140-migrate-config-to-core-bpf.md

@@ -5,7 +5,7 @@ authors:
   - Joe Caulfield - Anza Technology
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-04-02
 feature: 2Fr57nzzkLYXW695UdDxDeR5fhnZWSttZeZYemrnpGFV (https://github.com/anza-xyz/agave/issues/1378)
 development:

+ 2 - 2
proposals/0149-migrate-snapshot-epoch-stakes.md

@@ -4,9 +4,9 @@ title: Migrate Snapshot Serialized Epoch Stakes
 authors: Justin Starry (Anza)
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-05-09
-feature: (fill in with feature tracking issues once accepted)
+feature: N/A
 ---
 
 ## Summary

+ 1 - 1
proposals/0152-precompiles.md

@@ -5,7 +5,7 @@ authors:
   - Emanuele Cesena
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-06-03
 feature: ed9tNscbWLYBooxWA7FE2B5KHWs8A6sxfY8EzezEcoo
 development:

+ 3 - 1
proposals/0153-elgamal-proof-program.md

@@ -5,9 +5,11 @@ authors:
   - Sam Kim
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-06-13
+feature: zkhiy5oLowR7HY4zogXjCjeMXyruLqBwSWH21qcFtnv
 ---
+
 ## Summary
 
 Deprecate the existing ZK Token Proof program that is tailored for the SPL

+ 1 - 1
proposals/0159-relax-precompile-failure-constraint.md

@@ -4,7 +4,7 @@ title: Relax Precompile Failure Constraint
 authors: Justin Starry (Anza)
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-07-25
 feature: 9ypxGLzkMxi89eDerRKXWDXe44UY2z4hBig4mDhNq5Dp (https://github.com/anza-xyz/agave/issues/3245)
 ---

+ 2 - 2
proposals/0162-remove-accounts-executable-flag-checks.md

@@ -5,9 +5,9 @@ authors:
   - Alexander Meißner
 category: Standard
 type: Core
-status: Accepted
+status: Implemented
 created: 2024-07-16
-feature: TBD
+feature: FXs1zh47QbNnhXcnB6YiAQoJ4sGB91tKF3UFHLcKT7PM
 extends: 0093
 ---
 

+ 2 - 2
proposals/0163-lift-cpi-caller-restriction.md

@@ -5,9 +5,9 @@ authors:
   - Alexander Meißner
 category: Standard
 type: Core
-status: Accepted
+status: Implemented
 created: 2024-07-16
-feature: TBD
+feature: HcW8ZjBezYYgvcbxNJwqv1t484Y2556qJsfNDWvJGZRH
 ---
 
 ## Summary

+ 1 - 1
proposals/0175-disable-partitioned-rent-collection.md

@@ -6,7 +6,7 @@ category: Standard
 type: Core
 status: Accepted
 created: 2024-09-25
-feature: https://github.com/anza-xyz/agave/issues/4562
+feature: 2B2SBNbUcr438LtGXNcJNBP2GBSxjx81F945SdSkUSfC
 ---
 
 ## Summary

+ 1 - 1
proposals/0183-skip-rent-rewrites.md

@@ -5,7 +5,7 @@ authors:
   - brooks@anza.xyz
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-10-04
 feature: CGB2jM8pwZkeeiXQ66kBMyBR6Np61mggL7XUsmLjVcrw (https://github.com/solana-labs/solana/issues/26599)
 ---

+ 1 - 1
proposals/0191-enable-transaction-loading-failure-fees.md

@@ -5,7 +5,7 @@ authors:
   - Andrew Fitzgerald (Anza)
 category: Standard
 type: Core
-status: Accepted
+status: Activated
 created: 2024-11-06
 feature: PaymEPK2oqwT9TXAVfadjztH2H6KfLEB9Hhd5Q5frvP (https://github.com/anza-xyz/agave/issues/3244)
 supersedes:

+ 1 - 1
proposals/0215-accounts-lattice-hash.md

@@ -8,7 +8,7 @@ authors:
   - Sam Kim
 category: Standard
 type: Core
-status: Accepted
+status: Implemented
 created: 2024-12-20
 feature: LTHasHQX6661DaDD4S6A2TFi6QBuiwXKv66fB1obfHq
 development:

+ 1 - 1
proposals/0220-snapshots-use-accounts-lattice-hash.md

@@ -5,7 +5,7 @@ authors:
   - Brooks Prumo
 category: Standard
 type: Core
-status: Accepted
+status: Implemented
 created: 2025-01-08
 feature: LTsNAP8h1voEVVToMNBNqoiNQex4aqfUrbFhRH3mSQ2
 development:

+ 1 - 1
proposals/0223-removes-accounts-delta-hash.md

@@ -5,7 +5,7 @@ authors:
   - Brooks Prumo
 category: Standard
 type: Core
-status: Accepted
+status: Implemented
 created: 2025-01-13
 feature: LTdLt9Ycbyoipz5fLysCi1NnDnASsZfmJLJXts5ZxZz
 ---