183 lines
5.0 KiB
Markdown
183 lines
5.0 KiB
Markdown
<!-- 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.
|