v0.2.4-pre.004
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/011-V0_2_4_HTTP_BLOCKS_ECONOMICS_PLAN.md -->
|
||||
<!-- version: 2 -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# Plan `0.2.4` — HTTP Blocks + Economics + compliance HTTP finale
|
||||
|
||||
@@ -221,13 +221,26 @@ Les SIMDs `Review` liés au block-revenue sharing, notamment SIMD-0123, peuvent
|
||||
| `getBlockCommitment` | `slot` uniquement | `{commitment: array<u64> ou null, totalStake: u64}` | aucune config à inventer; préserver commitment nullable |
|
||||
| `getBlockHeight` | config contextuelle optionnelle `{commitment, minContextSlot}` | `u64` | réutiliser `SolanaContextConfig`; `minContextSlot` est transmis tel quel au runtime |
|
||||
| `getBlockProduction` | config optionnelle `{commitment, identity, range:{firstSlot,lastSlot?}}` | `SolanaRpcResponse<{byIdentity, range}>` | `identity` typée Pubkey; validation locale déterministe `lastSlot >= firstSlot` lorsque les deux sont fournis; préserver les couples `[leaderSlots, blocksProduced]` |
|
||||
| `getBlocks` | `[start]`, `[start,end]`, `[start,config]`, `[start,end,config]` | `Vec<u64>` | commitment au moins `confirmed`; conserver l'overload untagged du second paramètre; `end < start` donne `[]`; rejeter localement une différence `end-start > 500_000` |
|
||||
| `getBlocksWithLimit` | `start`, `limit`, config contextuelle optionnelle | `Vec<u64>` | commitment au moins `confirmed`; `limit <= 500_000`; `limit = 0` est valide et donne `[]` |
|
||||
| `getBlocks` | `[start]`, `[start,end]`, `[start,config]`, `[start,end,config]`; config `{commitment,minContextSlot}` | `Vec<u64>` | commitment au moins `confirmed`; transmettre `minContextSlot`; conserver l'overload untagged du second paramètre; `end < start` donne `[]`; rejeter localement une différence `end-start > 500_000` |
|
||||
| `getBlocksWithLimit` | `start`, `limit`, config contextuelle optionnelle `{commitment,minContextSlot}` | `Vec<u64>` | commitment au moins `confirmed`; transmettre `minContextSlot`; `limit <= 500_000`; `limit = 0` est valide et donne `[]` |
|
||||
| `getBlockTime` | `slot` uniquement | `i64 ou null` | préserver l'absence de timestamp; les cas cleaned/skipped/not available restent des erreurs RPC runtime, pas des valeurs synthétiques |
|
||||
| `getFirstAvailableBlock` | aucun paramètre | `u64` | requête exacte `params: []`; aucune config |
|
||||
| `getRecentPerformanceSamples` | `limit?` | tableau de `{slot,numTransactions,numSlots,samplePeriodSecs,numNonVoteTransactions?}` | défaut runtime `720`; maximum `720`; rejeter avant I/O `limit > 720`; préserver `numNonVoteTransactions` nullable/ancien runtime |
|
||||
| `minimumLedgerSlot` | aucun paramètre | `u64` | requête exacte `params: []`; conserver les erreurs ledger/runtime |
|
||||
|
||||
### Clarification runtime `pre.004` — config des ranges Blocks
|
||||
|
||||
Le réaudit d’implémentation de `pre.004` confirme dans Agave `v4.2.1` que `getBlocks` et `getBlocksWithLimit` consomment tous deux `RpcContextConfig`, et non un simple objet commitment. Le wrapper `RpcBlocksConfigWrapper` permet en plus à `getBlocks` de recevoir soit `end_slot`, soit cette config en deuxième position.
|
||||
|
||||
KSP doit donc réutiliser `SolanaContextConfig` et préserver les deux champs stables :
|
||||
|
||||
```text
|
||||
commitment
|
||||
minContextSlot
|
||||
```
|
||||
|
||||
La documentation publique n’affiche actuellement que `commitment` sur ces pages ; la source runtime stable prime ici conformément à `KSP-TRANSPORT-007`.
|
||||
|
||||
### `getBlock` — stratégie wire
|
||||
|
||||
`getBlock` est le plus gros fil de la release et reçoit une prerelease dédiée.
|
||||
@@ -378,9 +391,9 @@ getBlock result null
|
||||
getBlock numRewardPartitions présent/omis (SIMD-0118)
|
||||
getBlock rewards commission nullable + commissionBps présent/omis (SIMD-0291)
|
||||
getBlock transaction version numérique non nulle conservée (canary SIMD-0385)
|
||||
getBlocks [start,config] vs [start,end,config]
|
||||
getBlocks [start,config] vs [start,end,config] + minContextSlot transmis
|
||||
getBlocks range > 500_000 rejetée avant I/O
|
||||
getBlocksWithLimit 0 et > 500_000
|
||||
getBlocksWithLimit 0 et > 500_000 + minContextSlot transmis
|
||||
getRecentPerformanceSamples défaut/720/>720
|
||||
getBlockProduction lastSlot < firstSlot rejeté avant I/O
|
||||
getInflationReward ordre + null positionnels + commission/commissionBps présent/omis (SIMD-0291)
|
||||
|
||||
Reference in New Issue
Block a user