Files
khadhroony-solana-project/docs/validation/013-V0_2_10_ORBITFLARE_YELLOWSTONE_GRPC.md
2026-08-25 10:14:37 +02:00

13 KiB

Validation 0.2.10 — OrbitFlare Yellowstone gRPC

Statut courant : matrice ouverte par 0.2.10-pre.001. Le gate d'architecture est positif. Le premier objectif live est le Devnet gratuit OrbitFlare via le standard Yellowstone KSP inchangé. Les verdicts provider non encore testés restent explicitement PENDING ou UNKNOWN.

1. Autorités

RULES.md + docs/rules/*
archive stable v0.2.9
plan 016 et validation 012 pour N1/N2
plan 017 courant
prompt 015 pour les contraintes non supersédées
deltas/0.2.10/*
OrbitFlare docs/pricing/SDK/CLI actuels
Yellowstone upstream actuel

2. Baseline stable

Gate Résultat
version de base 0.2.9 PASS
deltas/0.2.9/rel.001.md PASS
prompt 015 PASS
cargo fmt --all PASS
audit Rust PASS
audit Markdown PASS
cargo check --workspace PASS
cargo clippy --workspace --all-targets PASS
cargo test --workspace PASS
Transport unit 383 sur 383 PASS
Transport public API 49 sur 49 PASS
Transport release completeness 43 sur 43 PASS
Config unit 113 sur 113 PASS
graph duplicates Transport fourni, aucun conflit N1 visible
graph complet Transport PENDING avant commit

3. Invariant architecture

Exigence Verdict
moteur gRPC N1 modifié pour OrbitFlare NO
standard Yellowstone N2 modifié NO
second client Tonic NO
SDK OrbitFlare runtime NO
provider séparé du protocol PASS
Config -> Transport seulement PASS
Transport -> Config/env PASS
façade provider sans divergence NO

Toute modification de grpc_stream.rs, grpc_channel.rs, grpc_settings.rs, grpc_unary.rs ou grpc_subscribe.rs motivée uniquement par OrbitFlare invalide ce gate.

4. Pricing et réseau

Point Preuve actuelle Verdict
plan Solana Free 0 USD par mois PASS
gRPC Free Devnet only PASS
RPS Free 10 INFO
TPS Free 1 INFO
crédit unlimited dans le RPS INFO
Devnet gRPC endpoint http://devnet.rpc.orbitflare.com:10000 PASS
Devnet live KSP non encore exécuté PENDING
Mainnet gratuit non documenté OUT
Testnet endpoint non prouvé UNKNOWN

Sources :

https://orbitflare.com/pricing
https://orbitflare.com/products/rpc-nodes
https://docs.orbitflare.com/cli

5. Transport security

Forme endpoint Classification Verdict
http://*.rpc.orbitflare.com:10000 HTTP/2 plaintext PASS
https://*.grpc.orbitflare.com HTTP/2 TLS PASS
transformation automatique http/https interdite PASS
endpoint Dashboard autoritaire si fourni PASS

KSP ne prétend pas qu'un canal gRPC plaintext bénéficie d'une sécurité TLS implicite.

6. Auth classification

Élément Usage prouvé Verdict
X-ORBIT-KEY Customer API CONTROL-PLANE
Bearer Customer API Customer API v2 CONTROL-PLANE
RPC api_key Solana HTTP RPC HTTP ONLY
API key compte opérateur CLI/Customer API NOT GRPC PROOF
token gRPC Dashboard quickstart Yellowstone ACCOUNT DEPENDENT
metadata upstream x-token mécanisme Yellowstone standard POSSIBLE
aucune metadata gRPC SDK Go OrbitFlare DOCUMENTED
auth Devnet Free réelle smoke KSP à exécuter PENDING

Aucun secret opérateur n'est demandé pour pre.001.

7. Heartbeat

Point Preuve Verdict
OrbitFlare idle timeout partagé environ 10 minutes PASS
OrbitFlare recommande client Ping 30 secondes PASS
Yellowstone serveur Ping périodique upstream documenté PASS
KSP auto reply au serveur Ping test N1 0.2.9 PASS
moteur N1 à modifier non PASS
Ping serveur OrbitFlare Devnet observé live non encore exécuté PENDING
heartbeat provider additionnel non justifié tant que live non contraire NO

Critère de fermeture : observer le Ping standard sur OrbitFlare Devnet ou qualifier précisément pourquoi il n'est pas observable et quelle divergence provider existe.

8. Capabilities streaming

Capability Docs OrbitFlare KSP N2 Live provider
accounts oui PASS PENDING
slots oui PASS PENDING
transactions oui PASS PENDING
transactions_status partiel PASS PENDING
blocks oui PASS PENDING
blocks_meta oui PASS PENDING
entry oui PASS PENDING
commitment oui PASS PENDING
accounts_data_slice oui PASS PENDING
Subscribe Ping/Pong oui PASS PENDING

Le premier smoke n'a pas besoin de démontrer chaque famille. Il doit prouver que le provider exécute le standard KSP sur Devnet ; les capacités supplémentaires sont sondées sans élargir N2.

9. Unary et replay

Capability N2 KSP OrbitFlare docs Live
SubscribeReplayInfo PASS non prouvé PENDING
Ping unary PASS non prouvé PENDING
GetLatestBlockhash PASS non prouvé PENDING
GetBlockHeight PASS non prouvé PENDING
GetSlot PASS non prouvé PENDING
IsBlockhashValid PASS non prouvé PENDING
GetVersion PASS non prouvé PENDING
from_slot PASS non prouvé PENDING
retention N/A non documentée UNKNOWN

Une restriction provider ne rétrograde jamais la disponibilité de la méthode dans le standard global KSP.

10. Limits provider

Limite Valeur Verdict
concurrent gRPC connections 50 par IP INFO
subscriptions par connection unlimited INFO
cap partagé entre régions oui INFO
idle timeout environ 10 minutes INFO
dépassement RESOURCE_EXHAUSTED INFO
backoff recommandé exponentiel jusqu'à 30 s INFO

Ces valeurs restent provider-owned et ne deviennent pas des validations génériques de YellowstoneGrpcSessionSettings.

11. Config V3

Exigence Verdict
nouveau format Config nécessaire NO
provider = orbitflare PLANNED
protocol = solana_yellowstone PASS
cluster = devnet PLANNED
Devnet URL publique PLANNED
secret metadata par défaut NO
X-ORBIT-KEY dans Transport Config FORBID
x-token si token gRPC prouvé DEFER
heartbeat dans grpc_defaults NO

12. Smoke Devnet attendu

Premier smoke :

Config/fixture -> YellowstoneGrpcEndpointSettings
provider = orbitflare
cluster = devnet
url = http://devnet.rpc.orbitflare.com:10000
metadata vide
open standard Subscribe
request slots confirmed
receive Slot non nul
observe Ping serveur pendant fenêtre bornée de caractérisation
close borné

Verdicts actuels :

Preuve Verdict
endpoint parsé par N1 EXPECTED
connect Devnet PENDING
Subscribe accepté PENDING
Slot reçu PENDING
server Ping reçu PENDING
auto reply KSP déterministe PASS
close borné PASS N1

13. Provider overlay gate

La release reste sans façade OrbitFlare si pre.002 démontre :

standard Subscribe fonctionne
heartbeat standard fonctionne
Config V3 exprime endpoint/auth
aucune restriction consumer-visible ne requiert un type provider

Une façade/policy OrbitFlare devient admissible seulement après preuve live d'une divergence. Même dans ce cas :

N1 ne change pas
N2 ne change pas
pas de raw Tonic
pas de SDK OrbitFlare
ownership/close provider bornés

14. Non-régressions finales

Surface Baseline Final
HTTP current typed 52 sur 52 PENDING
HTTP historical 14 sur 14 PENDING
WebSocket standard 18 sur 18 PENDING
Helius LaserStream WebSocket stable 0.2.8 PENDING
Yellowstone N1/N2 stable 0.2.9 PENDING
PublicNode Mainnet/Testnet stable 0.2.9 PENDING
Config V1/V2/V3 backward readable stable 0.2.9 PENDING
dependency firewall stable 0.2.9 PENDING

15. Gate pre.001

Critère Verdict
base stable v0.2.9 PASS
baseline fmt/audits/check/clippy PASS
workspace test PASS
graph duplicates PASS
graph complet Transport PENDING OPERATOR
sources OrbitFlare actuelles PASS
sources Yellowstone actuelles PASS
Free Devnet gRPC confirmé PASS
endpoints classifiés PASS
auth planes distingués PASS
heartbeat KSP vs provider classifié PASS, LIVE PENDING
capabilities auditées PASS, LIVE PENDING
replay/from_slot UNKNOWN PROVIDER
N1 immutable PASS
N2 immutable PASS
Config V3 shape PASS
smoke ownership PASS
threat model PASS
sizing/forecast PASS
provider runtime lourd ajouté NO

Verdict :

architecture/sizing gate = POSITIVE
operator commit gate      = PENDING full cargo tree + validations overlay
live provider gate        = reserved for pre.002+