Vingt-quatre heures d'historique de la chaîne, diffusées via votre client Yellowstone gRPC existant. Facturation au replay.
sillage.sh parle le protocole Yellowstone gRPC côté serveur, sans modification. Tout ce que vous avez écrit pour Triton, Helius ou un plugin Geyser auto-hébergé se connecte sans changement. Passez un slot de départ. Le stream commence là.
use yellowstone_grpc_client::GeyserGrpcClient; let mut client = GeyserGrpcClient::build_from_shared( "https://yellowstone.helius-rpc.com", )? .x_token(Some(token))? .connect() .await?; let (_, stream) = client .subscribe_with_request(Some(req)) .await?;
use yellowstone_grpc_client::GeyserGrpcClient; let mut client = GeyserGrpcClient::build_from_shared( "https://replay.sillage.sh", )? .x_token(Some(token))? .connect() .await?; let (_, stream) = client .subscribe_with_request(Some(req.from_slot(312_840_000))) .await?;
use yellowstone_grpc_client::GeyserGrpcClient; let mut client = GeyserGrpcClient::build_from_shared( "https://replay.sillage.sh", )? .x_token(Some(token))? .connect() .await?; let (_, stream) = client .subscribe_with_request(Some(req.from_slot(312_840_000))) .await?;
Les filtres basés sur pubkey de Yellowstone fonctionnent sans changement — restreindre les transactions à des programmes ou comptes spécifiques, restreindre les streams de comptes à des owners spécifiques.
let req = SubscribeRequest { transactions: hashmap! { "swaps".to_owned() => SubscribeRequestFilterTransactions { vote: Some(false), failed: Some(false), account_include: vec![JUPITER_V6.into()], ..Default::default() }, }, accounts: hashmap! { "pools".to_owned() => SubscribeRequestFilterAccounts { owner: vec![RAYDIUM_AMM.into()], ..Default::default() }, }, ..Default::default() };
Chaque message porte le timestamp de sa réception, à 100 microsecondes près. Une transaction arrivée à 24,3 ms dans son slot est rejouée à 24,3 ms dans ce slot. Ordre intra-slot, délais de propagation, texture du temps réseau réel — tout est préservé.
Chaque message reçu par votre subscription live est conservé en continu sur l'intégralité de la fenêtre de 24 heures. Pas d'échantillonnage. Pas de résumé. Pas de traduction de schéma.
Depuis la tête de chaîne actuelle, en arrière. Continu, pas une rotation par jour calendaire.
Les messages au commitment processed ne sont pas stockés — trop éphémères pour être utiles au moment du replay.
Index Roaring bitmap sur programmes, comptes et signatures, résolus avant que les octets de message soient touchés.
Range-fetchable depuis un stockage persistant. Un replay filtré ne lit que les octets correspondants.
Les autres providers streament magnifiquement la chaîne live. sillage.sh propose l'inverse : 24 heures d'historique, même protocole, facturé au replay.
| sillage.sh | Helius LaserStream | Triton Fumarole | QuickNode | |
|---|---|---|---|---|
| Fenêtre de replay | 24 heures | 24 heures | 4 jours | ~20 min |
| Tarification | Au replay | 999 $/mois plan* | 0,08 $/Go + plan | Enterprise |
| Protocole | Yellowstone gRPC | Yellowstone gRPC | Yellowstone gRPC | Yellowstone gRPC |
| Précision des timestamps | Par message | Au slot | Au slot | — |
Rejouez la chaîne d'hier à travers votre stratégie. Ajustez le PnL sans brûler une subscription streaming.
Plus sur le backtesting SolanaBackfill d'un nouvel index depuis n'importe quel slot des 24 dernières heures. Aucune re-synchro depuis snapshot.
Interrogez les patterns de flux historiques. Même protocole Yellowstone, facturé uniquement à la lecture.
Rejouez une fenêtre antérieure au reorg pour vérifier l'état — pas besoin de garder l'historique brut vous-même.
La première cohorte démarre avec le replay 24 h des streams transactions, comptes et blocs. Les builders sur bots, indexeurs et recherche sont prioritaires.