jam/docker/regtest/docker-compose.yml
Thebora Kompanioni db292356f5
fix: precondition for collaborative transactions (#485)
* fix: min confs of preconditions for all utxos instead of single

* fix: i18n phrases of collaborative transaction preconditions

* wip: use new scheduler preconditions in Jam component

* fix: only report utxos without retries of no retry is left within jar

* feat(regtest): set taker_utxo_retries and maker_timeout_sec config vars for improved testability

* test(preconditions): add test for CoinjoinRequirements

* fix: enable starting scheduler even if preconditions are not fulfilled

* review: fix wording

Co-authored-by: Gigi <109058+dergigi@users.noreply.github.com>
2022-09-15 18:52:49 +02:00

187 lines
5.8 KiB
YAML

version: "3"
services:
joinmarket:
container_name: jm_regtest_joinmarket
build:
context: ./dockerfile-deps/joinmarket/latest
dockerfile: Dockerfile
restart: unless-stopped
environment:
READY_FILE: /root/.regtest-initializer/btc_fully_synched
ENSURE_WALLET: "true"
REMOVE_LOCK_FILES: "true"
jm_rpc_wallet_file: jm_primary
jm_minimum_makers: 1
jm_tx_broadcast: self
jm_blockchain_source: regtest
jm_network: testnet
jm_rpc_host: bitcoind
jm_rpc_port: 43782
jm_rpc_user: joinmarket
jm_rpc_password: joinmarket
jm_directory_nodes: ${JM_DIRECTORY_NODES:?You must set the onion address generated in prepare step to your .env file}
jm_socks5: "false" # will _not_ connect to local irc over tor
expose:
- 62601 # obwatch
- 27183 # joinmarketd
- 28183 # jmwalletd api
- 28283 # jmwalletd websocket
ports:
- "62601:62601"
- "28183:28183"
- "28283:28283"
volumes:
- "joinmarket_datadir:/root/.joinmarket"
- "initializer_datadir:/root/.regtest-initializer"
depends_on:
- bitcoind
- bitcoind_regtest_initializer
- irc
joinmarket2:
container_name: jm_regtest_joinmarket2
build:
context: ./dockerfile-deps/joinmarket/webui-standalone
dockerfile: Dockerfile
restart: unless-stopped
environment:
READY_FILE: /root/.regtest-initializer/btc_fully_synched
ENSURE_WALLET: "true"
REMOVE_LOCK_FILES: "true"
APP_USER: joinmarket
APP_PASSWORD: joinmarket
jm_rpc_wallet_file: jm_secondary
jm_minimum_makers: 1
jm_tx_broadcast: self
jm_blockchain_source: regtest
jm_network: testnet
jm_rpc_host: bitcoind
jm_rpc_port: 43782
jm_rpc_user: joinmarket2
jm_rpc_password: joinmarket2
jm_directory_nodes: ${JM_DIRECTORY_NODES:?You must set the onion address generated in prepare step to your .env file}
jm_socks5: "false" # will _not_ connect to local irc over tor
jm_taker_utxo_retries: 1 # easier testing of commitment failures on regtest; default is 3
maker_timeout_sec: 10 # easier testing of maker timeouts on regtest (and "Stall Monitor" retries); default is 60
expose:
- 80 # nginx
- 62601 # obwatch
- 27183 # joinmarketd
- 28183 # jmwalletd api
- 28283 # jmwalletd websocket
ports:
- "29183:28183"
- "29283:28283"
- "29080:80"
volumes:
- "joinmarket2_datadir:/root/.joinmarket"
- "initializer_datadir:/root/.regtest-initializer"
depends_on:
- bitcoind
- bitcoind_regtest_initializer
- irc
joinmarket_directory_node:
container_name: jm_regtest_joinmarket_directory_node
build:
context: ./dockerfile-deps/joinmarket/directory_node
dockerfile: Dockerfile
restart: unless-stopped
environment:
jm_hidden_service_dir: \/root\/.joinmarket\/hidden_service_dir
jm_directory_nodes: ${JM_DIRECTORY_NODES:?You must set the onion address generated in prepare step to your .env file}
jm_blockchain_source: regtest
jm_network: testnet
volumes:
- "joinmarket_directory_node_datadir:/root/.joinmarket"
- "./out/hidden_service_dir:/root/.joinmarket/hidden_service_dir:z"
irc:
container_name: jm_regtest_irc
restart: unless-stopped
image: ghcr.io/ergochat/ergo:v2.10.0
expose:
- 6667
volumes:
- "irc_datadir:/ircd"
bitcoind:
container_name: jm_regtest_bitcoind
restart: unless-stopped
image: btcpayserver/bitcoin:23.0
environment:
BITCOIN_NETWORK: regtest
BITCOIN_WALLETDIR: "/walletdata"
BITCOIN_EXTRA_ARGS: |
rpcport=43782
rpcbind=0.0.0.0
rpcallowip=0.0.0.0/0
port=39388
whitelist=0.0.0.0/0
maxmempool=500
debug=rpc
logips=0
networkactive=1
dnsseed=0
uacomment=jmdevbitcoindregtest
printpriority=1
logtimemicros=1
zmqpubrawblock=tcp://0.0.0.0:28332
zmqpubrawtx=tcp://0.0.0.0:28333
zmqpubhashblock=tcp://0.0.0.0:28334
dns=0
# do not automatically create tor hidden service
listenonion=0
# rpcauth (user=regtest; password=regtest)
rpcauth=regtest:20b58677979ad9d3cf4b78b1d6e85e44$$2ec3e1e1c00c7c58d7aff1d4bf96e4a984ea1af5d676d862fd0faa857a1d4d7c
# rpcauth (user=joinmarket; password=joinmarket)
rpcauth=joinmarket:260b4c5b1fbd09d75a4aabf90226282f$$76e170af088d43a588992cdd5e7bae2242b03c33aa672cccfd1fb75f9281299e
# rpcauth (user=joinmarket2; password=joinmarket2)
rpcauth=joinmarket2:521bf9f4468529d49c0a41f9c9f8fdbf$$63ae94a73d2aa45e7ee756945d9b1e469f9873ce026b815d676a748f777e0b8d
expose:
- 43782 # RPC
- 39388 # P2P
- 28332 # ZMQ
- 28333 # ZMQ
- 28334 # ZMQ
volumes:
- "bitcoin_datadir:/data"
- "bitcoin_wallet_datadir:/walletdata"
bitcoind_regtest_initializer:
container_name: jm_regtest_bitcoind_initializer
build:
context: ./dockerfile-deps/bitcoin/regtest-initializer
dockerfile: Dockerfile
restart: on-failure
environment:
READY_FILE: /root/.regtest-initializer/btc_fully_synched
RPC_HOST: bitcoind
RPC_PORT: 43782
RPC_USER: regtest
RPC_PASSWORD: regtest
volumes:
- "initializer_datadir:/root/.regtest-initializer"
depends_on:
- bitcoind
nginx:
container_name: jm_regtest_nginx_test_basepath
image: nginx
volumes:
- ./dockerfile-deps/nginx:/etc/nginx/templates
ports:
- "8000:80"
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
bitcoin_datadir:
bitcoin_wallet_datadir:
initializer_datadir:
joinmarket_datadir:
joinmarket2_datadir:
joinmarket_directory_node_datadir:
irc_datadir: