v0.2.9-pre.013-fix.001
This commit is contained in:
182
deltas/0.2.9/pre.013-fix.001.md
Normal file
182
deltas/0.2.9/pre.013-fix.001.md
Normal file
@@ -0,0 +1,182 @@
|
||||
<!-- file: deltas/0.2.9/pre.013-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.2.9-pre.013-fix.001` — smoke PublicNode streaming + Testnet
|
||||
|
||||
## 1. Base
|
||||
|
||||
```text
|
||||
livraison : 0.2.9-pre.013
|
||||
Cargo : 0.2.9-pre.13
|
||||
```
|
||||
|
||||
Le gate déterministe opérateur de `pre.013` est vert jusqu'au smoke live :
|
||||
|
||||
```text
|
||||
cargo fmt --all PASS
|
||||
Rust workspace audit clean / 0 export candidate
|
||||
Markdown table audit clean, 87 tableaux / 254 fichiers
|
||||
cargo check --workspace PASS
|
||||
cargo clippy --workspace --all-targets PASS sans warning
|
||||
Transport unit 383/383
|
||||
Transport public API 49/49
|
||||
Transport release completeness 43/43
|
||||
Transport doctests 4/4
|
||||
workspace dependency canary 3/3
|
||||
```
|
||||
|
||||
Le smoke initial atteint le service PublicNode Mainnet mais `GetVersion` retourne `PERMISSION_DENIED`.
|
||||
|
||||
## 2. Correction du diagnostic
|
||||
|
||||
Cette réponse ne suffit pas à conclure qu'un `x-token` PublicNode est requis.
|
||||
|
||||
La surface Yellowstone upstream permet à un opérateur de désactiver les méthodes unary indépendamment du streaming `Subscribe`. PublicNode expose son service comme gateway Yellowstone gRPC public et aucune procédure d'authentification n'est retenue comme contrat KSP tant qu'elle n'est pas établie par une source provider suffisamment forte.
|
||||
|
||||
Conséquence :
|
||||
|
||||
```text
|
||||
aucun x-token inventé
|
||||
aucun secret PublicNode ajouté à Config
|
||||
aucune variable d'environnement d'authentification ajoutée
|
||||
smoke recentré sur Subscribe, fonctionnalité centrale de 0.2.9
|
||||
```
|
||||
|
||||
## 3. Endpoint Testnet acquis
|
||||
|
||||
L'opérateur a confirmé le host/port Yellowstone gRPC Testnet :
|
||||
|
||||
```text
|
||||
solana-testnet-yellowstone-grpc.publicnode.com:443
|
||||
```
|
||||
|
||||
KSP utilise l'URI TLS :
|
||||
|
||||
```text
|
||||
https://solana-testnet-yellowstone-grpc.publicnode.com:443
|
||||
```
|
||||
|
||||
## 4. Config V3
|
||||
|
||||
`config/std.transport.json` conserve le profil Mainnet PublicNode sans metadata d'authentification et ajoute :
|
||||
|
||||
```text
|
||||
profile_id = publicnode_testnet
|
||||
provider = publicnode
|
||||
cluster = testnet
|
||||
protocol = solana_yellowstone
|
||||
url = https://solana-testnet-yellowstone-grpc.publicnode.com:443
|
||||
metadata = none
|
||||
```
|
||||
|
||||
Comme pour le profil Mainnet, les axes HTTP/WS du profil restent des transports Solana standards distincts du provider gRPC.
|
||||
|
||||
Le canari Config existant couvre désormais les deux profils PublicNode et impose explicitement :
|
||||
|
||||
```text
|
||||
metadata gRPC vide
|
||||
provider/cluster/URL exacts
|
||||
validation Transport verte
|
||||
Debug sans URL endpoint
|
||||
```
|
||||
|
||||
## 5. Smoke Transport pur
|
||||
|
||||
Le smoke opt-in ne teste plus les méthodes unary provider-dépendantes `GetVersion` / `GetSlot`.
|
||||
|
||||
Il ouvre maintenant la surface standard réellement visée par la release :
|
||||
|
||||
```text
|
||||
TLS
|
||||
Subscribe bidirectionnel
|
||||
filtre slots standard
|
||||
réception d'un YellowstoneSubscribeUpdate::Slot
|
||||
slot > 0
|
||||
close borné
|
||||
```
|
||||
|
||||
Deux cas live sont présents :
|
||||
|
||||
```text
|
||||
PublicNode Mainnet Yellowstone Subscribe sans metadata d'authentification
|
||||
PublicNode Testnet Yellowstone Subscribe sans metadata d'authentification
|
||||
```
|
||||
|
||||
Le test reste dans `ksp-onchain-transport-lib`, construit ses settings programmatiquement et ne dépend ni de Config ni d'un secret opérateur.
|
||||
|
||||
## 6. Signal de version
|
||||
|
||||
Le correctif modifie une config runtime et un test Rust :
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.2.9-pre.13.fix.1
|
||||
commit attendu = v0.2.9-pre.013-fix.001
|
||||
```
|
||||
|
||||
## 7. Gate opérateur
|
||||
|
||||
### 7.1 Déterministe
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.2.9
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-config-lib
|
||||
cargo test -p ksp-onchain-transport-lib
|
||||
cargo test -p ksp-core-lib --test workspace_dependencies
|
||||
```
|
||||
|
||||
Attendus minima :
|
||||
|
||||
```text
|
||||
Config unit 113
|
||||
Config public API 15
|
||||
Config ownership 5
|
||||
Transport unit 383
|
||||
Transport public API 49
|
||||
Transport release completeness 43
|
||||
Transport doctests 4
|
||||
workspace dependencies 3
|
||||
```
|
||||
|
||||
### 7.2 Smoke live
|
||||
|
||||
```bash
|
||||
cargo test -p ksp-onchain-transport-lib --test yellowstone_publicnode_smoke -- --ignored --nocapture
|
||||
```
|
||||
|
||||
Attendu :
|
||||
|
||||
```text
|
||||
2 passed
|
||||
0 failed
|
||||
0 ignored
|
||||
```
|
||||
|
||||
Aucun token ou secret ne doit être nécessaire pour ce smoke. Si `Subscribe` retourne à son tour `PERMISSION_DENIED`, l'hypothèse d'une authentification provider redevient ouverte et doit alors être établie avant tout nouveau correctif Config.
|
||||
|
||||
### 7.3 Graphes et workspace
|
||||
|
||||
```bash
|
||||
cargo tree -p ksp-onchain-transport-lib
|
||||
cargo tree -p ksp-onchain-transport-lib --duplicates
|
||||
cargo tree --duplicates
|
||||
cargo test --workspace
|
||||
```
|
||||
|
||||
## 8. Frontières
|
||||
|
||||
Ce fix reste strictement dans le couloir technique/live de `pre.013` :
|
||||
|
||||
```text
|
||||
aucun README/USAGE modifié
|
||||
aucun plan/validation modifié
|
||||
aucun CHANGELOG/ROADMAP modifié
|
||||
aucun prompt modifié
|
||||
aucun provider-specific engine ajouté
|
||||
aucun secret committé
|
||||
```
|
||||
|
||||
La prochaine tranche reste `0.2.9-pre.014` de réconciliation documentaire, uniquement après fermeture verte de ce fix.
|
||||
Reference in New Issue
Block a user