Pavel Strakhov 71d6a89aea chore: Rust toolchain/CI update and workspace setup (#2830) 4 tháng trước cách đây
..
config d6e930a9cb fix config 5 tháng trước cách đây
src 0bb6f67eeb fmt, allow panic in tests 4 tháng trước cách đây
.dockerignore 6fd4328f82 pyth-lazer-agent fixes, tests, ci 5 tháng trước cách đây
.gitignore 6fd4328f82 pyth-lazer-agent fixes, tests, ci 5 tháng trước cách đây
Cargo.toml 249a49c41a pyth-lazer-agent readme and clippy config 4 tháng trước cách đây
Dockerfile e27eb2b284 fix(pyth-lazer-agent): logging tweaks, cargo update, Dockerfile fix 5 tháng trước cách đây
README.md 249a49c41a pyth-lazer-agent readme and clippy config 4 tháng trước cách đây

README.md

pyth-lazer-agent

pyth-lazer-agent is intended to be run by Lazer publishers analogous to pyth-agent for pythnet publishers. Currently it retains the existing Lazer publishing interface, but will batch and sign transactions before publishing them to Lazer.

Keypair

You will need to generate an ed25519 keypair and provide the pubkey to the Lazer team. solana-keygen is the recommended utility.

solana-keygen new -o /path/to/keypair.json
solana-keygen pubkey /path/to/keypair.json

pyth-lazer-agent will need to configure access to this keypair file to sign transactions.

Build and run

From source

Please check rust-toolchain to see the version of Rust needed to build (currently 1.88). You will also need SSL and CA certificates. cargo build should then work as usual.

Docker

See the included Dockerfile to build an image yourself.

Container

We also publish images to the GitHub Container Registry. The latest will be available at ghcr.io/pyth-network/pyth-lazer-agent:latest.

Configure

The agent takes a single --config CLI option, pointing at config/config.toml by default. Configuration is currently minimal:

relayer_urls = ["ws://relayer-0.pyth-lazer.dourolabs.app/v1/transaction", "ws://relayer-0.pyth-lazer.dourolabs.app/v1/transaction"]
publish_keypair_path = "/path/to/keypair.json"
authorization_token = "your_token"
listen_address = "0.0.0.0:8910"
publish_interval_duration = "25ms"
  • relayers_urls: The Lazer team will provide these.
  • publish_keypair_path: The keypair file generated with solana-keygen or similar.
  • authorization_token: The Lazer team will provide this or instruct that it can be omitted.
  • listen_address: The local port the agent will be listening on; can be anything you want.
  • publisher_interval: The agent will batch and send transaction bundles at this interval. The Lazer team will provide guidance here.

Publish

Please use the /v1/publisher or /v2/publisher endpoints and the corresponding PriceFeedDataV1 and PriceFeedDataV2 schemas as defined in the sdk.