https://github.com/rpcpool/yellowstone-jet
Solana QUIC transaction sender, with built in proxy and SwQoS support.
https://github.com/rpcpool/yellowstone-jet
Last synced: 5 months ago
JSON representation
Solana QUIC transaction sender, with built in proxy and SwQoS support.
- Host: GitHub
- URL: https://github.com/rpcpool/yellowstone-jet
- Owner: rpcpool
- License: agpl-3.0
- Created: 2025-01-17T15:43:15.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-01T17:57:37.000Z (11 months ago)
- Last Synced: 2025-05-01T18:39:02.754Z (11 months ago)
- Language: Rust
- Homepage: https://triton.one
- Size: 336 KB
- Stars: 12
- Watchers: 12
- Forks: 1
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Yellowstone Jet
External Solana transaction sender implementation.
Implements the Solana QUIC protocol for sending transactions.
## Features:
- Efficient transaction sending, implementing the Solana TPU client in proxy format
- Detailed configuration of all QUIC related parameters
- Solana JSONRPC support, with an rpc server that supports sendTransaction
- Full support for SwQoS
- Simulation and transaction sanitization support via external RPC
- Prometheus metrics
- Dynamic key loading via getIdentity/setIdentity
- Support for shield policies to determine eligible leaders for transaction forwarding
- Support for connecting to Triton's Cascade delivery network
## Building
```
cargo build --release
```
## Usage
```
yellowstone-jet --config yellowstone.yaml
```
## Config file
A sample configuration file can be found [config.yml](https://github.com/rpcpool/yellowstone-jet/blob/main/config.yml)
### Systemd
Running Jet as a service under SystemD is our recommended approach. A sample systemd file:
```
[Unit]
Description=Yellowstone Jet transaction forwarder
After=network-online.target
StartLimitInterval=0
StartLimitIntervalSec=0
[Service]
Type=simple
User=yellowstone-jet
Group=yellowstone-jet
PermissionsStartOnly=true
ExecStart=/usr/local/bin/yellowstone-jet --config /etc/yellowstone-jet.yml
Environment=RUST_LOG="warn"
SyslogIdentifier=yellowstone-jet
KillMode=process
Restart=always
RestartSec=5
LimitNOFILE=700000
LimitNPROC=700000
LockPersonality=true
NoNewPrivileges=true
PrivateTmp=true
ProtectHome=true
RemoveIPC=true
RestrictSUIDSGID=true
ProtectSystem=full
[Install]
WantedBy=multi-user.target
```
## Attribution
Created by the greybeards at [Triton One](https://triton.one)
Copyright (C) 2024 Triton One Ltd