change --config= to --config

This commit is contained in:
wileyj
2024-01-17 20:05:56 -08:00
committed by Jude Nelson
parent 598d4bf275
commit d99bc2fb0d
6 changed files with 39 additions and 16 deletions

View File

@@ -8,7 +8,7 @@
<array> <array>
<string>/usr/local/bin/stacks-node</string> <string>/usr/local/bin/stacks-node</string>
<string>start</string> <string>start</string>
<string>--config=/etc/stacks-blockchain/Config.toml</string> <string>--config /etc/stacks-blockchain/Config.toml</string>
</array> </array>
<key>ProcessType</key> <key>ProcessType</key>

View File

@@ -60,7 +60,7 @@ start() {
return 1 return 1
fi fi
echo -n $"Starting $prog: " echo -n $"Starting $prog: "
$stacks_bin start --config="$stacks_config" > "$stacks_log" 2>&1 & $stacks_bin start --config "$stacks_config" > "$stacks_log" 2>&1 &
RETVAL=$? RETVAL=$?
[ $RETVAL -eq 0 ] && touch "$lockfile" [ $RETVAL -eq 0 ] && touch "$lockfile"
echo echo

View File

@@ -11,7 +11,7 @@ ConditionPathExists=/etc/stacks-blockchain/Config.toml
ConditionPathIsDirectory=/stacks-blockchain ConditionPathIsDirectory=/stacks-blockchain
[Service] [Service]
ExecStart=/usr/local/bin/stacks-node start --config=/etc/stacks-blockchain/Config.toml ExecStart=/usr/local/bin/stacks-node start --config /etc/stacks-blockchain/Config.toml
# Make sure the config directory is readable by the service user # Make sure the config directory is readable by the service user
PermissionsStartOnly=true PermissionsStartOnly=true

View File

@@ -1,6 +1,7 @@
# Profiling Tools # Profiling Tools
This document describes several techniques to profile (i.e. find performance bottlenecks) the stacks-node mining loop, including: This document describes several techniques to profile (i.e. find performance bottlenecks) the stacks-node mining loop, including:
- configuring debug logging, - configuring debug logging,
- setting up a mock mining node, - setting up a mock mining node,
- recording inbound transactions, - recording inbound transactions,
@@ -15,7 +16,7 @@ Note that all bash commands in this document are run from the stacks-blockchain
Validating the config file using `stacks-node check-config`: Validating the config file using `stacks-node check-config`:
``` ```
$ cargo run -r -p stacks-node --bin stacks-node check-config --config=testnet/stacks-node/conf/mainnet-mockminer-conf.toml $ cargo run -r -p stacks-node --bin stacks-node check-config --config testnet/stacks-node/conf/mainnet-mockminer-conf.toml
INFO [1661276562.220137] [testnet/stacks-node/src/main.rs:82] [main] stacks-node 0.1.0 (tip-mine:c90476aa8a+, release build, macos [aarch64]) INFO [1661276562.220137] [testnet/stacks-node/src/main.rs:82] [main] stacks-node 0.1.0 (tip-mine:c90476aa8a+, release build, macos [aarch64])
INFO [1661276562.220363] [testnet/stacks-node/src/main.rs:115] [main] Loading config at path testnet/stacks-node/conf/mainnet-mockminer-conf.toml INFO [1661276562.220363] [testnet/stacks-node/src/main.rs:115] [main] Loading config at path testnet/stacks-node/conf/mainnet-mockminer-conf.toml
INFO [1661276562.233071] [testnet/stacks-node/src/main.rs:128] [main] Valid config! INFO [1661276562.233071] [testnet/stacks-node/src/main.rs:128] [main] Valid config!
@@ -24,7 +25,7 @@ INFO [1661276562.233071] [testnet/stacks-node/src/main.rs:128] [main] Valid conf
Enabling debug logging using environment variable `STACKS_LOG_DEBUG=1`: Enabling debug logging using environment variable `STACKS_LOG_DEBUG=1`:
``` ```
$ STACKS_LOG_DEBUG=1 cargo run -r -p stacks-node --bin stacks-node check-config --config=testnet/stacks-node/conf/mainnet-mockminer-conf.toml $ STACKS_LOG_DEBUG=1 cargo run -r -p stacks-node --bin stacks-node check-config --config testnet/stacks-node/conf/mainnet-mockminer-conf.toml
INFO [1661276562.220137] [testnet/stacks-node/src/main.rs:82] [main] stacks-node 0.1.0 (tip-mine:c90476aa8a+, release build, macos [aarch64]) INFO [1661276562.220137] [testnet/stacks-node/src/main.rs:82] [main] stacks-node 0.1.0 (tip-mine:c90476aa8a+, release build, macos [aarch64])
INFO [1661276562.220363] [testnet/stacks-node/src/main.rs:115] [main] Loading config at path testnet/stacks-node/conf/mainnet-mockminer-conf.toml INFO [1661276562.220363] [testnet/stacks-node/src/main.rs:115] [main] Loading config at path testnet/stacks-node/conf/mainnet-mockminer-conf.toml
DEBG [1661276562.222450] [testnet/stacks-node/src/main.rs:118] [main] Loaded config file: ConfigFile { burnchain: Some(BurnchainConfigFile { chain: Some("bitcoin"), burn_fee_cap: Some(1), mode: Some("mainnet"), commit_anchor_block_within: None, peer_host: Some("bitcoind.stacks.co"), peer_port: Some(8333), rpc_port: Some(8332), rpc_ssl: None, username: Some("blockstack"), password: Some("blockstacksystem"), timeout: None, magic_bytes: None, local_mining_public_key: None, process_exit_at_block_height: None, poll_time_secs: None, satoshis_per_byte: None, leader_key_tx_estimated_size: None, block_commit_tx_estimated_size: None, rbf_fee_increment: None, max_rbf: None, epochs: None }), node: Some(NodeConfigFile { name: None, seed: None, deny_nodes: None, working_dir: Some("/Users/igor/w/stacks-work/working_dir"), rpc_bind: Some("0.0.0.0:20443"), p2p_bind: Some("0.0.0.0:20444"), p2p_address: None, data_url: None, bootstrap_node: Some("02196f005965cebe6ddc3901b7b1cc1aa7a88f305bb8c5893456b8f9a605923893@seed.mainnet.hiro.so:20444"), local_peer_seed: None, miner: Some(true), mock_mining: Some(true), mine_microblocks: None, microblock_frequency: None, max_microblocks: None, wait_time_for_microblocks: None, prometheus_bind: None, marf_cache_strategy: None, marf_defer_hashing: None, pox_sync_sample_secs: None, use_test_genesis_chainstate: None }), ustx_balance: None, events_observer: Some([EventObserverConfigFile { endpoint: "localhost:3700", events_keys: ["*"] }]), connection_options: None, fee_estimation: None, miner: None } DEBG [1661276562.222450] [testnet/stacks-node/src/main.rs:118] [main] Loaded config file: ConfigFile { burnchain: Some(BurnchainConfigFile { chain: Some("bitcoin"), burn_fee_cap: Some(1), mode: Some("mainnet"), commit_anchor_block_within: None, peer_host: Some("bitcoind.stacks.co"), peer_port: Some(8333), rpc_port: Some(8332), rpc_ssl: None, username: Some("blockstack"), password: Some("blockstacksystem"), timeout: None, magic_bytes: None, local_mining_public_key: None, process_exit_at_block_height: None, poll_time_secs: None, satoshis_per_byte: None, leader_key_tx_estimated_size: None, block_commit_tx_estimated_size: None, rbf_fee_increment: None, max_rbf: None, epochs: None }), node: Some(NodeConfigFile { name: None, seed: None, deny_nodes: None, working_dir: Some("/Users/igor/w/stacks-work/working_dir"), rpc_bind: Some("0.0.0.0:20443"), p2p_bind: Some("0.0.0.0:20444"), p2p_address: None, data_url: None, bootstrap_node: Some("02196f005965cebe6ddc3901b7b1cc1aa7a88f305bb8c5893456b8f9a605923893@seed.mainnet.hiro.so:20444"), local_peer_seed: None, miner: Some(true), mock_mining: Some(true), mine_microblocks: None, microblock_frequency: None, max_microblocks: None, wait_time_for_microblocks: None, prometheus_bind: None, marf_cache_strategy: None, marf_defer_hashing: None, pox_sync_sample_secs: None, use_test_genesis_chainstate: None }), ustx_balance: None, events_observer: Some([EventObserverConfigFile { endpoint: "localhost:3700", events_keys: ["*"] }]), connection_options: None, fee_estimation: None, miner: None }
@@ -34,7 +35,7 @@ INFO [1661276562.233071] [testnet/stacks-node/src/main.rs:128] [main] Valid conf
Enabling json logging using environment variable `STACKS_LOG_JSON=1` and feature flag `slog_json`: Enabling json logging using environment variable `STACKS_LOG_JSON=1` and feature flag `slog_json`:
``` ```
$ STACKS_LOG_JSON=1 cargo run -F slog_json -r -p stacks-node --bin stacks-node check-config --config=testnet/stacks-node/conf/mainnet-mockminer-conf.toml $ STACKS_LOG_JSON=1 cargo run -F slog_json -r -p stacks-node --bin stacks-node check-config --config testnet/stacks-node/conf/mainnet-mockminer-conf.toml
{"msg":"stacks-node 0.1.0 (tip-mine:c90476aa8a+, release build, macos [aarch64])","level":"INFO","ts":"2022-08-23T12:44:28.072462-05:00","thread":"main","line":82,"file":"testnet/stacks-node/src/main.rs"} {"msg":"stacks-node 0.1.0 (tip-mine:c90476aa8a+, release build, macos [aarch64])","level":"INFO","ts":"2022-08-23T12:44:28.072462-05:00","thread":"main","line":82,"file":"testnet/stacks-node/src/main.rs"}
{"msg":"Loading config at path testnet/stacks-node/conf/mainnet-mockminer-conf.toml","level":"INFO","ts":"2022-08-23T12:44:28.074238-05:00","thread":"main","line":115,"file":"testnet/stacks-node/src/main.rs"} {"msg":"Loading config at path testnet/stacks-node/conf/mainnet-mockminer-conf.toml","level":"INFO","ts":"2022-08-23T12:44:28.074238-05:00","thread":"main","line":115,"file":"testnet/stacks-node/src/main.rs"}
{"msg":"Valid config!","level":"INFO","ts":"2022-08-23T12:44:28.089960-05:00","thread":"main","line":128,"file":"testnet/stacks-node/src/main.rs"} {"msg":"Valid config!","level":"INFO","ts":"2022-08-23T12:44:28.089960-05:00","thread":"main","line":128,"file":"testnet/stacks-node/src/main.rs"}
@@ -53,6 +54,7 @@ $ export STACKS_SNAPSHOT_DIR=$STACKS_DIR/snapshot
## Setting up the mock mining node ## Setting up the mock mining node
Download and extract an archived snapshot of mainnet working directory, provided by Hiro. Download and extract an archived snapshot of mainnet working directory, provided by Hiro.
``` ```
$ wget -P $STACKS_DIR https://storage.googleapis.com/blockstack-publish/archiver-main/follower/mainnet-follower-latest.tar.gz $ wget -P $STACKS_DIR https://storage.googleapis.com/blockstack-publish/archiver-main/follower/mainnet-follower-latest.tar.gz
$ tar xzvf $STACKS_DIR/mainnet-follower-latest.tar.gz -C $STACKS_DIR $ tar xzvf $STACKS_DIR/mainnet-follower-latest.tar.gz -C $STACKS_DIR
@@ -65,17 +67,19 @@ We'll be using the `stacks-node` config file available at:
Note that, for convenience, the `stacks-node` binary uses the environment variable `$STACKS_WORKING_DIR` to override the working directory location in the config file. Note that, for convenience, the `stacks-node` binary uses the environment variable `$STACKS_WORKING_DIR` to override the working directory location in the config file.
``` ```
$ cargo run -r -p stacks-node --bin stacks-node start --config=testnet/stacks-node/conf/mocknet-miner-conf.toml $ cargo run -r -p stacks-node --bin stacks-node start --config testnet/stacks-node/conf/mocknet-miner-conf.toml
``` ```
The `stacks-node` process will receive blocks starting from the latest block available in the Hiro archive. The `stacks-node` process will receive blocks starting from the latest block available in the Hiro archive.
Check the latest tip height of our node. Check the latest tip height of our node.
``` ```
$ curl -s 127.0.0.1:20443/v2/info | jq .stacks_tip_height $ curl -s 127.0.0.1:20443/v2/info | jq .stacks_tip_height
``` ```
Compare our node's tip height to a public node's tip height to check when our node is fully synchronized. Compare our node's tip height to a public node's tip height to check when our node is fully synchronized.
``` ```
$ curl -s seed-0.mainnet.stacks.co:20443/v2/info | jq .stacks_tip_height $ curl -s seed-0.mainnet.stacks.co:20443/v2/info | jq .stacks_tip_height
``` ```
@@ -85,16 +89,19 @@ Once the node is synchronized, terminate the `stacks-node` process so we can set
## Recording blockchain events ## Recording blockchain events
Run `stacks-events` to receive and archive events: Run `stacks-events` to receive and archive events:
``` ```
$ cargo run -r -p stacks-node --bin stacks-events | tee $STACKS_DIR/events.log $ cargo run -r -p stacks-node --bin stacks-events | tee $STACKS_DIR/events.log
``` ```
Run `stacks-node` with an event observer: Run `stacks-node` with an event observer:
``` ```
$ STACKS_EVENT_OBSERVER=localhost:3700 cargo run -r -p stacks-node --bin stacks-node start --config=testnet/stacks-node/conf/mocknet-miner-conf.toml $ STACKS_EVENT_OBSERVER=localhost:3700 cargo run -r -p stacks-node --bin stacks-node start --config testnet/stacks-node/conf/mocknet-miner-conf.toml
``` ```
You should see output from `stacks-events` in `events.logs` similar to: You should see output from `stacks-events` in `events.logs` similar to:
``` ```
$ tail -F $STACKS_DIR/events.log $ tail -F $STACKS_DIR/events.log
{"path":"drop_mempool_tx","payload":{"dropped_txids":["0x6f78047f15ac3309153fc34be94ed8895111304336aec1ff106b7de051021e17, ..., "ts":"2022-08-12T05:03:08.577Z"} {"path":"drop_mempool_tx","payload":{"dropped_txids":["0x6f78047f15ac3309153fc34be94ed8895111304336aec1ff106b7de051021e17, ..., "ts":"2022-08-12T05:03:08.577Z"}
@@ -103,21 +110,25 @@ $ tail -F $STACKS_DIR/events.log
## Historical Mining ## Historical Mining
Discover the first recorded block height: Discover the first recorded block height:
``` ```
$ cat $STACKS_DIR/events.log | egrep new_block | head -1 | jq .payload.block_height $ cat $STACKS_DIR/events.log | egrep new_block | head -1 | jq .payload.block_height
``` ```
Discover a lower bound number of recorded transactions. This is a lower bound because each line in the events file is a list of transactions. Discover a lower bound number of recorded transactions. This is a lower bound because each line in the events file is a list of transactions.
``` ```
$ cat $STACKS_DIR/events.log | egrep new_mempool_tx | wc -l $ cat $STACKS_DIR/events.log | egrep new_mempool_tx | wc -l
``` ```
Make a snapshot of the working directory: Make a snapshot of the working directory:
``` ```
$ cp -r $STACKS_WORKING_DIR $STACKS_SNAPSHOT_DIR $ cp -r $STACKS_WORKING_DIR $STACKS_SNAPSHOT_DIR
``` ```
Run the `tip-mine` benchmark: Run the `tip-mine` benchmark:
``` ```
$ export STACKS_TIP_MINE_BLOCK_HEIGHT=71294 $ export STACKS_TIP_MINE_BLOCK_HEIGHT=71294
$ export STACKS_TIP_MINE_NUM_TXS=100 $ export STACKS_TIP_MINE_NUM_TXS=100
@@ -137,9 +148,11 @@ INFO [1661274285.417171] [src/chainstate/stacks/miner.rs:1628] [main] Miner: min
Successfully mined block @ height = 71295 off of bd4fa09ece02e7fd53493c96bd69b89155058f7b28d4a659d87d89644208f41e (96cc06519e670eefb674aa2e9cfe0cfae103d4da/f0f0caa2afaae75417f14fe2fad1e3fd52b0169e66cb045b4954b9ab78611f31) in 7310ms. Successfully mined block @ height = 71295 off of bd4fa09ece02e7fd53493c96bd69b89155058f7b28d4a659d87d89644208f41e (96cc06519e670eefb674aa2e9cfe0cfae103d4da/f0f0caa2afaae75417f14fe2fad1e3fd52b0169e66cb045b4954b9ab78611f31) in 7310ms.
Block 4a64e0a4012acb6748a08784876c23f6f61aba08b7c826db5b57832935278f33: 3227082 uSTX, 31587 bytes, cost ExecutionCost { write_length: 84090, write_count: 1170, read_length: 20381499, read_count: 7529, runtime: 103717315 } Block 4a64e0a4012acb6748a08784876c23f6f61aba08b7c826db5b57832935278f33: 3227082 uSTX, 31587 bytes, cost ExecutionCost { write_length: 84090, write_count: 1170, read_length: 20381499, read_count: 7529, runtime: 103717315 }
``` ```
In this run, `tip-mine` mined a block with 87 transactions. In this run, `tip-mine` mined a block with 87 transactions.
Alternatively, you can run `cargo build` separately from the target binary `stacks-inspect` to avoid re-building and speed up profiling: Alternatively, you can run `cargo build` separately from the target binary `stacks-inspect` to avoid re-building and speed up profiling:
``` ```
$ cargo build -F disable-costs -r --bin stacks-inspect $ cargo build -F disable-costs -r --bin stacks-inspect
$ ./target/release/stacks-inspect tip-mine $STACKS_SNAPSHOT_DIR $STACKS_DIR/events.log $STACKS_TIP_MINE_BLOCK_HEIGHT $STACKS_TIP_MINE_NUM_TXS $ ./target/release/stacks-inspect tip-mine $STACKS_SNAPSHOT_DIR $STACKS_DIR/events.log $STACKS_TIP_MINE_BLOCK_HEIGHT $STACKS_TIP_MINE_NUM_TXS
@@ -158,16 +171,19 @@ $ cargo install flamegraph
flamegraph-rs uses [dtrace](https://en.wikipedia.org/wiki/DTrace) for profiling on Mac. flamegraph-rs uses [dtrace](https://en.wikipedia.org/wiki/DTrace) for profiling on Mac.
Build `stacks-inspect` using the feature `disable-costs` to disable the block cost limits: Build `stacks-inspect` using the feature `disable-costs` to disable the block cost limits:
``` ```
$ cargo build -F disable-costs -r --bin stacks-inspect $ cargo build -F disable-costs -r --bin stacks-inspect
``` ```
Generate a flame graph: Generate a flame graph:
``` ```
$ flamegraph --root -o perf.svg -e cpu-clock --min-width 1 --deterministic -- ./target/release/stacks-inspect tip-mine $STACKS_SNAPSHOT_DIR $STACKS_DIR/events.log $STACKS_TIP_MINE_BLOCK_HEIGHT $STACKS_TIP_MINE_NUM_TXS $ flamegraph --root -o perf.svg -e cpu-clock --min-width 1 --deterministic -- ./target/release/stacks-inspect tip-mine $STACKS_SNAPSHOT_DIR $STACKS_DIR/events.log $STACKS_TIP_MINE_BLOCK_HEIGHT $STACKS_TIP_MINE_NUM_TXS
``` ```
You can open the flame graph using a browser: You can open the flame graph using a browser:
``` ```
$ open perf.svg $ open perf.svg
``` ```
@@ -183,21 +199,25 @@ The Linux performance tool `perf` has a performance bug which has been fixed. If
Background on the `perf` performance bug: https://eighty-twenty.org/2021/09/09/perf-addr2line-speed-improvement Background on the `perf` performance bug: https://eighty-twenty.org/2021/09/09/perf-addr2line-speed-improvement
Find out your kernel version: Find out your kernel version:
``` ```
$ uname -a $ uname -a
Linux localhost 5.15.0-25-generic #26~16.04.1-Ubuntu SMP Tue Oct 1 16:30:39 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux Linux localhost 5.15.0-25-generic #26~16.04.1-Ubuntu SMP Tue Oct 1 16:30:39 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
``` ```
Install dependencies, clone the linux kernel source, checkout the version tag matching your kernel version and build perf: Install dependencies, clone the linux kernel source, checkout the version tag matching your kernel version and build perf:
``` ```
$ sudo apt install -y git libzstd-dev libunwind-dev libcap-dev libdw-dev libdwarf-dev libbfd-dev libelf-dev systemtap-sdt-dev binutils-dev libnuma-dev libiberty-dev bison flex $ sudo apt install -y git libzstd-dev libunwind-dev libcap-dev libdw-dev libdwarf-dev libbfd-dev libelf-dev systemtap-sdt-dev binutils-dev libnuma-dev libiberty-dev bison flex
$ git clone https://github.com/torvalds/linux.git $ git clone https://github.com/torvalds/linux.git
$ git checkout v5.15 $ git checkout v5.15
$ cd linux/tools/perf && make $ cd linux/tools/perf && make
``` ```
#### Running perf #### Running perf
Grant kernel permissions to perf: Grant kernel permissions to perf:
``` ```
$ sudo sed -i "$ a kernel.perf_event_paranoid = -1" /etc/sysctl.conf $ sudo sed -i "$ a kernel.perf_event_paranoid = -1" /etc/sysctl.conf
$ sudo sed -i "$ a kernel.kptr_restrict = 0" /etc/sysctl.conf $ sudo sed -i "$ a kernel.kptr_restrict = 0" /etc/sysctl.conf
@@ -205,6 +225,7 @@ $ sysctl --system
``` ```
Note that you need to uncomment the following in `.cargo/config` (see [flamegraph-rs](https://github.com/flamegraph-rs/flamegraph) for details) Note that you need to uncomment the following in `.cargo/config` (see [flamegraph-rs](https://github.com/flamegraph-rs/flamegraph) for details)
``` ```
[target.x86_64-unknown-linux-gnu] [target.x86_64-unknown-linux-gnu]
linker = "/usr/bin/clang" linker = "/usr/bin/clang"
@@ -212,11 +233,13 @@ rustflags = ["-Clink-arg=-fuse-ld=lld", "-Clink-arg=-Wl,--no-rosegment"]
``` ```
Build `stacks-inspect` using the feature `disable-costs` to disable the block cost limits: Build `stacks-inspect` using the feature `disable-costs` to disable the block cost limits:
``` ```
$ cargo build -F disable-costs -r --bin stacks-inspect $ cargo build -F disable-costs -r --bin stacks-inspect
``` ```
Generate a flame graph using the locally built `perf` binary: Generate a flame graph using the locally built `perf` binary:
``` ```
$ PERF=~/linux/tools/perf/perf flamegraph --cmd "record -F 97 --call-graph dwarf,65528 -g -e cpu-clock" -o perf.svg --min-width 0.5 --deterministic -- ./target/release/stacks-inspect tip-mine $STACKS_SNAPSHOT_DIR $STACKS_DIR/events.log $STACKS_TIP_MINE_BLOCK_HEIGHT $STACKS_TIP_MINE_NUM_TXS $ PERF=~/linux/tools/perf/perf flamegraph --cmd "record -F 97 --call-graph dwarf,65528 -g -e cpu-clock" -o perf.svg --min-width 0.5 --deterministic -- ./target/release/stacks-inspect tip-mine $STACKS_SNAPSHOT_DIR $STACKS_DIR/events.log $STACKS_TIP_MINE_BLOCK_HEIGHT $STACKS_TIP_MINE_NUM_TXS
``` ```
@@ -225,11 +248,11 @@ Output flame graph is in `perf.svg`.
## Profiling SQLite queries ## Profiling SQLite queries
Set the environment variable `STACKS_LOG_DEBUG=1` and use the cargo feature `profile-sqlite`: Set the environment variable `STACKS_LOG_DEBUG=1` and use the cargo feature `profile-sqlite`:
``` ```
$ STACKS_LOG_DEBUG=1 cargo run -F profile-sqlite,disable-costs -r --bin stacks-inspect try-mine $STACKS_WORKING_DIR $ STACKS_LOG_DEBUG=1 cargo run -F profile-sqlite,disable-costs -r --bin stacks-inspect try-mine $STACKS_WORKING_DIR
... ...
DEBG [1661217664.809057] [src/util_lib/db.rs:666] [main] sqlite trace profile {"millis":1,"query":"SELECT value FROM data_table WHERE key = ?"} DEBG [1661217664.809057] [src/util_lib/db.rs:666] [main] sqlite trace profile {"millis":1,"query":"SELECT value FROM data_table WHERE key = ?"}
... ...
``` ```

View File

@@ -145,7 +145,7 @@ start_stacks_master_node() {
logln "ok" logln "ok"
log "[$$] Starting Stacks master node..." log "[$$] Starting Stacks master node..."
BLOCKSTACK_DEBUG=1 RUST_BACKTRACE=full stacks-node start --config="$STACKS_MASTER_CONF" >"$STACKS_MASTER_LOGFILE" 2>&1 & BLOCKSTACK_DEBUG=1 RUST_BACKTRACE=full stacks-node start --config "$STACKS_MASTER_CONF" >"$STACKS_MASTER_LOGFILE" 2>&1 &
local STACKS_PID=$! local STACKS_PID=$!
logln "PID $STACKS_PID" logln "PID $STACKS_PID"
@@ -233,7 +233,7 @@ start_stacks_miner_node() {
logln "ok" logln "ok"
log "[$$] Starting Stacks miner node..." log "[$$] Starting Stacks miner node..."
BLOCKSTACK_DEBUG=1 RUST_BACKTRACE=full stacks-node start --config="$STACKS_MINER_CONF" >"$STACKS_MINER_LOGFILE" 2>&1 & BLOCKSTACK_DEBUG=1 RUST_BACKTRACE=full stacks-node start --config "$STACKS_MINER_CONF" >"$STACKS_MINER_LOGFILE" 2>&1 &
local STACKS_PID=$! local STACKS_PID=$!
logln "PID $STACKS_PID" logln "PID $STACKS_PID"
@@ -265,7 +265,7 @@ start_stacks_follower_node() {
logln "ok" logln "ok"
log "[$$] Starting Stacks follower node..." log "[$$] Starting Stacks follower node..."
BLOCKSTACK_DEBUG=1 RUST_BACKTRACE=full stacks-node start --config="$STACKS_FOLLOWER_CONF" >"$STACKS_FOLLOWER_LOGFILE" 2>&1 & BLOCKSTACK_DEBUG=1 RUST_BACKTRACE=full stacks-node start --config "$STACKS_FOLLOWER_CONF" >"$STACKS_FOLLOWER_LOGFILE" 2>&1 &
local STACKS_PID=$! local STACKS_PID=$!
logln "PID $STACKS_PID" logln "PID $STACKS_PID"

View File

@@ -487,14 +487,14 @@ start\t\tStart a node with a config of your own. Can be used for joining a netwo
\t\tArguments: \t\tArguments:
\t\t --config: path of the config (such as https://github.com/blockstack/stacks-blockchain/blob/master/testnet/stacks-node/conf/testnet-follower-conf.toml). \t\t --config: path of the config (such as https://github.com/blockstack/stacks-blockchain/blob/master/testnet/stacks-node/conf/testnet-follower-conf.toml).
\t\tExample: \t\tExample:
\t\t stacks-node start --config=/path/to/config.toml \t\t stacks-node start --config /path/to/config.toml
check-config\t\tValidates the config file without starting up the node. Uses same arguments as start subcommand. check-config\t\tValidates the config file without starting up the node. Uses same arguments as start subcommand.
version\t\tDisplay information about the current version and our release cycle. version\t\tDisplay information about the current version and our release cycle.
key-for-seed\tOutput the associated secret key for a burnchain signer created with a given seed. key-for-seed\tOutput the associated secret key for a burnchain signer created with a given seed.
\t\tCan be passed a config file for the seed via the `--config=<file>` option *or* by supplying the hex seed on \t\tCan be passed a config file for the seed via the `--config <file>` option *or* by supplying the hex seed on
\t\tthe command line directly. \t\tthe command line directly.
help\t\tDisplay this help. help\t\tDisplay this help.