From a69a8f7d6fc906b08604b16a667e5789b3c746ec Mon Sep 17 00:00:00 2001 From: deadlium Date: Sat, 4 May 2024 19:36:06 +0530 Subject: [PATCH] feat: Update start-chain.sh script This commit includes additional functionality and improvements to the start-chain.sh script. --- Cargo.lock | 364 +++++++++--------- Cargo.toml | 8 +- README.md | 118 +++++- accounts-cluster-bench/Cargo.toml | 4 +- accounts-cluster-bench/src/main.rs | 4 +- bench-tps/Cargo.toml | 6 +- bench-tps/src/keypairs.rs | 2 +- bench-tps/src/main.rs | 2 +- bench-tps/tests/bench_tps.rs | 4 +- ci/bench/part2.sh | 2 +- ci/localnet-sanity.sh | 6 +- ci/run-sanity.sh | 2 +- ci/test-bench.sh | 2 +- ci/test-stable.sh | 2 +- clap-utils/src/keypair.rs | 8 +- clap-v3-utils/src/keypair.rs | 8 +- cli/Cargo.toml | 6 +- cli/src/program.rs | 2 +- cli/tests/address_lookup_table.rs | 4 +- cli/tests/nonce.rs | 4 +- cli/tests/program.rs | 4 +- cli/tests/request_airdrop.rs | 4 +- cli/tests/stake.rs | 4 +- cli/tests/transfer.rs | 4 +- cli/tests/vote.rs | 4 +- client-test/Cargo.toml | 2 +- client-test/tests/client.rs | 2 +- ...nd_and_confirm_transactions_in_parallel.rs | 2 +- docs/src/cli/.usage.md.header | 2 +- docs/src/cli/conventions.md | 8 +- docs/src/cli/delegate-stake.md | 2 +- docs/src/cli/deploy-a-program.md | 4 +- docs/src/cli/transfer-tokens.md | 6 +- docs/src/cluster/bench-tps.md | 2 +- docs/src/clusters.md | 12 +- .../developing/on-chain-programs/debugging.md | 2 +- docs/src/developing/test-validator.md | 18 +- docs/src/getstarted/local.md | 6 +- docs/src/getstarted/rust.md | 2 +- docs/src/implemented-proposals/installer.md | 6 +- docs/src/integrations/exchange.md | 12 +- .../src/integrations/retrying-transactions.md | 2 +- docs/src/offline-signing/durable-nonce.md | 8 +- docs/src/running-validator/restart-cluster.md | 4 +- .../running-validator/validator-failover.md | 12 +- docs/src/running-validator/validator-stake.md | 2 +- docs/src/running-validator/validator-start.md | 48 +-- docs/src/running-validator/vote-accounts.md | 12 +- .../validator/best-practices/monitoring.md | 4 +- .../validator/best-practices/operations.md | 18 +- .../get-started/setup-a-validator.md | 28 +- .../get-started/setup-an-rpc-node.md | 4 +- docs/src/wallet-guide/file-system-wallet.md | 10 +- .../wallet-guide/hardware-wallets/ledger.md | 18 +- docs/src/wallet-guide/paper-wallet.md | 36 +- dos/Cargo.toml | 2 +- dos/src/main.rs | 2 +- faucet/Cargo.toml | 8 +- faucet/src/bin/faucet.rs | 2 +- faucet/tests/local-faucet.rs | 2 +- fetch-spl.sh | 7 +- genesis-utils/Cargo.toml | 4 +- genesis/Cargo.toml | 8 +- genesis/src/main.rs | 2 +- keygen/Cargo.toml | 6 +- keygen/src/keygen.rs | 40 +- ledger-tool/src/ledger_utils.rs | 8 +- ledger-tool/src/main.rs | 4 +- ledger/src/blockstore_db.rs | 2 +- local-cluster/tests/local_cluster.rs | 2 +- multinode-demo/bootstrap-validator.sh | 4 +- multinode-demo/common.sh | 10 +- multinode-demo/delegate-stake.sh | 2 +- multinode-demo/faucet.sh | 6 +- multinode-demo/setup-from-mainnet-beta.sh | 8 +- multinode-demo/setup-from-testnet.sh | 8 +- multinode-demo/setup.sh | 10 +- multinode-demo/validator.sh | 12 +- net/remote/remote-node.sh | 20 +- programs/sbf/Cargo.lock | 18 +- programs/sbf/Cargo.toml | 2 +- programs/sbf/rust/simulation/Cargo.toml | 2 +- .../sbf/rust/simulation/tests/validator.rs | 2 +- .../src/nonblocking/pubsub_client.rs | 6 +- pubsub-client/src/pubsub_client.rs | 6 +- rpc-test/Cargo.toml | 2 +- rpc-test/tests/nonblocking.rs | 2 +- rpc-test/tests/rpc.rs | 2 +- rpc/Cargo.toml | 2 +- rpc/src/rpc.rs | 10 +- scripts/cargo-install-all.sh | 16 +- scripts/genesis.sh | 2 +- scripts/patch-crates.sh | 6 +- scripts/run.sh | 14 +- scripts/validator.sh | 2 +- sdk/bpf/c/bpf.mk | 2 +- sdk/sbf/c/sbf.mk | 2 +- sdk/src/feature_set.rs | 2 +- start-chain.sh | 73 +--- .../abi-testcases/mixed-validator-test.sh | 2 +- .../offline_stake_operations.sh | 34 +- test-validator/Cargo.toml | 2 +- tokens/Cargo.toml | 2 +- tokens/src/commands.rs | 2 +- tokens/tests/commands.rs | 2 +- transaction-dos/Cargo.toml | 2 +- transaction-dos/src/main.rs | 2 +- validator/Cargo.toml | 12 +- validator/air-solana | 5 - ...olana.rs => svm_station_test_validator.rs} | 6 +- validator/src/bootstrap.rs | 4 +- validator/src/cli.rs | 6 +- validator/src/lib.rs | 2 +- validator/src/main.rs | 4 +- validator/svm_station_test_validator | 5 + zk-keygen/src/main.rs | 6 +- 116 files changed, 699 insertions(+), 623 deletions(-) delete mode 100755 validator/air-solana rename validator/src/bin/{air-solana.rs => svm_station_test_validator.rs} (99%) create mode 100755 validator/svm_station_test_validator diff --git a/Cargo.lock b/Cargo.lock index b2d2600..e11fa07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -104,36 +104,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "air-solana" -version = "1.18.0" -dependencies = [ - "base64 0.21.5", - "bincode", - "crossbeam-channel", - "log", - "serde_derive", - "serde_json", - "solana-accounts-db", - "solana-cli-output", - "solana-client", - "solana-core", - "solana-geyser-plugin-manager", - "solana-gossip", - "solana-ledger", - "solana-logger", - "solana-net-utils", - "solana-program-runtime", - "solana-program-test", - "solana-rpc", - "solana-rpc-client", - "solana-runtime", - "solana-sdk", - "solana-streamer", - "solana-tpu-client", - "tokio", -] - [[package]] name = "aliasable" version = "0.1.3" @@ -5273,7 +5243,6 @@ dependencies = [ name = "solana-accounts-cluster-bench" version = "1.18.0" dependencies = [ - "air-solana", "clap 2.33.3", "log", "rand 0.8.5", @@ -5284,7 +5253,6 @@ dependencies = [ "solana-cli-config", "solana-client", "solana-core", - "solana-faucet", "solana-gossip", "solana-local-cluster", "solana-logger", @@ -5297,6 +5265,8 @@ dependencies = [ "solana-transaction-status", "solana-version", "spl-token", + "svm-station-faucet", + "svm-station-test-validator", ] [[package]] @@ -5480,7 +5450,6 @@ dependencies = [ name = "solana-bench-tps" version = "1.18.0" dependencies = [ - "air-solana", "clap 2.33.3", "crossbeam-channel", "log", @@ -5494,8 +5463,6 @@ dependencies = [ "solana-client", "solana-connection-cache", "solana-core", - "solana-faucet", - "solana-genesis", "solana-gossip", "solana-local-cluster", "solana-logger", @@ -5513,6 +5480,9 @@ dependencies = [ "solana-tpu-client", "solana-version", "spl-instruction-padding", + "svm-station-faucet", + "svm-station-genesis", + "svm-station-test-validator", "tempfile", "thiserror", ] @@ -5697,7 +5667,6 @@ dependencies = [ name = "solana-cli" version = "1.18.0" dependencies = [ - "air-solana", "assert_matches", "bincode", "bs58", @@ -5724,7 +5693,6 @@ dependencies = [ "solana-cli-output", "solana-client", "solana-config-program", - "solana-faucet", "solana-loader-v4-program", "solana-logger", "solana-program-runtime", @@ -5741,6 +5709,8 @@ dependencies = [ "solana-vote-program", "solana_rbpf", "spl-memo", + "svm-station-faucet", + "svm-station-test-validator", "tempfile", "thiserror", "tiny-bip39", @@ -5823,7 +5793,6 @@ dependencies = [ name = "solana-client-test" version = "1.18.0" dependencies = [ - "air-solana", "futures-util", "rand 0.8.5", "serde_json", @@ -5844,6 +5813,7 @@ dependencies = [ "solana-streamer", "solana-transaction-status", "solana-version", + "svm-station-test-validator", "systemstat", "tokio", "tungstenite", @@ -6018,7 +5988,6 @@ dependencies = [ "solana-bench-tps", "solana-client", "solana-core", - "solana-faucet", "solana-gossip", "solana-local-cluster", "solana-logger", @@ -6032,6 +6001,7 @@ dependencies = [ "solana-thin-client", "solana-tpu-client", "solana-version", + "svm-station-faucet", ] [[package]] @@ -6079,28 +6049,6 @@ dependencies = [ "solana-sdk", ] -[[package]] -name = "solana-faucet" -version = "1.18.0" -dependencies = [ - "bincode", - "byteorder", - "clap 2.33.3", - "crossbeam-channel", - "log", - "serde", - "serde_derive", - "solana-clap-utils", - "solana-cli-config", - "solana-logger", - "solana-metrics", - "solana-sdk", - "solana-version", - "spl-memo", - "thiserror", - "tokio", -] - [[package]] name = "solana-frozen-abi" version = "1.18.0" @@ -6136,42 +6084,6 @@ dependencies = [ "syn 2.0.39", ] -[[package]] -name = "solana-genesis" -version = "1.18.0" -dependencies = [ - "base64 0.21.5", - "bincode", - "clap 2.33.3", - "itertools", - "serde", - "serde_json", - "serde_yaml 0.9.27", - "solana-accounts-db", - "solana-clap-utils", - "solana-cli-config", - "solana-entry", - "solana-ledger", - "solana-logger", - "solana-runtime", - "solana-sdk", - "solana-stake-program", - "solana-version", - "solana-vote-program", - "tempfile", -] - -[[package]] -name = "solana-genesis-utils" -version = "1.18.0" -dependencies = [ - "log", - "solana-accounts-db", - "solana-download-utils", - "solana-rpc-client", - "solana-sdk", -] - [[package]] name = "solana-geyser-plugin-interface" version = "1.18.0" @@ -6293,23 +6205,6 @@ dependencies = [ "winreg", ] -[[package]] -name = "solana-keygen" -version = "1.18.0" -dependencies = [ - "bs58", - "clap 3.2.23", - "dirs-next", - "num_cpus", - "solana-clap-v3-utils", - "solana-cli-config", - "solana-remote-wallet", - "solana-sdk", - "solana-version", - "tempfile", - "tiny-bip39", -] - [[package]] name = "solana-ledger" version = "1.18.0" @@ -6887,7 +6782,6 @@ dependencies = [ "solana-accounts-db", "solana-client", "solana-entry", - "solana-faucet", "solana-gossip", "solana-ledger", "solana-measure", @@ -6912,6 +6806,7 @@ dependencies = [ "spl-token", "spl-token-2022", "stream-cancel", + "svm-station-faucet", "symlink", "thiserror", "tokio", @@ -6988,7 +6883,6 @@ dependencies = [ name = "solana-rpc-test" version = "1.18.0" dependencies = [ - "air-solana", "bincode", "bs58", "crossbeam-channel", @@ -7008,6 +6902,7 @@ dependencies = [ "solana-streamer", "solana-tpu-client", "solana-transaction-status", + "svm-station-test-validator", "tokio", ] @@ -7350,7 +7245,6 @@ dependencies = [ name = "solana-tokens" version = "1.18.0" dependencies = [ - "air-solana", "assert_matches", "bincode", "chrono", @@ -7375,6 +7269,7 @@ dependencies = [ "solana-version", "spl-associated-token-account", "spl-token", + "svm-station-test-validator", "tempfile", "thiserror", ] @@ -7414,7 +7309,6 @@ dependencies = [ "solana-cli", "solana-client", "solana-core", - "solana-faucet", "solana-gossip", "solana-local-cluster", "solana-logger", @@ -7426,6 +7320,7 @@ dependencies = [ "solana-streamer", "solana-transaction-status", "solana-version", + "svm-station-faucet", ] [[package]] @@ -7509,70 +7404,6 @@ dependencies = [ "solana-metrics", ] -[[package]] -name = "solana-validator" -version = "1.18.0" -dependencies = [ - "air-solana", - "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.27", - "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-tpu-client", - "solana-version", - "solana-vote-program", - "spl-token-2022", - "symlink", - "thiserror", - "tikv-jemallocator", -] - [[package]] name = "solana-version" version = "1.18.0" @@ -8044,6 +7875,175 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +[[package]] +name = "svm-station-faucet" +version = "1.18.0" +dependencies = [ + "bincode", + "byteorder", + "clap 2.33.3", + "crossbeam-channel", + "log", + "serde", + "serde_derive", + "solana-clap-utils", + "solana-cli-config", + "solana-logger", + "solana-metrics", + "solana-sdk", + "solana-version", + "spl-memo", + "thiserror", + "tokio", +] + +[[package]] +name = "svm-station-genesis" +version = "1.18.0" +dependencies = [ + "base64 0.21.5", + "bincode", + "clap 2.33.3", + "itertools", + "serde", + "serde_json", + "serde_yaml 0.9.27", + "solana-accounts-db", + "solana-clap-utils", + "solana-cli-config", + "solana-entry", + "solana-ledger", + "solana-logger", + "solana-runtime", + "solana-sdk", + "solana-stake-program", + "solana-version", + "solana-vote-program", + "tempfile", +] + +[[package]] +name = "svm-station-genesis-utils" +version = "1.18.0" +dependencies = [ + "log", + "solana-accounts-db", + "solana-download-utils", + "solana-rpc-client", + "solana-sdk", +] + +[[package]] +name = "svm-station-keygen" +version = "1.18.0" +dependencies = [ + "bs58", + "clap 3.2.23", + "dirs-next", + "num_cpus", + "solana-clap-v3-utils", + "solana-cli-config", + "solana-remote-wallet", + "solana-sdk", + "solana-version", + "tempfile", + "tiny-bip39", +] + +[[package]] +name = "svm-station-test-validator" +version = "1.18.0" +dependencies = [ + "base64 0.21.5", + "bincode", + "crossbeam-channel", + "log", + "serde_derive", + "serde_json", + "solana-accounts-db", + "solana-cli-output", + "solana-client", + "solana-core", + "solana-geyser-plugin-manager", + "solana-gossip", + "solana-ledger", + "solana-logger", + "solana-net-utils", + "solana-program-runtime", + "solana-program-test", + "solana-rpc", + "solana-rpc-client", + "solana-runtime", + "solana-sdk", + "solana-streamer", + "solana-tpu-client", + "tokio", +] + +[[package]] +name = "svm-station-validator" +version = "1.18.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.27", + "signal-hook", + "solana-account-decoder", + "solana-accounts-db", + "solana-clap-utils", + "solana-cli-config", + "solana-core", + "solana-download-utils", + "solana-entry", + "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-tpu-client", + "solana-version", + "solana-vote-program", + "spl-token-2022", + "svm-station-faucet", + "svm-station-genesis-utils", + "svm-station-test-validator", + "symlink", + "thiserror", + "tikv-jemallocator", +] + [[package]] name = "symlink" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index f9ec94f..9820648 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -330,11 +330,11 @@ solana-core = { path = "core", version = "=1.18.0" } solana-cost-model = { path = "cost-model", version = "=1.18.0" } solana-download-utils = { path = "download-utils", version = "=1.18.0" } solana-entry = { path = "entry", version = "=1.18.0" } -solana-faucet = { path = "faucet", version = "=1.18.0" } +svm-station-faucet = { path = "faucet", version = "=1.18.0" } solana-frozen-abi = { path = "frozen-abi", version = "=1.18.0" } solana-frozen-abi-macro = { path = "frozen-abi/macro", version = "=1.18.0" } -solana-genesis = { path = "genesis", version = "=1.18.0" } -solana-genesis-utils = { path = "genesis-utils", version = "=1.18.0" } +svm-station-genesis = { path = "genesis", version = "=1.18.0" } +svm-station-genesis-utils = { path = "genesis-utils", version = "=1.18.0" } solana-geyser-plugin-interface = { path = "geyser-plugin-interface", version = "=1.18.0" } solana-geyser-plugin-manager = { path = "geyser-plugin-manager", version = "=1.18.0" } solana-gossip = { path = "gossip", version = "=1.18.0" } @@ -371,7 +371,7 @@ solana-storage-bigtable = { path = "storage-bigtable", version = "=1.18.0" } solana-storage-proto = { path = "storage-proto", version = "=1.18.0" } solana-streamer = { path = "streamer", version = "=1.18.0" } solana-system-program = { path = "programs/system", version = "=1.18.0" } -air-solana = { path = "test-validator", version = "=1.18.0" } +svm-station-test-validator = { path = "test-validator", version = "=1.18.0" } solana-thin-client = { path = "thin-client", version = "=1.18.0" } solana-tpu-client = { path = "tpu-client", version = "=1.18.0", default-features = false } solana-transaction-status = { path = "transaction-status", version = "=1.18.0" } diff --git a/README.md b/README.md index da7e32b..fbaf10b 100644 --- a/README.md +++ b/README.md @@ -87,9 +87,125 @@ sudo dnf install openssl-devel systemd-devel pkg-config zlib-devel llvm clang cm ### 7. Run the Project ```bash - path/to/build/directory/air-solana + path/to/build/directory/svm-station-test-validator ``` +## Running the Solana Chain + +### Step 1 **Prepare Account** + +Create the 4 keypair for solana you will need to run your solana chain. + +This command generates a cryptographic key pair specifically for a node in the Solana blockchain network. The generated keys will be used to identify and authenticate the validator ,voter, staker on the network. + +- #### chain faucet key +```shell +./target/debug/svm-station-keygen new --no-passphrase -so $HOME/.svmstationd/keys/faucet.json --force +``` +- #### chain validator key + +```shell +./target/debug/svm-station-keygen new --no-passphrase -so $HOME/.svmstationd/keys/validator-identity.json --force +``` +- #### chain validator's voter key +```shell +./target/debug/svm-station-keygen new --no-passphrase -so $HOME/.svmstationd/keys/validator-vote-account.json --force +``` + +- #### chain validator's staker key + +```shell +./target/debug/svm-station-keygen new --no-passphrase -so $HOME/.svmstationd/keys/validator-stake-account.json --force +``` + + +### Step 2 **Initialize the Program** + +fetch_spl_programs.sh is to automate the process of fetching the latest Solana Program Library (SPL) programs generating the necessary command-line arguments for installing them using the Solana blockchain's solana-genesis tool. + +```shell +chmod +x fetch_spl_programs.sh +./fetch_spl_programs.sh <path to program> # path to download spl program example : = "program" +``` + +### Step 3 **Create Genesis** + +This is a command-line invocation of the solana-genesis tool, which is used for initializing a new Solana blockchain network. + +Configuration : + +- The command sets various configurations such as the number of hashes per tick, the amount of lamports in the faucet account, and the stake for the bootstrap validator +- It specifies the paths to JSON files containing the validator's identity, vote account, and stake account keys +- It specifies the directory where blockchain data will be stored. + +Example : “chain/ledger” + +Loading Programs : + +- The command loads several BPF (Berkeley Packet Filter) programs into the blockchain network. These programs include the Token program, Memo program, Associated Token Account program, and Feature Proposal program from the Solana Program Library +- Each program is specified with its program ID, loader ID, and the path to its corresponding BPF program file. + +```shell + ./target/debug/svm-station-genesis \ + --ledger $HOME/.svmstationd/station-svm-chain/ \ + --hashes-per-tick sleep \ + --faucet-lamports 10000000000000000000 \ + --bootstrap-validator-lamports 100000000000000000 \ + --bootstrap-validator-stake-lamports 1000000000000000 \ + --bootstrap-validator $HOME/.svmstationd/keys/validator-identity.json \ + $HOME/.svmstationd/keys/validator-vote-account.json \ + $HOME/.svmstationd/keys/validator-stake-account.json \ + --cluster-type testnet \ + --ticks-per-slot 44 \ + --slots-per-epoch 432000 \ + --bpf-program_ TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA BPFLoader2111111111111111111111111111111111 $HOME/.svmstationd/spl_token-3.5.0.so \ + --bpf-program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb BPFLoaderUpgradeab1e11111111111111111111111111 $HOME/.svmstationd/spl_token-2022-0.9.0.so \ + --bpf-program Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo BPFLoader1111111111111111111111111111111111 $HOME/.svmstationd/spl_memo-1.0.0.so \ + --bpf-program MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr BPFLoader2111111111111111111111111111111111 $HOME/.svmstationd/spl_memo-3.0.0.so \ + --bpf-program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL BPFLoader2111111111111111111111111111111111 $HOME/.svmstationd/spl_associated-token-account-1.1.2.so \ + --bpf-program Feat1YXHhH6t1juaWF74WLcfv4XoNocjXA6sPWHNgAse BPFLoader2111111111111111111111111111111111 $HOME/.svmstationd/spl_feature-proposal-1.0.0.so +``` + + +### Step 4 **Start Node** + +solana-validator runs the Solana validator node with specific configurations. + +Identity and Vote Account : The validator's identity and vote account are specified via JSON files located in the ‘chain/keys’ directory. + +Ledger Configuration: The directory where blockchain ledger data will be stored is specified as ‘chain/ledger’ + +Network Configuration: + +- The gossip port is set to 8001, enabling communication between nodes. +- RPC (Remote Procedure Call) services are configured to listen on 0.0.0.0:8899 for incoming requests. +- The full RPC API is enabled, allowing clients to access various Solana RPC methods. +- The RPC faucet address is set to 127.0.0.1:9900, indicating the local address for the faucet service + +```shell +./target/debug/svm-station-validator \ + --identity $HOME/.svmstationd/keys/validator-identity.json \ + --vote-account $HOME/.svmstationd/keys/validator-vote-account.json \ + --ledger $HOME/.svmstationd/station-svm-chain/ \ + --rpc-port 8899 \ + --gossip-port 8001 \ + --snapshot-interval-slots 1000 \ + --no-incremental-snapshots \ + --rpc-faucet-address 127.0.0.1:9900 \ + --rpc-bind-address 0.0.0.0 \ + --bind-address 0.0.0.0 \ + --log - \ + --no-poh-speed-test \ + --no-wait-for-vote-to-start-leader \ + --full-rpc-api \ + --allow-private-addr \ + --enable-rpc-transaction-history \ + --enable-extended-tx-metadata-storage \ + --require-tower \ + --no-os-network-limits-test & +``` + + ## Acknowledgments - This project is built upon the [Solana blockchain](https://github.com/solana-labs). We extend our gratitude to the Solana Labs and the community for their foundational work. diff --git a/accounts-cluster-bench/Cargo.toml b/accounts-cluster-bench/Cargo.toml index 940f1cc..b207610 100644 --- a/accounts-cluster-bench/Cargo.toml +++ b/accounts-cluster-bench/Cargo.toml @@ -18,7 +18,7 @@ solana-accounts-db = { workspace = true } solana-clap-utils = { workspace = true } solana-cli-config = { workspace = true } solana-client = { workspace = true } -solana-faucet = { workspace = true } +svm-station-faucet = { workspace = true } solana-gossip = { workspace = true } solana-logger = { workspace = true } solana-measure = { workspace = true } @@ -34,7 +34,7 @@ spl-token = { workspace = true, features = ["no-entrypoint"] } [dev-dependencies] solana-core = { workspace = true } solana-local-cluster = { workspace = true } -air-solana = { workspace = true } +svm-station-test-validator = { workspace = true } [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/accounts-cluster-bench/src/main.rs b/accounts-cluster-bench/src/main.rs index ba3f48c..e501941 100644 --- a/accounts-cluster-bench/src/main.rs +++ b/accounts-cluster-bench/src/main.rs @@ -705,14 +705,14 @@ pub mod test { super::*, solana_accounts_db::inline_spl_token, solana_core::validator::ValidatorConfig, - solana_faucet::faucet::run_local_faucet, + svm_station_faucet::faucet::run_local_faucet, solana_local_cluster::{ local_cluster::{ClusterConfig, LocalCluster}, validator_configs::make_identical_validator_configs, }, solana_measure::measure::Measure, solana_sdk::{native_token::sol_to_lamports, poh_config::PohConfig}, - air_solana::TestValidator, + svm_station_test_validator::TestValidator, spl_token::{ solana_program::program_pack::Pack, state::{Account, Mint}, diff --git a/bench-tps/Cargo.toml b/bench-tps/Cargo.toml index d8f3b71..8e3b067 100644 --- a/bench-tps/Cargo.toml +++ b/bench-tps/Cargo.toml @@ -21,8 +21,8 @@ solana-cli-config = { workspace = true } solana-client = { workspace = true } solana-connection-cache = { workspace = true } solana-core = { workspace = true } -solana-faucet = { workspace = true } -solana-genesis = { workspace = true } +svm-station-faucet = { workspace = true } +svm-station-genesis = { workspace = true } solana-gossip = { workspace = true } solana-logger = { workspace = true } solana-measure = { workspace = true } @@ -44,7 +44,7 @@ thiserror = { workspace = true } [dev-dependencies] serial_test = { workspace = true } solana-local-cluster = { workspace = true } -air-solana = { workspace = true } +svm-station-test-validator = { workspace = true } tempfile = { workspace = true } [package.metadata.docs.rs] diff --git a/bench-tps/src/keypairs.rs b/bench-tps/src/keypairs.rs index d5f8391..10bcf19 100644 --- a/bench-tps/src/keypairs.rs +++ b/bench-tps/src/keypairs.rs @@ -4,7 +4,7 @@ use { bench_tps_client::BenchTpsClient, }, log::*, - solana_genesis::Base64Account, + svm_station_genesis::Base64Account, solana_sdk::signature::{Keypair, Signer}, std::{collections::HashMap, fs::File, path::Path, process::exit, sync::Arc}, }; diff --git a/bench-tps/src/main.rs b/bench-tps/src/main.rs index 519612b..40e9006 100644 --- a/bench-tps/src/main.rs +++ b/bench-tps/src/main.rs @@ -14,7 +14,7 @@ use { thin_client::ThinClient, tpu_client::{TpuClient, TpuClientConfig}, }, - solana_genesis::Base64Account, + svm_station_genesis::Base64Account, solana_gossip::gossip_service::{discover_cluster, get_client, get_multi_client}, solana_rpc_client::rpc_client::RpcClient, solana_sdk::{ diff --git a/bench-tps/tests/bench_tps.rs b/bench-tps/tests/bench_tps.rs index 476c063..d83c181 100644 --- a/bench-tps/tests/bench_tps.rs +++ b/bench-tps/tests/bench_tps.rs @@ -12,7 +12,7 @@ use { tpu_client::{TpuClient, TpuClientConfig}, }, solana_core::validator::ValidatorConfig, - solana_faucet::faucet::run_local_faucet, + svm_station_faucet::faucet::run_local_faucet, solana_local_cluster::{ local_cluster::{ClusterConfig, LocalCluster}, validator_configs::make_identical_validator_configs, @@ -27,7 +27,7 @@ use { signature::{Keypair, Signer}, }, solana_streamer::socket::SocketAddrSpace, - air_solana::TestValidatorGenesis, + svm_station_test_validator::TestValidatorGenesis, std::{sync::Arc, time::Duration}, }; diff --git a/ci/bench/part2.sh b/ci/bench/part2.sh index 44a6c46..5a181cf 100755 --- a/ci/bench/part2.sh +++ b/ci/bench/part2.sh @@ -15,7 +15,7 @@ _ cargo +"$rust_nightly" bench --manifest-path runtime/Cargo.toml ${V:+--verbose -- -Z unstable-options --format=json | tee -a "$BENCH_FILE" ( - # solana-keygen required when building C programs + # svm-station-keygen required when building C programs _ cargo build --manifest-path=keygen/Cargo.toml export PATH="$PWD/target/debug":$PATH diff --git a/ci/localnet-sanity.sh b/ci/localnet-sanity.sh index e6734e1..17b7d94 100755 --- a/ci/localnet-sanity.sh +++ b/ci/localnet-sanity.sh @@ -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 + $svm_station_validator --ledger "$SOLANA_CONFIG_DIR"/bootstrap-validator exit --force || true + $svm_station_validator --ledger "$SOLANA_CONFIG_DIR"/validator exit --force || true # Give the nodes a splash of time to cleanly exit before killing them sleep 2 @@ -316,7 +316,7 @@ while [[ $iteration -le $iterations ]]; do ( set -x client_keypair=/tmp/client-id.json-$$ - $solana_keygen new --no-passphrase -fso $client_keypair || exit $? + $svm_station_keygen new --no-passphrase -fso $client_keypair || exit $? $solana_gossip --allow-private-addr spy -n 127.0.0.1:8001 --num-nodes-exactly $numNodes || exit $? rm -rf $client_keypair ) || flag_error diff --git a/ci/run-sanity.sh b/ci/run-sanity.sh index 3e674d9..11e2f5a 100755 --- a/ci/run-sanity.sh +++ b/ci/run-sanity.sh @@ -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 +$svm_station_validator --ledger config/ledger exit --force || true wait $pid diff --git a/ci/test-bench.sh b/ci/test-bench.sh index aacc82c..a7fada4 100755 --- a/ci/test-bench.sh +++ b/ci/test-bench.sh @@ -26,7 +26,7 @@ fi BENCH_FILE=bench_output.log BENCH_ARTIFACT=current_bench_results.log -# solana-keygen required when building C programs +# svm-station-keygen required when building C programs _ cargo build --manifest-path=keygen/Cargo.toml export PATH="$PWD/target/debug":$PATH diff --git a/ci/test-stable.sh b/ci/test-stable.sh index f521a6c..10a1325 100755 --- a/ci/test-stable.sh +++ b/ci/test-stable.sh @@ -43,7 +43,7 @@ test-stable-sbf) # rustfilt required for dumping SBF assembly listings "$cargo" install rustfilt - # solana-keygen required when building C programs + # svm-station-keygen required when building C programs _ "$cargo" build --manifest-path=keygen/Cargo.toml export PATH="$PWD/target/debug":$PATH diff --git a/clap-utils/src/keypair.rs b/clap-utils/src/keypair.rs index ead51c9..51fb5ba 100644 --- a/clap-utils/src/keypair.rs +++ b/clap-utils/src/keypair.rs @@ -177,7 +177,7 @@ impl DefaultSigner { std::io::Error::new( std::io::ErrorKind::Other, format!( - "No default signer found, run \"solana-keygen new -o {}\" to create a new one", + "No default signer found, run \"svm-station-keygen new -o {}\" to create a new one", self.path ), ) @@ -776,7 +776,7 @@ pub fn signer_from_path_with_config( SignerSourceKind::Filepath(path) => match read_keypair_file(&path) { Err(e) => Err(std::io::Error::new( std::io::ErrorKind::Other, - format!("could not read keypair file \"{path}\". Run \"solana-keygen new\" to create a keypair file: {e}"), + format!("could not read keypair file \"{path}\". Run \"svm-station-keygen new\" to create a keypair file: {e}"), ) .into()), Ok(file) => Ok(Box::new(file)), @@ -900,7 +900,7 @@ pub fn resolve_signer_from_path( std::io::ErrorKind::Other, format!( "could not read keypair file \"{path}\". \ - Run \"solana-keygen new\" to create a keypair file: {e}" + Run \"svm-station-keygen new\" to create a keypair file: {e}" ), ) .into()), @@ -1022,7 +1022,7 @@ pub fn keypair_from_path( std::io::ErrorKind::Other, format!( "could not read keypair file \"{path}\". \ - Run \"solana-keygen new\" to create a keypair file: {e}" + Run \"svm-station-keygen new\" to create a keypair file: {e}" ), ) .into()), diff --git a/clap-v3-utils/src/keypair.rs b/clap-v3-utils/src/keypair.rs index 886deab..516a813 100644 --- a/clap-v3-utils/src/keypair.rs +++ b/clap-v3-utils/src/keypair.rs @@ -178,7 +178,7 @@ impl DefaultSigner { std::io::Error::new( std::io::ErrorKind::Other, format!( - "No default signer found, run \"solana-keygen new -o {}\" to create a new one", + "No default signer found, run \"svm-station-keygen new -o {}\" to create a new one", self.path ), ) @@ -777,7 +777,7 @@ pub fn signer_from_path_with_config( SignerSourceKind::Filepath(path) => match read_keypair_file(&path) { Err(e) => Err(std::io::Error::new( std::io::ErrorKind::Other, - format!("could not read keypair file \"{path}\". Run \"solana-keygen new\" to create a keypair file: {e}"), + format!("could not read keypair file \"{path}\". Run \"svm-station-keygen new\" to create a keypair file: {e}"), ) .into()), Ok(file) => Ok(Box::new(file)), @@ -902,7 +902,7 @@ pub fn resolve_signer_from_path( std::io::ErrorKind::Other, format!( "could not read keypair file \"{path}\". \ - Run \"solana-keygen new\" to create a keypair file: {e}" + Run \"svm-station-keygen new\" to create a keypair file: {e}" ), ) .into()), @@ -1133,7 +1133,7 @@ fn encodable_key_from_path( std::io::ErrorKind::Other, format!( "could not read keypair file \"{path}\". \ - Run \"solana-keygen new\" to create a keypair file: {e}" + Run \"svm-station-keygen new\" to create a keypair file: {e}" ), ) .into()), diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 0519b86..bf21723 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -35,7 +35,7 @@ solana-cli-config = { workspace = true } solana-cli-output = { workspace = true } solana-client = { workspace = true } solana-config-program = { workspace = true } -solana-faucet = { workspace = true } +svm-station-faucet = { workspace = true } solana-loader-v4-program = { workspace = true } solana-logger = { workspace = true } solana-program-runtime = { workspace = true } @@ -57,11 +57,11 @@ tiny-bip39 = { workspace = true } [dev-dependencies] assert_matches = { workspace = true } solana-streamer = { workspace = true } -air-solana = { workspace = true } +svm-station-test-validator = { workspace = true } tempfile = { workspace = true } [[bin]] -name = "solana" +name = "svm-station" path = "src/main.rs" [package.metadata.docs.rs] diff --git a/cli/src/program.rs b/cli/src/program.rs index 7a37a0a..c154d6b 100644 --- a/cli/src/program.rs +++ b/cli/src/program.rs @@ -2398,7 +2398,7 @@ fn report_ephemeral_mnemonic(words: usize, mnemonic: bip39::Mnemonic) { let phrase: &str = mnemonic.phrase(); let divider = String::from_utf8(vec![b'='; phrase.len()]).unwrap(); eprintln!("{divider}\nRecover the intermediate account's ephemeral keypair file with"); - eprintln!("`solana-keygen recover` and the following {words}-word seed phrase:"); + eprintln!("`svm-station-keygen recover` and the following {words}-word seed phrase:"); eprintln!("{divider}\n{phrase}\n{divider}"); eprintln!("To resume a deploy, pass the recovered keypair as the"); eprintln!("[BUFFER_SIGNER] to `solana program deploy` or `solana program write-buffer'."); diff --git a/cli/tests/address_lookup_table.rs b/cli/tests/address_lookup_table.rs index b512abf..b854791 100644 --- a/cli/tests/address_lookup_table.rs +++ b/cli/tests/address_lookup_table.rs @@ -7,14 +7,14 @@ use { cli::{process_command, CliCommand, CliConfig}, }, solana_cli_output::{CliAddressLookupTable, CliAddressLookupTableCreated, OutputFormat}, - solana_faucet::faucet::run_local_faucet, + svm_station_faucet::faucet::run_local_faucet, solana_sdk::{ native_token::LAMPORTS_PER_SOL, pubkey::Pubkey, signature::{Keypair, Signer}, }, solana_streamer::socket::SocketAddrSpace, - air_solana::TestValidator, + svm_station_test_validator::TestValidator, std::str::FromStr, }; diff --git a/cli/tests/nonce.rs b/cli/tests/nonce.rs index 66b2ae9..b288ae8 100644 --- a/cli/tests/nonce.rs +++ b/cli/tests/nonce.rs @@ -7,7 +7,7 @@ use { test_utils::check_ready, }, solana_cli_output::{parse_sign_only_reply_string, OutputFormat}, - solana_faucet::faucet::run_local_faucet, + svm_station_faucet::faucet::run_local_faucet, solana_rpc_client::rpc_client::RpcClient, solana_rpc_client_nonce_utils::blockhash_query::{self, BlockhashQuery}, solana_sdk::{ @@ -19,7 +19,7 @@ use { system_program, }, solana_streamer::socket::SocketAddrSpace, - air_solana::TestValidator, + svm_station_test_validator::TestValidator, }; #[test] diff --git a/cli/tests/program.rs b/cli/tests/program.rs index 4f1a891..77bc983 100644 --- a/cli/tests/program.rs +++ b/cli/tests/program.rs @@ -8,7 +8,7 @@ use { test_utils::wait_n_slots, }, solana_cli_output::OutputFormat, - solana_faucet::faucet::run_local_faucet, + svm_station_faucet::faucet::run_local_faucet, solana_rpc_client::rpc_client::RpcClient, solana_sdk::{ account_utils::StateMut, @@ -18,7 +18,7 @@ use { signature::{Keypair, Signer}, }, solana_streamer::socket::SocketAddrSpace, - air_solana::TestValidator, + svm_station_test_validator::TestValidator, std::{env, fs::File, io::Read, path::PathBuf, str::FromStr}, }; diff --git a/cli/tests/request_airdrop.rs b/cli/tests/request_airdrop.rs index de6e8ba..c7932e2 100644 --- a/cli/tests/request_airdrop.rs +++ b/cli/tests/request_airdrop.rs @@ -1,7 +1,7 @@ #![allow(clippy::arithmetic_side_effects)] use { solana_cli::cli::{process_command, CliCommand, CliConfig}, - solana_faucet::faucet::run_local_faucet, + svm_station_faucet::faucet::run_local_faucet, solana_rpc_client::rpc_client::RpcClient, solana_sdk::{ commitment_config::CommitmentConfig, @@ -9,7 +9,7 @@ use { signature::{Keypair, Signer}, }, solana_streamer::socket::SocketAddrSpace, - air_solana::TestValidator, + svm_station_test_validator::TestValidator, }; #[test] diff --git a/cli/tests/stake.rs b/cli/tests/stake.rs index 052cee2..b3cd029 100644 --- a/cli/tests/stake.rs +++ b/cli/tests/stake.rs @@ -10,7 +10,7 @@ use { test_utils::{check_ready, wait_for_next_epoch_plus_n_slots}, }, solana_cli_output::{parse_sign_only_reply_string, OutputFormat}, - solana_faucet::faucet::run_local_faucet, + svm_station_faucet::faucet::run_local_faucet, solana_rpc_client::rpc_client::RpcClient, solana_rpc_client_api::{ request::DELINQUENT_VALIDATOR_SLOT_DISTANCE, @@ -34,7 +34,7 @@ use { }, }, solana_streamer::socket::SocketAddrSpace, - air_solana::{TestValidator, TestValidatorGenesis}, + svm_station_test_validator::{TestValidator, TestValidatorGenesis}, }; #[test] diff --git a/cli/tests/transfer.rs b/cli/tests/transfer.rs index 28944a6..61a30d7 100644 --- a/cli/tests/transfer.rs +++ b/cli/tests/transfer.rs @@ -8,7 +8,7 @@ use { test_utils::check_ready, }, solana_cli_output::{parse_sign_only_reply_string, OutputFormat}, - solana_faucet::faucet::run_local_faucet, + svm_station_faucet::faucet::run_local_faucet, solana_rpc_client::rpc_client::RpcClient, solana_rpc_client_nonce_utils::blockhash_query::{self, BlockhashQuery}, solana_sdk::{ @@ -21,7 +21,7 @@ use { stake, }, solana_streamer::socket::SocketAddrSpace, - air_solana::TestValidator, + svm_station_test_validator::TestValidator, }; #[test] diff --git a/cli/tests/vote.rs b/cli/tests/vote.rs index 4298e6f..bc49c85 100644 --- a/cli/tests/vote.rs +++ b/cli/tests/vote.rs @@ -6,7 +6,7 @@ use { spend_utils::SpendAmount, }, solana_cli_output::{parse_sign_only_reply_string, OutputFormat}, - solana_faucet::faucet::run_local_faucet, + svm_station_faucet::faucet::run_local_faucet, solana_rpc_client::rpc_client::RpcClient, solana_rpc_client_nonce_utils::blockhash_query::{self, BlockhashQuery}, solana_sdk::{ @@ -15,7 +15,7 @@ use { signature::{Keypair, NullSigner, Signer}, }, solana_streamer::socket::SocketAddrSpace, - air_solana::TestValidator, + svm_station_test_validator::TestValidator, solana_vote_program::vote_state::{VoteAuthorize, VoteState, VoteStateVersions}, }; diff --git a/client-test/Cargo.toml b/client-test/Cargo.toml index 6752759..d40874d 100644 --- a/client-test/Cargo.toml +++ b/client-test/Cargo.toml @@ -28,7 +28,7 @@ solana-rpc-client-api = { workspace = true } solana-runtime = { workspace = true } solana-sdk = { workspace = true } solana-streamer = { workspace = true } -air-solana = { workspace = true } +svm-station-test-validator = { workspace = true } solana-transaction-status = { workspace = true } solana-version = { workspace = true } systemstat = { workspace = true } diff --git a/client-test/tests/client.rs b/client-test/tests/client.rs index 1445f16..2e1b49c 100644 --- a/client-test/tests/client.rs +++ b/client-test/tests/client.rs @@ -33,7 +33,7 @@ use { system_program, system_transaction, }, solana_streamer::socket::SocketAddrSpace, - air_solana::TestValidator, + svm_station_test_validator::TestValidator, solana_transaction_status::{ BlockEncodingOptions, ConfirmedBlock, TransactionDetails, UiTransactionEncoding, }, diff --git a/client-test/tests/send_and_confirm_transactions_in_parallel.rs b/client-test/tests/send_and_confirm_transactions_in_parallel.rs index b828da4..50df62f 100644 --- a/client-test/tests/send_and_confirm_transactions_in_parallel.rs +++ b/client-test/tests/send_and_confirm_transactions_in_parallel.rs @@ -11,7 +11,7 @@ use { pubkey::Pubkey, signature::Keypair, signer::Signer, system_instruction, }, solana_streamer::socket::SocketAddrSpace, - air_solana::TestValidator, + svm_station_test_validator::TestValidator, std::sync::Arc, }; diff --git a/docs/src/cli/.usage.md.header b/docs/src/cli/.usage.md.header index 4c532f9..8419139 100644 --- a/docs/src/cli/.usage.md.header +++ b/docs/src/cli/.usage.md.header @@ -10,7 +10,7 @@ The [solana-cli crate](https://crates.io/crates/solana-cli) provides a command-l ```bash // Command -$ solana-keygen pubkey +$ svm-station-keygen pubkey // Return diff --git a/docs/src/cli/conventions.md b/docs/src/cli/conventions.md index 7f97132..f77dce3 100644 --- a/docs/src/cli/conventions.md +++ b/docs/src/cli/conventions.md @@ -37,7 +37,7 @@ For example, the CLI help shows that the way to display any wallet's address (also known as the keypair's pubkey), is: ```bash -solana-keygen pubkey +svm-station-keygen pubkey ``` Below, we show how to resolve what you should put in `` depending @@ -54,7 +54,7 @@ enter your seed words when you run the command. To display the wallet address of a Paper Wallet: ```bash -solana-keygen pubkey prompt:// +svm-station-keygen pubkey prompt:// ``` #### File System Wallet @@ -66,7 +66,7 @@ For example, if the file system keypair file location is `/home/solana/my_wallet.json`, to display the address, do: ```bash -solana-keygen pubkey /home/solana/my_wallet.json +svm-station-keygen pubkey /home/solana/my_wallet.json ``` #### Hardware Wallet @@ -76,5 +76,5 @@ If you chose a hardware wallet, use your such as `usb://ledger?key=0`. ```bash -solana-keygen pubkey usb://ledger?key=0 +svm-station-keygen pubkey usb://ledger?key=0 ``` diff --git a/docs/src/cli/delegate-stake.md b/docs/src/cli/delegate-stake.md index 093c3e2..f053a33 100644 --- a/docs/src/cli/delegate-stake.md +++ b/docs/src/cli/delegate-stake.md @@ -23,7 +23,7 @@ No need for a password or encryption here; this keypair will be discarded right after creating the stake account. ```bash -solana-keygen new --no-passphrase -o stake-account.json +svm-station-keygen new --no-passphrase -o stake-account.json ``` The output will contain the public key after the text `pubkey:`. diff --git a/docs/src/cli/deploy-a-program.md b/docs/src/cli/deploy-a-program.md index 1f39dfe..017db9c 100644 --- a/docs/src/cli/deploy-a-program.md +++ b/docs/src/cli/deploy-a-program.md @@ -127,7 +127,7 @@ needed to recover the generated intermediate buffer's keypair: ``` ================================================================================== Recover the intermediate account's ephemeral keypair file with -`solana-keygen recover` and the following 12-word seed phrase: +`svm-station-keygen recover` and the following 12-word seed phrase: ================================================================================== valley flat great hockey share token excess clever benefit traffic avocado athlete ================================================================================== @@ -141,7 +141,7 @@ Or to recover the account's lamports, pass it as the To recover the keypair: ```bash -solana-keygen recover -o +svm-station-keygen recover -o ``` When asked, enter the 12-word seed phrase. diff --git a/docs/src/cli/transfer-tokens.md b/docs/src/cli/transfer-tokens.md index 187486a..d25fe78 100644 --- a/docs/src/cli/transfer-tokens.md +++ b/docs/src/cli/transfer-tokens.md @@ -56,7 +56,7 @@ We will need a new address to receive our tokens. Create a second keypair and record its pubkey: ```bash -solana-keygen new --no-passphrase --no-outfile +svm-station-keygen new --no-passphrase --no-outfile ``` The output will contain the address after the text `pubkey:`. Copy the @@ -98,7 +98,7 @@ recipient's public key. #### Full example of test transfer ```bash -$ solana-keygen new --outfile my_solana_wallet.json # Creating my first wallet, a file system wallet +$ svm-station-keygen new --outfile my_solana_wallet.json # Creating my first wallet, a file system wallet Generating a new keypair For added security, enter a passphrase (empty for no passphrase): Wrote new keypair to my_solana_wallet.json @@ -116,7 +116,7 @@ Requesting airdrop of 1 SOL from 35.233.193.70:9900 $ solana balance DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK --url https://api.devnet.solana.com # Check the address's balance 1 SOL -$ solana-keygen new --no-outfile # Creating a second wallet, a paper wallet +$ svm-station-keygen new --no-outfile # Creating a second wallet, a paper wallet Generating a new keypair For added security, enter a passphrase (empty for no passphrase): ==================================================================== diff --git a/docs/src/cluster/bench-tps.md b/docs/src/cluster/bench-tps.md index d913f9e..11917c0 100644 --- a/docs/src/cluster/bench-tps.md +++ b/docs/src/cluster/bench-tps.md @@ -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 _svm-station-validator_: ```bash sudo gdb diff --git a/docs/src/clusters.md b/docs/src/clusters.md index 5d59e7e..ed251ab 100644 --- a/docs/src/clusters.md +++ b/docs/src/clusters.md @@ -39,10 +39,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 `svm-station-validator` command-line ```bash -$ solana-validator \ +$ svm-station-validator \ --identity validator-keypair.json \ --vote-account vote-account-keypair.json \ --known-validator dv1ZAGvdsz5hHLwWXsVnM94hWf1pjbKVau1QVkaMJ92 \ @@ -91,10 +91,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 `svm-station-validator` command-line ```bash -$ solana-validator \ +$ svm-station-validator \ --identity validator-keypair.json \ --vote-account vote-account-keypair.json \ --known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \ @@ -143,10 +143,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 `svm-station-validator` command-line ```bash -$ solana-validator \ +$ svm-station-validator \ --identity ~/validator-keypair.json \ --vote-account ~/vote-account-keypair.json \ --known-validator 7Np41oeYqPefeNQEHSv1UDhYrehxin3NStELsSKCT4K2 \ diff --git a/docs/src/developing/on-chain-programs/debugging.md b/docs/src/developing/on-chain-programs/debugging.md index ed42a95..4186472 100644 --- a/docs/src/developing/on-chain-programs/debugging.md +++ b/docs/src/developing/on-chain-programs/debugging.md @@ -147,7 +147,7 @@ Note that `solana-ledger-tool` always loads a ledger database. Most on-chain programs interact with a ledger in some manner. Even if for debugging purpose a ledger is not needed, it has to be provided to `solana-ledger-tool`. A minimal ledger database can be created by -running `air-solana`, which creates a ledger in +running `svm-station-test-validator`, which creates a ledger in `test-ledger` subdirectory. In debugger mode `solana-ledger-tool program run` loads an `.so` file and diff --git a/docs/src/developing/test-validator.md b/docs/src/developing/test-validator.md index 2461372..afd4a69 100644 --- a/docs/src/developing/test-validator.md +++ b/docs/src/developing/test-validator.md @@ -4,7 +4,7 @@ title: Solana Test Validator During early stage development, it is often convenient to target a cluster with fewer restrictions and more configuration options than the public offerings -provide. This is easily achieved with the `air-solana` binary, which +provide. This is easily achieved with the `svm-station-test-validator` binary, which starts a full-featured, single-node cluster on the developer's workstation. ## Advantages @@ -21,7 +21,7 @@ starts a full-featured, single-node cluster on the developer's workstation. ## Installation -The `air-solana` binary ships with the Solana CLI Tool Suite. +The `svm-station-test-validator` binary ships with the Solana CLI Tool Suite. [Install](/cli/install-solana-cli-tools) before continuing. ## Running @@ -29,13 +29,13 @@ The `air-solana` binary ships with the Solana CLI Tool Suite. First take a look at the configuration options ``` -air-solana --help +svm-station-test-validator --help ``` Next start the test validator ``` -air-solana +svm-station-test-validator ``` By default, basic status information is printed while the process is running. @@ -54,12 +54,12 @@ JSON RPC URL: http://127.0.0.1:8899 ⠈ 00:36:02 | Processed Slot: 5142 | Confirmed Slot: 5142 | Finalized Slot: 5110 | Snapshot Slot: 5100 | Transactions: 5142 | ◎499.974295000 ``` -Leave `air-solana` running in its own terminal. When it is no longer +Leave `svm-station-test-validator` running in its own terminal. When it is no longer needed, it can be stopped with ctrl-c. ## Interacting -Open a new terminal to interact with a [running](#running) `air-solana` +Open a new terminal to interact with a [running](#running) `svm-station-test-validator` instance using other binaries from the Solana CLI Tool Suite or your own client software. @@ -76,7 +76,7 @@ solana genesis-hash ``` - **NOTE:** The result should match the `Genesis Hash:` field in the - `air-solana` status output + `svm-station-test-validator` status output #### Check the wallet balance @@ -85,7 +85,7 @@ solana balance ``` - **NOTE:** `Error: No such file or directory (os error 2)` means that the default - wallet does not yet exist. Create it with `solana-keygen new`. + wallet does not yet exist. Create it with `svm-station-keygen new`. - **NOTE:** If the wallet has a zero SOL balance, airdrop some localnet SOL with `solana airdrop 10` @@ -165,5 +165,5 @@ solana feature status -ul Since this may not always be desired, especially when testing programs meant for deployment to mainnet, the CLI provides an option to deactivate specific features: ```bash -air-solana --deactivate-feature --deactivate-feature +svm-station-test-validator --deactivate-feature --deactivate-feature ``` diff --git a/docs/src/getstarted/local.md b/docs/src/getstarted/local.md index 12b50ae..7082292 100644 --- a/docs/src/getstarted/local.md +++ b/docs/src/getstarted/local.md @@ -100,7 +100,7 @@ After a successful install, `solana-install update` may be used to easily update The Solana CLI comes with the [test validator](./../developing/test-validator.md) built in. This command line tool will allow you to run a full blockchain cluster on your machine. ```bash -air-solana +svm-station-test-validator ``` > **PRO TIP:** @@ -125,10 +125,10 @@ To deploy a program with Solana CLI, you will need a Solana wallet with SOL toke Let's create a simple file system wallet for testing: ```bash -solana-keygen new +svm-station-keygen new ``` -By default, the `solana-keygen` command will create a new file system wallet located at `~/.config/solana/id.json`. You can manually specify the output file location using the `--outfile /path` option. +By default, the `svm-station-keygen` command will create a new file system wallet located at `~/.config/solana/id.json`. You can manually specify the output file location using the `--outfile /path` option. > **NOTE:** > If you already have a file system wallet saved at the default location, this command will **NOT** override it (unless you explicitly force override using the `--force` flag). diff --git a/docs/src/getstarted/rust.md b/docs/src/getstarted/rust.md index c365328..dbc365e 100644 --- a/docs/src/getstarted/rust.md +++ b/docs/src/getstarted/rust.md @@ -38,7 +38,7 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh The Solana CLI comes with the [test validator](../developing/test-validator.md) built in. This command line tool will allow you to run a full blockchain cluster on your machine. ```bash -air-solana +svm-station-test-validator ``` > **PRO TIP:** diff --git a/docs/src/implemented-proposals/installer.md b/docs/src/implemented-proposals/installer.md index a3ad797..f377f65 100644 --- a/docs/src/implemented-proposals/installer.md +++ b/docs/src/implemented-proposals/installer.md @@ -50,7 +50,7 @@ $ cargo run -- --help Given a solana release tarball \(as created by `ci/publish-tarball.sh`\) that has already been uploaded to a publicly accessible URL, the following commands will deploy the update: ```bash -$ solana-keygen new -o update-manifest.json # <-- only generated once, the public key is shared with users +$ svm-station-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 ``` @@ -59,8 +59,8 @@ $ solana-install deploy http://example.com/path/to/solana-release.tar.bz2 update ```bash $ solana-install init --pubkey 92DMonmBYXwEMHJ99c9ceRSpAmk9v6i3RdvDdXaVcrfj # <-- pubkey is obtained from whoever is deploying the updates $ export PATH=~/.local/share/solana-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 +$ svm-station-keygen ... # <-- runs the latest svm-station-keygen +$ solana-install run svm-station-validator ... # <-- runs a validator, restarting it as necessary when an update is applied ``` ## On-chain Update Manifest diff --git a/docs/src/integrations/exchange.md b/docs/src/integrations/exchange.md index 2e8d70f..939c7da 100644 --- a/docs/src/integrations/exchange.md +++ b/docs/src/integrations/exchange.md @@ -28,7 +28,7 @@ To run an api node: 2. Start the validator with at least the following parameters: ```bash -solana-validator \ +svm-station-validator \ --ledger \ --identity \ --entrypoint \ @@ -44,14 +44,14 @@ solana-validator \ Customize `--ledger` to your desired ledger storage location, and `--rpc-port` to the port you want to expose. The `--entrypoint` and `--expected-genesis-hash` parameters are all specific to the cluster you are joining. -[Current parameters for Mainnet Beta](../clusters.md#example-solana-validator-command-line-2) +[Current parameters for Mainnet Beta](../clusters.md#example-svm-station-validator-command-line-2) The `--limit-ledger-size` parameter allows you to specify how many ledger [shreds](../terminology.md#shred) your node retains on disk. If you do not include this parameter, the validator will keep the entire ledger until it runs out of disk space. The default value attempts to keep the ledger disk usage under 500GB. More or less disk usage may be requested by adding an argument to -`--limit-ledger-size` if desired. Check `solana-validator --help` for the +`--limit-ledger-size` if desired. Check `svm-station-validator --help` for the default limit value used by `--limit-ledger-size`. More information about selecting a custom limit value is [available here](https://github.com/solana-labs/solana/blob/583cec922b6107e0f85c7e14cb5e642bc7dfb340/core/src/ledger_cleanup_service.rs#L15-L26). @@ -71,7 +71,7 @@ systemd service is one great option. For monitoring, we provide [`solana-watchtower`](https://github.com/solana-labs/solana/blob/master/watchtower/README.md), -which can monitor your validator and detect with the `solana-validator` process +which can monitor your validator and detect with the `svm-station-validator` process is unhealthy. It can directly be configured to alert you via Slack, Telegram, Discord, or Twillio. For details, run `solana-watchtower --help`. @@ -103,7 +103,7 @@ known validators. This snapshot reflects the current state of the chain, but does not contain the complete historical ledger. If one of your node exits and boots from a new snapshot, there may be a gap in the ledger on that node. In order to prevent this issue, add the `--no-snapshot-fetch` parameter to your -`solana-validator` command to receive historical ledger data instead of a +`svm-station-validator` command to receive historical ledger data instead of a snapshot. Do not pass the `--no-snapshot-fetch` parameter on your initial boot as it's not @@ -811,7 +811,7 @@ Signature: 4JsqZEPra2eDTHtHpB4FMWSfk3UgcCVmkKkP7zESZeMrKmFFkDkNd91pKP3vPVVZZPiu5 Or to create an SPL Token account with a specific keypair: ``` -$ solana-keygen new -o token-account.json +$ svm-station-keygen new -o token-account.json $ spl-token create-account AkUFCWTXb3w9nY2n6SFJvBV6VwvFUCe4KBMCcgLsa2ir token-account.json Creating account 6VzWGL51jLebvnDifvcuEDec17sK6Wupi4gYhm5RzfkV Signature: 4JsqZEPra2eDTHtHpB4FMWSfk3UgcCVmkKkP7zESZeMrKmFFkDkNd91pKP3vPVVZZPiu5XxyJwS73Vi5WsZL88D7 diff --git a/docs/src/integrations/retrying-transactions.md b/docs/src/integrations/retrying-transactions.md index c2d7ff2..5342b54 100644 --- a/docs/src/integrations/retrying-transactions.md +++ b/docs/src/integrations/retrying-transactions.md @@ -106,7 +106,7 @@ according to three ports: unable to process all transactions For more information on the TPU, please refer to -[this excellent writeup by Jito Labs](https://jito-labs.medium.com/solana-validator-101-transaction-processing-90bcdc271143). +[this excellent writeup by Jito Labs](https://jito-labs.medium.com/svm-station-validator-101-transaction-processing-90bcdc271143). ## How Transactions Get Dropped diff --git a/docs/src/offline-signing/durable-nonce.md b/docs/src/offline-signing/durable-nonce.md index be412b9..2f84481 100644 --- a/docs/src/offline-signing/durable-nonce.md +++ b/docs/src/offline-signing/durable-nonce.md @@ -38,7 +38,7 @@ A nonce account is created by first generating a new keypair, then create the ac - Command ```bash -solana-keygen new -o nonce-keypair.json +svm-station-keygen new -o nonce-keypair.json solana create-nonce-account nonce-keypair.json 1 ``` @@ -173,9 +173,9 @@ is the same for all subcommands supporting durable nonces First we need some accounts for Alice, Alice's nonce and Bob ```bash -$ solana-keygen new -o alice.json -$ solana-keygen new -o nonce.json -$ solana-keygen new -o bob.json +$ svm-station-keygen new -o alice.json +$ svm-station-keygen new -o nonce.json +$ svm-station-keygen new -o bob.json ``` #### - Fund Alice's account diff --git a/docs/src/running-validator/restart-cluster.md b/docs/src/running-validator/restart-cluster.md index 4039f69..f1da100 100644 --- a/docs/src/running-validator/restart-cluster.md +++ b/docs/src/running-validator/restart-cluster.md @@ -62,7 +62,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 +> svm-station-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 @@ -78,7 +78,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 +> svm-station-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 diff --git a/docs/src/running-validator/validator-failover.md b/docs/src/running-validator/validator-failover.md index 34968b7..ccb0fa0 100644 --- a/docs/src/running-validator/validator-failover.md +++ b/docs/src/running-validator/validator-failover.md @@ -82,11 +82,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 `svm-station-validator` parameters are required to enable tower storage into etcd: ``` -solana-validator ... \ +svm-station-validator ... \ --tower-storage etcd \ --etcd-cacert-file certs/etcd-ca.pem \ --etcd-cert-file certs/validator.pem \ @@ -100,7 +100,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 `svm-station-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 @@ -111,8 +111,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 +$ svm-station-validator wait-for-restart-window --identity validator-keypair.json \ + && svm-station-validator set-identity validator-keypair.json ``` The secondary validator will acquire a lock on the tower in etcd to ensure @@ -128,7 +128,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 `svm-station-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 diff --git a/docs/src/running-validator/validator-stake.md b/docs/src/running-validator/validator-stake.md index 71c9cd2..ef7496c 100644 --- a/docs/src/running-validator/validator-stake.md +++ b/docs/src/running-validator/validator-stake.md @@ -29,7 +29,7 @@ this step, you should see the “validator-stake-keypair.json” in your Solana runtime directory. ```bash -solana-keygen new -o ~/validator-stake-keypair.json +svm-station-keygen new -o ~/validator-stake-keypair.json ``` ## Delegate Stake diff --git a/docs/src/running-validator/validator-start.md b/docs/src/running-validator/validator-start.md index ccd012a..a64cdc4 100644 --- a/docs/src/running-validator/validator-start.md +++ b/docs/src/running-validator/validator-start.md @@ -29,7 +29,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 `svm-station-validator`. When your validator is started look for the following log message to indicate that CUDA is enabled: `"[ solana::validator] CUDA is enabled"` @@ -44,7 +44,7 @@ the following commands. #### **Optimize sysctl knobs** ```bash -sudo bash -c "cat >/etc/sysctl.d/21-solana-validator.conf </etc/sysctl.d/21-svm-station-validator.conf < Note: The "validator-keypair.json” file is also your \(ed25519\) private key. @@ -127,13 +127,13 @@ You can create a paper wallet for your identity file instead of writing the keypair file to disk with: ```bash -solana-keygen new --no-outfile +svm-station-keygen new --no-outfile ``` The corresponding identity public key can now be viewed by running: ```bash -solana-keygen pubkey ASK +svm-station-keygen pubkey ASK ``` and then entering your seed phrase. @@ -144,10 +144,10 @@ See [Paper Wallet Usage](../wallet-guide/paper-wallet.md) for more info. ### Vanity Keypair -You can generate a custom vanity keypair using solana-keygen. For instance: +You can generate a custom vanity keypair using svm-station-keygen. For instance: ```bash -solana-keygen grind --starts-with e1v1s:1 +svm-station-keygen grind --starts-with e1v1s:1 ``` You may request that the generated vanity keypair be expressed as a seed phrase @@ -156,7 +156,7 @@ supplied passphrase (note that this is significantly slower than grinding withou a mnemonic): ```bash -solana-keygen grind --use-mnemonic --starts-with e1v1s:1 +svm-station-keygen grind --use-mnemonic --starts-with e1v1s:1 ``` Depending on the string requested, it may take days to find a match... @@ -231,7 +231,7 @@ stored anywhere from where it could be accessed by unauthorized parties. To create your authorized-withdrawer keypair: ```bash -solana-keygen new -o ~/authorized-withdrawer-keypair.json +svm-station-keygen new -o ~/authorized-withdrawer-keypair.json ``` ## Create Vote Account @@ -241,7 +241,7 @@ vote account on the network. If you have completed this step, you should see the “vote-account-keypair.json” in your Solana runtime directory: ```bash -solana-keygen new -o ~/vote-account-keypair.json +svm-station-keygen new -o ~/vote-account-keypair.json ``` The following command can be used to create your vote account on the blockchain @@ -264,7 +264,7 @@ Follow the instructions to [stake your validator](validator-stake.md) ## Known validators If you know and respect other validator operators, you can specify this on the command line with the `--known-validator ` -argument to `solana-validator`. You can specify multiple ones by repeating the argument `--known-validator --known-validator `. +argument to `svm-station-validator`. You can specify multiple ones by repeating the argument `--known-validator --known-validator `. 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, @@ -280,13 +280,13 @@ account state divergence. Connect to the cluster by running: ```bash -solana-validator \ +svm-station-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 ~/svm-station-validator.log ``` To force validator logging to the console add a `--log -` argument, otherwise @@ -299,7 +299,7 @@ The ledger will be placed in the `ledger/` directory by default, use the > [paper wallet seed phrase](../wallet-guide/paper-wallet.md) > for your `--identity` and/or > `--authorized-voter` keypairs. To use these, pass the respective argument as -> `solana-validator --identity ASK ... --authorized-voter ASK ...` +> `svm-station-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 @@ -315,7 +315,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, `svm-station-validator --dynamic-port-range 11000-11020 ...` will restrict the validator to ports 11000-11020. ### Limiting ledger size to conserve disk space @@ -369,8 +369,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 +`svm-station-validator` command-line. Ensure that the 'exec' command is used to +start the validator process (i.e. "exec svm-station-validator ..."). This is important because without it, logrotate will end up killing the validator every time the logs are rotated. @@ -397,14 +397,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 ~/svm-station-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 svm-station-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. @@ -412,13 +412,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/svm-station-validator.log: ```bash # Setup log rotation cat > logrotate.sol < Validators operators who have not experienced significant downtime (multiple hours of downtime), should avoid downloading snapshots. It is important for the health of the cluster as well as your validator history to maintain the local ledger. Therefore, you should not download a new snapshot any time your validator is offline or experiences an issue. Downloading a snapshot should only be reserved for occasions when you do not have local state. Prolonged downtime or the first install of a new validator are examples of times when you may not 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: +To avoid downloading a snapshot on restart, add the following flag to the `svm-station-validator` command: ``` --no-snapshot-fetch ``` -If you use this flag with the `solana-validator` command, make sure that you run `solana catchup ` 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 may have to download a new snapshot. +If you use this flag with the `svm-station-validator` command, make sure that you run `solana catchup ` 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 may have to download a new snapshot. ### Downloading Snapshots @@ -122,7 +122,7 @@ Once you have a local snapshot, you can restart your validator with the `--no-sn ## Regularly Check Account Balances -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 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: +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 `svm-station-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: ``` solana balance validator-keypair.json diff --git a/docs/src/validator/get-started/setup-a-validator.md b/docs/src/validator/get-started/setup-a-validator.md index 8379b6f..67721cd 100644 --- a/docs/src/validator/get-started/setup-a-validator.md +++ b/docs/src/validator/get-started/setup-a-validator.md @@ -58,15 +58,15 @@ On your local computer, create the 3 keypairs that you will need to run your val > **NOTE** Some operators choose to make vanity keypairs for their identity and vote account using the `grind` sub command ([docs for reference](../../running-validator/validator-start#vanity-keypair)). ``` -solana-keygen new -o validator-keypair.json +svm-station-keygen new -o validator-keypair.json ``` ``` -solana-keygen new -o vote-account-keypair.json +svm-station-keygen new -o vote-account-keypair.json ``` ``` -solana-keygen new -o authorized-withdrawer-keypair.json +svm-station-keygen new -o authorized-withdrawer-keypair.json ``` > **IMPORTANT** the `authorized-withdrawer-keypair.json` should be considered very sensitive information. Many operators choose to use a multisig, hardware wallet, or paper wallet for the authorized withdrawer keypair. A keypair is created on disk in this example for simplicity. Additionally, the withdrawer keypair should always be stored safely. The authorized withdrawer keypair should **never** be stored on the remote machine that the validator software runs on. For more information, see [validator security best practices](../best-practices/security.md#do-not-store-your-withdrawer-key-on-your-validator) @@ -245,7 +245,7 @@ Your system will need to be tuned in order to run properly. Your validator may n #### **Optimize sysctl knobs** ```bash -sudo bash -c "cat >/etc/sysctl.d/21-solana-validator.conf </etc/sysctl.d/21-svm-station-validator.conf < 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 `svm-station-validator --help` command ``` #!/bin/bash -exec solana-validator \ +exec svm-station-validator \ --identity /home/sol/validator-keypair.json \ --known-validator 5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on \ --known-validator dDzy5SR3AXdYWVqbDEkVFdvSPCtS9ihF5kJkHCtXoFs \ diff --git a/docs/src/wallet-guide/file-system-wallet.md b/docs/src/wallet-guide/file-system-wallet.md index 90fb5c2..cc40551 100644 --- a/docs/src/wallet-guide/file-system-wallet.md +++ b/docs/src/wallet-guide/file-system-wallet.md @@ -15,12 +15,12 @@ Make sure you have ## Generate a File System Wallet Keypair -Use Solana's command-line tool `solana-keygen` to generate keypair files. For +Use Solana's command-line tool `svm-station-keygen` to generate keypair files. For example, run the following from a command-line shell: ```bash mkdir ~/my-solana-wallet -solana-keygen new --outfile ~/my-solana-wallet/my-keypair.json +svm-station-keygen new --outfile ~/my-solana-wallet/my-keypair.json ``` This file contains your **unencrypted** keypair. In fact, even if you specify @@ -30,7 +30,7 @@ to all tokens sent to its public key. Instead, you should share only its public key. To display its public key, run: ```bash -solana-keygen pubkey ~/my-solana-wallet/my-keypair.json +svm-station-keygen pubkey ~/my-solana-wallet/my-keypair.json ``` It will output a string of characters, such as: @@ -46,10 +46,10 @@ your _wallet address_. ## Verify your Address against your Keypair file To verify you hold the private key for a given address, use -`solana-keygen verify`: +`svm-station-keygen verify`: ```bash -solana-keygen verify ~/my-solana-wallet/my-keypair.json +svm-station-keygen verify ~/my-solana-wallet/my-keypair.json ``` where `` is replaced with your wallet address. diff --git a/docs/src/wallet-guide/hardware-wallets/ledger.md b/docs/src/wallet-guide/hardware-wallets/ledger.md index bb3f0eb..ce038d5 100644 --- a/docs/src/wallet-guide/hardware-wallets/ledger.md +++ b/docs/src/wallet-guide/hardware-wallets/ledger.md @@ -22,7 +22,7 @@ using the command line tools. On your computer, run: ```bash -solana-keygen pubkey usb://ledger +svm-station-keygen pubkey usb://ledger ``` This confirms your Ledger device is connected properly and in the correct state @@ -37,7 +37,7 @@ using the wallet ID to use a specific Ledger, see ### View your Wallet Addresses Your Nano supports an arbitrary number of valid wallet addresses and signers. -To view any address, use the `solana-keygen pubkey` command, as shown below, +To view any address, use the `svm-station-keygen pubkey` command, as shown below, followed by a valid [keypair URL](../hardware-wallets.md#specify-a-keypair-url). Multiple wallet addresses can be useful if you want to transfer tokens between @@ -48,10 +48,10 @@ All of the following commands will display different addresses, associated with the keypair path given. Try them out! ```bash -solana-keygen pubkey usb://ledger -solana-keygen pubkey usb://ledger?key=0 -solana-keygen pubkey usb://ledger?key=1 -solana-keygen pubkey usb://ledger?key=2 +svm-station-keygen pubkey usb://ledger +svm-station-keygen pubkey usb://ledger?key=0 +svm-station-keygen pubkey usb://ledger?key=1 +svm-station-keygen pubkey usb://ledger?key=2 ``` - NOTE: keypair url parameters are ignored in **zsh** @@ -69,7 +69,7 @@ easy-to-remember path might be to use the address at `key=0`. View this address with: ```bash -solana-keygen pubkey usb://ledger?key=0 +svm-station-keygen pubkey usb://ledger?key=0 ``` Now you have a wallet address (or multiple addresses), you can share any of @@ -128,7 +128,7 @@ both buttons on the "Approve" screen, otherwise push both buttons on the "Reject screen. ```bash -~$ solana-keygen pubkey usb://ledger?key=42 +~$ svm-station-keygen pubkey usb://ledger?key=42 CjeqzArkZt6xwdnZ9NZSf8D1CNJN1rjeFiyd8q7iLWAV ~$ solana balance CjeqzArkZt6xwdnZ9NZSf8D1CNJN1rjeFiyd8q7iLWAV @@ -205,7 +205,7 @@ character, you can disable it explicitly with a backslash in your keypair URLs. For example: ```bash -solana-keygen pubkey usb://ledger\?key=0 +svm-station-keygen pubkey usb://ledger\?key=0 ``` ## Support diff --git a/docs/src/wallet-guide/paper-wallet.md b/docs/src/wallet-guide/paper-wallet.md index bb63365..cf69031 100644 --- a/docs/src/wallet-guide/paper-wallet.md +++ b/docs/src/wallet-guide/paper-wallet.md @@ -28,15 +28,15 @@ come to the right place. ### Check your installation -Check that `solana-keygen` is installed correctly by running: +Check that `svm-station-keygen` is installed correctly by running: ```bash -solana-keygen --version +svm-station-keygen --version ``` ## Creating a Paper Wallet -Using the `solana-keygen` tool, it is possible to generate new seed phrases as +Using the `svm-station-keygen` tool, it is possible to generate new seed phrases as well as derive a keypair from an existing seed phrase and (optional) passphrase. The seed phrase and passphrase can be used together as a paper wallet. As long as you keep your seed phrase and passphrase stored safely, you can use them to @@ -46,7 +46,7 @@ access your account. ### Seed Phrase Generation -Generating a new keypair can be done using the `solana-keygen new` command. The +Generating a new keypair can be done using the `svm-station-keygen new` command. The command will generate a random seed phrase, ask you to enter an optional passphrase, and then will display the derived public key and the generated seed phrase for your paper wallet. @@ -56,7 +56,7 @@ After copying down your seed phrase, you can use the have not made any errors. ```bash -solana-keygen new --no-outfile +svm-station-keygen new --no-outfile ``` > If the `--no-outfile` flag is **omitted**, the default behavior is to write the keypair to `~/.config/solana/id.json`, resulting in a [file system wallet](file-system-wallet.md). @@ -77,7 +77,7 @@ and "wallet address" are sometimes used interchangeably. For full usage details, run: ```bash -solana-keygen new --help +svm-station-keygen new --help ``` @@ -85,27 +85,27 @@ solana-keygen new --help Public keys can be derived from a seed phrase and a passphrase if you choose to use one. This is useful for using an offline-generated seed phrase to derive a -valid public key. The `solana-keygen pubkey` command will walk you through how +valid public key. The `svm-station-keygen pubkey` command will walk you through how to use your seed phrase (and a passphrase if you chose to use one) as a signer with the solana command-line tools using the `prompt` URI scheme. ```bash -solana-keygen pubkey prompt:// +svm-station-keygen pubkey prompt:// ``` > Note that you could potentially use different passphrases for the same seed phrase. Each unique passphrase will yield a different keypair. -The `solana-keygen` tool uses the same BIP39 standard English word list as it +The `svm-station-keygen` tool uses the same BIP39 standard English word list as it does to generate seed phrases. If your seed phrase was generated with another -tool that uses a different word list, you can still use `solana-keygen`, but +tool that uses a different word list, you can still use `svm-station-keygen`, but will need to pass the `--skip-seed-phrase-validation` argument and forego this validation. ```bash -solana-keygen pubkey prompt:// --skip-seed-phrase-validation +svm-station-keygen pubkey prompt:// --skip-seed-phrase-validation ``` -After entering your seed phrase with `solana-keygen pubkey prompt://` the console +After entering your seed phrase with `svm-station-keygen pubkey prompt://` the console will display a string of base-58 characters. This is the [derived](#hierarchical-derivation) solana BIP44 _wallet address_ associated with your seed phrase. @@ -114,7 +114,7 @@ associated with your seed phrase. If needed, you can access the legacy, raw keypair's pubkey by instead passing the `ASK` keyword: ```bash -solana-keygen pubkey ASK +svm-station-keygen pubkey ASK ``` > A common next step is to [check the balance](#checking-account-balance) of the account associated with a public key @@ -122,7 +122,7 @@ solana-keygen pubkey ASK For full usage details, run: ```bash -solana-keygen pubkey --help +svm-station-keygen pubkey --help ``` ### Hierarchical Derivation @@ -137,13 +137,13 @@ By default, `prompt:` will derive solana's base derivation path `m/44'/501'`. To derive a child key, supply the `?key=/` query string. ```bash -solana-keygen pubkey prompt://?key=0/1 +svm-station-keygen pubkey prompt://?key=0/1 ``` To use a derivation path other than solana's standard BIP44, you can supply `?full-path=m////`. ```bash -solana-keygen pubkey prompt://?full-path=m/44/2017/0/1 +svm-station-keygen pubkey prompt://?full-path=m/44/2017/0/1 ``` Because Solana uses Ed25519 keypairs, as per @@ -155,10 +155,10 @@ included in the query-string input. ## Verifying the Keypair To verify you control the private key of a paper wallet address, use -`solana-keygen verify`: +`svm-station-keygen verify`: ```bash -solana-keygen verify prompt:// +svm-station-keygen verify prompt:// ``` where `` is replaced with the wallet address and the keyword `prompt://` diff --git a/dos/Cargo.toml b/dos/Cargo.toml index 179fc40..86bf74d 100644 --- a/dos/Cargo.toml +++ b/dos/Cargo.toml @@ -20,7 +20,7 @@ serde = { workspace = true } solana-bench-tps = { workspace = true } solana-client = { workspace = true } solana-core = { workspace = true } -solana-faucet = { workspace = true } +svm-station-faucet = { workspace = true } solana-gossip = { workspace = true } solana-logger = { workspace = true } solana-measure = { workspace = true } diff --git a/dos/src/main.rs b/dos/src/main.rs index 8e6c3c5..291f5e8 100644 --- a/dos/src/main.rs +++ b/dos/src/main.rs @@ -818,7 +818,7 @@ pub mod test { super::*, solana_client::thin_client::ThinClient, solana_core::validator::ValidatorConfig, - solana_faucet::faucet::run_local_faucet, + svm_station_faucet::faucet::run_local_faucet, solana_gossip::contact_info::LegacyContactInfo, solana_local_cluster::{ cluster::Cluster, diff --git a/faucet/Cargo.toml b/faucet/Cargo.toml index cc88839..458f859 100644 --- a/faucet/Cargo.toml +++ b/faucet/Cargo.toml @@ -1,7 +1,7 @@ [package] -name = "solana-faucet" +name = "svm-station-faucet" description = "Solana Faucet" -documentation = "https://docs.rs/solana-faucet" +documentation = "https://docs.rs/svm-station-faucet" version = { workspace = true } authors = { workspace = true } repository = { workspace = true } @@ -29,10 +29,10 @@ tokio = { workspace = true, features = ["full"] } [lib] crate-type = ["lib"] -name = "solana_faucet" +name = "svm_station_faucet" [[bin]] -name = "solana-faucet" +name = "svm-station-faucet" path = "src/bin/faucet.rs" [package.metadata.docs.rs] diff --git a/faucet/src/bin/faucet.rs b/faucet/src/bin/faucet.rs index 8e45ef9..d418b28 100644 --- a/faucet/src/bin/faucet.rs +++ b/faucet/src/bin/faucet.rs @@ -2,7 +2,7 @@ use { clap::{crate_description, crate_name, values_t, App, Arg}, log::*, solana_clap_utils::input_parsers::{lamports_of_sol, value_of}, - solana_faucet::{ + svm_station_faucet::{ faucet::{run_faucet, Faucet, FAUCET_PORT}, socketaddr, }, diff --git a/faucet/tests/local-faucet.rs b/faucet/tests/local-faucet.rs index 7f2bfe5..1d0f07c 100644 --- a/faucet/tests/local-faucet.rs +++ b/faucet/tests/local-faucet.rs @@ -1,5 +1,5 @@ use { - solana_faucet::faucet::{request_airdrop_transaction, run_local_faucet}, + svm_station_faucet::faucet::{request_airdrop_transaction, run_local_faucet}, solana_sdk::{ hash::Hash, message::Message, diff --git a/fetch-spl.sh b/fetch-spl.sh index 613602f..3c47c48 100755 --- a/fetch-spl.sh +++ b/fetch-spl.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Fetches the latest SPL programs and produces the solana-genesis command-line +# Fetches the latest SPL programs and produces the svm-station-genesis command-line # arguments needed to install them # @@ -12,7 +12,8 @@ if [ -z "$1" ]; then exit 1 fi -download_path="$1" +pathDir=$HOME/.svmstationd +download_path="$pathDir/$1" upgradeableLoader=BPFLoaderUpgradeab1e11111111111111111111111 @@ -70,7 +71,7 @@ echo "Available SPL programs:" ls -l "$download_path"/spl_*.so echo -echo "solana-genesis command-line arguments (spl-genesis-args.sh):" +echo "svm-station-genesis command-line arguments (spl-genesis-args.sh):" cat "$download_path/spl-genesis-args.sh" rm -rf "$download_path"/.cache \ No newline at end of file diff --git a/genesis-utils/Cargo.toml b/genesis-utils/Cargo.toml index cffc68a..8665634 100644 --- a/genesis-utils/Cargo.toml +++ b/genesis-utils/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "solana-genesis-utils" +name = "svm-station-genesis-utils" description = "Solana Genesis Utils" documentation = "https://docs.rs/solana-download-utils" version = { workspace = true } @@ -18,7 +18,7 @@ solana-sdk = { workspace = true } [lib] crate-type = ["lib"] -name = "solana_genesis_utils" +name = "svm_station_genesis_utils" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/genesis/Cargo.toml b/genesis/Cargo.toml index b1e57a2..c89c766 100644 --- a/genesis/Cargo.toml +++ b/genesis/Cargo.toml @@ -1,7 +1,7 @@ [package] -name = "solana-genesis" +name = "svm-station-genesis" description = "Blockchain, Rebuilt for Scale" -documentation = "https://docs.rs/solana-genesis" +documentation = "https://docs.rs/svm-station-genesis" version = { workspace = true } authors = { workspace = true } repository = { workspace = true } @@ -31,11 +31,11 @@ solana-vote-program = { workspace = true } tempfile = { workspace = true } [[bin]] -name = "solana-genesis" +name = "svm-station-genesis" path = "src/main.rs" [lib] -name = "solana_genesis" +name = "svm_station_genesis" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/genesis/src/main.rs b/genesis/src/main.rs index c254975..66fdc5f 100644 --- a/genesis/src/main.rs +++ b/genesis/src/main.rs @@ -15,7 +15,7 @@ use { }, }, solana_entry::poh::compute_hashes_per_tick, - solana_genesis::{genesis_accounts::add_genesis_accounts, Base64Account}, + svm_station_genesis::{genesis_accounts::add_genesis_accounts, Base64Account}, solana_ledger::{blockstore::create_new_ledger, blockstore_options::LedgerColumnOptions}, solana_sdk::{ account::{Account, AccountSharedData, ReadableAccount, WritableAccount}, diff --git a/keygen/Cargo.toml b/keygen/Cargo.toml index 0d36a52..70e07a8 100644 --- a/keygen/Cargo.toml +++ b/keygen/Cargo.toml @@ -1,7 +1,7 @@ [package] -name = "solana-keygen" +name = "svm-station-keygen" description = "Solana key generation utility" -documentation = "https://docs.rs/solana-keygen" +documentation = "https://docs.rs/svm-station-keygen" version = { workspace = true } authors = { workspace = true } repository = { workspace = true } @@ -25,7 +25,7 @@ tiny-bip39 = { workspace = true } tempfile = { workspace = true } [[bin]] -name = "solana-keygen" +name = "svm-station-keygen" path = "src/keygen.rs" [package.metadata.docs.rs] diff --git a/keygen/src/keygen.rs b/keygen/src/keygen.rs index e6b5289..a2934c7 100644 --- a/keygen/src/keygen.rs +++ b/keygen/src/keygen.rs @@ -803,7 +803,7 @@ mod tests { // success case using a keypair file process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "verify", &correct_pubkey.to_string(), &keypair_path, @@ -812,7 +812,7 @@ mod tests { // success case using a config file process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "verify", &correct_pubkey.to_string(), "--config", @@ -823,7 +823,7 @@ mod tests { // fail case using a keypair file let incorrect_pubkey = Pubkey::new_unique(); let result = process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "verify", &incorrect_pubkey.to_string(), &keypair_path, @@ -836,7 +836,7 @@ mod tests { // fail case using a config file process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "verify", &incorrect_pubkey.to_string(), "--config", @@ -855,7 +855,7 @@ mod tests { create_tmp_keypair_and_config_file(&alt_keypair_out_dir, &alt_config_out_dir); process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "verify", &correct_pubkey.to_string(), &keypair_path, @@ -865,7 +865,7 @@ mod tests { .unwrap(); process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "verify", &correct_pubkey.to_string(), &alt_keypair_path, @@ -892,7 +892,7 @@ mod tests { let outfile_path = tmp_outfile_path(&outfile_dir, &expected_pubkey.to_string()); process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "pubkey", &keypair_path, "--outfile", @@ -910,7 +910,7 @@ mod tests { let outfile_path = tmp_outfile_path(&outfile_dir, &expected_pubkey.to_string()); process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "pubkey", "--config", &config_path, @@ -933,7 +933,7 @@ mod tests { let outfile_path = tmp_outfile_path(&outfile_dir, &expected_pubkey.to_string()); process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "pubkey", &keypair_path, "--config", @@ -953,7 +953,7 @@ mod tests { let outfile_path = tmp_outfile_path(&outfile_dir, &expected_pubkey.to_string()); process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "pubkey", &keypair_path, "--outfile", @@ -962,7 +962,7 @@ mod tests { .unwrap(); let result = process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "pubkey", "--config", &config_path, @@ -989,7 +989,7 @@ mod tests { // general success case process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "new", "--outfile", &outfile_path, @@ -999,7 +999,7 @@ mod tests { // refuse to overwrite file let result = process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "new", "--outfile", &outfile_path, @@ -1013,7 +1013,7 @@ mod tests { // no outfile process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "new", "--no-bip39-passphrase", "--no-outfile", @@ -1036,7 +1036,7 @@ mod tests { for language in languages { for word_count in word_counts { process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "new", "--no-outfile", "--no-bip39-passphrase", @@ -1051,7 +1051,7 @@ mod tests { // sanity check derivation path process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "new", "--no-bip39-passphrase", "--no-outfile", @@ -1061,7 +1061,7 @@ mod tests { .unwrap(); process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "new", "--no-bip39-passphrase", "--no-outfile", @@ -1071,7 +1071,7 @@ mod tests { .unwrap(); let result = process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "new", "--no-bip39-passphrase", "--no-outfile", @@ -1089,7 +1089,7 @@ mod tests { fn test_grind() { // simple sanity checks process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "grind", "--no-outfile", "--no-bip39-passphrase", @@ -1100,7 +1100,7 @@ mod tests { .unwrap(); process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "grind", "--no-outfile", "--no-bip39-passphrase", diff --git a/ledger-tool/src/ledger_utils.rs b/ledger-tool/src/ledger_utils.rs index 6514312..d13da10 100644 --- a/ledger-tool/src/ledger_utils.rs +++ b/ledger-tool/src/ledger_utils.rs @@ -137,14 +137,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 (svm-station-validator) can hold // Primary access. So, allow a custom accounts path without worry of wiping the accounts - // of solana-validator. + // of svm-station-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 svm-station-validator over + // solana-ledger-tool should svm-station-validator start before we've finished. info!( "Checking if another process currently holding Primary access to {:?}", blockstore.ledger_path() diff --git a/ledger-tool/src/main.rs b/ledger-tool/src/main.rs index 3cd4153..13162fe 100644 --- a/ledger-tool/src/main.rs +++ b/ledger-tool/src/main.rs @@ -2304,7 +2304,7 @@ fn main() { if let Some(hashes_per_tick) = arg_matches.value_of("hashes_per_tick") { genesis_config.poh_config.hashes_per_tick = match hashes_per_tick { - // Note: Unlike `solana-genesis`, "auto" is not supported here. + // Note: Unlike `svm-station-genesis`, "auto" is not supported here. "sleep" => None, _ => Some(value_t_or_exit!(arg_matches, "hashes_per_tick", u64)), } @@ -2955,7 +2955,7 @@ fn main() { if let Some(hashes_per_tick) = hashes_per_tick { child_bank.set_hashes_per_tick(match hashes_per_tick { - // Note: Unlike `solana-genesis`, "auto" is not supported here. + // Note: Unlike `svm-station-genesis`, "auto" is not supported here. "sleep" => None, _ => { Some(value_t_or_exit!(arg_matches, "hashes_per_tick", u64)) diff --git a/ledger/src/blockstore_db.rs b/ledger/src/blockstore_db.rs index 87b26ce..ead5a49 100644 --- a/ledger/src/blockstore_db.rs +++ b/ledger/src/blockstore_db.rs @@ -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 svm-station-validator" ); DB::open_cf_descriptors_as_secondary( &db_options, diff --git a/local-cluster/tests/local_cluster.rs b/local-cluster/tests/local_cluster.rs index bd6a15e..2f687e4 100644 --- a/local-cluster/tests/local_cluster.rs +++ b/local-cluster/tests/local_cluster.rs @@ -2325,7 +2325,7 @@ fn test_hard_fork_with_gap_in_roots() { 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 svm-station-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 diff --git a/multinode-demo/bootstrap-validator.sh b/multinode-demo/bootstrap-validator.sh index 5afc543..9ece98c 100755 --- a/multinode-demo/bootstrap-validator.sh +++ b/multinode-demo/bootstrap-validator.sh @@ -14,9 +14,9 @@ if [[ "$SOLANA_GPU_MISSING" -eq 1 ]]; then fi if [[ -n $SOLANA_CUDA ]]; then - program=$solana_validator_cuda + program=$svm_station_validator_cuda else - program=$solana_validator + program=$svm_station_validator fi no_restart=0 diff --git a/multinode-demo/common.sh b/multinode-demo/common.sh index 9ae9331..d8e4034 100644 --- a/multinode-demo/common.sh +++ b/multinode-demo/common.sh @@ -62,12 +62,12 @@ else fi solana_bench_tps=$(solana_program bench-tps) -solana_faucet=$(solana_program faucet) -solana_validator=$(solana_program validator) -solana_validator_cuda="$solana_validator --cuda" -solana_genesis=$(solana_program genesis) +svm_station_faucet=$(solana_program faucet) +svm_station_validator=$(solana_program validator) +svm_station_validator_cuda="$svm_station_validator --cuda" +svm_station_genesis=$(solana_program genesis) solana_gossip=$(solana_program gossip) -solana_keygen=$(solana_program keygen) +svm_station_keygen=$(solana_program keygen) solana_ledger_tool=$(solana_program ledger-tool) solana_cli=$(solana_program) diff --git a/multinode-demo/delegate-stake.sh b/multinode-demo/delegate-stake.sh index 70ab871..7f2b304 100755 --- a/multinode-demo/delegate-stake.sh +++ b/multinode-demo/delegate-stake.sh @@ -112,7 +112,7 @@ if [[ -n $keypair ]]; then fi if ! [[ -f "$stake_account" ]]; then - $solana_keygen new --no-passphrase -so "$stake_account" + $svm_station_keygen new --no-passphrase -so "$stake_account" else echo "$stake_account already exists! Using it" fi diff --git a/multinode-demo/faucet.sh b/multinode-demo/faucet.sh index 81aa364..6199e52 100755 --- a/multinode-demo/faucet.sh +++ b/multinode-demo/faucet.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Starts an instance of solana-faucet +# Starts an instance of svm-station-faucet # here=$(dirname "$0") @@ -15,5 +15,5 @@ source "$here"/common.sh } set -x -# shellcheck disable=SC2086 # Don't want to double quote $solana_faucet -exec $solana_faucet --keypair "$SOLANA_CONFIG_DIR"/faucet.json "$@" +# shellcheck disable=SC2086 # Don't want to double quote $svm_station_faucet +exec $svm_station_faucet --keypair "$SOLANA_CONFIG_DIR"/faucet.json "$@" diff --git a/multinode-demo/setup-from-mainnet-beta.sh b/multinode-demo/setup-from-mainnet-beta.sh index 69c8a2e..ad8ec8b 100755 --- a/multinode-demo/setup-from-mainnet-beta.sh +++ b/multinode-demo/setup-from-mainnet-beta.sh @@ -36,17 +36,17 @@ mkdir -p "$SOLANA_CONFIG_DIR"/bootstrap-validator if [[ -r $FAUCET_KEYPAIR ]]; then cp -f "$FAUCET_KEYPAIR" "$SOLANA_CONFIG_DIR"/faucet.json else - $solana_keygen new --no-passphrase -fso "$SOLANA_CONFIG_DIR"/faucet.json + $svm_station_keygen new --no-passphrase -fso "$SOLANA_CONFIG_DIR"/faucet.json fi if [[ -f $BOOTSTRAP_VALIDATOR_IDENTITY_KEYPAIR ]]; then cp -f "$BOOTSTRAP_VALIDATOR_IDENTITY_KEYPAIR" "$SOLANA_CONFIG_DIR"/bootstrap-validator/identity.json else - $solana_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/identity.json + $svm_station_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/identity.json fi -$solana_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/vote-account.json -$solana_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/stake-account.json +$svm_station_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/vote-account.json +$svm_station_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/stake-account.json $solana_ledger_tool create-snapshot \ --ledger "$SOLANA_CONFIG_DIR"/latest-mainnet-beta-snapshot \ diff --git a/multinode-demo/setup-from-testnet.sh b/multinode-demo/setup-from-testnet.sh index d99c360..89948b0 100755 --- a/multinode-demo/setup-from-testnet.sh +++ b/multinode-demo/setup-from-testnet.sh @@ -36,17 +36,17 @@ mkdir -p "$SOLANA_CONFIG_DIR"/bootstrap-validator if [[ -r $FAUCET_KEYPAIR ]]; then cp -f "$FAUCET_KEYPAIR" "$SOLANA_CONFIG_DIR"/faucet.json else - $solana_keygen new --no-passphrase -fso "$SOLANA_CONFIG_DIR"/faucet.json + $svm_station_keygen new --no-passphrase -fso "$SOLANA_CONFIG_DIR"/faucet.json fi if [[ -f $BOOTSTRAP_VALIDATOR_IDENTITY_KEYPAIR ]]; then cp -f "$BOOTSTRAP_VALIDATOR_IDENTITY_KEYPAIR" "$SOLANA_CONFIG_DIR"/bootstrap-validator/identity.json else - $solana_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/identity.json + $svm_station_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/identity.json fi -$solana_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/vote-account.json -$solana_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/stake-account.json +$svm_station_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/vote-account.json +$svm_station_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/stake-account.json $solana_ledger_tool create-snapshot \ --ledger "$SOLANA_CONFIG_DIR"/latest-testnet-snapshot \ diff --git a/multinode-demo/setup.sh b/multinode-demo/setup.sh index 306c246..4cd2472 100755 --- a/multinode-demo/setup.sh +++ b/multinode-demo/setup.sh @@ -13,23 +13,23 @@ mkdir -p "$SOLANA_CONFIG_DIR"/bootstrap-validator if [[ -r $FAUCET_KEYPAIR ]]; then cp -f "$FAUCET_KEYPAIR" "$SOLANA_CONFIG_DIR"/faucet.json else - $solana_keygen new --no-passphrase -fso "$SOLANA_CONFIG_DIR"/faucet.json + $svm_station_keygen new --no-passphrase -fso "$SOLANA_CONFIG_DIR"/faucet.json fi if [[ -f $BOOTSTRAP_VALIDATOR_IDENTITY_KEYPAIR ]]; then cp -f "$BOOTSTRAP_VALIDATOR_IDENTITY_KEYPAIR" "$SOLANA_CONFIG_DIR"/bootstrap-validator/identity.json else - $solana_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/identity.json + $svm_station_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/identity.json fi if [[ -f $BOOTSTRAP_VALIDATOR_STAKE_KEYPAIR ]]; then cp -f "$BOOTSTRAP_VALIDATOR_STAKE_KEYPAIR" "$SOLANA_CONFIG_DIR"/bootstrap-validator/stake-account.json else - $solana_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/stake-account.json + $svm_station_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/stake-account.json fi if [[ -f $BOOTSTRAP_VALIDATOR_VOTE_KEYPAIR ]]; then cp -f "$BOOTSTRAP_VALIDATOR_VOTE_KEYPAIR" "$SOLANA_CONFIG_DIR"/bootstrap-validator/vote-account.json else - $solana_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/vote-account.json + $svm_station_keygen new --no-passphrase -so "$SOLANA_CONFIG_DIR"/bootstrap-validator/vote-account.json fi args=( @@ -55,4 +55,4 @@ default_arg --faucet-lamports 500000000000000000 default_arg --hashes-per-tick auto default_arg --cluster-type development -$solana_genesis "${args[@]}" +$svm_station_genesis "${args[@]}" diff --git a/multinode-demo/validator.sh b/multinode-demo/validator.sh index 4871541..71cc282 100755 --- a/multinode-demo/validator.sh +++ b/multinode-demo/validator.sh @@ -64,7 +64,7 @@ while [[ -n $1 ]]; do elif [[ $1 = --no-airdrop ]]; then airdrops_enabled=0 shift - # solana-validator options + # svm-station-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=$svm_station_validator_cuda else - program=$solana_validator + program=$svm_station_validator fi set -e @@ -337,9 +337,9 @@ setup_validator_accounts() { # shellcheck disable=SC2086 rpc_url=$($solana_gossip --allow-private-addr rpc-url --timeout 180 --entrypoint "$gossip_entrypoint") -[[ -r "$identity" ]] || $solana_keygen new --no-passphrase -so "$identity" -[[ -r "$vote_account" ]] || $solana_keygen new --no-passphrase -so "$vote_account" -[[ -r "$authorized_withdrawer" ]] || $solana_keygen new --no-passphrase -so "$authorized_withdrawer" +[[ -r "$identity" ]] || $svm_station_keygen new --no-passphrase -so "$identity" +[[ -r "$vote_account" ]] || $svm_station_keygen new --no-passphrase -so "$vote_account" +[[ -r "$authorized_withdrawer" ]] || $svm_station_keygen new --no-passphrase -so "$authorized_withdrawer" setup_validator_accounts "$node_sol" diff --git a/net/remote/remote-node.sh b/net/remote/remote-node.sh index aeb920b..27c064a 100755 --- a/net/remote/remote-node.sh +++ b/net/remote/remote-node.sh @@ -121,7 +121,7 @@ cat >> ~/solana/on-reboot < system-stats.pid if ${GPU_CUDA_OK} && [[ -e /dev/nvidia0 ]]; then - echo Selecting solana-validator-cuda + echo Selecting svm-station-validator-cuda export SOLANA_CUDA=1 elif ${GPU_FAIL_IF_NONE} ; then echo "Expected GPU, found none!" @@ -150,17 +150,17 @@ EOF cp net/keypairs/"$name".json config/"$name".json fi else - solana-keygen new --no-passphrase -so config/"$name".json + svm-station-keygen new --no-passphrase -so config/"$name".json if [[ "$name" =~ ^validator-identity- ]]; then name="${name//-identity-/-vote-}" - solana-keygen new --no-passphrase -so config/"$name".json + svm-station-keygen new --no-passphrase -so config/"$name".json name="${name//-vote-/-stake-}" - solana-keygen new --no-passphrase -so config/"$name".json + svm-station-keygen new --no-passphrase -so config/"$name".json fi fi if [[ -n $internalNodesLamports ]]; then declare pubkey - pubkey="$(solana-keygen pubkey config/"$name".json)" + pubkey="$(svm-station-keygen pubkey config/"$name".json)" cat >> config/validator-balances.yml < Result; - // TODO: Refactor `solana-validator wait-for-restart-window` to not require this method, so + // TODO: Refactor `svm-station-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( @@ -2554,7 +2554,7 @@ pub mod rpc_minimal { config: Option, ) -> Result; - // TODO: Refactor `solana-validator wait-for-restart-window` to not require this method, so + // TODO: Refactor `svm-station-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( @@ -2680,7 +2680,7 @@ pub mod rpc_minimal { }) } - // TODO: Refactor `solana-validator wait-for-restart-window` to not require this method, so + // TODO: Refactor `svm-station-validator wait-for-restart-window` to not require this method, so // it can be removed from rpc_minimal fn get_vote_accounts( &self, @@ -2691,7 +2691,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 `svm-station-validator wait-for-restart-window` to not require this method, so // it can be removed from rpc_minimal fn get_leader_schedule( &self, diff --git a/scripts/cargo-install-all.sh b/scripts/cargo-install-all.sh index 71c5232..94b231b 100755 --- a/scripts/cargo-install-all.sh +++ b/scripts/cargo-install-all.sh @@ -92,9 +92,9 @@ if [[ $CI_OS_NAME = windows ]]; then solana solana-install solana-install-init - solana-keygen + svm-station-keygen solana-stake-accounts - air-solana + svm-station-test-validator solana-tokens ) else @@ -103,14 +103,14 @@ else BINS=( solana solana-bench-tps - solana-faucet + svm-station-faucet solana-gossip solana-install - solana-keygen + svm-station-keygen solana-ledger-tool solana-log-analyzer solana-net-shaper - solana-validator + svm-station-validator rbpf-cli ) @@ -124,15 +124,15 @@ else solana-dos solana-install-init solana-stake-accounts - air-solana + svm-station-test-validator solana-tokens solana-watchtower ) fi - #XXX: Ensure `solana-genesis` is built LAST! + #XXX: Ensure `svm-station-genesis` is built LAST! # See https://github.com/solana-labs/solana/issues/5826 - BINS+=(solana-genesis) + BINS+=(svm-station-genesis) fi binArgs=() diff --git a/scripts/genesis.sh b/scripts/genesis.sh index ebcee4a..aca41e7 100644 --- a/scripts/genesis.sh +++ b/scripts/genesis.sh @@ -1,4 +1,4 @@ -./target/debug/solana-genesis \ +./target/debug/svm-station-genesis \ --hashes-per-tick sleep \ --faucet-lamports 10000000000000000000 \ --bootstrap-validator-lamports 100000000000000000 \ diff --git a/scripts/patch-crates.sh b/scripts/patch-crates.sh index 813a0a3..1c2db27 100644 --- a/scripts/patch-crates.sh +++ b/scripts/patch-crates.sh @@ -16,8 +16,8 @@ update_solana_dependencies() { sed -i -e "s#\(solana-clap-utils = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $? sed -i -e "s#\(solana-account-decoder = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $? sed -i -e "s#\(solana-account-decoder = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $? - sed -i -e "s#\(solana-faucet = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $? - sed -i -e "s#\(solana-faucet = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $? + sed -i -e "s#\(svm-station-faucet = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $? + sed -i -e "s#\(svm-station-faucet = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $? sed -i -e "s#\(solana-zk-token-sdk = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $? sed -i -e "s#\(solana-zk-token-sdk = { version = \"\)[^\"]*\(\"\)#\1=$solana_ver\2#g" "${tomls[@]}" || return $? } @@ -33,7 +33,7 @@ solana-client = { path = "$solana_dir/client" } solana-program = { path = "$solana_dir/sdk/program" } solana-program-test = { path = "$solana_dir/program-test" } solana-sdk = { path = "$solana_dir/sdk" } -solana-faucet = { path = "$solana_dir/faucet" } +svm-station-faucet = { path = "$solana_dir/faucet" } solana-zk-token-sdk = { path = "$solana_dir/zk-token-sdk" } EOF } diff --git a/scripts/run.sh b/scripts/run.sh index d6b2913..e447ba2 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -45,25 +45,25 @@ SOLANA_RUN_SH_CLUSTER_TYPE=${SOLANA_RUN_SH_CLUSTER_TYPE:-development} set -x if ! solana address; then echo Generating default keypair - solana-keygen new --no-passphrase --force + svm-station-keygen new --no-passphrase --force fi validator_identity="$dataDir/validator-identity.json" if [[ -e $validator_identity ]]; then echo "Use existing validator keypair" else - solana-keygen new --no-passphrase -so "$validator_identity" --force + svm-station-keygen new --no-passphrase -so "$validator_identity" --force fi validator_vote_account="$dataDir/validator-vote-account.json" if [[ -e $validator_vote_account ]]; then echo "Use existing validator vote account keypair" else - solana-keygen new --no-passphrase -so "$validator_vote_account" --force + svm-station-keygen new --no-passphrase -so "$validator_vote_account" --force fi validator_stake_account="$dataDir/validator-stake-account.json" if [[ -e $validator_stake_account ]]; then echo "Use existing validator stake account keypair" else - solana-keygen new --no-passphrase -so "$validator_stake_account" --force + svm-station-keygen new --no-passphrase -so "$validator_stake_account" --force fi if [[ -e "$ledgerDir"/genesis.bin || -e "$ledgerDir"/genesis.tar.bz2 ]]; then @@ -75,7 +75,7 @@ else fi # shellcheck disable=SC2086 - solana-genesis \ + svm-station-genesis \ --hashes-per-tick sleep \ --faucet-lamports 500000000000000000 \ --bootstrap-validator \ @@ -95,7 +95,7 @@ abort() { } trap abort INT TERM EXIT -solana-faucet & +svm-station-faucet & faucet=$! args=( @@ -114,7 +114,7 @@ args=( --no-os-network-limits-test ) # shellcheck disable=SC2086 -solana-validator "${args[@]}" $SOLANA_RUN_SH_VALIDATOR_ARGS & +svm-station-validator "${args[@]}" $SOLANA_RUN_SH_VALIDATOR_ARGS & validator=$! wait "$validator" diff --git a/scripts/validator.sh b/scripts/validator.sh index 147e589..f785791 100644 --- a/scripts/validator.sh +++ b/scripts/validator.sh @@ -1,4 +1,4 @@ -./target/debug/solana-validator \ +./target/debug/svm-station-validator \ --ledger ./config/chain \ --rpc-port 8899 \ --gossip-port 8001 \ diff --git a/sdk/bpf/c/bpf.mk b/sdk/bpf/c/bpf.mk index 7f52f7b..5269477 100644 --- a/sdk/bpf/c/bpf.mk +++ b/sdk/bpf/c/bpf.mk @@ -205,7 +205,7 @@ $1: $2 $(_@)mkdir -p $(dir $1) $(_@)$(LLD) $(BPF_LLD_FLAGS) -o $1 $2 $(COMPILER_RT_DIR)/libcompiler_builtins-*.rlib ifeq (,$(wildcard $(subst .so,-keypair.json,$1))) - $(_@)solana-keygen new --no-passphrase --silent -o $(subst .so,-keypair.json,$1) + $(_@)svm-station-keygen new --no-passphrase --silent -o $(subst .so,-keypair.json,$1) endif @echo To deploy this program: @echo $$$$ solana program deploy $(abspath $1) diff --git a/sdk/sbf/c/sbf.mk b/sdk/sbf/c/sbf.mk index 6699daf..3bab0eb 100644 --- a/sdk/sbf/c/sbf.mk +++ b/sdk/sbf/c/sbf.mk @@ -203,7 +203,7 @@ $1: $2 $(_@)mkdir -p $(dir $1) $(_@)$(LLD) $(SBF_LLD_FLAGS) -o $1 $2 $(COMPILER_RT_DIR)/libcompiler_builtins-*.rlib ifeq (,$(wildcard $(subst .so,-keypair.json,$1))) - $(_@)solana-keygen new --no-passphrase --silent -o $(subst .so,-keypair.json,$1) + $(_@)svm-station-keygen new --no-passphrase --silent -o $(subst .so,-keypair.json,$1) endif @echo To deploy this program: @echo $$$$ solana program deploy $(abspath $1) diff --git a/sdk/src/feature_set.rs b/sdk/src/feature_set.rs index 806c3e0..e5278b6 100644 --- a/sdk/src/feature_set.rs +++ b/sdk/src/feature_set.rs @@ -7,7 +7,7 @@ //! information on the additional steps to follow can be found at: //! //! -//! 1. Generate a new keypair with `solana-keygen new --outfile feature.json --no-passphrase` +//! 1. Generate a new keypair with `svm-station-keygen new --outfile feature.json --no-passphrase` //! - Keypairs should be held by core contributors only. If you're a non-core contributor going //! through these steps, the PR process will facilitate a keypair holder being picked. That //! person will generate the keypair, provide pubkey for PR, and ultimately enable the feature. diff --git a/start-chain.sh b/start-chain.sh index 420cca7..4494189 100644 --- a/start-chain.sh +++ b/start-chain.sh @@ -16,7 +16,7 @@ if [[ -n $NDEBUG ]]; then profile=release fi -for program in ./target/"$profile"/solana-{faucet,genesis,keygen,validator}; do +for program in ./target/"$profile"/svm-station-{faucet,genesis,keygen,validator}; do $program -V || ok=false done $ok || { @@ -30,45 +30,46 @@ $ok || { export RUST_LOG=${RUST_LOG:-solana=info,solana_runtime::message_processor=debug} # if RUST_LOG is unset, default to info export RUST_BACKTRACE=1 -dataDir=$PWD/config/keypair -ledgerDir=$PWD/config/station-svm-chain +pathDir=$HOME/.svmstationd +dataDir=$pathDir/keypair +ledgerDir=$pathDir/station-svm-chain -SOLANA_RUN_SH_CLUSTER_TYPE=${SOLANA_RUN_SH_CLUSTER_TYPE:-development} +SOLANA_RUN_SH_CLUSTER_TYPE=${SOLANA_RUN_SH_CLUSTER_TYPE:-testnet} set -x -if ! ./target/"$profile"/solana address; then +if ! ./target/"$profile"/svm-station address; then echo Generating default keypair - ./target/"$profile"/solana-keygen new --no-passphrase --force + ./target/"$profile"/svm-station-keygen new --no-passphrase --force fi validator_identity="$dataDir/validator-identity.json" if [[ -e $validator_identity ]]; then echo "Use existing validator keypair" else - ./target/"$profile"/solana-keygen new --no-passphrase -so "$validator_identity" --force + ./target/"$profile"/svm-station-keygen new --no-passphrase -so "$validator_identity" --force fi validator_vote_account="$dataDir/validator-vote-account.json" if [[ -e $validator_vote_account ]]; then echo "Use existing validator vote account keypair" else - ./target/"$profile"/solana-keygen new --no-passphrase -so "$validator_vote_account" --force + ./target/"$profile"/svm-station-keygen new --no-passphrase -so "$validator_vote_account" --force fi validator_stake_account="$dataDir/validator-stake-account.json" if [[ -e $validator_stake_account ]]; then echo "Use existing validator stake account keypair" else - ./target/"$profile"/solana-keygen new --no-passphrase -so "$validator_stake_account" --force + ./target/"$profile"/svm-station-keygen new --no-passphrase -so "$validator_stake_account" --force fi if [[ -e "$ledgerDir"/genesis.bin || -e "$ledgerDir"/genesis.tar.bz2 ]]; then echo "Use existing genesis" else - ./fetch-spl.sh "config/program" + ./fetch-spl.sh "$pathDir/program" if [[ -r spl-genesis-args.sh ]]; then SPL_GENESIS_ARGS=$(cat spl-genesis-args.sh) fi - # shellcheck disable=SC2086 - ./target/"$profile"/solana-genesis \ +# shellcheck disable=SC2086 + ./target/"$profile"/svm-station-genesis \ --ledger "$ledgerDir" \ --hashes-per-tick sleep \ --faucet-lamports 10000000000000000000 \ @@ -76,7 +77,7 @@ else --bootstrap-validator-stake-lamports 1000000000000000 \ --bootstrap-validator "$validator_identity" "$validator_vote_account" "$validator_stake_account" \ --cluster-type testnet \ - --ticks-per-slot 64 \ + --ticks-per-slot 44 \ --slots-per-epoch 432000 \ $SPL_GENESIS_ARGS fi @@ -88,53 +89,11 @@ abort() { } trap abort INT TERM EXIT -./target/"$profile"/solana-faucet & +./target/"$profile"/svm-station-faucet & faucet=$! -#args=( -# --identity "$validator_identity" -# --vote-account "$validator_vote_account" -# --ledger "$ledgerDir" -# --rpc-port 8899 -# --gossip-port 8001 -# --snapshot-interval-slots 1000 -# --no-incremental-snapshots -# --rpc-faucet-address 127.0.0.1:9900 -# --rpc-bind-address 0.0.0.0 -# --bind-address 0.0.0.0 -# --log - -# --no-poh-speed-test -# --no-wait-for-vote-to-start-leader -# --full-rpc-api -# --allow-private-addr -# --enable-rpc-transaction-history -# --enable-extended-tx-metadata-storage -# --require-tower -# --no-os-network-limits-test -# -## --identity "$validator_identity" -## --vote-account "$validator_vote_account" -## --ledger "$ledgerDir" -## --no-poh-speed-test -## --no-os-network-limits-test -## --gossip-port 8001 -## --full-rpc-api -## --rpc-bind-address 0.0.0.0 -## --bind-address 0.0.0.0 -## --rpc-port 8899 -## --rpc-faucet-address 127.0.0.1:9900 -## --log - -## --enable-rpc-transaction-history -## --enable-extended-tx-metadata-storage -## --init-complete-file "$dataDir"/init-completed -## --require-tower -## --no-wait-for-vote-to-start-leader -## --snapshot-interval-slots 1000 -## --no-incremental-snapshots -#) - # shellcheck disable=SC2086 -./target/"$profile"/solana-validator \ +./target/"$profile"/svm-station-validator \ --identity "$validator_identity" \ --vote-account "$validator_vote_account" \ --ledger "$ledgerDir" \ diff --git a/system-test/abi-testcases/mixed-validator-test.sh b/system-test/abi-testcases/mixed-validator-test.sh index 8ab673b..1a41bae 100755 --- a/system-test/abi-testcases/mixed-validator-test.sh +++ b/system-test/abi-testcases/mixed-validator-test.sh @@ -113,7 +113,7 @@ for v in "${otherVersions[@]}"; do ( set -x tmux new-window -t abi -n "$v" " \ - $SOLANA_BIN/solana-validator \ + $SOLANA_BIN/svm-station-validator \ --ledger $ledger \ --no-snapshot-fetch \ --entrypoint 127.0.0.1:8001 \ diff --git a/system-test/stake-operations-testcases/offline_stake_operations.sh b/system-test/stake-operations-testcases/offline_stake_operations.sh index 513a168..6b06e08 100755 --- a/system-test/stake-operations-testcases/offline_stake_operations.sh +++ b/system-test/stake-operations-testcases/offline_stake_operations.sh @@ -36,7 +36,7 @@ solana config set --url $url # Create a dummy keypair file with no balance for operations that require a "client keypair file" to exist even if they don't touch it dummy_keypair=dummy.json -solana-keygen new -o "$dummy_keypair" --no-passphrase --force --silent +svm-station-keygen new -o "$dummy_keypair" --no-passphrase --force --silent solana config set --keypair $dummy_keypair ### Offline stake account creation @@ -45,11 +45,11 @@ solana config set --keypair $dummy_keypair online_nonce_account_keypair=nonce_keypair.json online_system_account_keypair=online_system_account_keypair.json -solana-keygen new -o "$online_system_account_keypair" --no-passphrase --force --silent -solana-keygen new -o "$online_nonce_account_keypair" --no-passphrase --force --silent +svm-station-keygen new -o "$online_system_account_keypair" --no-passphrase --force --silent +svm-station-keygen new -o "$online_nonce_account_keypair" --no-passphrase --force --silent -online_system_account_pubkey="$(solana-keygen pubkey $online_system_account_keypair)" -nonce_account_pubkey="$(solana-keygen pubkey $online_nonce_account_keypair)" +online_system_account_pubkey="$(svm-station-keygen pubkey $online_system_account_keypair)" +nonce_account_pubkey="$(svm-station-keygen pubkey $online_nonce_account_keypair)" # System account funding the stake account is offline, and the auth staker and withdrawer keypairs are offline offline_system_account_keypair=offline_system_account_keypair.json @@ -57,15 +57,15 @@ offline_staker_keypair=offline_staker_keypair.json offline_withdrawer_keypair=offline_withdrawer_keypair.json offline_custodian_keypair=offline_custodian_keypair.json -solana-keygen new -o "$offline_system_account_keypair" --no-passphrase --force --silent -solana-keygen new -o "$offline_staker_keypair" --no-passphrase --force --silent -solana-keygen new -o "$offline_withdrawer_keypair" --no-passphrase --force --silent -solana-keygen new -o "$offline_custodian_keypair" --no-passphrase --force --silent +svm-station-keygen new -o "$offline_system_account_keypair" --no-passphrase --force --silent +svm-station-keygen new -o "$offline_staker_keypair" --no-passphrase --force --silent +svm-station-keygen new -o "$offline_withdrawer_keypair" --no-passphrase --force --silent +svm-station-keygen new -o "$offline_custodian_keypair" --no-passphrase --force --silent -offline_system_account_pubkey="$(solana-keygen pubkey $offline_system_account_keypair)" -offline_withdrawer_pubkey="$(solana-keygen pubkey $offline_withdrawer_keypair)" -offline_staker_pubkey="$(solana-keygen pubkey $offline_staker_keypair)" -offline_custodian_pubkey="$(solana-keygen pubkey $offline_custodian_keypair)" +offline_system_account_pubkey="$(svm-station-keygen pubkey $offline_system_account_keypair)" +offline_withdrawer_pubkey="$(svm-station-keygen pubkey $offline_withdrawer_keypair)" +offline_staker_pubkey="$(svm-station-keygen pubkey $offline_staker_keypair)" +offline_custodian_pubkey="$(svm-station-keygen pubkey $offline_custodian_keypair)" # Airdrop some funds to the offline account. solana airdrop 100 $offline_system_account_pubkey @@ -88,8 +88,8 @@ execution_step CREATE OFFLINE STAKE ACCOUNT # Create a stake account funded by the offline system account stake_account_keypair=stake_account_keypair.json -solana-keygen new -o "$stake_account_keypair" --no-passphrase --force --silent -stake_account_address="$(solana-keygen pubkey $stake_account_keypair)" +svm-station-keygen new -o "$stake_account_keypair" --no-passphrase --force --silent +stake_account_address="$(svm-station-keygen pubkey $stake_account_keypair)" sign_only="$(solana create-stake-account $stake_account_keypair 50 \ --sign-only --blockhash $nonce --nonce $nonce_account_pubkey --nonce-authority $offline_system_account_keypair \ @@ -127,8 +127,8 @@ execution_step SPLIT STAKE OFFLINE # Split the original stake account before delegating split_stake_account_keypair=split_stake_account_keypair.json -solana-keygen new -o $split_stake_account_keypair --no-passphrase --force --silent -split_stake_account_address=$(solana-keygen pubkey $split_stake_account_keypair) +svm-station-keygen new -o $split_stake_account_keypair --no-passphrase --force --silent +split_stake_account_address=$(svm-station-keygen pubkey $split_stake_account_keypair) nonce="$(solana nonce $nonce_account_pubkey)" diff --git a/test-validator/Cargo.toml b/test-validator/Cargo.toml index 991c6cd..3aed8df 100644 --- a/test-validator/Cargo.toml +++ b/test-validator/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "air-solana" +name = "svm-station-test-validator" description = "Blockchain, Rebuilt for Scale" readme = "../README.md" version = { workspace = true } diff --git a/tokens/Cargo.toml b/tokens/Cargo.toml index b74f04b..07cc7bd 100644 --- a/tokens/Cargo.toml +++ b/tokens/Cargo.toml @@ -38,4 +38,4 @@ assert_matches = { workspace = true } bincode = { workspace = true } solana-logger = { workspace = true } solana-streamer = { workspace = true } -air-solana = { workspace = true } +svm-station-test-validator = { workspace = true } diff --git a/tokens/src/commands.rs b/tokens/src/commands.rs index e3641ef..7bbf759 100644 --- a/tokens/src/commands.rs +++ b/tokens/src/commands.rs @@ -1313,7 +1313,7 @@ mod tests { stake::instruction::StakeInstruction, }, solana_streamer::socket::SocketAddrSpace, - air_solana::TestValidator, + svm_station_test_validator::TestValidator, solana_transaction_status::TransactionConfirmationStatus, }; diff --git a/tokens/tests/commands.rs b/tokens/tests/commands.rs index ef2075a..e35ebd0 100644 --- a/tokens/tests/commands.rs +++ b/tokens/tests/commands.rs @@ -2,7 +2,7 @@ use { solana_rpc_client::rpc_client::RpcClient, solana_sdk::signature::{Keypair, Signer}, solana_streamer::socket::SocketAddrSpace, - air_solana::TestValidator, + svm_station_test_validator::TestValidator, solana_tokens::commands::test_process_distribute_tokens_with_client, }; diff --git a/transaction-dos/Cargo.toml b/transaction-dos/Cargo.toml index 58821a1..096cf0f 100644 --- a/transaction-dos/Cargo.toml +++ b/transaction-dos/Cargo.toml @@ -18,7 +18,7 @@ solana-clap-utils = { workspace = true } solana-cli = { workspace = true } solana-client = { workspace = true } solana-core = { workspace = true } -solana-faucet = { workspace = true } +svm-station-faucet = { workspace = true } solana-gossip = { workspace = true } solana-logger = { workspace = true } solana-measure = { workspace = true } diff --git a/transaction-dos/src/main.rs b/transaction-dos/src/main.rs index 5d69e9e..05e1001 100644 --- a/transaction-dos/src/main.rs +++ b/transaction-dos/src/main.rs @@ -11,7 +11,7 @@ use { program::ProgramCliCommand, }, solana_client::transaction_executor::TransactionExecutor, - solana_faucet::faucet::{request_airdrop_transaction, FAUCET_PORT}, + svm_station_faucet::faucet::{request_airdrop_transaction, FAUCET_PORT}, solana_gossip::gossip_service::discover, solana_rpc_client::rpc_client::RpcClient, solana_sdk::{ diff --git a/validator/Cargo.toml b/validator/Cargo.toml index 95d58d5..1a55ecc 100644 --- a/validator/Cargo.toml +++ b/validator/Cargo.toml @@ -1,8 +1,8 @@ [package] -name = "solana-validator" +name = "svm-station-validator" description = "Blockchain, Rebuilt for Scale" -documentation = "https://docs.rs/solana-validator" -default-run = "solana-validator" +documentation = "https://docs.rs/svm-station-validator" +default-run = "svm-station-validator" version = { workspace = true } authors = { workspace = true } repository = { workspace = true } @@ -39,8 +39,8 @@ solana-cli-config = { workspace = true } solana-core = { workspace = true } solana-download-utils = { workspace = true } solana-entry = { workspace = true } -solana-faucet = { workspace = true } -solana-genesis-utils = { workspace = true } +svm-station-faucet = { workspace = true } +svm-station-genesis-utils = { workspace = true } solana-geyser-plugin-interface = { workspace = true } solana-geyser-plugin-manager = { workspace = true } solana-gossip = { workspace = true } @@ -58,7 +58,7 @@ solana-sdk = { workspace = true } solana-send-transaction-service = { workspace = true } solana-storage-bigtable = { workspace = true } solana-streamer = { workspace = true } -air-solana = { workspace = true } +svm-station-test-validator = { workspace = true } solana-tpu-client = { workspace = true } solana-version = { workspace = true } solana-vote-program = { workspace = true } diff --git a/validator/air-solana b/validator/air-solana deleted file mode 100755 index 3e6793e..0000000 --- a/validator/air-solana +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -here="$(dirname "$0")" -set -x -exec cargo run --manifest-path="$here"/Cargo.toml --bin air-solana -- "$@" \ No newline at end of file diff --git a/validator/src/bin/air-solana.rs b/validator/src/bin/svm_station_test_validator.rs similarity index 99% rename from validator/src/bin/air-solana.rs rename to validator/src/bin/svm_station_test_validator.rs index a306d4a..5f0df73 100644 --- a/validator/src/bin/air-solana.rs +++ b/validator/src/bin/svm_station_test_validator.rs @@ -1,5 +1,5 @@ use { - air_solana::*, + svm_station_test_validator::*, clap::{crate_name, value_t, value_t_or_exit, values_t_or_exit}, crossbeam_channel::unbounded, itertools::Itertools, @@ -10,7 +10,7 @@ use { input_validators::normalize_to_url_if_moniker, }, solana_core::consensus::tower_storage::FileTowerStorage, - solana_faucet::faucet::run_local_faucet_with_port, + svm_station_faucet::faucet::run_local_faucet_with_port, solana_rpc::{ rpc::{JsonRpcConfig, RpcBigtableConfig}, rpc_pubsub_service::PubSubConfig, @@ -28,7 +28,7 @@ use { system_program, }, solana_streamer::socket::SocketAddrSpace, - solana_validator::{ + svm_station_validator::{ admin_rpc_service, cli, dashboard::Dashboard, ledger_lockfile, lock_ledger, println_name_value, redirect_stderr_to_file, }, diff --git a/validator/src/bootstrap.rs b/validator/src/bootstrap.rs index 88a45fd..8869186 100644 --- a/validator/src/bootstrap.rs +++ b/validator/src/bootstrap.rs @@ -5,7 +5,7 @@ use { rayon::prelude::*, solana_core::validator::{ValidatorConfig, ValidatorStartProgress}, solana_download_utils::{download_snapshot_archive, DownloadProgressRecord}, - solana_genesis_utils::download_then_check_genesis_hash, + svm_station_genesis_utils::download_then_check_genesis_hash, solana_gossip::{ cluster_info::{ClusterInfo, Node}, contact_info::Protocol, @@ -444,7 +444,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 `svm-station-validator` command-line arguments) rather than the // RPC node failing. // // Power users can always use the `--no-check-vote-account` option to diff --git a/validator/src/cli.rs b/validator/src/cli.rs index 7b158bb..cf3cc2e 100644 --- a/validator/src/cli.rs +++ b/validator/src/cli.rs @@ -23,7 +23,7 @@ use { banking_trace::{DirByteLimit, BANKING_TRACE_DIR_DEFAULT_BYTE_LIMIT}, validator::{BlockProductionMethod, BlockVerificationMethod}, }, - solana_faucet::faucet::{self, FAUCET_PORT}, + svm_station_faucet::faucet::{self, FAUCET_PORT}, solana_ledger::use_snapshot_archives_at_startup, solana_net_utils::{MINIMUM_VALIDATOR_PORT_RANGE_WIDTH, VALIDATOR_PORT_RANGE}, solana_rpc::{rpc::MAX_REQUEST_BODY_SIZE, rpc_pubsub_service::PubSubConfig}, @@ -2084,7 +2084,7 @@ fn hash_validator(hash: String) -> Result<(), String> { /// Test validator pub fn test_app<'a>(version: &'a str, default_args: &'a DefaultTestArgs) -> App<'a, 'a> { - return App::new("air-solana") + return App::new("svm-station-test-validator") .about("Test Validator") .version(version) .arg({ @@ -2539,7 +2539,7 @@ impl DefaultTestArgs { faucet_port: FAUCET_PORT.to_string(), /* 10,000 was derived empirically by watching the size * of the rocksdb/ directory self-limit itself to the - * 40MB-150MB range when running `air-solana` + * 40MB-150MB range when running `svm-station-test-validator` */ limit_ledger_size: 10_000.to_string(), faucet_sol: (1_000_000.).to_string(), diff --git a/validator/src/lib.rs b/validator/src/lib.rs index cbda4d0..bd48c20 100644 --- a/validator/src/lib.rs +++ b/validator/src/lib.rs @@ -1,5 +1,5 @@ #![allow(clippy::arithmetic_side_effects)] -pub use air_solana as test_validator; +pub use svm_station_test_validator as test_validator; use { console::style, fd_lock::{RwLock, RwLockWriteGuard}, diff --git a/validator/src/main.rs b/validator/src/main.rs index fc39971..4caf571 100644 --- a/validator/src/main.rs +++ b/validator/src/main.rs @@ -62,7 +62,7 @@ use { solana_send_transaction_service::send_transaction_service, solana_streamer::socket::SocketAddrSpace, solana_tpu_client::tpu_client::DEFAULT_TPU_ENABLE_UDP, - solana_validator::{ + svm_station_validator::{ admin_rpc_service, admin_rpc_service::{load_staked_nodes_overrides, StakedNodesOverrides}, bootstrap, @@ -896,7 +896,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!("svm-station-validator-{}.log", identity_keypair.pubkey())); if logfile == "-" { None diff --git a/validator/svm_station_test_validator b/validator/svm_station_test_validator new file mode 100755 index 0000000..f74e6a8 --- /dev/null +++ b/validator/svm_station_test_validator @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +here="$(dirname "$0")" +set -x +exec cargo run --manifest-path="$here"/Cargo.toml --bin svm-station-test-validator -- "$@" \ No newline at end of file diff --git a/zk-keygen/src/main.rs b/zk-keygen/src/main.rs index b72ef7c..f763e14 100644 --- a/zk-keygen/src/main.rs +++ b/zk-keygen/src/main.rs @@ -385,7 +385,7 @@ mod tests { // no outfile process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "new", "elgamal", "--no-bip39-passphrase", @@ -428,7 +428,7 @@ mod tests { // no outfile process_test_command(&[ - "solana-keygen", + "svm-station-keygen", "new", "aes128", "--no-bip39-passphrase", @@ -446,6 +446,6 @@ mod tests { let keypair = ElGamalKeypair::new_rand(); keypair.write_to_file(&keypair_path).unwrap(); - process_test_command(&["solana-keygen", "pubkey", "elgamal", &keypair_path]).unwrap(); + process_test_command(&["svm-station-keygen", "pubkey", "elgamal", &keypair_path]).unwrap(); } }