Releases: pyth-network/pyth-agent
Pyth Agent v2.0.1
Breaking changes
With this release, the TOML config format abolishes the pythd-compatible key store, in favor of simpler and more readable string pubkey values. This enables us to cleanly distribute sample Pythnet/Pythtest configs with correct program/mapping public keys. Here's how it works:
# Old v1.x.x way
[primary network]
key_store.root_path = "/path/to/keystore"
key_store.publish_keypair_path = "publish_key_pair.json" # Relative path from root_path, "publish_key_pair.json" by default
key_store.program_key_path = "program_key.json" # Relative path from root_path, "program_key.json" by default
key_store.mapping_key_path = "mapping_key.json" # Relative path from root_path, "mapping_key.json" by default
# [...]
# New v2.0.0 way
[primary_network]
key_store.publish_keypair_path = "/path/to/keypair.json" # The root_path is gone, we specify the full path
# Not using separate files anymore
key_store.program_key = "LiteralProgramPubkeyInsideTheConfig" # contents of legacy program_key.json;
key_store.mapping_key = "LiteralMappingPubkeyInsideTheConfig" # contents of legacy mapping_key.json
# [...]
See README for more details and automatic migration instructions. You can also consult config/config.sample.*.toml
for reference.
Accumulator publishing
With this release, we begin official support for the Pythnet/Pythtest-crosschain accumulator program. This program is a part of a new approach to cross-chain publishing, which improves throughput and latencies for cross-chain price feed consumers. To enable accumulator support in your agent, add this to your pythnet/pythtest-crosschain config:
[primary_network]
# [...]
# Pythnet/pythtest-crosschain accumulator key
key_store.accumulator_key = "7Vbmv1jt4vyuqBZcpYPpnVhrqVe5e6ZPb6JxDcffRHUM"
# IMPORTANT: Exporter batch size must be decreased to 7 to support
# larger accumulator transactions, when accumulator_key is set.
exporter.max_batch_size = 7
Other changes
- Sample configs now include the correct program/mapping keys for each network. This includes the
accumulator_key
option for the new Pythnet/Pythtest publishing approach. config/config.toml
option ordering has been cleaned up for readibility and correctness.- Log messages from publisher permission lookup have been clarified
Full Changelog: v1.4.0...v2.0.1
Pyth Agent v1.4.0
What's Changed
- Improved gas efficiency for slow moving prices - Starting with this release, the agent will not publish prices with unchanged price/confidence/status, unless a configurable delay from last publishing has passed or if the price does change. The delay is configured with a new option called
<network>.exporter.unchanged_publishing_threshold
(at least 5s between unchanged updates by default), - Moved some non-essential log messages to the debug log level
Docker image
You can find the pyth-agent Docker image here: https://gallery.ecr.aws/pyth-network/agent
Full Changelog: v1.3.1...v1.4.0
Pyth Agent v1.3.1
Fixes
Changes log level of stale price update message from warn to info
Docker image
You can find the pyth-agent Docker image here: https://gallery.ecr.aws/pyth-network/agent
Pyth Agent v1.3.0
New features
- Publishing API now supports JSONRPC batch requests
Fixes
- No more unexpected large memory allocations and the resulting segfaults
Docker image
You can find the pyth-agent Docker image here: https://gallery.ecr.aws/pyth-network/agent
Pyth Agent v1.2.3
What's new
- Initial round of Per-symbol Prometheus metrics served on
http://<metrics_server.bind_address>/metrics
- Configurable logging buffer capacity at
channel_capacities.logger_buffer
, default bumped from 15 to a comfortable 10 000. - HTML dashboard is also served at
http://<metrics_server.bind_address>/
(/dashboard
still works) - Additional sample configs available under
config/
- Initial support for the Pythnet accumulator - this is a Pythnet-specific Wormhole publishing feature, yet to be rolled out to Pythtest and Pythnet
Fixes
- Fixed misleading config docs which listed top-level settings under
primary_network
settings (remote keypair loader and metrics_server) - Unpermissioned symbols are now filtered out automatically per network, limiting failing transaction cost
Full Changelog: v1.1.0...v1.2.3
Pyth Agent v1.1.0
What's new
- Use stable Rust
- Simple dashboard on
localhost:8888/dashboard
- Optimized TCP connection count for symbol set lookups
- Remote keypair hotloading on
localhost:9001/primary|secondary/load_keypair
All new settings are optional and documented in config/config.toml
Pyth Agent v1.0.0
What's Changed
- Improve logging and reliability by @ali-bahjati in #45
- Bump version to 1.0.0 by @ali-bahjati in #46
Full Changelog: v0.1.2...v1.0.0
Pyth Agent v0.1.2
Pyth Agent v0.1.1
What's Changed
- Update integration tests readme by @ali-bahjati in #42
- Improve cargo build by @ali-bahjati in #43
Full Changelog: v0.1.0...v0.1.1
Pyth Agent v0.1.0
Add image push action to CI (#41)