[anza migration] rename crates (#10)
* rename geyser-plugin-interface * rename cargo registry * rename watchtower * rename ledger tool * rename validator * rename install * rename geyser plugin interface when patch
This commit is contained in:
parent
91e3dd2250
commit
3f9a7a52ea
|
@ -22,3 +22,6 @@ if semverGT "$project_used_solana_version" "$SOLANA_VER"; then
|
|||
fi
|
||||
|
||||
./patch.crates-io.sh "$SOLANA_DIR"
|
||||
|
||||
# anza migration stopgap. can be removed when agave is fully recommended for public usage.
|
||||
sed -i 's/solana-geyser-plugin-interface/agave-geyser-plugin-interface/g' ./Cargo.toml
|
||||
|
|
|
@ -70,7 +70,7 @@ jobs:
|
|||
mkdir -p "windows-release/$FOLDER_NAME"
|
||||
cp -v "solana-release-x86_64-pc-windows-msvc.tar.bz2" "windows-release/$FOLDER_NAME/"
|
||||
cp -v "solana-release-x86_64-pc-windows-msvc.yml" "windows-release/$FOLDER_NAME/"
|
||||
cp -v "solana-install-init-x86_64-pc-windows-msvc"* "windows-release/$FOLDER_NAME"
|
||||
cp -v "agave-install-init-x86_64-pc-windows-msvc"* "windows-release/$FOLDER_NAME"
|
||||
|
||||
- name: Upload Artifacts
|
||||
if: ${{ steps.build.outputs.channel != '' || steps.build.outputs.tag != '' }}
|
||||
|
|
|
@ -62,6 +62,217 @@ dependencies = [
|
|||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "agave-cargo-registry"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"clap 2.33.3",
|
||||
"flate2",
|
||||
"hex",
|
||||
"hyper",
|
||||
"log",
|
||||
"rustc_version 0.4.0",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"sha2 0.10.8",
|
||||
"solana-clap-utils",
|
||||
"solana-cli",
|
||||
"solana-cli-config",
|
||||
"solana-cli-output",
|
||||
"solana-logger",
|
||||
"solana-remote-wallet",
|
||||
"solana-rpc-client",
|
||||
"solana-rpc-client-api",
|
||||
"solana-sdk",
|
||||
"solana-version",
|
||||
"tar",
|
||||
"tempfile",
|
||||
"tokio",
|
||||
"toml 0.8.10",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "agave-geyser-plugin-interface"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"log",
|
||||
"solana-sdk",
|
||||
"solana-transaction-status",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "agave-install"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"atty",
|
||||
"bincode",
|
||||
"bzip2",
|
||||
"chrono",
|
||||
"clap 2.33.3",
|
||||
"console",
|
||||
"crossbeam-channel",
|
||||
"ctrlc",
|
||||
"dirs-next",
|
||||
"indicatif",
|
||||
"lazy_static",
|
||||
"nix 0.26.4",
|
||||
"reqwest",
|
||||
"scopeguard",
|
||||
"semver 1.0.22",
|
||||
"serde",
|
||||
"serde_yaml 0.8.26",
|
||||
"serde_yaml 0.9.32",
|
||||
"solana-clap-utils",
|
||||
"solana-config-program",
|
||||
"solana-logger",
|
||||
"solana-rpc-client",
|
||||
"solana-sdk",
|
||||
"solana-version",
|
||||
"tar",
|
||||
"tempfile",
|
||||
"url 2.5.0",
|
||||
"winapi 0.3.9",
|
||||
"winreg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "agave-ledger-tool"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"assert_cmd",
|
||||
"bs58",
|
||||
"bytecount",
|
||||
"chrono",
|
||||
"clap 2.33.3",
|
||||
"crossbeam-channel",
|
||||
"csv",
|
||||
"dashmap",
|
||||
"futures 0.3.30",
|
||||
"histogram",
|
||||
"itertools",
|
||||
"log",
|
||||
"num_cpus",
|
||||
"regex",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"signal-hook",
|
||||
"solana-account-decoder",
|
||||
"solana-accounts-db",
|
||||
"solana-bpf-loader-program",
|
||||
"solana-clap-utils",
|
||||
"solana-cli-output",
|
||||
"solana-core",
|
||||
"solana-cost-model",
|
||||
"solana-entry",
|
||||
"solana-geyser-plugin-manager",
|
||||
"solana-gossip",
|
||||
"solana-ledger",
|
||||
"solana-logger",
|
||||
"solana-measure",
|
||||
"solana-program-runtime",
|
||||
"solana-rpc",
|
||||
"solana-runtime",
|
||||
"solana-sdk",
|
||||
"solana-stake-program",
|
||||
"solana-storage-bigtable",
|
||||
"solana-streamer",
|
||||
"solana-svm",
|
||||
"solana-transaction-status",
|
||||
"solana-unified-scheduler-pool",
|
||||
"solana-version",
|
||||
"solana-vote-program",
|
||||
"solana_rbpf",
|
||||
"thiserror",
|
||||
"tikv-jemallocator",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "agave-validator"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"agave-geyser-plugin-interface",
|
||||
"chrono",
|
||||
"clap 2.33.3",
|
||||
"console",
|
||||
"core_affinity",
|
||||
"crossbeam-channel",
|
||||
"fd-lock",
|
||||
"indicatif",
|
||||
"itertools",
|
||||
"jsonrpc-core",
|
||||
"jsonrpc-core-client",
|
||||
"jsonrpc-derive",
|
||||
"jsonrpc-ipc-server",
|
||||
"jsonrpc-server-utils",
|
||||
"lazy_static",
|
||||
"libc",
|
||||
"libloading",
|
||||
"log",
|
||||
"num_cpus",
|
||||
"rand 0.8.5",
|
||||
"rayon",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serde_yaml 0.9.32",
|
||||
"signal-hook",
|
||||
"solana-account-decoder",
|
||||
"solana-accounts-db",
|
||||
"solana-clap-utils",
|
||||
"solana-cli-config",
|
||||
"solana-core",
|
||||
"solana-download-utils",
|
||||
"solana-entry",
|
||||
"solana-faucet",
|
||||
"solana-genesis-utils",
|
||||
"solana-geyser-plugin-manager",
|
||||
"solana-gossip",
|
||||
"solana-ledger",
|
||||
"solana-logger",
|
||||
"solana-metrics",
|
||||
"solana-net-utils",
|
||||
"solana-perf",
|
||||
"solana-poh",
|
||||
"solana-rpc",
|
||||
"solana-rpc-client",
|
||||
"solana-rpc-client-api",
|
||||
"solana-runtime",
|
||||
"solana-sdk",
|
||||
"solana-send-transaction-service",
|
||||
"solana-storage-bigtable",
|
||||
"solana-streamer",
|
||||
"solana-svm",
|
||||
"solana-test-validator",
|
||||
"solana-tpu-client",
|
||||
"solana-unified-scheduler-pool",
|
||||
"solana-version",
|
||||
"solana-vote-program",
|
||||
"spl-token-2022",
|
||||
"symlink",
|
||||
"thiserror",
|
||||
"tikv-jemallocator",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "agave-watchtower"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"clap 2.33.3",
|
||||
"humantime",
|
||||
"log",
|
||||
"solana-clap-utils",
|
||||
"solana-cli-config",
|
||||
"solana-cli-output",
|
||||
"solana-logger",
|
||||
"solana-metrics",
|
||||
"solana-notifier",
|
||||
"solana-rpc-client",
|
||||
"solana-rpc-client-api",
|
||||
"solana-sdk",
|
||||
"solana-version",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ahash"
|
||||
version = "0.7.6"
|
||||
|
@ -5482,35 +5693,6 @@ dependencies = [
|
|||
"tar",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-cargo-registry"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"clap 2.33.3",
|
||||
"flate2",
|
||||
"hex",
|
||||
"hyper",
|
||||
"log",
|
||||
"rustc_version 0.4.0",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"sha2 0.10.8",
|
||||
"solana-clap-utils",
|
||||
"solana-cli",
|
||||
"solana-cli-config",
|
||||
"solana-cli-output",
|
||||
"solana-logger",
|
||||
"solana-remote-wallet",
|
||||
"solana-rpc-client",
|
||||
"solana-rpc-client-api",
|
||||
"solana-sdk",
|
||||
"solana-version",
|
||||
"tar",
|
||||
"tempfile",
|
||||
"tokio",
|
||||
"toml 0.8.10",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-cargo-test-bpf"
|
||||
version = "1.19.0"
|
||||
|
@ -6040,20 +6222,11 @@ dependencies = [
|
|||
"solana-sdk",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-geyser-plugin-interface"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"log",
|
||||
"solana-sdk",
|
||||
"solana-transaction-status",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-geyser-plugin-manager"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"agave-geyser-plugin-interface",
|
||||
"bs58",
|
||||
"crossbeam-channel",
|
||||
"json5",
|
||||
|
@ -6064,7 +6237,6 @@ dependencies = [
|
|||
"serde_json",
|
||||
"solana-accounts-db",
|
||||
"solana-entry",
|
||||
"solana-geyser-plugin-interface",
|
||||
"solana-ledger",
|
||||
"solana-measure",
|
||||
"solana-metrics",
|
||||
|
@ -6126,41 +6298,6 @@ dependencies = [
|
|||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-install"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"atty",
|
||||
"bincode",
|
||||
"bzip2",
|
||||
"chrono",
|
||||
"clap 2.33.3",
|
||||
"console",
|
||||
"crossbeam-channel",
|
||||
"ctrlc",
|
||||
"dirs-next",
|
||||
"indicatif",
|
||||
"lazy_static",
|
||||
"nix 0.26.4",
|
||||
"reqwest",
|
||||
"scopeguard",
|
||||
"semver 1.0.22",
|
||||
"serde",
|
||||
"serde_yaml 0.8.26",
|
||||
"serde_yaml 0.9.32",
|
||||
"solana-clap-utils",
|
||||
"solana-config-program",
|
||||
"solana-logger",
|
||||
"solana-rpc-client",
|
||||
"solana-sdk",
|
||||
"solana-version",
|
||||
"tar",
|
||||
"tempfile",
|
||||
"url 2.5.0",
|
||||
"winapi 0.3.9",
|
||||
"winreg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-keygen"
|
||||
version = "1.19.0"
|
||||
|
@ -6248,58 +6385,6 @@ dependencies = [
|
|||
"trees",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-ledger-tool"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"assert_cmd",
|
||||
"bs58",
|
||||
"bytecount",
|
||||
"chrono",
|
||||
"clap 2.33.3",
|
||||
"crossbeam-channel",
|
||||
"csv",
|
||||
"dashmap",
|
||||
"futures 0.3.30",
|
||||
"histogram",
|
||||
"itertools",
|
||||
"log",
|
||||
"num_cpus",
|
||||
"regex",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"signal-hook",
|
||||
"solana-account-decoder",
|
||||
"solana-accounts-db",
|
||||
"solana-bpf-loader-program",
|
||||
"solana-clap-utils",
|
||||
"solana-cli-output",
|
||||
"solana-core",
|
||||
"solana-cost-model",
|
||||
"solana-entry",
|
||||
"solana-geyser-plugin-manager",
|
||||
"solana-gossip",
|
||||
"solana-ledger",
|
||||
"solana-logger",
|
||||
"solana-measure",
|
||||
"solana-program-runtime",
|
||||
"solana-rpc",
|
||||
"solana-runtime",
|
||||
"solana-sdk",
|
||||
"solana-stake-program",
|
||||
"solana-storage-bigtable",
|
||||
"solana-streamer",
|
||||
"solana-svm",
|
||||
"solana-transaction-status",
|
||||
"solana-unified-scheduler-pool",
|
||||
"solana-version",
|
||||
"solana-vote-program",
|
||||
"solana_rbpf",
|
||||
"thiserror",
|
||||
"tikv-jemallocator",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-loader-v4-program"
|
||||
version = "1.19.0"
|
||||
|
@ -7463,72 +7548,6 @@ dependencies = [
|
|||
"solana-metrics",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-validator"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"clap 2.33.3",
|
||||
"console",
|
||||
"core_affinity",
|
||||
"crossbeam-channel",
|
||||
"fd-lock",
|
||||
"indicatif",
|
||||
"itertools",
|
||||
"jsonrpc-core",
|
||||
"jsonrpc-core-client",
|
||||
"jsonrpc-derive",
|
||||
"jsonrpc-ipc-server",
|
||||
"jsonrpc-server-utils",
|
||||
"lazy_static",
|
||||
"libc",
|
||||
"libloading",
|
||||
"log",
|
||||
"num_cpus",
|
||||
"rand 0.8.5",
|
||||
"rayon",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serde_yaml 0.9.32",
|
||||
"signal-hook",
|
||||
"solana-account-decoder",
|
||||
"solana-accounts-db",
|
||||
"solana-clap-utils",
|
||||
"solana-cli-config",
|
||||
"solana-core",
|
||||
"solana-download-utils",
|
||||
"solana-entry",
|
||||
"solana-faucet",
|
||||
"solana-genesis-utils",
|
||||
"solana-geyser-plugin-interface",
|
||||
"solana-geyser-plugin-manager",
|
||||
"solana-gossip",
|
||||
"solana-ledger",
|
||||
"solana-logger",
|
||||
"solana-metrics",
|
||||
"solana-net-utils",
|
||||
"solana-perf",
|
||||
"solana-poh",
|
||||
"solana-rpc",
|
||||
"solana-rpc-client",
|
||||
"solana-rpc-client-api",
|
||||
"solana-runtime",
|
||||
"solana-sdk",
|
||||
"solana-send-transaction-service",
|
||||
"solana-storage-bigtable",
|
||||
"solana-streamer",
|
||||
"solana-svm",
|
||||
"solana-test-validator",
|
||||
"solana-tpu-client",
|
||||
"solana-unified-scheduler-pool",
|
||||
"solana-version",
|
||||
"solana-vote-program",
|
||||
"spl-token-2022",
|
||||
"symlink",
|
||||
"thiserror",
|
||||
"tikv-jemallocator",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-version"
|
||||
version = "1.19.0"
|
||||
|
@ -7585,25 +7604,6 @@ dependencies = [
|
|||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-watchtower"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"clap 2.33.3",
|
||||
"humantime",
|
||||
"log",
|
||||
"solana-clap-utils",
|
||||
"solana-cli-config",
|
||||
"solana-cli-output",
|
||||
"solana-logger",
|
||||
"solana-metrics",
|
||||
"solana-notifier",
|
||||
"solana-rpc-client",
|
||||
"solana-rpc-client-api",
|
||||
"solana-sdk",
|
||||
"solana-version",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-wen-restart"
|
||||
version = "1.19.0"
|
||||
|
|
|
@ -317,7 +317,7 @@ solana-bench-tps = { path = "bench-tps", version = "=1.19.0" }
|
|||
solana-bloom = { path = "bloom", version = "=1.19.0" }
|
||||
solana-bpf-loader-program = { path = "programs/bpf_loader", version = "=1.19.0" }
|
||||
solana-bucket-map = { path = "bucket_map", version = "=1.19.0" }
|
||||
solana-cargo-registry = { path = "cargo-registry", version = "=1.19.0" }
|
||||
agave-cargo-registry = { path = "cargo-registry", version = "=1.19.0" }
|
||||
solana-clap-utils = { path = "clap-utils", version = "=1.19.0" }
|
||||
solana-clap-v3-utils = { path = "clap-v3-utils", version = "=1.19.0" }
|
||||
solana-cli = { path = "cli", version = "=1.19.0" }
|
||||
|
@ -336,7 +336,7 @@ solana-frozen-abi = { path = "frozen-abi", version = "=1.19.0" }
|
|||
solana-frozen-abi-macro = { path = "frozen-abi/macro", version = "=1.19.0" }
|
||||
solana-genesis = { path = "genesis", version = "=1.19.0" }
|
||||
solana-genesis-utils = { path = "genesis-utils", version = "=1.19.0" }
|
||||
solana-geyser-plugin-interface = { path = "geyser-plugin-interface", version = "=1.19.0" }
|
||||
agave-geyser-plugin-interface = { path = "geyser-plugin-interface", version = "=1.19.0" }
|
||||
solana-geyser-plugin-manager = { path = "geyser-plugin-manager", version = "=1.19.0" }
|
||||
solana-gossip = { path = "gossip", version = "=1.19.0" }
|
||||
solana-ledger = { path = "ledger", version = "=1.19.0" }
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "solana-cargo-registry"
|
||||
name = "agave-cargo-registry"
|
||||
description = "Solana cargo registry"
|
||||
documentation = "https://docs.rs/solana-cargo-registry"
|
||||
documentation = "https://docs.rs/agave-cargo-registry"
|
||||
version = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
|
|
|
@ -202,8 +202,8 @@ killNodes() {
|
|||
# Try to use the RPC exit API to cleanly exit the first two nodes
|
||||
# (dynamic nodes, -x, are just killed)
|
||||
echo "--- RPC exit"
|
||||
$solana_validator --ledger "$SOLANA_CONFIG_DIR"/bootstrap-validator exit --force || true
|
||||
$solana_validator --ledger "$SOLANA_CONFIG_DIR"/validator exit --force || true
|
||||
$agave_validator --ledger "$SOLANA_CONFIG_DIR"/bootstrap-validator exit --force || true
|
||||
$agave_validator --ledger "$SOLANA_CONFIG_DIR"/validator exit --force || true
|
||||
|
||||
# Give the nodes a splash of time to cleanly exit before killing them
|
||||
sleep 2
|
||||
|
|
|
@ -31,7 +31,7 @@ SOLANA_RELEASE=$CHANNEL_OR_TAG
|
|||
SOLANA_INSTALL_INIT_ARGS=$CHANNEL_OR_TAG
|
||||
SOLANA_DOWNLOAD_ROOT=https://release.anza.xyz
|
||||
EOF
|
||||
cat install/solana-install-init.sh >>release.anza.xyz-install
|
||||
cat install/agave-install-init.sh >>release.anza.xyz-install
|
||||
|
||||
echo --- GCS: "install"
|
||||
upload-gcs-artifact "/solana/release.anza.xyz-install" "gs://anza-release/$CHANNEL_OR_TAG/install"
|
||||
|
|
|
@ -93,7 +93,7 @@ echo --- Creating release tarball
|
|||
|
||||
tar cvf "${TARBALL_BASENAME}"-$TARGET.tar "${RELEASE_BASENAME}"
|
||||
bzip2 "${TARBALL_BASENAME}"-$TARGET.tar
|
||||
cp "${RELEASE_BASENAME}"/bin/solana-install-init solana-install-init-$TARGET
|
||||
cp "${RELEASE_BASENAME}"/bin/agave-install-init agave-install-init-$TARGET
|
||||
cp "${RELEASE_BASENAME}"/version.yml "${TARBALL_BASENAME}"-$TARGET.yml
|
||||
)
|
||||
|
||||
|
@ -110,7 +110,7 @@ fi
|
|||
|
||||
source ci/upload-ci-artifact.sh
|
||||
|
||||
for file in "${TARBALL_BASENAME}"-$TARGET.tar.bz2 "${TARBALL_BASENAME}"-$TARGET.yml solana-install-init-"$TARGET"* $MAYBE_TARBALLS; do
|
||||
for file in "${TARBALL_BASENAME}"-$TARGET.tar.bz2 "${TARBALL_BASENAME}"-$TARGET.yml agave-install-init-"$TARGET"* $MAYBE_TARBALLS; do
|
||||
if [[ -n $DO_NOT_PUBLISH_TAR ]]; then
|
||||
upload-ci-artifact "$file"
|
||||
echo "Skipped $file due to DO_NOT_PUBLISH_TAR"
|
||||
|
|
|
@ -31,7 +31,7 @@ while [[ $latest_slot -le $((snapshot_slot + 1)) ]]; do
|
|||
latest_slot=$($solana_cli --url http://localhost:8899 slot --commitment processed)
|
||||
done
|
||||
|
||||
$solana_validator --ledger config/ledger exit --force || true
|
||||
$agave_validator --ledger config/ledger exit --force || true
|
||||
|
||||
wait $pid
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ Major releases:
|
|||
- [`solana-program`](https://docs.rs/solana-program/) - Rust SDK for writing programs
|
||||
- [`solana-client`](https://docs.rs/solana-client/) - Rust client for connecting to RPC API
|
||||
- [`solana-cli-config`](https://docs.rs/solana-cli-config/) - Rust client for managing Solana CLI config files
|
||||
- [`solana-geyser-plugin-interface`](https://docs.rs/solana-geyser-plugin-interface/) - Rust interface for developing Solana Geyser plugins.
|
||||
- [`agave-geyser-plugin-interface`](https://docs.rs/agave-geyser-plugin-interface/) - Rust interface for developing Solana Geyser plugins.
|
||||
|
||||
Patch releases:
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ Please update your PATH environment variable to include the solana programs:
|
|||
solana --version
|
||||
```
|
||||
|
||||
- After a successful install, `solana-install update` may be used to easily
|
||||
- After a successful install, `agave-install update` may be used to easily
|
||||
update the Solana software to a newer version at any time.
|
||||
|
||||
---
|
||||
|
@ -74,7 +74,7 @@ solana --version
|
|||
installer into a temporary directory:
|
||||
|
||||
```bash
|
||||
cmd /c "curl https://release.solana.com/LATEST_SOLANA_RELEASE_VERSION/solana-install-init-x86_64-pc-windows-msvc.exe --output C:\solana-install-tmp\solana-install-init.exe --create-dirs"
|
||||
cmd /c "curl https://release.solana.com/LATEST_SOLANA_RELEASE_VERSION/agave-install-init-x86_64-pc-windows-msvc.exe --output C:\agave-install-tmp\agave-install-init.exe --create-dirs"
|
||||
```
|
||||
|
||||
- Copy and paste the following command, then press Enter to install the latest
|
||||
|
@ -82,7 +82,7 @@ cmd /c "curl https://release.solana.com/LATEST_SOLANA_RELEASE_VERSION/solana-ins
|
|||
to allow the program to run.
|
||||
|
||||
```bash
|
||||
C:\solana-install-tmp\solana-install-init.exe LATEST_SOLANA_RELEASE_VERSION
|
||||
C:\agave-install-tmp\agave-install-init.exe LATEST_SOLANA_RELEASE_VERSION
|
||||
```
|
||||
|
||||
- When the installer is finished, press Enter.
|
||||
|
@ -97,12 +97,12 @@ C:\solana-install-tmp\solana-install-init.exe LATEST_SOLANA_RELEASE_VERSION
|
|||
solana --version
|
||||
```
|
||||
|
||||
- After a successful install, `solana-install update` may be used to easily
|
||||
- After a successful install, `agave-install update` may be used to easily
|
||||
update the Solana software to a newer version at any time.
|
||||
|
||||
## Download Prebuilt Binaries
|
||||
|
||||
If you would rather not use `solana-install` to manage the install, you can
|
||||
If you would rather not use `agave-install` to manage the install, you can
|
||||
manually download and install the binaries.
|
||||
|
||||
### Linux
|
||||
|
@ -255,7 +255,7 @@ You can then run the following command to obtain the same result as with
|
|||
prebuilt binaries:
|
||||
|
||||
```bash
|
||||
solana-install init
|
||||
agave-install init
|
||||
```
|
||||
|
||||
## Use Homebrew
|
||||
|
|
|
@ -41,10 +41,10 @@ export SOLANA_METRICS_CONFIG="host=https://metrics.solana.com:8086,db=devnet,u=s
|
|||
solana config set --url https://api.devnet.solana.com
|
||||
```
|
||||
|
||||
##### Example `solana-validator` command-line
|
||||
##### Example `agave-validator` command-line
|
||||
|
||||
```bash
|
||||
$ solana-validator \
|
||||
$ agave-validator \
|
||||
--identity validator-keypair.json \
|
||||
--vote-account vote-account-keypair.json \
|
||||
--known-validator dv1ZAGvdsz5hHLwWXsVnM94hWf1pjbKVau1QVkaMJ92 \
|
||||
|
@ -93,10 +93,10 @@ export SOLANA_METRICS_CONFIG="host=https://metrics.solana.com:8086,db=tds,u=test
|
|||
solana config set --url https://api.testnet.solana.com
|
||||
```
|
||||
|
||||
##### Example `solana-validator` command-line
|
||||
##### Example `agave-validator` command-line
|
||||
|
||||
```bash
|
||||
$ solana-validator \
|
||||
$ agave-validator \
|
||||
--identity validator-keypair.json \
|
||||
--vote-account vote-account-keypair.json \
|
||||
--known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \
|
||||
|
@ -145,10 +145,10 @@ export SOLANA_METRICS_CONFIG="host=https://metrics.solana.com:8086,db=mainnet-be
|
|||
solana config set --url https://api.mainnet-beta.solana.com
|
||||
```
|
||||
|
||||
##### Example `solana-validator` command-line
|
||||
##### Example `agave-validator` command-line
|
||||
|
||||
```bash
|
||||
$ solana-validator \
|
||||
$ agave-validator \
|
||||
--identity ~/validator-keypair.json \
|
||||
--vote-account ~/vote-account-keypair.json \
|
||||
--known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \
|
||||
|
|
|
@ -108,7 +108,7 @@ For example
|
|||
|
||||
Generally we are using `debug` for infrequent debug messages, `trace` for potentially frequent messages and `info` for performance-related logging.
|
||||
|
||||
You can also attach to a running process with GDB. The leader's process is named _solana-validator_:
|
||||
You can also attach to a running process with GDB. The leader's process is named _agave-validator_:
|
||||
|
||||
```bash
|
||||
sudo gdb
|
||||
|
|
|
@ -13,16 +13,16 @@ This document proposes an easy to use software install and updater that can be u
|
|||
The easiest install method for supported platforms:
|
||||
|
||||
```bash
|
||||
$ curl -sSf https://raw.githubusercontent.com/solana-labs/solana/v1.0.0/install/solana-install-init.sh | sh
|
||||
$ curl -sSf https://raw.githubusercontent.com/solana-labs/solana/v1.0.0/install/agave-install-init.sh | sh
|
||||
```
|
||||
|
||||
This script will check github for the latest tagged release and download and run the `solana-install-init` binary from there.
|
||||
This script will check github for the latest tagged release and download and run the `agave-install-init` binary from there.
|
||||
|
||||
If additional arguments need to be specified during the installation, the following shell syntax is used:
|
||||
|
||||
```bash
|
||||
$ init_args=.... # arguments for `solana-install-init ...`
|
||||
$ curl -sSf https://raw.githubusercontent.com/solana-labs/solana/v1.0.0/install/solana-install-init.sh | sh -s - ${init_args}
|
||||
$ init_args=.... # arguments for `agave-install-init ...`
|
||||
$ curl -sSf https://raw.githubusercontent.com/solana-labs/solana/v1.0.0/install/agave-install-init.sh | sh -s - ${init_args}
|
||||
```
|
||||
|
||||
### Fetch and run a pre-built installer from a Github release
|
||||
|
@ -30,9 +30,9 @@ $ curl -sSf https://raw.githubusercontent.com/solana-labs/solana/v1.0.0/install/
|
|||
With a well-known release URL, a pre-built binary can be obtained for supported platforms:
|
||||
|
||||
```bash
|
||||
$ curl -o solana-install-init https://github.com/solana-labs/solana/releases/download/v1.0.0/solana-install-init-x86_64-apple-darwin
|
||||
$ chmod +x ./solana-install-init
|
||||
$ ./solana-install-init --help
|
||||
$ curl -o agave-install-init https://github.com/solana-labs/solana/releases/download/v1.0.0/agave-install-init-x86_64-apple-darwin
|
||||
$ chmod +x ./agave-install-init
|
||||
$ ./agave-install-init --help
|
||||
```
|
||||
|
||||
### Build and run the installer from source
|
||||
|
@ -51,16 +51,16 @@ Given a solana release tarball \(as created by `ci/publish-tarball.sh`\) that ha
|
|||
|
||||
```bash
|
||||
$ solana-keygen new -o update-manifest.json # <-- only generated once, the public key is shared with users
|
||||
$ solana-install deploy http://example.com/path/to/solana-release.tar.bz2 update-manifest.json
|
||||
$ agave-install deploy http://example.com/path/to/solana-release.tar.bz2 update-manifest.json
|
||||
```
|
||||
|
||||
### Run a validator node that auto updates itself
|
||||
|
||||
```bash
|
||||
$ solana-install init --pubkey 92DMonmBYXwEMHJ99c9ceRSpAmk9v6i3RdvDdXaVcrfj # <-- pubkey is obtained from whoever is deploying the updates
|
||||
$ export PATH=~/.local/share/solana-install/bin:$PATH
|
||||
$ agave-install init --pubkey 92DMonmBYXwEMHJ99c9ceRSpAmk9v6i3RdvDdXaVcrfj # <-- pubkey is obtained from whoever is deploying the updates
|
||||
$ export PATH=~/.local/share/agave-install/bin:$PATH
|
||||
$ solana-keygen ... # <-- runs the latest solana-keygen
|
||||
$ solana-install run solana-validator ... # <-- runs a validator, restarting it as necessary when an update is applied
|
||||
$ agave-install run agave-validator ... # <-- runs a validator, restarting it as necessary when an update is applied
|
||||
```
|
||||
|
||||
## On-chain Update Manifest
|
||||
|
@ -87,9 +87,9 @@ pub struct SignedUpdateManifest {
|
|||
}
|
||||
```
|
||||
|
||||
Note that the `manifest` field itself contains a corresponding signature \(`manifest_signature`\) to guard against man-in-the-middle attacks between the `solana-install` tool and the solana cluster RPC API.
|
||||
Note that the `manifest` field itself contains a corresponding signature \(`manifest_signature`\) to guard against man-in-the-middle attacks between the `agave-install` tool and the solana cluster RPC API.
|
||||
|
||||
To guard against rollback attacks, `solana-install` will refuse to install an update with an older `timestamp_secs` than what is currently installed.
|
||||
To guard against rollback attacks, `agave-install` will refuse to install an update with an older `timestamp_secs` than what is currently installed.
|
||||
|
||||
## Release Archive Contents
|
||||
|
||||
|
@ -101,17 +101,17 @@ A release archive is expected to be a tar file compressed with bzip2 with the fo
|
|||
|
||||
- `/bin/` -- directory containing available programs in the release.
|
||||
|
||||
`solana-install` will symlink this directory to
|
||||
`agave-install` will symlink this directory to
|
||||
|
||||
`~/.local/share/solana-install/bin` for use by the `PATH` environment
|
||||
`~/.local/share/agave-install/bin` for use by the `PATH` environment
|
||||
|
||||
variable.
|
||||
|
||||
- `...` -- any additional files and directories are permitted
|
||||
|
||||
## solana-install Tool
|
||||
## agave-install Tool
|
||||
|
||||
The `solana-install` tool is used by the user to install and update their cluster software.
|
||||
The `agave-install` tool is used by the user to install and update their cluster software.
|
||||
|
||||
It manages the following files and directories in the user's home directory:
|
||||
|
||||
|
@ -122,11 +122,11 @@ It manages the following files and directories in the user's home directory:
|
|||
### Command-line Interface
|
||||
|
||||
```text
|
||||
solana-install 0.16.0
|
||||
agave-install 0.16.0
|
||||
The solana cluster software installer
|
||||
|
||||
USAGE:
|
||||
solana-install [OPTIONS] <SUBCOMMAND>
|
||||
agave-install [OPTIONS] <SUBCOMMAND>
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
|
@ -145,11 +145,11 @@ SUBCOMMANDS:
|
|||
```
|
||||
|
||||
```text
|
||||
solana-install-init
|
||||
agave-install-init
|
||||
initializes a new installation
|
||||
|
||||
USAGE:
|
||||
solana-install init [OPTIONS]
|
||||
agave-install init [OPTIONS]
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
|
@ -161,11 +161,11 @@ OPTIONS:
|
|||
```
|
||||
|
||||
```text
|
||||
solana-install info
|
||||
agave-install info
|
||||
displays information about the current installation
|
||||
|
||||
USAGE:
|
||||
solana-install info [FLAGS]
|
||||
agave-install info [FLAGS]
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
|
@ -173,11 +173,11 @@ FLAGS:
|
|||
```
|
||||
|
||||
```text
|
||||
solana-install deploy
|
||||
agave-install deploy
|
||||
deploys a new update
|
||||
|
||||
USAGE:
|
||||
solana-install deploy <download_url> <update_manifest_keypair>
|
||||
agave-install deploy <download_url> <update_manifest_keypair>
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
|
@ -188,22 +188,22 @@ ARGS:
|
|||
```
|
||||
|
||||
```text
|
||||
solana-install update
|
||||
agave-install update
|
||||
checks for an update, and if available downloads and applies it
|
||||
|
||||
USAGE:
|
||||
solana-install update
|
||||
agave-install update
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
```
|
||||
|
||||
```text
|
||||
solana-install run
|
||||
agave-install run
|
||||
Runs a program while periodically checking and applying software updates
|
||||
|
||||
USAGE:
|
||||
solana-install run <program_name> [program_arguments]...
|
||||
agave-install run <program_name> [program_arguments]...
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
|
|
|
@ -68,7 +68,7 @@ the results of BigTable queries more complicated but is not a significant issue.
|
|||
## Data Population
|
||||
|
||||
The ongoing population of instance data will occur on an epoch cadence through
|
||||
the use of a new `solana-ledger-tool` command that will convert rocksdb data for
|
||||
the use of a new `agave-ledger-tool` command that will convert rocksdb data for
|
||||
a given slot range into the instance schema.
|
||||
|
||||
The same process will be run once, manually, to backfill the existing ledger
|
||||
|
|
|
@ -23,12 +23,12 @@ watch past workshops through the
|
|||
|
||||
## Help with the validator command line
|
||||
|
||||
From within the Solana CLI, you can execute the `solana-validator` command with
|
||||
From within the Solana CLI, you can execute the `agave-validator` command with
|
||||
the `--help` flag to get a better understanding of the flags and sub commands
|
||||
available.
|
||||
|
||||
```
|
||||
solana-validator --help
|
||||
agave-validator --help
|
||||
```
|
||||
|
||||
## Restarting your validator
|
||||
|
@ -49,14 +49,14 @@ solana leader-schedule
|
|||
Based on the current slot and the leader schedule, you can calculate open time
|
||||
windows where your validator is not expected to produce blocks.
|
||||
|
||||
Assuming you are ready to restart, you may use the `solana-validator exit`
|
||||
Assuming you are ready to restart, you may use the `agave-validator exit`
|
||||
command. The command exits your validator process when an appropriate idle time
|
||||
window is reached. Assuming that you have systemd implemented for your validator
|
||||
process, the validator should restart automatically after the exit. See the
|
||||
below help command for details:
|
||||
|
||||
```
|
||||
solana-validator exit --help
|
||||
agave-validator exit --help
|
||||
```
|
||||
|
||||
## Upgrading
|
||||
|
@ -75,28 +75,28 @@ process.
|
|||
It is a best practice to always build your Solana binaries from source. If you
|
||||
build from source, you are certain that the code you are building has not been
|
||||
tampered with before the binary was created. You may also be able to optimize
|
||||
your `solana-validator` binary to your specific hardware.
|
||||
your `agave-validator` binary to your specific hardware.
|
||||
|
||||
If you build from source on the validator machine (or a machine with the same
|
||||
CPU), you can target your specific architecture using the `-march` flag. Refer
|
||||
to the following doc for
|
||||
[instructions on building from source](../../cli/install.md#build-from-source).
|
||||
|
||||
### solana-install
|
||||
### agave-install
|
||||
|
||||
If you are not comfortable building from source, or you need to quickly install
|
||||
a new version to test something out, you could instead try using the
|
||||
`solana-install` command.
|
||||
`agave-install` command.
|
||||
|
||||
Assuming you want to install Solana version `1.14.17`, you would execute the
|
||||
following:
|
||||
|
||||
```
|
||||
solana-install init 1.14.17
|
||||
agave-install init 1.14.17
|
||||
```
|
||||
|
||||
This command downloads the executable for `1.14.17` and installs it into a
|
||||
`.local` directory. You can also look at `solana-install --help` for more
|
||||
`.local` directory. You can also look at `agave-install --help` for more
|
||||
options.
|
||||
|
||||
> **Note** this command only works if you already have the solana cli installed.
|
||||
|
@ -106,7 +106,7 @@ options.
|
|||
### Restart
|
||||
|
||||
For all install methods, the validator process will need to be restarted before
|
||||
the newly installed version is in use. Use `solana-validator exit` to restart
|
||||
the newly installed version is in use. Use `agave-validator exit` to restart
|
||||
your validator process.
|
||||
|
||||
### Verifying version
|
||||
|
@ -132,13 +132,13 @@ have state locally. In other cases such as restarts for upgrades, a snapshot
|
|||
download should be avoided.
|
||||
|
||||
To avoid downloading a snapshot on restart, add the following flag to the
|
||||
`solana-validator` command:
|
||||
`agave-validator` command:
|
||||
|
||||
```
|
||||
--no-snapshot-fetch
|
||||
```
|
||||
|
||||
If you use this flag with the `solana-validator` command, make sure that you run
|
||||
If you use this flag with the `agave-validator` command, make sure that you run
|
||||
`solana catchup <pubkey>` after your validator starts to make sure that the
|
||||
validator is catching up in a reasonable time. After some time (potentially a
|
||||
few hours), if it appears that your validator continues to fall behind, then you
|
||||
|
@ -199,7 +199,7 @@ It is important that you do not accidentally run out of funds in your identity
|
|||
account, as your node will stop voting. It is also important to note that this
|
||||
account keypair is the most vulnerable of the three keypairs in a vote account
|
||||
because the keypair for the identity account is stored on your validator when
|
||||
running the `solana-validator` software. How much SOL you should store there is
|
||||
running the `agave-validator` software. How much SOL you should store there is
|
||||
up to you. As a best practice, make sure to check the account regularly and
|
||||
refill or deduct from it as needed. To check the account balance do:
|
||||
|
||||
|
@ -207,7 +207,7 @@ refill or deduct from it as needed. To check the account balance do:
|
|||
solana balance validator-keypair.json
|
||||
```
|
||||
|
||||
> **Note** `solana-watchtower` can monitor for a minimum validator identity
|
||||
> **Note** `agave-watchtower` can monitor for a minimum validator identity
|
||||
> balance. See [monitoring best practices](./monitoring.md) for details.
|
||||
|
||||
## Withdrawing From The Vote Account
|
||||
|
|
|
@ -4,34 +4,34 @@ sidebar_label: Monitoring
|
|||
pagination_label: "Best Practices: Validator Monitoring"
|
||||
---
|
||||
|
||||
It is essential that you have monitoring in place on your validator. In the event that your validator is delinquent (behind the rest of the network) you want to respond immediately to fix the issue. One very useful tool to monitor your validator is [`solana-watchtower`](#solana-watchtower).
|
||||
It is essential that you have monitoring in place on your validator. In the event that your validator is delinquent (behind the rest of the network) you want to respond immediately to fix the issue. One very useful tool to monitor your validator is [`agave-watchtower`](#agave-watchtower).
|
||||
|
||||
## Solana Watchtower
|
||||
|
||||
Solana Watchtower is an extremely useful monitoring tool that will regularly monitor the health of your validator. It can monitor your validator for delinquency then notify you on your application of choice: Slack, Discord, Telegram or Twilio. Additionally, `solana-watchtower` has the ability to monitor the health of the entire cluster so that you can be aware of any cluster wide problems.
|
||||
Solana Watchtower is an extremely useful monitoring tool that will regularly monitor the health of your validator. It can monitor your validator for delinquency then notify you on your application of choice: Slack, Discord, Telegram or Twilio. Additionally, `agave-watchtower` has the ability to monitor the health of the entire cluster so that you can be aware of any cluster wide problems.
|
||||
|
||||
### Getting Started
|
||||
|
||||
To get started with Solana Watchtower, run `solana-watchtower --help`. From the help menu, you can see the optional flags and an explanation of the command.
|
||||
To get started with Solana Watchtower, run `agave-watchtower --help`. From the help menu, you can see the optional flags and an explanation of the command.
|
||||
|
||||
Here is a sample command that will monitor a validator node with an identity public key of `2uTk98rqqwENevkPH2AHHzGHXgeGc1h6ku8hQUqWeXZp`:
|
||||
|
||||
```
|
||||
solana-watchtower --monitor-active-stake --validator-identity \
|
||||
agave-watchtower --monitor-active-stake --validator-identity \
|
||||
2uTk98rqqwENevkPH2AHHzGHXgeGc1h6ku8hQUqWeXZp
|
||||
```
|
||||
|
||||
The command will monitor your validator, but you will not get notifications unless you added the environment variables mentioned in `solana-watchtower --help`. Since getting each of these services setup for notifications is not straight forward, the next section will walk through [setting up watchtower notifications on Telegram](#setup-telegram-notifications).
|
||||
The command will monitor your validator, but you will not get notifications unless you added the environment variables mentioned in `agave-watchtower --help`. Since getting each of these services setup for notifications is not straight forward, the next section will walk through [setting up watchtower notifications on Telegram](#setup-telegram-notifications).
|
||||
|
||||
### Best Practices
|
||||
|
||||
It is a best practice to run the `solana-watchtower` command on a separate server from your validator.
|
||||
It is a best practice to run the `agave-watchtower` command on a separate server from your validator.
|
||||
|
||||
In the case that you run `solana-watchtower` on the same computer as your `solana-validator` process, then during catastrophic events like a power outage, you will not be aware of the issue, because your `solana-watchtower` process will stop at the same time as your `solana-validator` process.
|
||||
In the case that you run `agave-watchtower` on the same computer as your `agave-validator` process, then during catastrophic events like a power outage, you will not be aware of the issue, because your `agave-watchtower` process will stop at the same time as your `agave-validator` process.
|
||||
|
||||
Additionally, while running the `solana-watchtower` process manually with environment variables set in the terminal is a good way to test out the command, it is not operationally sound because the process will not be restarted when the terminal closes or during a system restart.
|
||||
Additionally, while running the `agave-watchtower` process manually with environment variables set in the terminal is a good way to test out the command, it is not operationally sound because the process will not be restarted when the terminal closes or during a system restart.
|
||||
|
||||
Instead, you could run your `solana-watchtower` command as a system process similar to `solana-validator`. In the system process file, you can specify the environment variables for your bot.
|
||||
Instead, you could run your `agave-watchtower` command as a system process similar to `agave-validator`. In the system process file, you can specify the environment variables for your bot.
|
||||
|
||||
### Setup Telegram Notifications
|
||||
|
||||
|
@ -41,7 +41,7 @@ To send validator health notifications to your Telegram account, we are going to
|
|||
2. Send a message to the bot
|
||||
3. Create a Telegram group that will get the watchtower notifications
|
||||
4. Add the environment variables to your command line environment
|
||||
5. Restart the `solana-watchtower` command
|
||||
5. Restart the `agave-watchtower` command
|
||||
|
||||
#### Create a Bot Using BotFather
|
||||
|
||||
|
@ -61,7 +61,7 @@ In Telegram, click on the new message icon and then select new group. Find your
|
|||
|
||||
Now that you have a bot setup, you will need to set the environment variables for the bot so that watchtower can send notifications.
|
||||
|
||||
First, recall the chat message that you got from _@BotFather_. In the message, there was an HTTP API token for your bot. The token will have this format: `389178471:MMTKMrnZB4ErUzJmuFIXTKE6DupLSgoa7h4o`. You will use that token to set the `TELEGRAM_BOT_TOKEN` environment variable. In the terminal where you plan to run `solana-watchtower`, run the following:
|
||||
First, recall the chat message that you got from _@BotFather_. In the message, there was an HTTP API token for your bot. The token will have this format: `389178471:MMTKMrnZB4ErUzJmuFIXTKE6DupLSgoa7h4o`. You will use that token to set the `TELEGRAM_BOT_TOKEN` environment variable. In the terminal where you plan to run `agave-watchtower`, run the following:
|
||||
|
||||
```
|
||||
export TELEGRAM_BOT_TOKEN=<HTTP API Token>
|
||||
|
@ -73,14 +73,14 @@ Next, in your browser, go to `https://api.telegram.org/bot<HTTP API Token>/getUp
|
|||
|
||||
The response should be in JSON. Search for the string `"chat":` in the JSON. The `id` value of that chat is your `TELEGRAM_CHAT_ID`. It will be a negative number like: `-781559558`. Remember to include the negative sign! If you cannot find `"chat":` in the JSON, then you may have to remove the bot from your chat group and add it again.
|
||||
|
||||
With your Telegram chat id in hand, export the environment variable where you plan to run `solana-watchtower`:
|
||||
With your Telegram chat id in hand, export the environment variable where you plan to run `agave-watchtower`:
|
||||
|
||||
```
|
||||
export TELEGRAM_CHAT_ID=<negative chat id number>
|
||||
```
|
||||
|
||||
#### Restart solana-watchtower
|
||||
#### Restart agave-watchtower
|
||||
|
||||
Once your environment variables are set, restart `solana-watchtower`. You should see output about your validator.
|
||||
Once your environment variables are set, restart `agave-watchtower`. You should see output about your validator.
|
||||
|
||||
To test that your Telegram configuration is working properly, you could stop your validator briefly until it is labeled as delinquent. Up to a minute after the validator is delinquent, you should receive a message in the Telegram group from your bot. Start the validator again and verify that you get another message in your Telegram group from the bot. The message should say `all clear`.
|
|
@ -11,7 +11,7 @@ pagination_label: "Validator Guides: Restart a Cluster"
|
|||
In Solana 1.14 or greater, run the following command to output the latest
|
||||
optimistically confirmed slot your validator observed:
|
||||
```bash
|
||||
solana-ledger-tool -l ledger latest-optimistic-slots
|
||||
agave-ledger-tool -l ledger latest-optimistic-slots
|
||||
```
|
||||
|
||||
In Solana 1.13 or less, the latest optimistically confirmed can be found by looking for the more recent occurrence of
|
||||
|
@ -34,11 +34,11 @@ instead.
|
|||
### Step 4. Create a new snapshot for slot `SLOT_X` with a hard fork at slot `SLOT_X`
|
||||
|
||||
```bash
|
||||
$ solana-ledger-tool -l <LEDGER_PATH> --snapshot-archive-path <SNAPSHOTS_PATH> --incremental-snapshot-archive-path <INCREMENTAL_SNAPSHOTS_PATH> create-snapshot SLOT_X <SNAPSHOTS_PATH> --hard-fork SLOT_X
|
||||
$ agave-ledger-tool -l <LEDGER_PATH> --snapshot-archive-path <SNAPSHOTS_PATH> --incremental-snapshot-archive-path <INCREMENTAL_SNAPSHOTS_PATH> create-snapshot SLOT_X <SNAPSHOTS_PATH> --hard-fork SLOT_X
|
||||
```
|
||||
|
||||
The snapshots directory should now contain the new snapshot.
|
||||
`solana-ledger-tool create-snapshot` will also output the new shred version, and bank hash value,
|
||||
`agave-ledger-tool create-snapshot` will also output the new shred version, and bank hash value,
|
||||
call this NEW_SHRED_VERSION and NEW_BANK_HASH respectively.
|
||||
|
||||
Adjust your validator's arguments:
|
||||
|
@ -68,7 +68,7 @@ Post something like the following to #announcements (adjusting the text as appro
|
|||
> 2. a. Preferred method, start from your local ledger with:
|
||||
>
|
||||
> ```bash
|
||||
> solana-validator
|
||||
> agave-validator
|
||||
> --wait-for-supermajority SLOT_X # <-- NEW! IMPORTANT! REMOVE AFTER THIS RESTART
|
||||
> --expected-bank-hash NEW_BANK_HASH # <-- NEW! IMPORTANT! REMOVE AFTER THIS RESTART
|
||||
> --hard-fork SLOT_X # <-- NEW! IMPORTANT! REMOVE AFTER THIS RESTART
|
||||
|
@ -84,7 +84,7 @@ Post something like the following to #announcements (adjusting the text as appro
|
|||
> b. If your validator doesn't have ledger up to slot SLOT_X or if you have deleted your ledger, have it instead download a snapshot with:
|
||||
>
|
||||
> ```bash
|
||||
> solana-validator
|
||||
> agave-validator
|
||||
> --wait-for-supermajority SLOT_X # <-- NEW! IMPORTANT! REMOVE AFTER THIS RESTART
|
||||
> --expected-bank-hash NEW_BANK_HASH # <-- NEW! IMPORTANT! REMOVE AFTER THIS RESTART
|
||||
> --entrypoint entrypoint.testnet.solana.com:8001
|
||||
|
@ -95,7 +95,7 @@ Post something like the following to #announcements (adjusting the text as appro
|
|||
> ... # <-- your other --identity/--vote-account/etc arguments
|
||||
> ```
|
||||
>
|
||||
> You can check for which slots your ledger has with: `solana-ledger-tool -l path/to/ledger bounds`
|
||||
> You can check for which slots your ledger has with: `agave-ledger-tool -l path/to/ledger bounds`
|
||||
>
|
||||
> 3. Wait until 80% of the stake comes online
|
||||
>
|
||||
|
@ -122,7 +122,7 @@ and create a new snapshot with additional `--destake-vote-account <PUBKEY>`
|
|||
arguments for each of the non-responsive validator's vote account address
|
||||
|
||||
```bash
|
||||
$ solana-ledger-tool -l ledger create-snapshot SLOT_X ledger --hard-fork SLOT_X \
|
||||
$ agave-ledger-tool -l ledger create-snapshot SLOT_X ledger --hard-fork SLOT_X \
|
||||
--destake-vote-account <VOTE_ACCOUNT_1> \
|
||||
--destake-vote-account <VOTE_ACCOUNT_2> \
|
||||
.
|
||||
|
|
|
@ -85,11 +85,11 @@ For more information on etcd TLS setup, please refer to
|
|||
https://etcd.io/docs/v3.5/op-guide/security/#example-2-client-to-server-authentication-with-https-client-certificates
|
||||
|
||||
### Primary Validator
|
||||
The following additional `solana-validator` parameters are required to enable
|
||||
The following additional `agave-validator` parameters are required to enable
|
||||
tower storage into etcd:
|
||||
|
||||
```
|
||||
solana-validator ... \
|
||||
agave-validator ... \
|
||||
--tower-storage etcd \
|
||||
--etcd-cacert-file certs/etcd-ca.pem \
|
||||
--etcd-cert-file certs/validator.pem \
|
||||
|
@ -103,7 +103,7 @@ that your etcd endpoint remain accessible at all times.
|
|||
|
||||
### Secondary Validator
|
||||
Configure the secondary validator like the primary with the exception of the
|
||||
following `solana-validator` command-line argument changes:
|
||||
following `agave-validator` command-line argument changes:
|
||||
* Generate and use a secondary validator identity: `--identity secondary-validator-keypair.json`
|
||||
* Add `--no-check-vote-account`
|
||||
* Add `--authorized-voter validator-keypair.json` (where
|
||||
|
@ -114,8 +114,8 @@ When both validators are running normally and caught up to the cluster, a
|
|||
failover from primary to secondary can be triggered by running the following
|
||||
command on the secondary validator:
|
||||
```bash
|
||||
$ solana-validator wait-for-restart-window --identity validator-keypair.json \
|
||||
&& solana-validator set-identity validator-keypair.json
|
||||
$ agave-validator wait-for-restart-window --identity validator-keypair.json \
|
||||
&& agave-validator set-identity validator-keypair.json
|
||||
```
|
||||
|
||||
The secondary validator will acquire a lock on the tower in etcd to ensure
|
||||
|
@ -131,7 +131,7 @@ exit. However if/when the secondary validator restarts, it will do so using the
|
|||
secondary validator identity and thus the restart cycle is broken.
|
||||
|
||||
## Triggering a failover via monitoring
|
||||
Monitoring of your choosing can invoke the `solana-validator set-identity
|
||||
Monitoring of your choosing can invoke the `agave-validator set-identity
|
||||
validator-keypair.json` command mentioned in the previous section.
|
||||
|
||||
It is not necessary to guarantee the primary validator has halted before failing
|
||||
|
|
|
@ -32,7 +32,7 @@ detail on cluster activity.
|
|||
## Enabling CUDA
|
||||
|
||||
If your machine has a GPU with CUDA installed \(Linux-only currently\), include
|
||||
the `--cuda` argument to `solana-validator`.
|
||||
the `--cuda` argument to `agave-validator`.
|
||||
|
||||
When your validator is started look for the following log message to indicate
|
||||
that CUDA is enabled: `"[<timestamp> solana::validator] CUDA is enabled"`
|
||||
|
@ -47,7 +47,7 @@ the following commands.
|
|||
#### **Optimize sysctl knobs**
|
||||
|
||||
```bash
|
||||
sudo bash -c "cat >/etc/sysctl.d/21-solana-validator.conf <<EOF
|
||||
sudo bash -c "cat >/etc/sysctl.d/21-agave-validator.conf <<EOF
|
||||
# Increase UDP buffer sizes
|
||||
net.core.rmem_default = 134217728
|
||||
net.core.rmem_max = 134217728
|
||||
|
@ -63,7 +63,7 @@ EOF"
|
|||
```
|
||||
|
||||
```bash
|
||||
sudo sysctl -p /etc/sysctl.d/21-solana-validator.conf
|
||||
sudo sysctl -p /etc/sysctl.d/21-agave-validator.conf
|
||||
```
|
||||
|
||||
#### **Increase systemd and session file limits**
|
||||
|
@ -261,7 +261,7 @@ Read more about [creating and managing a vote account](./vote-accounts.md).
|
|||
## Known validators
|
||||
|
||||
If you know and respect other validator operators, you can specify this on the command line with the `--known-validator <PUBKEY>`
|
||||
argument to `solana-validator`. You can specify multiple ones by repeating the argument `--known-validator <PUBKEY1> --known-validator <PUBKEY2>`.
|
||||
argument to `agave-validator`. You can specify multiple ones by repeating the argument `--known-validator <PUBKEY1> --known-validator <PUBKEY2>`.
|
||||
This has two effects, one is when the validator is booting with `--only-known-rpc`, it will only ask that set of
|
||||
known nodes for downloading genesis and snapshot data. Another is that in combination with the `--halt-on-known-validators-accounts-hash-mismatch` option,
|
||||
it will monitor the merkle root hash of the entire accounts state of other known nodes on gossip and if the hashes produce any mismatch,
|
||||
|
@ -277,13 +277,13 @@ account state divergence.
|
|||
Connect to the cluster by running:
|
||||
|
||||
```bash
|
||||
solana-validator \
|
||||
agave-validator \
|
||||
--identity ~/validator-keypair.json \
|
||||
--vote-account ~/vote-account-keypair.json \
|
||||
--rpc-port 8899 \
|
||||
--entrypoint entrypoint.devnet.solana.com:8001 \
|
||||
--limit-ledger-size \
|
||||
--log ~/solana-validator.log
|
||||
--log ~/agave-validator.log
|
||||
```
|
||||
|
||||
To force validator logging to the console add a `--log -` argument, otherwise
|
||||
|
@ -296,7 +296,7 @@ The ledger will be placed in the `ledger/` directory by default, use the
|
|||
> [paper wallet seed phrase](../../cli/wallets/paper.md)
|
||||
> for your `--identity` and/or
|
||||
> `--authorized-voter` keypairs. To use these, pass the respective argument as
|
||||
> `solana-validator --identity ASK ... --authorized-voter ASK ...`
|
||||
> `agave-validator --identity ASK ... --authorized-voter ASK ...`
|
||||
> and you will be prompted to enter your seed phrases and optional passphrase.
|
||||
|
||||
Confirm your validator is connected to the network by opening a new terminal and
|
||||
|
@ -312,7 +312,7 @@ If your validator is connected, its public key and IP address will appear in the
|
|||
|
||||
By default the validator will dynamically select available network ports in the
|
||||
8000-10000 range, and may be overridden with `--dynamic-port-range`. For
|
||||
example, `solana-validator --dynamic-port-range 11000-11020 ...` will restrict
|
||||
example, `agave-validator --dynamic-port-range 11000-11020 ...` will restrict
|
||||
the validator to ports 11000-11020.
|
||||
|
||||
### Limiting ledger size to conserve disk space
|
||||
|
@ -366,8 +366,8 @@ WantedBy=multi-user.target
|
|||
```
|
||||
|
||||
Now create `/home/sol/bin/validator.sh` to include the desired
|
||||
`solana-validator` command-line. Ensure that the 'exec' command is used to
|
||||
start the validator process (i.e. "exec solana-validator ..."). This is
|
||||
`agave-validator` command-line. Ensure that the 'exec' command is used to
|
||||
start the validator process (i.e. "exec agave-validator ..."). This is
|
||||
important because without it, logrotate will end up killing the validator
|
||||
every time the logs are rotated.
|
||||
|
||||
|
@ -394,14 +394,14 @@ to be reverted and the issue reproduced before help can be provided.
|
|||
|
||||
#### Log rotation
|
||||
|
||||
The validator log file, as specified by `--log ~/solana-validator.log`, can get
|
||||
The validator log file, as specified by `--log ~/agave-validator.log`, can get
|
||||
very large over time and it's recommended that log rotation be configured.
|
||||
|
||||
The validator will re-open its log file when it receives the `USR1` signal, which is the
|
||||
basic primitive that enables log rotation.
|
||||
|
||||
If the validator is being started by a wrapper shell script, it is important to
|
||||
launch the process with `exec` (`exec solana-validator ...`) when using logrotate.
|
||||
launch the process with `exec` (`exec agave-validator ...`) when using logrotate.
|
||||
This will prevent the `USR1` signal from being sent to the script's process
|
||||
instead of the validator's, which will kill them both.
|
||||
|
||||
|
@ -409,13 +409,13 @@ instead of the validator's, which will kill them both.
|
|||
|
||||
An example setup for the `logrotate`, which assumes that the validator is
|
||||
running as a systemd service called `sol.service` and writes a log file at
|
||||
/home/sol/solana-validator.log:
|
||||
/home/sol/agave-validator.log:
|
||||
|
||||
```bash
|
||||
# Setup log rotation
|
||||
|
||||
cat > logrotate.sol <<EOF
|
||||
/home/sol/solana-validator.log {
|
||||
/home/sol/agave-validator.log {
|
||||
rotate 7
|
||||
daily
|
||||
missingok
|
||||
|
@ -430,7 +430,7 @@ systemctl restart logrotate.service
|
|||
|
||||
As mentioned earlier, be sure that if you use logrotate, any script you create
|
||||
which starts the solana validator process uses "exec" to do so (example: "exec
|
||||
solana-validator ..."); otherwise, when logrotate sends its signal to the
|
||||
agave-validator ..."); otherwise, when logrotate sends its signal to the
|
||||
validator, the enclosing script will die and take the validator process with
|
||||
it.
|
||||
|
||||
|
@ -465,7 +465,7 @@ Example configuration:
|
|||
5. Enable swap with `sudo swapon -a` and mount the tmpfs with `sudo mount /mnt/solana-accounts/`
|
||||
6. Confirm swap is active with `free -g` and the tmpfs is mounted with `mount`
|
||||
|
||||
Now add the `--accounts /mnt/solana-accounts` argument to your `solana-validator`
|
||||
Now add the `--accounts /mnt/solana-accounts` argument to your `agave-validator`
|
||||
command-line arguments and restart the validator.
|
||||
|
||||
### Account indexing
|
||||
|
|
|
@ -94,7 +94,7 @@ The vote authority can be changed at most once per epoch. If the authority is
|
|||
changed with
|
||||
[vote-authorize-voter-checked](../../cli/usage.md#solana-vote-authorize-voter-checked),
|
||||
this will not take effect until the beginning of the next epoch. To support a
|
||||
smooth transition of the vote signing, `solana-validator` allows the
|
||||
smooth transition of the vote signing, `agave-validator` allows the
|
||||
`--authorized-voter` argument to be specified multiple times. This allows the
|
||||
validator process to keep voting successfully when the network reaches an epoch
|
||||
boundary at which the validator's vote authority account changes.
|
||||
|
@ -213,7 +213,7 @@ no longer listed in the `solana leader-schedule` output.
|
|||
### Vote Account Authorized Voter
|
||||
|
||||
The _vote authority_ keypair may only be changed at epoch boundaries and
|
||||
requires some additional arguments to `solana-validator` for a seamless
|
||||
requires some additional arguments to `agave-validator` for a seamless
|
||||
migration.
|
||||
|
||||
1. Run `solana epoch-info`. If there is not much time remaining time in the
|
||||
|
@ -229,13 +229,13 @@ migration.
|
|||
`solana vote-authorize-voter-checked ~/vote-account-keypair.json ~/validator-keypair.json ~/new-vote-authority.json`.
|
||||
The new vote authority is scheduled to become active starting at the next
|
||||
epoch.
|
||||
5. `solana-validator` now needs to be restarted with the old and new vote
|
||||
5. `agave-validator` now needs to be restarted with the old and new vote
|
||||
authority keypairs, so that it can smoothly transition at the next epoch. Add
|
||||
the two arguments on restart:
|
||||
`--authorized-voter ~/validator-keypair.json --authorized-voter ~/new-vote-authority.json`
|
||||
6. After the cluster reaches the next epoch, remove the
|
||||
`--authorized-voter ~/validator-keypair.json` argument and restart
|
||||
`solana-validator`, as the old vote authority keypair is no longer required.
|
||||
`agave-validator`, as the old vote authority keypair is no longer required.
|
||||
|
||||
### Vote Account Authorized Withdrawer
|
||||
|
||||
|
|
|
@ -307,7 +307,7 @@ not start without the settings below.
|
|||
#### **Optimize sysctl knobs**
|
||||
|
||||
```bash
|
||||
sudo bash -c "cat >/etc/sysctl.d/21-solana-validator.conf <<EOF
|
||||
sudo bash -c "cat >/etc/sysctl.d/21-agave-validator.conf <<EOF
|
||||
# Increase UDP buffer sizes
|
||||
net.core.rmem_default = 134217728
|
||||
net.core.rmem_max = 134217728
|
||||
|
@ -323,7 +323,7 @@ EOF"
|
|||
```
|
||||
|
||||
```bash
|
||||
sudo sysctl -p /etc/sysctl.d/21-solana-validator.conf
|
||||
sudo sysctl -p /etc/sysctl.d/21-agave-validator.conf
|
||||
```
|
||||
|
||||
#### **Increase systemd and session file limits**
|
||||
|
@ -409,7 +409,7 @@ nano /home/sol/bin/validator.sh
|
|||
Copy and paste the following contents into `validator.sh` then save the file:
|
||||
|
||||
```
|
||||
exec solana-validator \
|
||||
exec agave-validator \
|
||||
--identity validator-keypair.json \
|
||||
--vote-account vote-account-keypair.json \
|
||||
--known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \
|
||||
|
@ -417,7 +417,7 @@ exec solana-validator \
|
|||
--known-validator Ft5fbkqNa76vnsjYNwjDZUXoTWpP7VYm3mtsaQckQADN \
|
||||
--known-validator 9QxCLckBiJc783jnMvXZubK4wH86Eqqvashtrwvcsgkv \
|
||||
--only-known-rpc \
|
||||
--log /home/sol/solana-validator.log \
|
||||
--log /home/sol/agave-validator.log \
|
||||
--ledger /mnt/ledger \
|
||||
--rpc-port 8899 \
|
||||
--dynamic-port-range 8000-8020 \
|
||||
|
@ -429,7 +429,7 @@ exec solana-validator \
|
|||
--limit-ledger-size
|
||||
```
|
||||
|
||||
Refer to `solana-validator --help` for more information on what each flag is
|
||||
Refer to `agave-validator --help` for more information on what each flag is
|
||||
doing in this script. Also refer to the section on
|
||||
[best practices for operating a validator](./best-practices/general.md).
|
||||
|
||||
|
@ -442,14 +442,14 @@ Test that your `validator.sh` file is running properly by executing the
|
|||
/home/sol/bin/validator.sh
|
||||
```
|
||||
|
||||
The script should execute the `solana-validator` process. In a new terminal
|
||||
The script should execute the `agave-validator` process. In a new terminal
|
||||
window, shh into your server, then verify that the process is running:
|
||||
|
||||
```
|
||||
ps aux | grep solana-validator
|
||||
ps aux | grep agave-validator
|
||||
```
|
||||
|
||||
You should see a line in the output that includes `solana-validator` with all
|
||||
You should see a line in the output that includes `agave-validator` with all
|
||||
the flags that were added to your `validator.sh` script.
|
||||
|
||||
Next, we need to look at the logs to make sure everything is operating properly.
|
||||
|
@ -464,7 +464,7 @@ In a new terminal window, ssh into your validator machine, switch users to the
|
|||
|
||||
```
|
||||
su - sol
|
||||
tail -f solana-validator.log
|
||||
tail -f agave-validator.log
|
||||
```
|
||||
|
||||
The `tail` command will continue to display the output of a file as the file
|
||||
|
@ -567,14 +567,14 @@ Now verify that the validator is running properly by tailing the logs and using
|
|||
the commands mentioned earlier to check gossip and Solana validators:
|
||||
|
||||
```
|
||||
tail -f /home/sol/solana-validator*.log
|
||||
tail -f /home/sol/agave-validator*.log
|
||||
```
|
||||
|
||||
## Monitoring
|
||||
|
||||
`solana-watchtower` is a command you can run on a separate machine to monitor
|
||||
`agave-watchtower` is a command you can run on a separate machine to monitor
|
||||
your server. You can read more about handling
|
||||
[automatic restarts and monitoring](./best-practices/monitoring.md#solana-watchtower)
|
||||
[automatic restarts and monitoring](./best-practices/monitoring.md#agave-watchtower)
|
||||
using Solana Watchtower here in the docs.
|
||||
|
||||
## Common issues
|
||||
|
|
|
@ -18,11 +18,11 @@ You will want to be aware of the following flags:
|
|||
- `--no-voting`: runs the validator without participating in consensus. Typically, you do not want to run a validator as _both_ a consensus node and a full RPC node due to resource constraints.
|
||||
- `--private-rpc`: does not publish the validator's open RPC port in the `solana gossip` command
|
||||
|
||||
> For more explanation on the flags used in the command, refer to the `solana-validator --help` command
|
||||
> For more explanation on the flags used in the command, refer to the `agave-validator --help` command
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
exec solana-validator \
|
||||
exec agave-validator \
|
||||
--identity /home/sol/validator-keypair.json \
|
||||
--known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \
|
||||
--known-validator dDzy5SR3AXdYWVqbDEkVFdvSPCtS9ihF5kJkHCtXoFs \
|
||||
|
|
|
@ -24,20 +24,20 @@ implementation for the PostgreSQL database.
|
|||
|
||||
### Important Crates:
|
||||
|
||||
- [`solana-geyser-plugin-interface`] — This crate defines the plugin
|
||||
- [`agave-geyser-plugin-interface`] — This crate defines the plugin
|
||||
interfaces.
|
||||
|
||||
- [`solana-accountsdb-plugin-postgres`] — The crate for the referential
|
||||
plugin implementation for the PostgreSQL database.
|
||||
|
||||
[`solana-geyser-plugin-interface`]: https://docs.rs/solana-geyser-plugin-interface
|
||||
[`agave-geyser-plugin-interface`]: https://docs.rs/agave-geyser-plugin-interface
|
||||
[`solana-accountsdb-plugin-postgres`]: https://docs.rs/solana-accountsdb-plugin-postgres
|
||||
[`solana-sdk`]: https://docs.rs/solana-sdk
|
||||
[`solana-transaction-status`]: https://docs.rs/solana-transaction-status
|
||||
|
||||
## The Plugin Interface
|
||||
|
||||
The Plugin interface is declared in [`solana-geyser-plugin-interface`]. It
|
||||
The Plugin interface is declared in [`agave-geyser-plugin-interface`]. It
|
||||
is defined by the trait `GeyserPlugin`. The plugin should implement the
|
||||
trait and expose a "C" function `_create_plugin` to return the pointer to this
|
||||
trait. For example, in the referential implementation, the following code
|
||||
|
@ -166,7 +166,7 @@ please refer to [`solana-sdk`] and [`solana-transaction-status`]
|
|||
|
||||
The `slot` points to the slot the transaction is executed at.
|
||||
For more details, please refer to the Rust documentation in
|
||||
[`solana-geyser-plugin-interface`].
|
||||
[`agave-geyser-plugin-interface`].
|
||||
|
||||
## Example PostgreSQL Plugin
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "solana-geyser-plugin-interface"
|
||||
name = "agave-geyser-plugin-interface"
|
||||
description = "The Solana Geyser plugin interface."
|
||||
documentation = "https://docs.rs/solana-geyser-plugin-interface"
|
||||
documentation = "https://docs.rs/agave-geyser-plugin-interface"
|
||||
version = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
|
|
|
@ -327,7 +327,7 @@ pub trait GeyserPlugin: Any + Send + Sync + std::fmt::Debug {
|
|||
/// # Examples
|
||||
///
|
||||
/// ```
|
||||
/// use solana_geyser_plugin_interface::geyser_plugin_interface::{GeyserPlugin,
|
||||
/// use agave_geyser_plugin_interface::geyser_plugin_interface::{GeyserPlugin,
|
||||
/// GeyserPluginError, Result};
|
||||
///
|
||||
/// #[derive(Debug)]
|
||||
|
|
|
@ -10,6 +10,7 @@ license = { workspace = true }
|
|||
edition = { workspace = true }
|
||||
|
||||
[dependencies]
|
||||
agave-geyser-plugin-interface = { workspace = true }
|
||||
bs58 = { workspace = true }
|
||||
crossbeam-channel = { workspace = true }
|
||||
json5 = { workspace = true }
|
||||
|
@ -20,7 +21,6 @@ log = { workspace = true }
|
|||
serde_json = { workspace = true }
|
||||
solana-accounts-db = { workspace = true }
|
||||
solana-entry = { workspace = true }
|
||||
solana-geyser-plugin-interface = { workspace = true }
|
||||
solana-ledger = { workspace = true }
|
||||
solana-measure = { workspace = true }
|
||||
solana-metrics = { workspace = true }
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
/// Module responsible for notifying plugins of account updates
|
||||
use {
|
||||
crate::geyser_plugin_manager::GeyserPluginManager,
|
||||
agave_geyser_plugin_interface::geyser_plugin_interface::{
|
||||
ReplicaAccountInfoV3, ReplicaAccountInfoVersions,
|
||||
},
|
||||
log::*,
|
||||
solana_accounts_db::{
|
||||
account_storage::meta::StoredAccountMeta,
|
||||
accounts_update_notifier_interface::AccountsUpdateNotifierInterface,
|
||||
},
|
||||
solana_geyser_plugin_interface::geyser_plugin_interface::{
|
||||
ReplicaAccountInfoV3, ReplicaAccountInfoVersions,
|
||||
},
|
||||
solana_measure::measure::Measure,
|
||||
solana_metrics::*,
|
||||
solana_sdk::{
|
||||
|
|
|
@ -3,10 +3,10 @@ use {
|
|||
block_metadata_notifier_interface::BlockMetadataNotifier,
|
||||
geyser_plugin_manager::GeyserPluginManager,
|
||||
},
|
||||
log::*,
|
||||
solana_geyser_plugin_interface::geyser_plugin_interface::{
|
||||
agave_geyser_plugin_interface::geyser_plugin_interface::{
|
||||
ReplicaBlockInfoV3, ReplicaBlockInfoVersions,
|
||||
},
|
||||
log::*,
|
||||
solana_measure::measure::Measure,
|
||||
solana_metrics::*,
|
||||
solana_sdk::{clock::UnixTimestamp, pubkey::Pubkey, reward_info::RewardInfo},
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
/// Module responsible for notifying plugins about entries
|
||||
use {
|
||||
crate::geyser_plugin_manager::GeyserPluginManager,
|
||||
log::*,
|
||||
solana_entry::entry::EntrySummary,
|
||||
solana_geyser_plugin_interface::geyser_plugin_interface::{
|
||||
agave_geyser_plugin_interface::geyser_plugin_interface::{
|
||||
ReplicaEntryInfoV2, ReplicaEntryInfoVersions,
|
||||
},
|
||||
log::*,
|
||||
solana_entry::entry::EntrySummary,
|
||||
solana_ledger::entry_notifier_interface::EntryNotifier,
|
||||
solana_measure::measure::Measure,
|
||||
solana_metrics::*,
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
use {
|
||||
agave_geyser_plugin_interface::geyser_plugin_interface::GeyserPlugin,
|
||||
jsonrpc_core::{ErrorCode, Result as JsonRpcResult},
|
||||
jsonrpc_server_utils::tokio::sync::oneshot::Sender as OneShotSender,
|
||||
libloading::Library,
|
||||
log::*,
|
||||
solana_geyser_plugin_interface::geyser_plugin_interface::GeyserPlugin,
|
||||
std::{
|
||||
ops::{Deref, DerefMut},
|
||||
path::Path,
|
||||
|
@ -442,8 +442,8 @@ mod tests {
|
|||
crate::geyser_plugin_manager::{
|
||||
GeyserPluginManager, LoadedGeyserPlugin, TESTPLUGIN2_CONFIG, TESTPLUGIN_CONFIG,
|
||||
},
|
||||
agave_geyser_plugin_interface::geyser_plugin_interface::GeyserPlugin,
|
||||
libloading::Library,
|
||||
solana_geyser_plugin_interface::geyser_plugin_interface::GeyserPlugin,
|
||||
std::sync::{Arc, RwLock},
|
||||
};
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use {
|
||||
crate::geyser_plugin_manager::GeyserPluginManager,
|
||||
agave_geyser_plugin_interface::geyser_plugin_interface::SlotStatus,
|
||||
log::*,
|
||||
solana_geyser_plugin_interface::geyser_plugin_interface::SlotStatus,
|
||||
solana_measure::measure::Measure,
|
||||
solana_metrics::*,
|
||||
solana_sdk::clock::Slot,
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
/// Module responsible for notifying plugins of transactions
|
||||
use {
|
||||
crate::geyser_plugin_manager::GeyserPluginManager,
|
||||
log::*,
|
||||
solana_geyser_plugin_interface::geyser_plugin_interface::{
|
||||
agave_geyser_plugin_interface::geyser_plugin_interface::{
|
||||
ReplicaTransactionInfoV2, ReplicaTransactionInfoVersions,
|
||||
},
|
||||
log::*,
|
||||
solana_measure::measure::Measure,
|
||||
solana_metrics::*,
|
||||
solana_rpc::transaction_notifier_interface::TransactionNotifier,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "solana-install"
|
||||
name = "agave-install"
|
||||
description = "The solana cluster software installer"
|
||||
documentation = "https://docs.rs/solana-install"
|
||||
documentation = "https://docs.rs/agave-install"
|
||||
version = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
# except according to those terms.
|
||||
|
||||
# This is just a little script that can be downloaded from the internet to
|
||||
# install solana-install. It just does platform detection, downloads the installer
|
||||
# install agave-install. It just does platform detection, downloads the installer
|
||||
# and runs it.
|
||||
|
||||
{ # this ensures the entire script is downloaded #
|
||||
|
@ -24,11 +24,11 @@ set -e
|
|||
|
||||
usage() {
|
||||
cat 1>&2 <<EOF
|
||||
solana-install-init
|
||||
agave-install-init
|
||||
initializes a new installation
|
||||
|
||||
USAGE:
|
||||
solana-install-init [FLAGS] [OPTIONS] --data_dir <PATH> --pubkey <PUBKEY>
|
||||
agave-install-init [FLAGS] [OPTIONS] --data_dir <PATH> --pubkey <PUBKEY>
|
||||
|
||||
FLAGS:
|
||||
-h, --help Prints help information
|
||||
|
@ -81,7 +81,7 @@ main() {
|
|||
esac
|
||||
TARGET="${_cputype}-${_ostype}"
|
||||
|
||||
temp_dir="$(mktemp -d 2>/dev/null || ensure mktemp -d -t solana-install-init)"
|
||||
temp_dir="$(mktemp -d 2>/dev/null || ensure mktemp -d -t agave-install-init)"
|
||||
ensure mkdir -p "$temp_dir"
|
||||
|
||||
# Check for SOLANA_RELEASE environment variable override. Otherwise fetch
|
||||
|
@ -101,8 +101,8 @@ main() {
|
|||
fi
|
||||
fi
|
||||
|
||||
download_url="$SOLANA_DOWNLOAD_ROOT/$release/solana-install-init-$TARGET"
|
||||
solana_install_init="$temp_dir/solana-install-init"
|
||||
download_url="$SOLANA_DOWNLOAD_ROOT/$release/agave-install-init-$TARGET"
|
||||
solana_install_init="$temp_dir/agave-install-init"
|
||||
|
||||
printf 'downloading %s installer\n' "$release" 1>&2
|
||||
|
||||
|
@ -111,7 +111,7 @@ main() {
|
|||
ensure chmod u+x "$solana_install_init"
|
||||
if [ ! -x "$solana_install_init" ]; then
|
||||
printf '%s\n' "Cannot execute $solana_install_init (likely because of mounting /tmp as noexec)." 1>&2
|
||||
printf '%s\n' "Please copy the file to a location where you can execute binaries and run ./solana-install-init." 1>&2
|
||||
printf '%s\n' "Please copy the file to a location where you can execute binaries and run ./agave-install-init." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -130,7 +130,7 @@ main() {
|
|||
}
|
||||
|
||||
err() {
|
||||
printf 'solana-install-init: %s\n' "$1" >&2
|
||||
printf 'agave-install-init: %s\n' "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
|
@ -4,11 +4,11 @@ set -e
|
|||
cd "$(dirname "$0")"/..
|
||||
cargo="$(readlink -f "./cargo")"
|
||||
|
||||
"$cargo" build --package solana-install
|
||||
"$cargo" build --package agave-install
|
||||
export PATH=$PWD/target/debug:$PATH
|
||||
|
||||
echo "\`\`\`manpage"
|
||||
solana-install --help
|
||||
agave-install --help
|
||||
echo "\`\`\`"
|
||||
echo ""
|
||||
|
||||
|
@ -16,7 +16,7 @@ commands=(init info deploy update run)
|
|||
|
||||
for x in "${commands[@]}"; do
|
||||
echo "\`\`\`manpage"
|
||||
solana-install "${x}" --help
|
||||
agave-install "${x}" --help
|
||||
echo "\`\`\`"
|
||||
echo ""
|
||||
done
|
||||
|
|
|
@ -16,7 +16,7 @@ fn press_enter() {
|
|||
}
|
||||
|
||||
fn main() {
|
||||
solana_install::main_init().unwrap_or_else(|err| {
|
||||
agave_install::main_init().unwrap_or_else(|err| {
|
||||
println!("Error: {err}");
|
||||
press_enter();
|
||||
exit(1);
|
|
@ -540,7 +540,7 @@ pub fn init(
|
|||
explicit_release: Option<ExplicitRelease>,
|
||||
) -> Result<(), String> {
|
||||
let config = {
|
||||
// Write new config file only if different, so that running |solana-install init|
|
||||
// Write new config file only if different, so that running |agave-install init|
|
||||
// repeatedly doesn't unnecessarily re-download
|
||||
let mut current_config = Config::load(config_file).unwrap_or_default();
|
||||
current_config.current_update_manifest = None;
|
||||
|
@ -870,7 +870,7 @@ fn check_for_newer_github_release(
|
|||
prerelease_allowed: bool,
|
||||
) -> Result<Option<String>, String> {
|
||||
let client = reqwest::blocking::Client::builder()
|
||||
.user_agent("solana-install")
|
||||
.user_agent("agave-install")
|
||||
.build()
|
||||
.map_err(|err| err.to_string())?;
|
||||
|
||||
|
|
|
@ -281,7 +281,7 @@ pub fn main() -> Result<(), String> {
|
|||
pub fn main_init() -> Result<(), String> {
|
||||
solana_logger::setup();
|
||||
|
||||
let matches = App::new("solana-install-init")
|
||||
let matches = App::new("agave-install-init")
|
||||
.about("Initializes a new installation")
|
||||
.version(solana_version::version!())
|
||||
.arg({
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
fn main() -> Result<(), String> {
|
||||
solana_install::main()
|
||||
agave_install::main()
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "solana-ledger-tool"
|
||||
name = "agave-ledger-tool"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
documentation = "https://docs.rs/solana-ledger-tool"
|
||||
documentation = "https://docs.rs/agave-ledger-tool"
|
||||
version = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
|
|
|
@ -359,7 +359,7 @@ pub fn blockstore_subcommands<'a, 'b>(hidden: bool) -> Vec<App<'a, 'b>> {
|
|||
and timestamps.",
|
||||
)
|
||||
// This command is important in cluster restart scenarios, so do not hide it ever
|
||||
// such that the subcommand will be visible as the top level of solana-ledger-tool
|
||||
// such that the subcommand will be visible as the top level of agave-ledger-tool
|
||||
.arg(
|
||||
Arg::with_name("num_slots")
|
||||
.long("num-slots")
|
||||
|
|
|
@ -187,14 +187,14 @@ pub fn load_and_process_ledger(
|
|||
}
|
||||
|
||||
let account_paths = if let Some(account_paths) = arg_matches.value_of("account_paths") {
|
||||
// If this blockstore access is Primary, no other process (solana-validator) can hold
|
||||
// If this blockstore access is Primary, no other process (agave-validator) can hold
|
||||
// Primary access. So, allow a custom accounts path without worry of wiping the accounts
|
||||
// of solana-validator.
|
||||
// of agave-validator.
|
||||
if !blockstore.is_primary_access() {
|
||||
// Attempt to open the Blockstore in Primary access; if successful, no other process
|
||||
// was holding Primary so allow things to proceed with custom accounts path. Release
|
||||
// the Primary access instead of holding it to give priority to solana-validator over
|
||||
// solana-ledger-tool should solana-validator start before we've finished.
|
||||
// the Primary access instead of holding it to give priority to agave-validator over
|
||||
// agave-ledger-tool should agave-validator start before we've finished.
|
||||
info!(
|
||||
"Checking if another process currently holding Primary access to {:?}",
|
||||
blockstore.ledger_path()
|
||||
|
|
|
@ -431,7 +431,7 @@ impl Rocks {
|
|||
info!(
|
||||
"Opening Rocks with secondary (read only) access at: {secondary_path:?}. \
|
||||
This secondary access could temporarily degrade other accesses, such as \
|
||||
by solana-validator"
|
||||
by agave-validator"
|
||||
);
|
||||
DB::open_cf_descriptors_as_secondary(
|
||||
&db_options,
|
||||
|
|
|
@ -2321,13 +2321,13 @@ fn test_hard_fork_with_gap_in_roots() {
|
|||
);
|
||||
|
||||
// create hard-forked snapshot only for validator a, emulating the manual cluster restart
|
||||
// procedure with `solana-ledger-tool create-snapshot`
|
||||
// procedure with `agave-ledger-tool create-snapshot`
|
||||
let genesis_slot = 0;
|
||||
{
|
||||
let blockstore_a = Blockstore::open(&val_a_ledger_path).unwrap();
|
||||
create_snapshot_to_hard_fork(&blockstore_a, hard_fork_slot, vec![hard_fork_slot]);
|
||||
|
||||
// Intentionally make solana-validator unbootable by replaying blocks from the genesis to
|
||||
// Intentionally make agave-validator unbootable by replaying blocks from the genesis to
|
||||
// ensure the hard-forked snapshot is used always. Otherwise, we couldn't create a gap
|
||||
// in the ledger roots column family reliably.
|
||||
// There was a bug which caused the hard-forked snapshot at an unrooted slot to forget
|
||||
|
|
|
@ -14,9 +14,9 @@ if [[ "$SOLANA_GPU_MISSING" -eq 1 ]]; then
|
|||
fi
|
||||
|
||||
if [[ -n $SOLANA_CUDA ]]; then
|
||||
program=$solana_validator_cuda
|
||||
program=$agave_validator_cuda
|
||||
else
|
||||
program=$solana_validator
|
||||
program=$agave_validator
|
||||
fi
|
||||
|
||||
no_restart=0
|
||||
|
|
|
@ -40,6 +40,8 @@ else
|
|||
if [[ -z $program ]]; then
|
||||
crate="cli"
|
||||
program="solana"
|
||||
elif [[ $program == "validator" || $program == "ledger-tool" || $program == "watchtower" || $program == "install" ]]; then
|
||||
program="agave-$program"
|
||||
else
|
||||
program="solana-$program"
|
||||
fi
|
||||
|
@ -63,8 +65,8 @@ fi
|
|||
|
||||
solana_bench_tps=$(solana_program bench-tps)
|
||||
solana_faucet=$(solana_program faucet)
|
||||
solana_validator=$(solana_program validator)
|
||||
solana_validator_cuda="$solana_validator --cuda"
|
||||
agave_validator=$(solana_program validator)
|
||||
agave_validator_cuda="$agave_validator --cuda"
|
||||
solana_genesis=$(solana_program genesis)
|
||||
solana_gossip=$(solana_program gossip)
|
||||
solana_keygen=$(solana_program keygen)
|
||||
|
|
|
@ -64,7 +64,7 @@ while [[ -n $1 ]]; do
|
|||
elif [[ $1 = --no-airdrop ]]; then
|
||||
airdrops_enabled=0
|
||||
shift
|
||||
# solana-validator options
|
||||
# agave-validator options
|
||||
elif [[ $1 = --expected-genesis-hash ]]; then
|
||||
args+=("$1" "$2")
|
||||
shift 2
|
||||
|
@ -270,9 +270,9 @@ if [[ $maybeRequireTower = true ]]; then
|
|||
fi
|
||||
|
||||
if [[ -n $SOLANA_CUDA ]]; then
|
||||
program=$solana_validator_cuda
|
||||
program=$agave_validator_cuda
|
||||
else
|
||||
program=$solana_validator
|
||||
program=$agave_validator
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
|
|
@ -122,7 +122,7 @@ Operate a configured testnet
|
|||
|
||||
sanity/start-specific options:
|
||||
-F - Discard validator nodes that didn't bootup successfully
|
||||
-o noInstallCheck - Skip solana-install sanity
|
||||
-o noInstallCheck - Skip agave-install sanity
|
||||
-o rejectExtraNodes - Require the exact number of nodes
|
||||
|
||||
stop-specific options:
|
||||
|
@ -138,7 +138,7 @@ Operate a configured testnet
|
|||
--netem-cmd - Optional command argument to netem. Default is "add". Use "cleanup" to remove rules.
|
||||
|
||||
update-specific options:
|
||||
--platform linux|osx|windows - Deploy the tarball using 'solana-install deploy ...' for the
|
||||
--platform linux|osx|windows - Deploy the tarball using 'agave-install deploy ...' for the
|
||||
given platform (multiple platforms may be specified)
|
||||
(-t option must be supplied as well)
|
||||
|
||||
|
@ -514,11 +514,11 @@ deployUpdate() {
|
|||
declare bootstrapLeader=${validatorIpList[0]}
|
||||
|
||||
for updatePlatform in $updatePlatforms; do
|
||||
echo "--- Deploying solana-install update: $updatePlatform"
|
||||
echo "--- Deploying agave-install update: $updatePlatform"
|
||||
(
|
||||
set -x
|
||||
|
||||
scripts/solana-install-update-manifest-keypair.sh "$updatePlatform"
|
||||
scripts/agave-install-update-manifest-keypair.sh "$updatePlatform"
|
||||
|
||||
timeout 30s scp "${sshOptions[@]}" \
|
||||
update_manifest_keypair.json "$bootstrapLeader:solana/update_manifest_keypair.json"
|
||||
|
|
|
@ -35,6 +35,6 @@ loadConfigFile
|
|||
PATH="$HOME"/.cargo/bin:"$PATH"
|
||||
|
||||
set -x
|
||||
scripts/solana-install-deploy.sh \
|
||||
scripts/agave-install-deploy.sh \
|
||||
--keypair config/faucet.json \
|
||||
localhost "$releaseChannel" "$updatePlatform"
|
||||
|
|
|
@ -121,7 +121,7 @@ cat >> ~/solana/on-reboot <<EOF
|
|||
echo \$! > system-stats.pid
|
||||
|
||||
if ${GPU_CUDA_OK} && [[ -e /dev/nvidia0 ]]; then
|
||||
echo Selecting solana-validator-cuda
|
||||
echo Selecting agave-validator-cuda
|
||||
export SOLANA_CUDA=1
|
||||
elif ${GPU_FAIL_IF_NONE} ; then
|
||||
echo "Expected GPU, found none!"
|
||||
|
@ -257,13 +257,13 @@ EOF
|
|||
|
||||
if [[ -n "$maybeWarpSlot" ]]; then
|
||||
# shellcheck disable=SC2086 # Do not want to quote $maybeWarSlot
|
||||
solana-ledger-tool -l config/bootstrap-validator create-snapshot 0 config/bootstrap-validator $maybeWarpSlot
|
||||
agave-ledger-tool -l config/bootstrap-validator create-snapshot 0 config/bootstrap-validator $maybeWarpSlot
|
||||
fi
|
||||
|
||||
solana-ledger-tool -l config/bootstrap-validator shred-version --max-genesis-archive-unpacked-size 1073741824 | tee config/shred-version
|
||||
agave-ledger-tool -l config/bootstrap-validator shred-version --max-genesis-archive-unpacked-size 1073741824 | tee config/shred-version
|
||||
|
||||
if [[ -n "$maybeWaitForSupermajority" ]]; then
|
||||
bankHash=$(solana-ledger-tool -l config/bootstrap-validator bank-hash --halt-at-slot 0)
|
||||
bankHash=$(agave-ledger-tool -l config/bootstrap-validator bank-hash --halt-at-slot 0)
|
||||
extraNodeArgs="$extraNodeArgs --expected-bank-hash $bankHash"
|
||||
echo "$bankHash" > config/bank-hash
|
||||
fi
|
||||
|
|
|
@ -65,7 +65,7 @@ local|tar|skip)
|
|||
export USE_INSTALL=1
|
||||
solana_cli=solana
|
||||
solana_gossip=solana-gossip
|
||||
solana_install=solana-install
|
||||
solana_install=agave-install
|
||||
;;
|
||||
*)
|
||||
echo "Unknown deployment method: $deployMethod"
|
||||
|
@ -122,7 +122,7 @@ else
|
|||
fi
|
||||
|
||||
if $installCheck && [[ -r update_manifest_keypair.json ]]; then
|
||||
echo "--- $sanityTargetIp: solana-install test"
|
||||
echo "--- $sanityTargetIp: agave-install test"
|
||||
|
||||
(
|
||||
set -x
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
///
|
||||
/// To receive a Twilio SMS notification on failure, having a Twilio account,
|
||||
/// and a sending number owned by that account,
|
||||
/// define environment variable before running `solana-watchtower`:
|
||||
/// define environment variable before running `agave-watchtower`:
|
||||
/// ```bash
|
||||
/// export TWILIO_CONFIG='ACCOUNT=<account>,TOKEN=<securityToken>,TO=<receivingNumber>,FROM=<sendingNumber>'
|
||||
/// ```
|
||||
|
@ -208,7 +208,7 @@ impl Notifier {
|
|||
NotificationType::Resolve { ref incident } => incident.clone().to_string(),
|
||||
};
|
||||
|
||||
let data = json!({"payload":{"summary":msg,"source":"solana-watchtower","severity":"critical"},"routing_key":routing_key,"event_action":event_action,"dedup_key":dedup_key});
|
||||
let data = json!({"payload":{"summary":msg,"source":"agave-watchtower","severity":"critical"},"routing_key":routing_key,"event_action":event_action,"dedup_key":dedup_key});
|
||||
let url = "https://events.pagerduty.com/v2/enqueue";
|
||||
|
||||
if let Err(err) = self.client.post(url).json(&data).send() {
|
||||
|
|
|
@ -63,6 +63,80 @@ dependencies = [
|
|||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "agave-geyser-plugin-interface"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"log",
|
||||
"solana-sdk",
|
||||
"solana-transaction-status",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "agave-validator"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"agave-geyser-plugin-interface",
|
||||
"chrono",
|
||||
"clap 2.33.3",
|
||||
"console",
|
||||
"core_affinity",
|
||||
"crossbeam-channel",
|
||||
"fd-lock",
|
||||
"indicatif",
|
||||
"itertools",
|
||||
"jsonrpc-core",
|
||||
"jsonrpc-core-client",
|
||||
"jsonrpc-derive",
|
||||
"jsonrpc-ipc-server",
|
||||
"jsonrpc-server-utils",
|
||||
"lazy_static",
|
||||
"libc",
|
||||
"libloading",
|
||||
"log",
|
||||
"num_cpus",
|
||||
"rand 0.8.5",
|
||||
"rayon",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serde_yaml",
|
||||
"signal-hook",
|
||||
"solana-accounts-db",
|
||||
"solana-clap-utils",
|
||||
"solana-cli-config",
|
||||
"solana-core",
|
||||
"solana-download-utils",
|
||||
"solana-entry",
|
||||
"solana-faucet",
|
||||
"solana-genesis-utils",
|
||||
"solana-geyser-plugin-manager",
|
||||
"solana-gossip",
|
||||
"solana-ledger",
|
||||
"solana-logger",
|
||||
"solana-metrics",
|
||||
"solana-net-utils",
|
||||
"solana-perf",
|
||||
"solana-poh",
|
||||
"solana-rpc",
|
||||
"solana-rpc-client",
|
||||
"solana-rpc-client-api",
|
||||
"solana-runtime",
|
||||
"solana-sdk",
|
||||
"solana-send-transaction-service",
|
||||
"solana-storage-bigtable",
|
||||
"solana-streamer",
|
||||
"solana-svm",
|
||||
"solana-test-validator",
|
||||
"solana-tpu-client",
|
||||
"solana-unified-scheduler-pool",
|
||||
"solana-version",
|
||||
"solana-vote-program",
|
||||
"symlink",
|
||||
"thiserror",
|
||||
"tikv-jemallocator",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ahash"
|
||||
version = "0.7.6"
|
||||
|
@ -5044,20 +5118,11 @@ dependencies = [
|
|||
"solana-sdk",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-geyser-plugin-interface"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"log",
|
||||
"solana-sdk",
|
||||
"solana-transaction-status",
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-geyser-plugin-manager"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"agave-geyser-plugin-interface",
|
||||
"bs58",
|
||||
"crossbeam-channel",
|
||||
"json5",
|
||||
|
@ -5068,7 +5133,6 @@ dependencies = [
|
|||
"serde_json",
|
||||
"solana-accounts-db",
|
||||
"solana-entry",
|
||||
"solana-geyser-plugin-interface",
|
||||
"solana-ledger",
|
||||
"solana-measure",
|
||||
"solana-metrics",
|
||||
|
@ -6055,11 +6119,11 @@ dependencies = [
|
|||
name = "solana-sbf-rust-simulation"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"agave-validator",
|
||||
"solana-logger",
|
||||
"solana-program",
|
||||
"solana-program-test",
|
||||
"solana-sdk",
|
||||
"solana-validator",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -6462,70 +6526,6 @@ dependencies = [
|
|||
"solana-vote",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-validator"
|
||||
version = "1.19.0"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"clap 2.33.3",
|
||||
"console",
|
||||
"core_affinity",
|
||||
"crossbeam-channel",
|
||||
"fd-lock",
|
||||
"indicatif",
|
||||
"itertools",
|
||||
"jsonrpc-core",
|
||||
"jsonrpc-core-client",
|
||||
"jsonrpc-derive",
|
||||
"jsonrpc-ipc-server",
|
||||
"jsonrpc-server-utils",
|
||||
"lazy_static",
|
||||
"libc",
|
||||
"libloading",
|
||||
"log",
|
||||
"num_cpus",
|
||||
"rand 0.8.5",
|
||||
"rayon",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serde_yaml",
|
||||
"signal-hook",
|
||||
"solana-accounts-db",
|
||||
"solana-clap-utils",
|
||||
"solana-cli-config",
|
||||
"solana-core",
|
||||
"solana-download-utils",
|
||||
"solana-entry",
|
||||
"solana-faucet",
|
||||
"solana-genesis-utils",
|
||||
"solana-geyser-plugin-interface",
|
||||
"solana-geyser-plugin-manager",
|
||||
"solana-gossip",
|
||||
"solana-ledger",
|
||||
"solana-logger",
|
||||
"solana-metrics",
|
||||
"solana-net-utils",
|
||||
"solana-perf",
|
||||
"solana-poh",
|
||||
"solana-rpc",
|
||||
"solana-rpc-client",
|
||||
"solana-rpc-client-api",
|
||||
"solana-runtime",
|
||||
"solana-sdk",
|
||||
"solana-send-transaction-service",
|
||||
"solana-storage-bigtable",
|
||||
"solana-streamer",
|
||||
"solana-svm",
|
||||
"solana-test-validator",
|
||||
"solana-tpu-client",
|
||||
"solana-unified-scheduler-pool",
|
||||
"solana-version",
|
||||
"solana-vote-program",
|
||||
"symlink",
|
||||
"thiserror",
|
||||
"tikv-jemallocator",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "solana-version"
|
||||
version = "1.19.0"
|
||||
|
|
|
@ -46,7 +46,7 @@ solana-sbf-rust-realloc = { path = "rust/realloc", version = "=1.19.0", default-
|
|||
solana-sbf-rust-realloc-invoke = { path = "rust/realloc_invoke", version = "=1.19.0" }
|
||||
solana-sdk = { path = "../../sdk", version = "=1.19.0" }
|
||||
solana-transaction-status = { path = "../../transaction-status", version = "=1.19.0" }
|
||||
solana-validator = { path = "../../validator", version = "=1.19.0" }
|
||||
agave-validator = { path = "../../validator", version = "=1.19.0" }
|
||||
solana-zk-token-sdk = { path = "../../zk-token-sdk", version = "=1.19.0" }
|
||||
solana-svm = { path = "../../svm", version = "=1.19.0" }
|
||||
solana_rbpf = "=0.8.0"
|
||||
|
|
|
@ -16,10 +16,10 @@ test-bpf = []
|
|||
solana-program = { workspace = true }
|
||||
|
||||
[dev-dependencies]
|
||||
agave-validator = { workspace = true }
|
||||
solana-logger = { workspace = true }
|
||||
solana-program-test = { workspace = true }
|
||||
solana-sdk = { workspace = true }
|
||||
solana-validator = { workspace = true }
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib", "lib"]
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
#![cfg(feature = "test-bpf")]
|
||||
|
||||
use {
|
||||
agave_validator::test_validator::*,
|
||||
solana_program::{
|
||||
instruction::{AccountMeta, Instruction},
|
||||
pubkey::Pubkey,
|
||||
sysvar,
|
||||
},
|
||||
solana_sdk::{signature::Signer, transaction::Transaction},
|
||||
solana_validator::test_validator::*,
|
||||
};
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
//! By default the [`block_subscribe`] and [`vote_subscribe`] events are
|
||||
//! disabled on RPC nodes. They can be enabled by passing
|
||||
//! `--rpc-pubsub-enable-block-subscription` and
|
||||
//! `--rpc-pubsub-enable-vote-subscription` to `solana-validator`. When these
|
||||
//! `--rpc-pubsub-enable-vote-subscription` to `agave-validator`. When these
|
||||
//! methods are disabled, the RPC server will return a "Method not found" error
|
||||
//! message.
|
||||
//!
|
||||
|
@ -381,7 +381,7 @@ impl PubsubClient {
|
|||
/// Receives messages of type [`RpcBlockUpdate`] when a block is confirmed or finalized.
|
||||
///
|
||||
/// This method is disabled by default. It can be enabled by passing
|
||||
/// `--rpc-pubsub-enable-block-subscription` to `solana-validator`.
|
||||
/// `--rpc-pubsub-enable-block-subscription` to `agave-validator`.
|
||||
///
|
||||
/// # RPC Reference
|
||||
///
|
||||
|
@ -452,7 +452,7 @@ impl PubsubClient {
|
|||
/// votes are observed prior to confirmation and may never be confirmed.
|
||||
///
|
||||
/// This method is disabled by default. It can be enabled by passing
|
||||
/// `--rpc-pubsub-enable-vote-subscription` to `solana-validator`.
|
||||
/// `--rpc-pubsub-enable-vote-subscription` to `agave-validator`.
|
||||
///
|
||||
/// # RPC Reference
|
||||
///
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
//! By default the [`block_subscribe`] and [`vote_subscribe`] events are
|
||||
//! disabled on RPC nodes. They can be enabled by passing
|
||||
//! `--rpc-pubsub-enable-block-subscription` and
|
||||
//! `--rpc-pubsub-enable-vote-subscription` to `solana-validator`. When these
|
||||
//! `--rpc-pubsub-enable-vote-subscription` to `agave-validator`. When these
|
||||
//! methods are disabled, the RPC server will return a "Method not found" error
|
||||
//! message.
|
||||
//!
|
||||
|
@ -416,7 +416,7 @@ impl PubsubClient {
|
|||
/// Receives messages of type [`RpcBlockUpdate`] when a block is confirmed or finalized.
|
||||
///
|
||||
/// This method is disabled by default. It can be enabled by passing
|
||||
/// `--rpc-pubsub-enable-block-subscription` to `solana-validator`.
|
||||
/// `--rpc-pubsub-enable-block-subscription` to `agave-validator`.
|
||||
///
|
||||
/// # RPC Reference
|
||||
///
|
||||
|
@ -578,7 +578,7 @@ impl PubsubClient {
|
|||
/// votes are observed prior to confirmation and may never be confirmed.
|
||||
///
|
||||
/// This method is disabled by default. It can be enabled by passing
|
||||
/// `--rpc-pubsub-enable-vote-subscription` to `solana-validator`.
|
||||
/// `--rpc-pubsub-enable-vote-subscription` to `agave-validator`.
|
||||
///
|
||||
/// # RPC Reference
|
||||
///
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
fn main() {
|
||||
println!(
|
||||
r##"rbpf-cli is replaced by solana-ledger-tool program run subcommand.
|
||||
Please, use 'solana-ledger-tool program run --help' for more information."##
|
||||
r##"rbpf-cli is replaced by agave-ledger-tool program run subcommand.
|
||||
Please, use 'agave-ledger-tool program run --help' for more information."##
|
||||
);
|
||||
}
|
||||
|
|
|
@ -2561,7 +2561,7 @@ pub mod rpc_minimal {
|
|||
#[rpc(meta, name = "getVersion")]
|
||||
fn get_version(&self, meta: Self::Metadata) -> Result<RpcVersionInfo>;
|
||||
|
||||
// TODO: Refactor `solana-validator wait-for-restart-window` to not require this method, so
|
||||
// TODO: Refactor `agave-validator wait-for-restart-window` to not require this method, so
|
||||
// it can be removed from rpc_minimal
|
||||
#[rpc(meta, name = "getVoteAccounts")]
|
||||
fn get_vote_accounts(
|
||||
|
@ -2570,7 +2570,7 @@ pub mod rpc_minimal {
|
|||
config: Option<RpcGetVoteAccountsConfig>,
|
||||
) -> Result<RpcVoteAccountStatus>;
|
||||
|
||||
// TODO: Refactor `solana-validator wait-for-restart-window` to not require this method, so
|
||||
// TODO: Refactor `agave-validator wait-for-restart-window` to not require this method, so
|
||||
// it can be removed from rpc_minimal
|
||||
#[rpc(meta, name = "getLeaderSchedule")]
|
||||
fn get_leader_schedule(
|
||||
|
@ -2696,7 +2696,7 @@ pub mod rpc_minimal {
|
|||
})
|
||||
}
|
||||
|
||||
// TODO: Refactor `solana-validator wait-for-restart-window` to not require this method, so
|
||||
// TODO: Refactor `agave-validator wait-for-restart-window` to not require this method, so
|
||||
// it can be removed from rpc_minimal
|
||||
fn get_vote_accounts(
|
||||
&self,
|
||||
|
@ -2707,7 +2707,7 @@ pub mod rpc_minimal {
|
|||
meta.get_vote_accounts(config)
|
||||
}
|
||||
|
||||
// TODO: Refactor `solana-validator wait-for-restart-window` to not require this method, so
|
||||
// TODO: Refactor `agave-validator wait-for-restart-window` to not require this method, so
|
||||
// it can be removed from rpc_minimal
|
||||
fn get_leader_schedule(
|
||||
&self,
|
||||
|
|
|
@ -26,7 +26,7 @@ if [[ -z $URL || -z $TAG ]]; then
|
|||
fi
|
||||
|
||||
if [[ ! -f update_manifest_keypair.json ]]; then
|
||||
"$SOLANA_ROOT"/scripts/solana-install-update-manifest-keypair.sh "$OS"
|
||||
"$SOLANA_ROOT"/scripts/agave-install-update-manifest-keypair.sh "$OS"
|
||||
fi
|
||||
|
||||
case "$OS" in
|
||||
|
@ -76,4 +76,4 @@ if [[ $balance = "0 lamports" ]]; then
|
|||
fi
|
||||
|
||||
# shellcheck disable=SC2086 # Don't want to double quote $maybeKeypair
|
||||
solana-install deploy $maybeKeypair --url "$URL" "$DOWNLOAD_URL" update_manifest_keypair.json
|
||||
agave-install deploy $maybeKeypair --url "$URL" "$DOWNLOAD_URL" update_manifest_keypair.json
|
|
@ -91,8 +91,8 @@ if [[ $CI_OS_NAME = windows ]]; then
|
|||
cargo-test-bpf
|
||||
cargo-test-sbf
|
||||
solana
|
||||
solana-install
|
||||
solana-install-init
|
||||
agave-install
|
||||
agave-install-init
|
||||
solana-keygen
|
||||
solana-stake-accounts
|
||||
solana-test-validator
|
||||
|
@ -106,12 +106,12 @@ else
|
|||
solana-bench-tps
|
||||
solana-faucet
|
||||
solana-gossip
|
||||
solana-install
|
||||
agave-install
|
||||
solana-keygen
|
||||
solana-ledger-tool
|
||||
agave-ledger-tool
|
||||
solana-log-analyzer
|
||||
solana-net-shaper
|
||||
solana-validator
|
||||
agave-validator
|
||||
rbpf-cli
|
||||
)
|
||||
|
||||
|
@ -123,11 +123,11 @@ else
|
|||
cargo-test-bpf
|
||||
cargo-test-sbf
|
||||
solana-dos
|
||||
solana-install-init
|
||||
agave-install-init
|
||||
solana-stake-accounts
|
||||
solana-test-validator
|
||||
solana-tokens
|
||||
solana-watchtower
|
||||
agave-watchtower
|
||||
)
|
||||
fi
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ source ci/rust-version.sh nightly
|
|||
declare tainted_packages=(
|
||||
solana-accounts-bench
|
||||
solana-banking-bench
|
||||
solana-ledger-tool
|
||||
agave-ledger-tool
|
||||
)
|
||||
|
||||
# convert to comma separeted (ref: https://stackoverflow.com/a/53839433)
|
||||
|
|
|
@ -23,9 +23,11 @@ fi
|
|||
PATH=$PWD/target/$profile:$PATH
|
||||
|
||||
ok=true
|
||||
for program in solana-{faucet,genesis,keygen,validator}; do
|
||||
for program in solana-{faucet,genesis,keygen}; do
|
||||
$program -V || ok=false
|
||||
done
|
||||
agave-validator -V || ok=false
|
||||
|
||||
$ok || {
|
||||
echo
|
||||
echo "Unable to locate required programs. Try building them first with:"
|
||||
|
@ -115,7 +117,7 @@ args=(
|
|||
--no-os-network-limits-test
|
||||
)
|
||||
# shellcheck disable=SC2086
|
||||
solana-validator "${args[@]}" $SOLANA_RUN_SH_VALIDATOR_ARGS &
|
||||
agave-validator "${args[@]}" $SOLANA_RUN_SH_VALIDATOR_ARGS &
|
||||
validator=$!
|
||||
|
||||
wait "$validator"
|
||||
|
|
|
@ -30,14 +30,14 @@ solanaInstallGlobalOpts=(
|
|||
bootstrapInstall() {
|
||||
declare v=$1
|
||||
if [[ ! -h $solanaInstallDataDir/active_release ]]; then
|
||||
sh "$SOLANA_ROOT"/install/solana-install-init.sh "$v" "${solanaInstallGlobalOpts[@]}"
|
||||
sh "$SOLANA_ROOT"/install/agave-install-init.sh "$v" "${solanaInstallGlobalOpts[@]}"
|
||||
fi
|
||||
export PATH="$solanaInstallDataDir/active_release/bin/:$PATH"
|
||||
}
|
||||
|
||||
bootstrapInstall "$baselineVersion"
|
||||
for v in "${otherVersions[@]}"; do
|
||||
solana-install-init "${solanaInstallGlobalOpts[@]}" "$v"
|
||||
agave-install-init "${solanaInstallGlobalOpts[@]}" "$v"
|
||||
solana -V
|
||||
done
|
||||
|
||||
|
@ -113,7 +113,7 @@ for v in "${otherVersions[@]}"; do
|
|||
(
|
||||
set -x
|
||||
tmux new-window -t abi -n "$v" " \
|
||||
$SOLANA_BIN/solana-validator \
|
||||
$SOLANA_BIN/agave-validator \
|
||||
--ledger $ledger \
|
||||
--no-snapshot-fetch \
|
||||
--entrypoint 127.0.0.1:8001 \
|
||||
|
|
|
@ -19,14 +19,14 @@ solanaInstallGlobalOpts=(
|
|||
bootstrapInstall() {
|
||||
declare v=$1
|
||||
if [[ ! -h $solanaInstallDataDir/active_release ]]; then
|
||||
sh "$SOLANA_ROOT"/install/solana-install-init.sh "$v" "${solanaInstallGlobalOpts[@]}"
|
||||
sh "$SOLANA_ROOT"/install/agave-install-init.sh "$v" "${solanaInstallGlobalOpts[@]}"
|
||||
fi
|
||||
export PATH="$solanaInstallDataDir/active_release/bin/:$PATH"
|
||||
}
|
||||
|
||||
bootstrapInstall "edge"
|
||||
solana-install-init --version
|
||||
solana-install-init edge
|
||||
agave-install-init --version
|
||||
agave-install-init edge
|
||||
solana-gossip --version
|
||||
solana-dos --version
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
[package]
|
||||
name = "solana-validator"
|
||||
name = "agave-validator"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
documentation = "https://docs.rs/solana-validator"
|
||||
default-run = "solana-validator"
|
||||
documentation = "https://docs.rs/agave-validator"
|
||||
default-run = "agave-validator"
|
||||
version = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
|
@ -11,6 +11,7 @@ license = { workspace = true }
|
|||
edition = { workspace = true }
|
||||
|
||||
[dependencies]
|
||||
agave-geyser-plugin-interface = { workspace = true }
|
||||
chrono = { workspace = true, features = ["default", "serde"] }
|
||||
clap = { workspace = true }
|
||||
console = { workspace = true }
|
||||
|
@ -41,7 +42,6 @@ solana-download-utils = { workspace = true }
|
|||
solana-entry = { workspace = true }
|
||||
solana-faucet = { workspace = true }
|
||||
solana-genesis-utils = { workspace = true }
|
||||
solana-geyser-plugin-interface = { workspace = true }
|
||||
solana-geyser-plugin-manager = { workspace = true }
|
||||
solana-gossip = { workspace = true }
|
||||
solana-ledger = { workspace = true }
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
use {
|
||||
agave_validator::{
|
||||
admin_rpc_service, cli, dashboard::Dashboard, ledger_lockfile, lock_ledger,
|
||||
println_name_value, redirect_stderr_to_file,
|
||||
},
|
||||
clap::{crate_name, value_t, value_t_or_exit, values_t_or_exit},
|
||||
crossbeam_channel::unbounded,
|
||||
itertools::Itertools,
|
||||
|
@ -28,10 +32,6 @@ use {
|
|||
},
|
||||
solana_streamer::socket::SocketAddrSpace,
|
||||
solana_test_validator::*,
|
||||
solana_validator::{
|
||||
admin_rpc_service, cli, dashboard::Dashboard, ledger_lockfile, lock_ledger,
|
||||
println_name_value, redirect_stderr_to_file,
|
||||
},
|
||||
std::{
|
||||
collections::HashSet,
|
||||
fs, io,
|
||||
|
|
|
@ -447,7 +447,7 @@ pub fn attempt_download_genesis_and_snapshot(
|
|||
)
|
||||
.unwrap_or_else(|err| {
|
||||
// Consider failures here to be more likely due to user error (eg,
|
||||
// incorrect `solana-validator` command-line arguments) rather than the
|
||||
// incorrect `agave-validator` command-line arguments) rather than the
|
||||
// RPC node failing.
|
||||
//
|
||||
// Power users can always use the `--no-check-vote-account` option to
|
||||
|
|
|
@ -2,6 +2,15 @@
|
|||
#[cfg(not(target_env = "msvc"))]
|
||||
use jemallocator::Jemalloc;
|
||||
use {
|
||||
agave_validator::{
|
||||
admin_rpc_service,
|
||||
admin_rpc_service::{load_staked_nodes_overrides, StakedNodesOverrides},
|
||||
bootstrap,
|
||||
cli::{app, warn_for_deprecated_arguments, DefaultArgs},
|
||||
dashboard::Dashboard,
|
||||
ledger_lockfile, lock_ledger, new_spinner_progress_bar, println_name_value,
|
||||
redirect_stderr_to_file,
|
||||
},
|
||||
clap::{crate_name, value_t, value_t_or_exit, values_t, values_t_or_exit, ArgMatches},
|
||||
console::style,
|
||||
crossbeam_channel::unbounded,
|
||||
|
@ -60,15 +69,6 @@ use {
|
|||
solana_streamer::socket::SocketAddrSpace,
|
||||
solana_svm::runtime_config::RuntimeConfig,
|
||||
solana_tpu_client::tpu_client::DEFAULT_TPU_ENABLE_UDP,
|
||||
solana_validator::{
|
||||
admin_rpc_service,
|
||||
admin_rpc_service::{load_staked_nodes_overrides, StakedNodesOverrides},
|
||||
bootstrap,
|
||||
cli::{app, warn_for_deprecated_arguments, DefaultArgs},
|
||||
dashboard::Dashboard,
|
||||
ledger_lockfile, lock_ledger, new_spinner_progress_bar, println_name_value,
|
||||
redirect_stderr_to_file,
|
||||
},
|
||||
std::{
|
||||
collections::{HashSet, VecDeque},
|
||||
env,
|
||||
|
@ -917,7 +917,7 @@ pub fn main() {
|
|||
let logfile = matches
|
||||
.value_of("logfile")
|
||||
.map(|s| s.into())
|
||||
.unwrap_or_else(|| format!("solana-validator-{}.log", identity_keypair.pubkey()));
|
||||
.unwrap_or_else(|| format!("agave-validator-{}.log", identity_keypair.pubkey()));
|
||||
|
||||
if logfile == "-" {
|
||||
None
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "solana-watchtower"
|
||||
name = "agave-watchtower"
|
||||
description = "Blockchain, Rebuilt for Scale"
|
||||
documentation = "https://docs.rs/solana-watchtower"
|
||||
documentation = "https://docs.rs/agave-watchtower"
|
||||
version = { workspace = true }
|
||||
authors = { workspace = true }
|
||||
repository = { workspace = true }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
The `solana-watchtower` program is used to monitor the health of a cluster. It
|
||||
The `agave-watchtower` program is used to monitor the health of a cluster. It
|
||||
periodically polls the cluster over an RPC API to confirm that the transaction
|
||||
count is advancing, new blockhashes are available, and no validators are
|
||||
delinquent. Results are reported as InfluxDB metrics, with an optional push
|
||||
|
|
|
@ -47,7 +47,7 @@ fn get_config() -> Config {
|
|||
.version(solana_version::version!())
|
||||
.after_help("ADDITIONAL HELP:
|
||||
To receive a Slack, Discord, PagerDuty and/or Telegram notification on sanity failure,
|
||||
define environment variables before running `solana-watchtower`:
|
||||
define environment variables before running `agave-watchtower`:
|
||||
|
||||
export SLACK_WEBHOOK=...
|
||||
export DISCORD_WEBHOOK=...
|
||||
|
@ -63,7 +63,7 @@ fn get_config() -> Config {
|
|||
|
||||
To receive a Twilio SMS notification on failure, having a Twilio account,
|
||||
and a sending number owned by that account,
|
||||
define environment variable before running `solana-watchtower`:
|
||||
define environment variable before running `agave-watchtower`:
|
||||
|
||||
export TWILIO_CONFIG='ACCOUNT=<account>,TOKEN=<securityToken>,TO=<receivingNumber>,FROM=<sendingNumber>'")
|
||||
.arg({
|
||||
|
@ -166,7 +166,7 @@ fn get_config() -> Config {
|
|||
.value_name("SUFFIX")
|
||||
.takes_value(true)
|
||||
.default_value("")
|
||||
.help("Add this string into all notification messages after \"solana-watchtower\"")
|
||||
.help("Add this string into all notification messages after \"agave-watchtower\"")
|
||||
)
|
||||
.get_matches();
|
||||
|
||||
|
@ -381,7 +381,7 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
|||
|
||||
if let Some((failure_test_name, failure_error_message)) = &failure {
|
||||
let notification_msg = format!(
|
||||
"solana-watchtower{}: Error: {}: {}",
|
||||
"agave-watchtower{}: Error: {}: {}",
|
||||
config.name_suffix, failure_test_name, failure_error_message
|
||||
);
|
||||
num_consecutive_failures += 1;
|
||||
|
@ -415,7 +415,7 @@ fn main() -> Result<(), Box<dyn error::Error>> {
|
|||
);
|
||||
info!("{}", all_clear_msg);
|
||||
notifier.send(
|
||||
&format!("solana-watchtower{}: {}", config.name_suffix, all_clear_msg),
|
||||
&format!("agave-watchtower{}: {}", config.name_suffix, all_clear_msg),
|
||||
&NotificationType::Resolve { incident },
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue