5.0 KiB
Delta 0.2.9-pre.013-fix.001 — smoke PublicNode streaming + Testnet
1. Base
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 :
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 :
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 :
solana-testnet-yellowstone-grpc.publicnode.com:443
KSP utilise l'URI TLS :
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 :
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 :
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 :
TLS
Subscribe bidirectionnel
filtre slots standard
réception d'un YellowstoneSubscribeUpdate::Slot
slot > 0
close borné
Deux cas live sont présents :
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 :
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
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 :
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
cargo test -p ksp-onchain-transport-lib --test yellowstone_publicnode_smoke -- --ignored --nocapture
Attendu :
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
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 :
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.