Skip to content
Open
8,378 changes: 7,098 additions & 1,280 deletions Cargo.lock

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ solana-pubkey = "^2.2.0"
solana-instruction = "^2.2.0"
solana-msg = "^2.2.0"
solana-program-entrypoint = "^2.2.0"
solana-transaction = "^2.2.0"
solana-program-error = "^2.2.0"
solana-transaction-status = "^2.2.0"
spl-pod = "^0.3.0"
Expand All @@ -67,9 +68,11 @@ tonic-reflection = "^0.12.1"
tonic-build = "^0.12.1"
toml = "^0.8.0"
topograph = "^0.4.0"
tokio-util = "^0.7"
tokio = "^1.37.0"
tracing = "^0.1.40"
zstd = "^0.13.0"
anyhow = "^1.0"

yellowstone-fumarole-client = "^0.2.0"
yellowstone-grpc-client = { version = "9" }
Expand Down Expand Up @@ -104,4 +107,4 @@ yellowstone-vixen-solana-rpc-source = { path = "crates/solana-rpc-source", versi
yellowstone-vixen-yellowstone-grpc-source = { path = "crates/yellowstone-grpc-source", version = "0.3.1" }
yellowstone-vixen-yellowstone-fumarole-source = { path = "crates/yellowstone-fumarole-source", version = "0.3.1" }
yellowstone-vixen-solana-snapshot-source = { path = "crates/solana-snapshot-source", version = "0.3.1" }

yellowstone-vixen-jetstream-source = { path = "crates/jetstreamer-source", version = "0.3.1" }
16 changes: 16 additions & 0 deletions Vixen.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,21 @@ timeout = 60
# x-token = "<X-TOKEN>"
# subscriber-name = "my_subscribe_group"

# Jetstream source configuration (alternative to Yellowstone gRPC)
[source]
archive_url = "https://api.old-faithful.net"
epoch = 800 # Or use slot_start/slot_end instead
threads = 4
reorder_buffer_size = 1000
slot_timeout_secs = 30
network = "mainnet"
compact_index_base_url = "https://files.old-faithful.net"
network_capacity_mb = 1000

[filters]
# Add filters for specific programs/accounts if needed
# programs = ["11111111111111111111111111111112"]

Comment on lines +36 to +39
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The filters should come from the parser's attached filters which mimic grpc subscribe filter notation for selecting account owner or address in accounts list for transactions we shouldn't need to specify filters on the source.

# Metrics configuration section.
# Uncomment the following lines if you are running Prometheus

Expand All @@ -44,3 +59,4 @@ timeout = 60
# The metrics export interval in seconds.
# This defines how often metrics data is exported.
#export-interval = 60

32 changes: 32 additions & 0 deletions crates/jetstreamer-source/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
[package]
name = "yellowstone-vixen-jetstream-source"
version = "0.3.1"
description = "Jetstream source for the Yellowstone Vixen"
authors.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
readme = "./../../README.md"

[dependencies]
async-trait = { workspace = true }
tokio = { workspace = true, features = ["rt-multi-thread", "signal"] }
tracing = { workspace = true }
futures-util = { workspace = true, features = ["sink"] }
yellowstone-vixen = { workspace = true }
yellowstone-vixen-core = { workspace = true }
yellowstone-grpc-proto = { workspace = true }
yellowstone-grpc-client = { workspace = true }
serde = { workspace = true, features = ["derive"] }
clap = { workspace = true, features = ["derive", "cargo", "wrap_help"] }
thiserror = { workspace = true }
tokio-util = { workspace = true }
prost-types = { workspace = true }
# Jetstreamer firehose for direct streaming without ClickHouse
jetstreamer-firehose = "0.1.6"
jetstreamer-utils = "0.1.6"
Comment on lines +26 to +27
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you include in the root Cargo.toml and then reference through the workspace so all versions are set in one place. We can also allow 0.1 to allow matching of any patches that come out.

prometheus = { workspace = true, optional = true }

[features]
default = []
prometheus = ["dep:prometheus"]
Loading