Replay recorded Solana mainnet through your existing Yellowstone gRPC client. Same protocol, same ordering, 100μs precision. Apache-2.0.
데브넷에는 MEV도, 혼잡도, 실제 상대도 없습니다. 자체 시뮬레이터는 새 프로그램이 새 엣지 케이스에 부딪히는 순간 밸리데이터 동작에서 벗어납니다.
Sillage records mainnet as it was delivered — every account write, every transaction, every block — and streams it back through the same protocol your live bot already speaks. The chain that happened, on demand, at the timing it happened.
같은 Yellowstone gRPC, 같은 SubscribeRequest, 같은 필터. sillage.sh가 서버로서 프로토콜을 그대로 제공합니다.
스트림이 그 지점에서 시작되어 월클락 속도로 재생되며, 슬롯 내부 순서가 100마이크로초 단위로 보존됩니다.
Re-run the same window as many times as your tuning loop needs. The input never changes, so a difference in output is a difference in your code.
변경되는 것은 엔드포인트와 시작 슬롯뿐입니다. SubscribeRequest, 필터, 메시지 처리는 그대로 동작합니다.
let mut client = GeyserGrpcClient::build_from_shared( "https://replay.sillage.sh", )? .x_token(Some(api_key))? .connect() .await?; let req = SubscribeRequest { // any slot within the last 24 hours from_slot: Some(312_847_201), transactions: hashmap! { "swaps".into() => SubscribeRequestFilterTransactions { account_include: vec![JUPITER_V6.into()], ..Default::default() }, }, ..Default::default() }; let (_, mut stream) = client.subscribe_with_request(Some(req)).await?; while let Some(msg) = stream.next().await { handle(msg?); }
Run one. Clone the repo and start a reader against a window you have recorded, or against the published sample archive. There is also a live demo endpoint at replay.sillage.sh if you want to see it working before setting anything up.
아닙니다. sillage.sh는 Yellowstone gRPC 프로토콜을 서버로서 제공합니다. 기존 클라이언트를 새 엔드포인트로 향하게 하고 시작 슬롯을 전달하면 — SubscribeRequest, 필터, 메시지 처리가 그대로 동작합니다.
모든 메시지는 라이브 캡처 시 수신된 타임스탬프를 100마이크로초 단위로 보존합니다. 슬롯 내부 순서, 전파 지연, 실제 네트워크 시간의 결이 일어난 그대로 재현됩니다.
Whatever you record. Sillage is the recorder as well as the player — point the writer at a Geyser source for as long as you want history, and the reader serves exactly that back.
RPC는 온디맨드 쿼리를 제공할 뿐, 어제 일어난 모든 계정 쓰기를 시간 순서대로 다시 흘릴 수 있는 스트림을 주지 않습니다. sillage.sh는 봇이 이미 연결되어 있는 그 프로토콜로 그것을 제공합니다.
Helius, Triton, and QuickNode all stream the chain forward beautifully. None of them let you replay a specific past window through the same protocol, and none of them are something you can run yourself. That's the inverse Sillage was built for.