From c1fcc512b4bd30ff3a8cc67e67be07a2de4bd14f Mon Sep 17 00:00:00 2001 From: CharlieC3 <2747302+CharlieC3@users.noreply.github.com> Date: Mon, 4 Dec 2023 15:37:36 -0500 Subject: [PATCH] splitting compose files into separate follower and miner --- docker-compose-follower.yml | 65 +++++++++ docker-compose-miner.yml | 190 ++++++++++++++++++++++++++ docker-compose.yml | 252 ----------------------------------- stacks-krypton-follower.toml | 103 ++++++++++++++ 4 files changed, 358 insertions(+), 252 deletions(-) create mode 100644 docker-compose-follower.yml create mode 100644 docker-compose-miner.yml delete mode 100644 docker-compose.yml create mode 100644 stacks-krypton-follower.toml diff --git a/docker-compose-follower.yml b/docker-compose-follower.yml new file mode 100644 index 0000000..346e266 --- /dev/null +++ b/docker-compose-follower.yml @@ -0,0 +1,65 @@ +version: "3.9" + +x-common-vars: + - &STACKS_BLOCKCHAIN_COMMIT master + - &MINER_PUB_KEY 035379aa40c02890d253cfa577964116eb5295570ae9f7287cbae5f2585f5b2c7c + - &BITCOIN_PEER_PORT 18444 + - &BITCOIN_RPC_PORT 18443 + - &BITCOIN_RPC_USER btc + - &BITCOIN_RPC_PASS btc + - &STACKS_20_HEIGHT ${STACKS_20_HEIGHT:-101} + - &STACKS_2_05_HEIGHT ${STACKS_2_05_HEIGHT:-102} + - &STACKS_21_HEIGHT ${STACKS_21_HEIGHT:-103} + - &STACKS_POX2_HEIGHT ${STACKS_POX2_HEIGHT:-104} # 104 is is stacks_block=1, 106 is stacks_block=3 + - &STACKS_22_HEIGHT ${STACKS_22_HEIGHT:-105} + - &STACKS_23_HEIGHT ${STACKS_23_HEIGHT:-106} + - &STACKS_24_HEIGHT ${STACKS_24_HEIGHT:-107} + +services: + stacks-node-follower: + networks: + - stacks + build: + context: . + dockerfile: Dockerfile.stacks-node + args: + GIT_COMMIT: *STACKS_BLOCKCHAIN_COMMIT + ports: + - "30443:20443" + volumes: + - ./stacks-krypton-follower.toml/:/root/config.toml.in + - ./bitcoin.conf:/root/.bitcoin/bitcoin.conf + - ./init-data:/init-data + - chainstate:/chainstate + environment: + # STACKS_LOG_TRACE: 1 # uncomment for trace logging + # STACKS_LOG_DEBUG: 1 + # STACKS_EVENT_OBSERVER: stacks-api:3700 + DATA_DIR: /chainstate/stacks-blockchain-follower-data + BITCOIN_PEER_HOST: bitcoind + BITCOIN_PEER_PORT: *BITCOIN_PEER_PORT + BITCOIN_RPC_PORT: *BITCOIN_RPC_PORT + BITCOIN_RPC_USER: *BITCOIN_RPC_USER + BITCOIN_RPC_PASS: *BITCOIN_RPC_PASS + MINER_PUB_KEY: *MINER_PUB_KEY + STACKS_20_HEIGHT: *STACKS_20_HEIGHT + STACKS_2_05_HEIGHT: *STACKS_2_05_HEIGHT + STACKS_21_HEIGHT: *STACKS_21_HEIGHT + STACKS_POX2_HEIGHT: *STACKS_POX2_HEIGHT + STACKS_22_HEIGHT: *STACKS_22_HEIGHT + STACKS_23_HEIGHT: *STACKS_23_HEIGHT + STACKS_24_HEIGHT: *STACKS_24_HEIGHT + entrypoint: + - /bin/bash + - -c + - | + set -e + mkdir -p $${DATA_DIR} + rm -rf $${DATA_DIR}/* + envsubst < config.toml.in > config.toml + exec stacks-node start --config=config.toml + +networks: + stacks: +volumes: + chainstate: diff --git a/docker-compose-miner.yml b/docker-compose-miner.yml new file mode 100644 index 0000000..12b6f06 --- /dev/null +++ b/docker-compose-miner.yml @@ -0,0 +1,190 @@ +version: "3.9" + +x-common-vars: + - &STACKS_BLOCKCHAIN_COMMIT master + - &BTC_ADDR miEJtNKa3ASpA19v5ZhvbKTEieYjLpzCYT + - &MINER_SEED 9e446f6b0c6a96cf2190e54bcd5a8569c3e386f091605499464389b8d4e0bfc201 # stx: STEW4ZNT093ZHK4NEQKX8QJGM2Y7WWJ2FQQS5C19, btc: miEJtNKa3ASpA19v5ZhvbKTEieYjLpzCYT, pub_key: 035379aa40c02890d253cfa577964116eb5295570ae9f7287cbae5f2585f5b2c7c, wif: cStMQXkK5yTFGP3KbNXYQ3sJf2qwQiKrZwR9QJnksp32eKzef1za + - &BITCOIN_PEER_PORT 18444 + - &BITCOIN_RPC_PORT 18443 + - &BITCOIN_RPC_USER btc + - &BITCOIN_RPC_PASS btc + - &MINE_INTERVAL ${MINE_INTERVAL:-0.5s} + - &STACKS_20_HEIGHT ${STACKS_20_HEIGHT:-101} + - &STACKS_2_05_HEIGHT ${STACKS_2_05_HEIGHT:-102} + - &STACKS_21_HEIGHT ${STACKS_21_HEIGHT:-103} + - &STACKS_POX2_HEIGHT ${STACKS_POX2_HEIGHT:-104} # 104 is is stacks_block=1, 106 is stacks_block=3 + - &STACKS_22_HEIGHT ${STACKS_22_HEIGHT:-105} + - &STACKS_23_HEIGHT ${STACKS_23_HEIGHT:-106} + - &STACKS_24_HEIGHT ${STACKS_24_HEIGHT:-107} + - &REWARD_RECIPIENT ${REWARD_RECIPIENT:-STQM73RQC4EX0A07KWG1J5ECZJYBZS4SJ4ERC6WN} # priv: 6ad9cadb42d4edbfbe0c5bfb3b8a4125ddced021c4174f829b714ccbf527f02001 + +services: + bitcoind: + networks: + - stacks + build: + context: . + dockerfile: Dockerfile.btc + ports: + - "18443:18443" + - "18444:18444" + volumes: + - ./bitcoin.conf:/root/.bitcoin/bitcoin.conf + - ./init-data:/init-data + - chainstate:/chainstate + environment: + DATA_DIR: /chainstate/bitcoin-data + entrypoint: + - /bin/bash + - -c + - | + set -e + mkdir -p $${DATA_DIR} + rm -rf $${DATA_DIR}/* + bitcoind + + bitcoind-miner: + networks: + - stacks + build: + context: . + dockerfile: Dockerfile.btc + depends_on: + - bitcoind + volumes: + - ./bitcoin.conf:/root/.bitcoin/bitcoin.conf + environment: + BTC_ADDR: *BTC_ADDR + MINE_INTERVAL: *MINE_INTERVAL + INIT_BLOCKS: 101 + entrypoint: + - /bin/bash + - -c + - | + set -e + trap "exit" INT TERM + trap "kill 0" EXIT + bitcoin-cli -rpcconnect=bitcoind -rpcwait getmininginfo + bitcoin-cli -rpcconnect=bitcoind createwallet "" + bitcoin-cli -rpcconnect=bitcoind importaddress $${BTC_ADDR} "" false + bitcoin-cli -rpcconnect=bitcoind generatetoaddress $${INIT_BLOCKS} $${BTC_ADDR} + while true; do + TX=$$(bitcoin-cli -rpcconnect=bitcoind listtransactions '*' 1 0 true) + CONFS=$$(echo "$${TX}" | jq '.[].confirmations') + if [ "$${CONFS}" = "0" ]; then + echo "Detected Stacks mining mempool tx, mining btc block..." + bitcoin-cli -rpcconnect=bitcoind generatetoaddress 1 "$${BTC_ADDR}" + else + echo "No Stacks mining tx detected" + fi + sleep $${MINE_INTERVAL} & + wait || exit 0 + done + + stacks-node-miner: + networks: + - stacks + build: + context: . + dockerfile: Dockerfile.stacks-node + args: + GIT_COMMIT: *STACKS_BLOCKCHAIN_COMMIT + depends_on: + - bitcoind + ports: + - "20443:20443" + volumes: + - ./stacks-krypton-miner.toml/:/root/config.toml.in + - ./bitcoin.conf:/root/.bitcoin/bitcoin.conf + - ./init-data:/init-data + - chainstate:/chainstate + environment: + # STACKS_LOG_TRACE: 1 # uncomment for trace logging + # STACKS_LOG_DEBUG: 1 + # STACKS_EVENT_OBSERVER: stacks-api:3700 # uncomment if using API + DATA_DIR: /chainstate/stacks-blockchain-miner-data + BITCOIN_PEER_HOST: bitcoind + BITCOIN_PEER_PORT: *BITCOIN_PEER_PORT + BITCOIN_RPC_PORT: *BITCOIN_RPC_PORT + BITCOIN_RPC_USER: *BITCOIN_RPC_USER + BITCOIN_RPC_PASS: *BITCOIN_RPC_PASS + MINER_SEED: *MINER_SEED + STACKS_20_HEIGHT: *STACKS_20_HEIGHT + STACKS_2_05_HEIGHT: *STACKS_2_05_HEIGHT + STACKS_21_HEIGHT: *STACKS_21_HEIGHT + STACKS_POX2_HEIGHT: *STACKS_POX2_HEIGHT + STACKS_22_HEIGHT: *STACKS_22_HEIGHT + STACKS_23_HEIGHT: *STACKS_23_HEIGHT + STACKS_24_HEIGHT: *STACKS_24_HEIGHT + REWARD_RECIPIENT: *REWARD_RECIPIENT + entrypoint: + - /bin/bash + - -c + - | + set -e + if [[ ! -z "$${REWARD_RECIPIENT}" ]]; then + export REWARD_RECIPIENT_CONF="block_reward_recipient = \"$${REWARD_RECIPIENT}\"" + fi + mkdir -p $${DATA_DIR} + rm -rf $${DATA_DIR}/* + envsubst < config.toml.in > config.toml + # bitcoin-cli -rpcwait -rpcconnect=bitcoind getmininginfo + exec stacks-node start --config=config.toml + + ################################## + ##### UNCOMMENT IF USING API ##### + ################################## + # postgres: + # image: "postgres:15" + # ports: + # - "5490:5490" + # volumes: + # - chainstate:/chainstate + # environment: + # POSTGRES_USER: postgres + # POSTGRES_PASSWORD: postgres + # POSTGRES_DB: stacks_blockchain_api + # PGPORT: 5490 + # PGDATA: /chainstate/pg-data + + # stacks-api: + # build: + # context: . + # dockerfile: Dockerfile.stacks-api + # args: + # GIT_COMMIT: 4a332f353ee10802fa7b04e888b32e54d010a69d + # depends_on: + # - postgres + # ports: + # - "3999:3999" + # expose: + # - "3700" + # environment: + # NODE_ENVIRONMENT: production + # STACKS_API_LOG_LEVEL: debug + # STACKS_CHAIN_ID: "0x80000000" + # STACKS_BLOCKCHAIN_API_HOST: "0.0.0.0" + # STACKS_BLOCKCHAIN_API_PORT: 3999 + # STACKS_CORE_EVENT_HOST: "0.0.0.0" + # STACKS_CORE_EVENT_PORT: 3700 + # PG_HOST: postgres + # PG_PORT: 5490 + # PG_USER: postgres + # PG_PASSWORD: postgres + # PG_DATABASE: stacks_blockchain_api + # PG_SCHEMA: public + # STACKS_CORE_RPC_HOST: stacks-node + # STACKS_CORE_RPC_PORT: 20443 + # BTC_RPC_HOST: http://bitcoind + # BTC_RPC_PORT: 18443 + # BTC_RPC_USER: btc + # BTC_RPC_PW: btc + # BTC_FAUCET_PK: *MINER_SEED + ################################## + ##### UNCOMMENT IF USING API ##### + ################################## + +networks: + stacks: +volumes: + chainstate: diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 8b5ee5c..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,252 +0,0 @@ -version: "3.9" - -x-common-vars: - - &STACKS_BLOCKCHAIN_COMMIT master - - &BTC_ADDR miEJtNKa3ASpA19v5ZhvbKTEieYjLpzCYT - - &MINER_SEED 9e446f6b0c6a96cf2190e54bcd5a8569c3e386f091605499464389b8d4e0bfc201 # stx: STEW4ZNT093ZHK4NEQKX8QJGM2Y7WWJ2FQQS5C19, btc: miEJtNKa3ASpA19v5ZhvbKTEieYjLpzCYT, pub_key: 035379aa40c02890d253cfa577964116eb5295570ae9f7287cbae5f2585f5b2c7c, wif: cStMQXkK5yTFGP3KbNXYQ3sJf2qwQiKrZwR9QJnksp32eKzef1za - - &BITCOIN_PEER_PORT 18444 - - &BITCOIN_RPC_PORT 18443 - - &BITCOIN_RPC_USER btc - - &BITCOIN_RPC_PASS btc - - &MINE_INTERVAL ${MINE_INTERVAL:-0.5s} - - &STACKS_20_HEIGHT ${STACKS_20_HEIGHT:-101} - - &STACKS_2_05_HEIGHT ${STACKS_2_05_HEIGHT:-102} - - &STACKS_21_HEIGHT ${STACKS_21_HEIGHT:-103} - - &STACKS_POX2_HEIGHT ${STACKS_POX2_HEIGHT:-104} # 104 is is stacks_block=1, 106 is stacks_block=3 - - &STACKS_22_HEIGHT ${STACKS_22_HEIGHT:-105} - - &STACKS_23_HEIGHT ${STACKS_23_HEIGHT:-106} - - &STACKS_24_HEIGHT ${STACKS_24_HEIGHT:-107} - - &REWARD_RECIPIENT ${REWARD_RECIPIENT:-STQM73RQC4EX0A07KWG1J5ECZJYBZS4SJ4ERC6WN} # priv: 6ad9cadb42d4edbfbe0c5bfb3b8a4125ddced021c4174f829b714ccbf527f02001 - -services: - - snapshot-init: - profiles: ["snapshot-init"] - build: - context: . - dockerfile: Dockerfile.stacks-node - args: - GIT_COMMIT: *STACKS_BLOCKCHAIN_COMMIT - volumes: - - ./bitcoin.conf:/root/.bitcoin/bitcoin.conf - - ./stacks-krypton-miner.toml/:/root/config.toml.in - - ./init-data:/init-data - - chainstate:/chainstate - environment: - DATA_DIR: /chainstate/stacks-blockchain-data - BITCOIN_PEER_HOST: localhost - BITCOIN_PEER_PORT: *BITCOIN_PEER_PORT - BITCOIN_RPC_PORT: *BITCOIN_RPC_PORT - BITCOIN_RPC_USER: *BITCOIN_RPC_USER - BITCOIN_RPC_PASS: *BITCOIN_RPC_PASS - MINER_SEED: *MINER_SEED - BTC_ADDR: *BTC_ADDR - INIT_BLOCKS: 101 - STACKS_20_HEIGHT: *STACKS_20_HEIGHT - STACKS_2_05_HEIGHT: *STACKS_2_05_HEIGHT - STACKS_21_HEIGHT: *STACKS_21_HEIGHT - STACKS_POX2_HEIGHT: *STACKS_POX2_HEIGHT - STACKS_22_HEIGHT: *STACKS_22_HEIGHT - STACKS_23_HEIGHT: *STACKS_23_HEIGHT - STACKS_24_HEIGHT: *STACKS_24_HEIGHT - REWARD_RECIPIENT: *REWARD_RECIPIENT - entrypoint: - - /bin/bash - - -c - - | - set -e - if [[ ! -z "$${REWARD_RECIPIENT}" ]]; then - export REWARD_RECIPIENT_CONF="block_reward_recipient = \"$$REWARD_RECIPIENT\"" - fi - rm -rf /chainstate/bitcoin-data/* - mkdir -p /chainstate/bitcoin-data - bitcoind & - BTCD_PID=$$! - bitcoin-cli -rpcwait getmininginfo - bitcoin-cli createwallet "" - bitcoin-cli importaddress $$BTC_ADDR "" false - bitcoin-cli generatetoaddress $$INIT_BLOCKS $$BTC_ADDR - - rm -rf /chainstate/stacks-blockchain-data/* - envsubst < config.toml.in > config.toml - stacks-node start --config=config.toml & - STACKS_PID=$$! - - while true; do - HEIGHT=$$(curl -s localhost:20443/v2/info | jq '.burn_block_height') - if [ "$$HEIGHT" = "$$INIT_BLOCKS" ]; then - echo "Stacks node caught up to block $$INIT_BLOCKS" - break - else - echo "Stacks node not ready, at block: $$HEIGHT" - fi - sleep 0.5s - done - - kill $$STACKS_PID - wait $$STACKS_PID - - bitcoin-cli stop - wait $$BTCD_PID - - tar -C /chainstate/bitcoin-data -czf /init-data/bitcoind.tar.gz ./ - tar -C /chainstate/stacks-blockchain-data -czf /init-data/stacks-blockchain-data.tar.gz ./ - - bitcoind: - build: - context: . - dockerfile: Dockerfile.btc - depends_on: - - stacks-api - ports: - - "18443:18443" - - "18444:18444" - volumes: - - ./bitcoin.conf:/root/.bitcoin/bitcoin.conf - - ./init-data:/init-data - - chainstate:/chainstate - entrypoint: - - /bin/bash - - -c - - | - set -e - mkdir -p /chainstate/bitcoin-data - if [ -z "$$(ls -A /chainstate/bitcoin-data)" ]; then - tar -xf /init-data/bitcoind.tar.gz -C /chainstate/bitcoin-data - fi - bitcoind - - bitcoind-miner: - build: - context: . - dockerfile: Dockerfile.btc - depends_on: - - stacks-node - volumes: - - ./bitcoind-miner.sh:/usr/bin/bitcoind-miner.sh - - ./bitcoin.conf:/root/.bitcoin/bitcoin.conf - environment: - BTC_ADDR: *BTC_ADDR - MINE_INTERVAL: *MINE_INTERVAL - entrypoint: - - /bin/bash - - -c - - | - set -e - trap "exit" INT TERM - trap "kill 0" EXIT - bitcoin-cli -rpcwait -rpcconnect=bitcoind getmininginfo - bitcoin-cli -rpcconnect=bitcoind generatetoaddress 1 $$BTC_ADDR - while true; do - TX=$$(bitcoin-cli -rpcconnect=bitcoind listtransactions '*' 1 0 true) - CONFS=$$(echo "$$TX" | jq '.[].confirmations') - if [ "$$CONFS" = "0" ]; then - echo "Detected Stacks mining mempool tx, mining btc block..." - bitcoin-cli -rpcconnect=bitcoind generatetoaddress 1 "$$BTC_ADDR" - else - echo "No Stacks mining tx detected" - fi - sleep $$MINE_INTERVAL & - wait || exit 0 - done - - stacks-node: - build: - context: . - dockerfile: Dockerfile.stacks-node - args: - GIT_COMMIT: *STACKS_BLOCKCHAIN_COMMIT - depends_on: - - bitcoind - ports: - - "20443:20443" - volumes: - - ./stacks-krypton-miner.toml/:/root/config.toml.in - - ./bitcoin.conf:/root/.bitcoin/bitcoin.conf - - ./init-data:/init-data - - chainstate:/chainstate - environment: - # STACKS_LOG_TRACE: 1 # uncomment for trace logging - # STACKS_LOG_DEBUG: 1 - DATA_DIR: /chainstate/stacks-blockchain-data - STACKS_EVENT_OBSERVER: stacks-api:3700 - BITCOIN_PEER_HOST: bitcoind - BITCOIN_PEER_PORT: *BITCOIN_PEER_PORT - BITCOIN_RPC_PORT: *BITCOIN_RPC_PORT - BITCOIN_RPC_USER: *BITCOIN_RPC_USER - BITCOIN_RPC_PASS: *BITCOIN_RPC_PASS - MINER_SEED: *MINER_SEED - STACKS_20_HEIGHT: *STACKS_20_HEIGHT - STACKS_2_05_HEIGHT: *STACKS_2_05_HEIGHT - STACKS_21_HEIGHT: *STACKS_21_HEIGHT - STACKS_POX2_HEIGHT: *STACKS_POX2_HEIGHT - STACKS_22_HEIGHT: *STACKS_22_HEIGHT - STACKS_23_HEIGHT: *STACKS_23_HEIGHT - STACKS_24_HEIGHT: *STACKS_24_HEIGHT - REWARD_RECIPIENT: *REWARD_RECIPIENT - entrypoint: - - /bin/bash - - -c - - | - set -e - if [[ ! -z "$${REWARD_RECIPIENT}" ]]; then - export REWARD_RECIPIENT_CONF="block_reward_recipient = \"$$REWARD_RECIPIENT\"" - fi - mkdir -p /chainstate/stacks-blockchain-data - if [ -z "$$(ls -A /chainstate/stacks-blockchain-data)" ]; then - tar -xf /init-data/stacks-blockchain-data.tar.gz -C /chainstate/stacks-blockchain-data - fi - envsubst < config.toml.in > config.toml - bitcoin-cli -rpcwait -rpcconnect=bitcoind getmininginfo - exec stacks-node start --config=config.toml - - postgres: - image: "postgres:14" - ports: - - "5490:5490" - volumes: - - chainstate:/chainstate - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - POSTGRES_DB: stacks_blockchain_api - PGPORT: 5490 - PGDATA: /chainstate/pg-data - - stacks-api: - build: - context: . - dockerfile: Dockerfile.stacks-api - args: - GIT_COMMIT: 4a332f353ee10802fa7b04e888b32e54d010a69d - depends_on: - - postgres - ports: - - "3999:3999" - expose: - - "3700" - environment: - NODE_ENVIRONMENT: production - STACKS_API_LOG_LEVEL: debug - STACKS_CHAIN_ID: "0x80000000" - STACKS_BLOCKCHAIN_API_HOST: "0.0.0.0" - STACKS_BLOCKCHAIN_API_PORT: 3999 - STACKS_CORE_EVENT_HOST: "0.0.0.0" - STACKS_CORE_EVENT_PORT: 3700 - PG_HOST: postgres - PG_PORT: 5490 - PG_USER: postgres - PG_PASSWORD: postgres - PG_DATABASE: stacks_blockchain_api - PG_SCHEMA: public - STACKS_CORE_RPC_HOST: stacks-node - STACKS_CORE_RPC_PORT: 20443 - BTC_RPC_HOST: http://bitcoind - BTC_RPC_PORT: 18443 - BTC_RPC_USER: btc - BTC_RPC_PW: btc - BTC_FAUCET_PK: *MINER_SEED - -volumes: - pgdata: - chainstate: diff --git a/stacks-krypton-follower.toml b/stacks-krypton-follower.toml new file mode 100644 index 0000000..1da9ff9 --- /dev/null +++ b/stacks-krypton-follower.toml @@ -0,0 +1,103 @@ +[node] +name = "krypton-node" +rpc_bind = "0.0.0.0:20443" +p2p_bind = "0.0.0.0:20444" +bootstrap_node = "$MINER_PUB_KEY@stacks-node-miner:20444" +working_dir = "$DATA_DIR" + +# local_peer_seed = "$LOCAL_PEER_SEED" + +miner = false +use_test_genesis_chainstate = true +pox_sync_sample_secs = 0 +wait_time_for_blocks = 0 +wait_time_for_microblocks = 50 +microblock_frequency = 1000 +# mine_microblocks = true +# max_microblocks = 10 + +[miner] +first_attempt_time_ms = 5000 +subsequent_attempt_time_ms = 5000 + +[connection_options] +# inv_sync_interval = 10 +# download_interval = 10 +# walk_interval = 10 +disable_block_download = true +disable_inbound_handshakes = true +disable_inbound_walks = true +public_ip_address = "1.1.1.1:1234" + +[burnchain] +chain = "bitcoin" +mode = "krypton" +poll_time_secs = 1 +pox_2_activation = $STACKS_POX2_HEIGHT + +### bitcoind-regtest connection info +peer_host = "$BITCOIN_PEER_HOST" +peer_port = $BITCOIN_PEER_PORT +rpc_port = $BITCOIN_RPC_PORT +rpc_ssl = false +username = "$BITCOIN_RPC_USER" +password = "$BITCOIN_RPC_PASS" +timeout = 30 + +[[burnchain.epochs]] +epoch_name = "1.0" +start_height = 0 + +[[burnchain.epochs]] +epoch_name = "2.0" +start_height = $STACKS_20_HEIGHT + +[[burnchain.epochs]] +epoch_name = "2.05" +start_height = $STACKS_2_05_HEIGHT + +[[burnchain.epochs]] +epoch_name = "2.1" +start_height = $STACKS_21_HEIGHT + +[[burnchain.epochs]] +epoch_name = "2.2" +start_height = $STACKS_22_HEIGHT + +[[burnchain.epochs]] +epoch_name = "2.3" +start_height = $STACKS_23_HEIGHT + +[[burnchain.epochs]] +epoch_name = "2.4" +start_height = $STACKS_24_HEIGHT + +[[ustx_balance]] +address = "STB44HYPYAT2BB2QE513NSP81HTMYWBJP02HPGK6" +amount = 10000000000000000 +# secretKey = "cb3df38053d132895220b9ce471f6b676db5b9bf0b4adefb55f2118ece2478df01" + +[[ustx_balance]] +address = "ST11NJTTKGVT6D1HY4NJRVQWMQM7TVAR091EJ8P2Y" +amount = 10000000000000000 +# secretKey = "21d43d2ae0da1d9d04cfcaac7d397a33733881081f0b2cd038062cf0ccbb752601" + +[[ustx_balance]] +address = "ST1HB1T8WRNBYB0Y3T7WXZS38NKKPTBR3EG9EPJKR" +amount = 10000000000000000 +# secretKey = "c71700b07d520a8c9731e4d0f095aa6efb91e16e25fb27ce2b72e7b698f8127a01" + +[[ustx_balance]] +address = "STRYYQQ9M8KAF4NS7WNZQYY59X93XEKR31JP64CP" +amount = 10000000000000000 +# secretKey = "e75dcb66f84287eaf347955e94fa04337298dbd95aa0dbb985771104ef1913db01" + +[[ustx_balance]] +address = "STF9B75ADQAVXQHNEQ6KGHXTG7JP305J2GRWF3A2" +amount = 10000000000000000 +# secretKey = "ce109fee08860bb16337c76647dcbc02df0c06b455dd69bcf30af74d4eedd19301", + +[[ustx_balance]] +address = "ST18MDW2PDTBSCR1ACXYRJP2JX70FWNM6YY2VX4SS" +amount = 10000000000000000 +# secretKey = "08c14a1eada0dd42b667b40f59f7c8dedb12113613448dc04980aea20b268ddb01",