feat: shim development environment.

This commit is contained in:
Zitao Xiong
2022-02-20 02:09:22 +08:00
parent be745fd6b2
commit 44fc618657
27 changed files with 372 additions and 140 deletions

2
.gitignore vendored
View File

@@ -1,2 +1,4 @@
persistent-data
test-connections
/unit-tests/
.env

View File

@@ -0,0 +1,170 @@
version: "3.7"
services:
traefik:
image: traefik:v2.5
command:
- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.file.watch=true"
- "--providers.file.directory=/file-providers"
- "--entrypoints.web.address=:80"
# - "--entrypoints.web.http.redirections.entrypoint.to=websecure"
# - "--entrypoints.web.http.redirections.entrypoint.permanent=false"
- "--entrypoints.websecure.address=:443"
- "--entryPoints.tcppg.address=:5555"
- "--accesslog"
ports:
- "80:80"
- "443:443"
- "8080:8080"
- "5555:5555"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./traefik:/traefik"
- "./file-providers:/file-providers"
labels:
- traefik.http.services.traefik-public.loadbalancer.server.port=80
- traefik.http.middlewares.whoami-redirectscheme.redirectscheme.scheme=https
- traefik.enable=true
networks:
- backend
whoami:
image: containous/whoami
labels:
- traefik.enable=true
- traefik.docker.network=development_backend
- traefik.http.routers.whoami.entrypoints=web,websecure
- traefik.http.routers.whoami.rule=Host(`whoami.localhost`)
- traefik.http.routers.whoami.tls=true
- traefik.http.services.whoami.loadbalancer.server.port=80
networks:
- backend
postgres:
image: "postgres:12.2"
ports:
- "5490:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: stacks_blockchain_api
POSTGRES_PORT: 5432
networks:
- backend
labels:
- traefik.enable=true
- traefik.docker.network=development_backend
- traefik.http.routers.postgres.entrypoints=tcppg
- traefik.http.routers.postgres.rule=Host(`pg.localhost`)
- traefik.http.services.postgres.loadbalancer.server.port=5432
stacks-blockchain:
image: blockstack/stacks-blockchain
command: stacks-node start --config=/app/config/Stacks-dev.toml
restart: on-failure
labels:
- traefik.enable=true
- traefik.docker.network=development_backend
- traefik.http.routers.stacks_blockchain.entrypoints=web,websecure
- traefik.http.routers.stacks_blockchain.rule=Host(`stacks-blockchain.localhost`)
- traefik.http.services.stacks_blockchain.loadbalancer.server.port=20443
- traefik.http.routers.stacks_blockchain.tls=true
environment:
NOP_BLOCKSTACK_DEBUG: 1
STACKS_EVENT_OBSERVER: stacks-blockchain-api:3700
XBLOCKSTACK_DEBUG: 1
RUST_BACKTRACE: 1
STACKS_CHAIN_ID: "0x80000000"
PG_HOST: postgres
PG_PORT: 5432
PG_USER: postgres
PG_PASSWORD: postgres
PG_DATABASE: postgres
V2_POX_MIN_AMOUNT_USTX: 90000000260
STACKS_CORE_RPC_HOST: stacks-blockchain
STACKS_CORE_RPC_PORT: 20443
STACKS_API_ENABLE_FT_METADATA: 1
STACKS_API_ENABLE_NFT_METADATA: 1
ports:
- "20443:20443"
- "20444:20444"
volumes:
- ./stacks-blockchain/:/app/config
- ./stacks-blockchain/chaindata:/tmp/stacks-blockchain-data
networks:
- backend
stacks-blockchain-api:
image: blockstack/stacks-blockchain-api
restart: on-failure
labels:
- traefik.enable=true
- traefik.docker.network=development_backend
- traefik.http.services.stacks_blockchain_api.loadbalancer.server.port=3999
- traefik.http.routers.stacks_blockchain_api.entrypoints=web,websecure
- traefik.http.routers.stacks_blockchain_api.rule=Host(`stacks-blockchain-api.localhost`)
- traefik.http.routers.stacks_blockchain_api.service=stacks_blockchain_api
- traefik.http.routers.stacks_blockchain_api.tls=true
- traefik.http.services.stacks_blockchain_api_http.loadbalancer.server.port=3999
- traefik.http.routers.stacks_blockchain_api_http.entrypoints=web
- traefik.http.routers.stacks_blockchain_api_http.rule=Host(`stacks-blockchain-api-http.localhost`)
- traefik.http.routers.stacks_blockchain_api_http.service=stacks_blockchain_api
- traefik.http.routers.stacks_blockchain_api.tls=false
- traefik.http.services.stacks_blockchain_event.loadbalancer.server.port=9153
- traefik.http.routers.stacks_blockchain_event.entrypoints=web
- traefik.http.routers.stacks_blockchain_event.rule=Host(`stacks-blockchain-event.localhost`)
- traefik.http.routers.stacks_blockchain_event.service=stacks_blockchain_event
- traefik.http.routers.stacks_blockchain_event.tls=true
environment:
PG_HOST: postgres
PG_PORT: 5432
PG_USER: postgres
PG_PASSWORD: postgres
PG_DATABASE: stacks_blockchain_api
STACKS_CORE_EVENT_PORT: "3700"
STACKS_CORE_EVENT_HOST: http://0.0.0.0
STACKS_BLOCKCHAIN_API_PORT: "3999"
STACKS_BLOCKCHAIN_API_HOST: 0.0.0.0
STACKS_BLOCKCHAIN_API_DB: pg
STACKS_CORE_RPC_HOST: stacks-blockchain
STACKS_CORE_RPC_PORT: "20443"
STACKS_CHAIN_ID: "0x80000000"
NODE_ENV: development
ports:
- "3999:3999"
- "9153:9153"
volumes:
- ./stacks-blockchain/:/app/config
networks:
- backend
depends_on:
- postgres
# stacks-blockchain-explorer:
# image: blockstack/explorer
# labels:
# - traefik.enable=true
# - traefik.docker.network=development_backend
# - traefik.http.services.stacks_blockchain_explorer.loadbalancer.server.port=3000
# - traefik.http.routers.stacks_blockchain_explorer.entrypoints=web,websecure
# - traefik.http.routers.stacks_blockchain_explorer.rule=Host(`stacks-blockchain-explorer.localhost`)
# - traefik.http.routers.stacks_blockchain_explorer.tls=true
# ports:
# - "3300:3000"
# extra_hosts:
# - "stacks-blockchain-explorer.localhost:127.0.0.1"
# environment:
## TESTNET_API_SERVER: https://stacks-blockchain-api.localhost
# NEXT_PUBLIC_TESTNET_API_SERVER: https://stacks-blockchain-api.localhost
## NEXT_PUBLIC_MAINNET_API_SERVER: https://stacks-blockchain-api.localhost
## NEXT_PUBLIC_REGTEST_API_SERVER: https://stacks-blockchain-api.localhost
# NEXT_PUBLIC_DEPLOYMENT_URL: https://stacks-blockchain-explorer.localhost
# NEXT_PUBLIC_MAINNET_ENABLED: "true"
# NODE_ENV: development
# networks:
# - backend
networks:
backend:

View File

@@ -38,6 +38,6 @@ amount = 10000000000000000
[connection_options]
read_only_call_limit_write_length = 15000000
read_only_call_limit_read_length = 100000000
read_only_call_limit_write_count = 7750
read_only_call_limit_read_count = 7750
read_only_call_limit_write_count = 15500
read_only_call_limit_read_count = 15500
read_only_call_limit_runtime = 5000000000

View File

@@ -1,49 +1,8 @@
version: "3.7"
services:
traefik:
image: traefik:v2.5
command:
- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.file.watch=true"
- "--providers.file.directory=/file-providers"
- "--entrypoints.web.address=:80"
# - "--entrypoints.web.http.redirections.entrypoint.to=websecure"
# - "--entrypoints.web.http.redirections.entrypoint.permanent=false"
- "--entrypoints.websecure.address=:443"
- "--entryPoints.tcppg.address=:5555"
- "--accesslog"
ports:
- "80:80"
- "443:443"
- "8080:8080"
- "5555:5555"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./traefik:/traefik"
- "./file-providers:/file-providers"
labels:
- traefik.http.services.traefik-public.loadbalancer.server.port=80
- traefik.http.middlewares.whoami-redirectscheme.redirectscheme.scheme=https
- traefik.enable=true
networks:
- backend
whoami:
image: containous/whoami
labels:
- traefik.enable=true
- traefik.docker.network=development_backend
- traefik.http.routers.whoami.entrypoints=web,websecure
- traefik.http.routers.whoami.rule=Host(`whoami.localhost`)
- traefik.http.routers.whoami.tls=true
- traefik.http.services.whoami.loadbalancer.server.port=80
networks:
- backend
postgres:
image: "postgres:12.2"
shm_size: 2gb
ports:
- "5490:5432"
environment:
@@ -53,24 +12,13 @@ services:
POSTGRES_PORT: 5432
networks:
- backend
labels:
- traefik.enable=true
- traefik.docker.network=development_backend
- traefik.http.routers.postgres.entrypoints=tcppg
- traefik.http.routers.postgres.rule=Host(`pg.localhost`)
- traefik.http.services.postgres.loadbalancer.server.port=5432
stacks-blockchain:
image: blockstack/stacks-blockchain
command: stacks-node start --config=/app/config/Stacks-dev.toml
restart: on-failure
labels:
- traefik.enable=true
- traefik.docker.network=development_backend
- traefik.http.routers.stacks_blockchain.entrypoints=web,websecure
- traefik.http.routers.stacks_blockchain.rule=Host(`stacks-blockchain.localhost`)
- traefik.http.services.stacks_blockchain.loadbalancer.server.port=20443
- traefik.http.routers.stacks_blockchain.tls=true
image: blockstack/stacks-blockchain:2.05.0.1.0
command: sh -c "/wait && stacks-node start --config=/app/config/Stacks.toml"
environment:
WAIT_BEFORE: 3
WAIT_AFTER: 3
WAIT_HOSTS: "stacks-blockchain-api:3700"
NOP_BLOCKSTACK_DEBUG: 1
STACKS_EVENT_OBSERVER: stacks-blockchain-api:3700
XBLOCKSTACK_DEBUG: 1
@@ -90,34 +38,16 @@ services:
- "20443:20443"
- "20444:20444"
volumes:
- ./stacks-blockchain/:/app/config
- ./stacks-blockchain/config:/app/config
- ./stacks-blockchain/chaindata:/tmp/stacks-blockchain-data
- ./docker/wait:/wait
networks:
- backend
stacks-blockchain-api:
image: blockstack/stacks-blockchain-api
image: blockstack/stacks-blockchain-api:2.1.1
restart: on-failure
labels:
- traefik.enable=true
- traefik.docker.network=development_backend
- traefik.http.services.stacks_blockchain_api.loadbalancer.server.port=3999
- traefik.http.routers.stacks_blockchain_api.entrypoints=web,websecure
- traefik.http.routers.stacks_blockchain_api.rule=Host(`stacks-blockchain-api.localhost`)
- traefik.http.routers.stacks_blockchain_api.service=stacks_blockchain_api
- traefik.http.routers.stacks_blockchain_api.tls=true
- traefik.http.services.stacks_blockchain_api_http.loadbalancer.server.port=3999
- traefik.http.routers.stacks_blockchain_api_http.entrypoints=web
- traefik.http.routers.stacks_blockchain_api_http.rule=Host(`stacks-blockchain-api-http.localhost`)
- traefik.http.routers.stacks_blockchain_api_http.service=stacks_blockchain_api
- traefik.http.routers.stacks_blockchain_api.tls=false
- traefik.http.services.stacks_blockchain_event.loadbalancer.server.port=9153
- traefik.http.routers.stacks_blockchain_event.entrypoints=web
- traefik.http.routers.stacks_blockchain_event.rule=Host(`stacks-blockchain-event.localhost`)
- traefik.http.routers.stacks_blockchain_event.service=stacks_blockchain_event
- traefik.http.routers.stacks_blockchain_event.tls=true
environment:
WAIT_HOSTS: "postgres:5432"
PG_HOST: postgres
PG_PORT: 5432
PG_USER: postgres
@@ -136,7 +66,8 @@ services:
- "3999:3999"
- "9153:9153"
volumes:
- ./stacks-blockchain/:/app/config
- ./docker/wait:/wait
networks:
- backend
depends_on:

BIN
development/docker/wait Executable file

Binary file not shown.

View File

@@ -0,0 +1,43 @@
[node]
working_dir = "/root/stacks-node/data"
rpc_bind = "0.0.0.0:20443"
p2p_bind = "0.0.0.0:20444"
wait_time_for_microblocks = 1000
use_test_genesis_chainstate = true
[[events_observer]]
endpoint = "stacks-blockchain-api:3700"
retry_count = 255
events_keys = ["*"]
[burnchain]
chain = "bitcoin"
mode = "mocknet"
commit_anchor_block_within = 10000
[[mstx_balance]]
address = "STB44HYPYAT2BB2QE513NSP81HTMYWBJP02HPGK6"
amount = 10000000000000000
# secretKey = "cb3df38053d132895220b9ce471f6b676db5b9bf0b4adefb55f2118ece2478df01"
[[mstx_balance]]
address = "ST11NJTTKGVT6D1HY4NJRVQWMQM7TVAR091EJ8P2Y"
amount = 10000000000000000
# secretKey = "21d43d2ae0da1d9d04cfcaac7d397a33733881081f0b2cd038062cf0ccbb752601"
[[mstx_balance]]
address = "ST1HB1T8WRNBYB0Y3T7WXZS38NKKPTBR3EG9EPJKR"
amount = 10000000000000000
# secretKey = "c71700b07d520a8c9731e4d0f095aa6efb91e16e25fb27ce2b72e7b698f8127a01"
[[mstx_balance]]
address = "STRYYQQ9M8KAF4NS7WNZQYY59X93XEKR31JP64CP"
amount = 10000000000000000
# secretKey = "e75dcb66f84287eaf347955e94fa04337298dbd95aa0dbb985771104ef1913db01"
[connection_options]
read_only_call_limit_write_length = 15000000
read_only_call_limit_read_length = 100000000
read_only_call_limit_write_count = 15500
read_only_call_limit_read_count = 15500
read_only_call_limit_runtime = 5000000000

View File

@@ -1,28 +0,0 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDe0Hk3UCszqsVE
cE7BnZXwrxI8FYY94E95PFxtSWLSPjOryy0erAufRP8p9xzHwsj4t1MvW0aAzMf7
ht+TRf1FnyLDSJuk9uFCZ7lVyIERkSVze1fqssD+tSr/SKCmWYdwz/GE0BHE0W5e
OEh2gEyMkkaMRra7+SxHg9Suk2PC6M85raUm/ibt8NOMVWsqmUlOeEB0MmzL0sZS
IVtTEepm5g/t2YwAwyN75qzvkWK8F8XDM4bDdr6Z25Y1NpfAeE+POywsFzcFNSOq
r/GbCuZ1wRgpzOl1vtJw6htSnNOEX/tmjVSvwqswFUFSOXZO/y22b59HX9BeijVO
JiEFXb+PAgMBAAECggEBAJ7LrwgXz6JT+6FJ9ScR21GcQ/+kS3b/zUQXG7wbiB1U
jVjLRY3Nib7p2nybC9zmWnq/lL50a6vRxljhh6ebQuUChDDvJ1YLSQEdkT2s1yeg
7TL/Xen7mYYtscYcibnkpp1k5bkE3RULOYBW1nX1/BhXC4Zfw032SHNzZflBO+Ek
29H3yWj+avJxx3snVShSmrGq7c2JEkTkaoWb5b66DQfsHIU5zUvijVYygxlUC8w6
YuO7BuYba0lLlEss3bVdcSB1BVewrbRPHQ0KxsNuE5hYO8xlEeRu3d2ygZ+tyI00
faEkususWieWUD0R3VBR6106jIpyWSUO2ZK3Gm6zQqECgYEA/FhbtGP7cjbIblEf
/9T+tIOhnKvo+9UHtAulScSoSfyiZdPAUK1Ytt3tA6QYUcZ8Iemyj1oSa1OWz6xb
vfqeVTRXfG1lsYH9HWSd2ecZknQduOrmvx5L/luHyrnVt1sBwzL21mL+QDWI3V6U
pQF4bFIP5XU03u0/CtPPraSFSR8CgYEA4gqfE+KTku509akvfLYCklt3kG0uydD8
uKZ3GGuoqieqB74apJnGnlu7pHYi0+7FrbFcjvAj1X48U3wYI7zEx8K8lhhzJr22
fDDLYjGYT7wCPzpVivJQm+wfB1ISKOZCPA0ZNaLnzdQV+CqNOxh8Vnwczeza8IZm
oK1zF+3lC5ECgYABxHCn+8dIDoAq3aCWvxwlkYJxQXb5RI2wQiCfOqRfGEje47PG
HOCxLy64xs5wzC4UYrmgbWYRoF0/CRr/YqD3Qc2XDoEW1C08pnbAjvDL6MpIgESr
c//eQS/bSJ/pj9acUmAOMlVLh9R0kHQED9WTFKQN3FtJcGnvnnom4i8YywKBgQCg
r2Q+QocdoB3MtKRpRwm0+QiZxsPH+6RrrwpidcXEj8WzE1TlRduHnzZYxxIjDk3A
F6Dwi40tqzs/LawLW5mXV7uwB1l0ZNBgoF80QoU/ySrfv5wn1fGvpb64+YKnSGg1
QCp3koKuMuIbNESJifJ5mGjxijppWWGDP0nd7OMxwQKBgQDN25TwzooAyn1nkVZk
YXHA9AE1vnzGC6ZeFwU8Pc400TUptZAdrIB8GH1Jk73ev/RtLA9HDtj92r01g6OX
tGnERyrso6Cub1+WeYW65Mkx/ZgP/DhAj7fzElF5Y5CgICxkWQjCQCEExL1tLMyD
xtnsp1vekVb8lPAeee2L49YomA==
-----END PRIVATE KEY-----

View File

@@ -1,29 +0,0 @@
-----BEGIN CERTIFICATE-----
MIIE4zCCA0ugAwIBAgIRAJsScDL1fFlJp1LNV4+osc0wDQYJKoZIhvcNAQELBQAw
bTEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMSEwHwYDVQQLDBhjYW9l
cjExNUBERVNLVE9QLVZFRVVJM0ExKDAmBgNVBAMMH21rY2VydCBjYW9lcjExNUBE
RVNLVE9QLVZFRVVJM0EwHhcNMjExMjEwMDUzMDU5WhcNMjQwMzEwMDUzMDU5WjBH
MScwJQYDVQQKEx5ta2NlcnQgZGV2ZWxvcG1lbnQgY2VydGlmaWNhdGUxHDAaBgNV
BAsME2Nhb2VyMTE1QHpwcm8ubG9jYWwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDe0Hk3UCszqsVEcE7BnZXwrxI8FYY94E95PFxtSWLSPjOryy0erAuf
RP8p9xzHwsj4t1MvW0aAzMf7ht+TRf1FnyLDSJuk9uFCZ7lVyIERkSVze1fqssD+
tSr/SKCmWYdwz/GE0BHE0W5eOEh2gEyMkkaMRra7+SxHg9Suk2PC6M85raUm/ibt
8NOMVWsqmUlOeEB0MmzL0sZSIVtTEepm5g/t2YwAwyN75qzvkWK8F8XDM4bDdr6Z
25Y1NpfAeE+POywsFzcFNSOqr/GbCuZ1wRgpzOl1vtJw6htSnNOEX/tmjVSvwqsw
FUFSOXZO/y22b59HX9BeijVOJiEFXb+PAgMBAAGjggEiMIIBHjAOBgNVHQ8BAf8E
BAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAUOKsxHO4qtsgO
9KqkoeRPT9Et1SwwgdUGA1UdEQSBzTCByoIJbG9jYWxob3N0ghB3aG9hbWkubG9j
YWxob3N0ggxwZy5sb2NhbGhvc3SCG3N0YWNrcy1ibG9ja2NoYWluLmxvY2FsaG9z
dIIfc3RhY2tzLWJsb2NrY2hhaW4tYXBpLmxvY2FsaG9zdIIhc3RhY2tzLWJsb2Nr
Y2hhaW4tZXZlbnQubG9jYWxob3N0giRzdGFja3MtYmxvY2tjaGFpbi1leHBsb3Jl
ci5sb2NhbGhvc3SHBH8AAAGHEAAAAAAAAAAAAAAAAAAAAAEwDQYJKoZIhvcNAQEL
BQADggGBACOXUSl9UxNx/GSYvhcnYV8pHLB1Q3OBg+sPQrOEYFmsIm8MOsCc3i2M
mH2rPD4Sk1U74l+hZGD5QBGNiQBlBcIH2jWdu0jD6smF5XkWYOyBvuShDJDa6q+O
CxOwt1l4+vFSW/elF6Fk4rUDfnT5xv3F67lDmYt90aE+z9KyROcCb7ixaKdHR6fW
h6C8ymhGMxqRFc5H03T/0bxfurM8TEmmkl8LytXHQ82O1Xe2dWNcuAX5k0Jkh4bq
myW7rIXPQWxCojXtcXSRQe5o1GLclFvOHHSLSsx+xsPQgYjzXCbGw7BKB59RgQp+
SX6eJqRpp3Vl/m7Yc+ePqHz2DC2vyUpj1Ctb3CKD1M4e1sxXpXVrr9L6+5/kKg09
rNPF8SFivWQon3NyrUtG1x05gDBEzQH5H5TE5hVsvSPLNyVQQafd8hWhh2tu1eyP
SU/dVJCPGo5ydCeRvYyXXBjIFStH+uxFLCMwYXgyVC06Szbw7OYXYlJ8qMWcH6Er
DIpGergGIA==
-----END CERTIFICATE-----

10
unit-tests/cleanup.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo "Cleaning up mocknet data"
rm -rf $DIR/stacks-blockchain/data/mocknet
echo "Cleaning up postgres data"
rm -rf $DIR/stacks-blockchain-api/postgres
echo "DONE"

View File

@@ -0,0 +1,77 @@
version: "3.7"
services:
postgres:
image: "postgres:12.2"
ports:
- "5439:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: stacks_blockchain_api
POSTGRES_PORT: 5432
volumes:
- "./stacks-blockchain-api/postgres:/var/lib/postgresql/data"
networks:
- backend
stacks-blockchain:
build:
context: "./stacks-blockchain/docker"
dockerfile: Dockerfile
restart: on-failure
environment:
WAIT_BEFORE: 3
WAIT_AFTER: 3
WAIT_HOSTS: "stacks-blockchain-api:3700"
NOP_BLOCKSTACK_DEBUG: 1
STACKS_EVENT_OBSERVER: stacks-blockchain-api:3700
XBLOCKSTACK_DEBUG: 1
RUST_BACKTRACE: 1
STACKS_CHAIN_ID: "0x80000000"
PG_HOST: postgres
PG_PORT: 5432
PG_USER: postgres
PG_PASSWORD: postgres
PG_DATABASE: postgres
V2_POX_MIN_AMOUNT_USTX: 90000000260
STACKS_CORE_RPC_HOST: stacks-blockchain
STACKS_CORE_RPC_PORT: 20443
STACKS_API_ENABLE_FT_METADATA: 1
STACKS_API_ENABLE_NFT_METADATA: 1
ports:
- "20443:20443"
- "20444:20444"
volumes:
- ./stacks-blockchain/config:/app/config
- ./stacks-blockchain/data:/root/stacks-node/data
networks:
- backend
stacks-blockchain-api:
build:
context: "./stacks-blockchain-api/docker"
dockerfile: Dockerfile
restart: on-failure
networks:
- backend
environment:
WAIT_HOSTS: "postgres:5432"
PG_HOST: postgres
PG_PORT: 5432
PG_USER: postgres
PG_PASSWORD: postgres
PG_DATABASE: stacks_blockchain_api
STACKS_CORE_EVENT_PORT: "3700"
STACKS_CORE_EVENT_HOST: http://0.0.0.0
STACKS_BLOCKCHAIN_API_PORT: "3999"
STACKS_BLOCKCHAIN_API_HOST: 0.0.0.0
STACKS_BLOCKCHAIN_API_DB: pg
STACKS_CORE_RPC_HOST: stacks-blockchain
STACKS_CORE_RPC_PORT: "20443"
STACKS_CHAIN_ID: "0x80000000"
NODE_ENV: development
ports:
- "3999:3999"
- "9153:9153"
networks:
backend:

View File

@@ -0,0 +1,7 @@
FROM blockstack/stacks-blockchain-api:1.0.4
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.9.0/wait /wait
RUN chmod +x /wait
CMD /wait && node "./lib/index.js"

View File

@@ -0,0 +1,43 @@
[node]
working_dir = "/root/stacks-node/data"
rpc_bind = "0.0.0.0:20443"
p2p_bind = "0.0.0.0:20444"
wait_time_for_microblocks = 1000
use_test_genesis_chainstate = true
[[events_observer]]
endpoint = "stacks-blockchain-api:3700"
retry_count = 255
events_keys = ["*"]
[burnchain]
chain = "bitcoin"
mode = "mocknet"
commit_anchor_block_within = 10000
[[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"
[connection_options]
read_only_call_limit_write_length = 15000000
read_only_call_limit_read_length = 100000000
read_only_call_limit_write_count = 15500
read_only_call_limit_read_count = 15500
read_only_call_limit_runtime = 5000000000

View File

@@ -0,0 +1,6 @@
FROM blockstack/stacks-blockchain:2.05.0.0.0
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.9.0/wait /wait
RUN chmod +x /wait
CMD /wait && stacks-node start --config=/app/config/Stacks.toml