Files
2026-08-24 20:48:30 +02:00

9.0 KiB

Delta 0.2.9-pre.012 — fermeture technique Yellowstone + PublicNode + documentation

Statut

Candidate de fermeture technique 0.2.9 construite sur 0.2.9-pre.011, dont le gate opérateur est entièrement vert.

Cette tranche ne change pas la sémantique runtime Yellowstone fermée en pre.010. Elle ajoute le smoke live PublicNode Mainnet opt-in, ferme le réaudit documentaire final, synchronise README/USAGE, prépare le prompt 0.2.10 — OrbitFlare Yellowstone gRPC et rend la mise en forme des tableaux Markdown normative et mécaniquement vérifiable.

Version technique

workspace.package.version = 0.2.9-pre.12

Base opérateur confirmée

pre.011 a été validée avec :

cargo fmt --all                        PASS
scripts/audit_rust_workspace_rules.py PASS, 0 export candidate
cargo check --workspace               PASS
cargo clippy --workspace --all-targets PASS sans warning
Config unit                           113/113
Config public API                     15/15
Config ownership                      5/5
Transport unit                        383/383
Transport public API                  49/49
Transport release completeness        43/43
Transport doctests                    4/4
workspace dependencies                3/3
cargo test --workspace                PASS

Réaudit Yellowstone final

Le réaudit du 2026-08-24 distingue désormais explicitement les numéros de master et les releases GitHub publiées :

latest release GitHub indexée         v14.2.2+solana.4.1.0
master yellowstone-grpc-geyser        15.1.2
master yellowstone-grpc-client        13.3.0
master yellowstone-grpc-proto         12.6.0
master Agave Geyser / storage         4.2.0
master Tonic / Prost                   0.14.x

La surface N2 utilisée par KSP reste matériellement compatible : service Geyser, Subscribe, sept unary retenus, SubscribeRequest courant et neuf variantes SubscribeUpdate. SubscribeDeshred reste hors scope.

La licence du subtree yellowstone-grpc-proto reste déclarée Apache-2.0 dans LICENSING.md upstream.

PublicNode Mainnet

Ajout d'un smoke Transport pur :

crates/ksp-onchain-transport-lib/tests/yellowstone_publicnode_smoke.rs

Le smoke :

est ignored par défaut
construit ses settings programmatiquement
n'utilise ni Config ni variable d'environnement
n'utilise aucun credential
cible https://solana-yellowstone-grpc.publicnode.com:443
ouvre le channel TLS Yellowstone standard
appelle GetVersion
appelle GetSlot avec commitment confirmed

Il ne crée aucune façade PublicNodeGrpc* et réutilise le contrat provider-neutral de 0.2.9.

PublicNode Testnet

Le service Testnet gRPC est annoncé par PublicNode, mais l'hostname exact n'est toujours pas disponible dans une source PublicNode suffisamment autoritative et exploitable.

Décision :

aucun hostname déduit
aucun profil Testnet
aucun smoke Testnet
statut documentaire = EXTERNAL BLOCK / NOT GUESSED

Cette limite externe ne bloque pas la fondation Mainnet et ne doit pas être transformée en endpoint supposé.

Règles des tableaux Markdown

docs/rules/RULES_DOCUMENTATION.md formalise désormais :

pipe littéral ou échappé interdit dans le contenu d'une cellule
pipe réservé aux séparateurs structurels
largeur de colonne déterminée par le contenu le plus large
tous les séparateurs verticaux alignés
exactement un espace de marge autour du contenu le plus large
cellules plus courtes complétées uniquement pour conserver l'alignement
ligne séparatrice dimensionnée exactement à la colonne
tableau entier réaligné lorsqu'une ligne est touchée

Ajout du canari :

scripts/audit_markdown_tables.py

Il audite les fichiers ou répertoires Markdown explicitement fournis, ignore les blocs de code fenced et rejette les tables qui ne respectent pas le contrat KSP.

La version de docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md corrigée manuellement par l'opérateur avant le commit pre.011 a été conservée comme base ; pre.012 ne réintroduit pas l'ancien format.

Normalisation documentaire rétroactive modifiable

Le premier audit étendu de la nouvelle règle a révélé 26 écarts historiques dans neuf documents modifiables : principalement du padding antérieur au contrat actuel et un tableau HTTP utilisant des pipes échappés dans ses cellules.

Ces documents ont été normalisés sans changer leurs décisions :

docs/formats/KSPWALLET_V1.md
docs/formats/KSPWALLET_V2.md
docs/plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md
docs/plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md
docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md
docs/plans/012-V0_2_5_WALLET_FOUNDATION_PLAN.md
docs/plans/014-V0_2_7_ONCHAIN_WEBSOCKET_PLAN.md
docs/validation/010-V0_2_7_ONCHAIN_WEBSOCKET.md
docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md

Dans le plan HTTP 008, les anciens \| utilisés pour exprimer une alternative ont été reformulés avec /, conformément à la nouvelle interdiction des pipes internes.

Un scan du repository a encore signalé uniquement onze écarts de padding dans d'anciens deltas 0.1.4. Ils ne sont pas modifiés : les deltas déjà publiés sont immuables. DOC-TABLE-006 formalise cette priorité ; tous les nouveaux deltas restent soumis au format courant.

Documentation Transport

README.md et USAGE.md documentent maintenant la foundation Yellowstone complète :

settings/channel/unary/Subscribe
reconnect/replay prudent
Config V3
PublicNode Mainnet
smoke live opt-in
limite Testnet non inventée

Plan et validation

Le plan 016 et la validation 012 restent structurés par état courant plutôt que par appendices successifs.

Mises à jour principales :

pre.011 fermé par gate opérateur
pre.012 active candidate
récconciliation master vs release GitHub
PublicNode Testnet fermé comme limite externe documentée
smoke Mainnet ajouté mais non déclaré exécuté
cargo tree final explicitement pending operator
workspace final explicitement pending operator

Prompt suivant

Ajout :

prompts/015-V0_2_10_START_PROMPT.md

La release suivante active est 0.2.10 — OrbitFlare Yellowstone gRPC.

Le prompt impose un pre.001 audit/sizing avant code provider et cible notamment les questions ouvertes suivantes :

IP whitelist vs X_TOKEN vs control-plane X-ORBIT-KEY
endpoints régionaux / Devnet / transport security
support réel des unary/replay/from_slot
heartbeat proactif recommandé par OrbitFlare
réutilisation N1/N2 sans second actor/client
Config V3 et secret ownership
smoke architecture-safe

0.2.11 reste Helius LaserStream gRPC.

Fichiers ajoutés ou modifiés

Cargo.toml
docs/rules/RULES_DOCUMENTATION.md
scripts/audit_markdown_tables.py
crates/ksp-onchain-transport-lib/tests/yellowstone_publicnode_smoke.rs
crates/ksp-onchain-transport-lib/README.md
crates/ksp-onchain-transport-lib/USAGE.md
docs/formats/KSPWALLET_V1.md
docs/formats/KSPWALLET_V2.md
docs/plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md
docs/plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md
docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md
docs/plans/012-V0_2_5_WALLET_FOUNDATION_PLAN.md
docs/plans/014-V0_2_7_ONCHAIN_WEBSOCKET_PLAN.md
docs/validation/010-V0_2_7_ONCHAIN_WEBSOCKET.md
docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md
docs/plans/016-V0_2_9_YELLOWSTONE_GRPC_PLAN.md
docs/validation/012-V0_2_9_YELLOWSTONE_GRPC.md
prompts/000-README.md
prompts/015-V0_2_10_START_PROMPT.md
deltas/0.2.9/pre.012.md

Gate local disponible dans l'environnement de préparation

Exécuté avant livraison de l'archive :

python3 scripts/audit_rust_workspace_rules.py
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean

python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.2.9
Markdown table audit: clean (87 table(s), 116 file(s))

Cargo et Rustfmt ne sont pas disponibles dans l'environnement de préparation ; aucune commande Cargo n'est donc déclarée réussie pour la candidate pre.012.

Gate opérateur requis

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
cargo test --workspace
cargo tree -p ksp-onchain-transport-lib
cargo tree -p ksp-onchain-transport-lib --duplicates
cargo tree --duplicates

Smoke live séparé :

cargo test -p ksp-onchain-transport-lib --test yellowstone_publicnode_smoke -- --ignored --nocapture

Si tous les gates locaux sont verts et que le smoke Mainnet est consigné, 0.2.9 peut passer à sa tranche de publication stable. Un défaut découvert dans cette candidate crée pre.012-fix.001 ; l'historique précédent reste immuable.