1
- ARG STACKS_API_VERSION=v0.63 .0
2
- ARG STACKS_NODE_VERSION=2.0.11.2 .0
1
+ ARG STACKS_API_VERSION=v0.71 .0
2
+ ARG STACKS_NODE_VERSION=2.0.11.4 .0
3
3
ARG STACKS_API_REPO=blockstack/stacks-blockchain-api
4
4
ARG STACKS_NODE_REPO=blockstack/stacks-blockchain
5
5
ARG PG_VERSION=12
6
- ARG STACKS_NETWORK=testnet
6
+ ARG STACKS_NETWORK=mainnet
7
7
ARG STACKS_LOG_DIR=/var/log/stacks-node
8
8
ARG STACKS_SVC_DIR=/etc/service
9
9
ARG STACKS_BLOCKCHAIN_DIR=/stacks-blockchain
10
10
ARG STACKS_BLOCKCHAIN_API_DIR=/stacks-blockchain-api
11
- ARG PG_DATA=/data/postgres
12
11
ARG V2_POX_MIN_AMOUNT_USTX=90000000260
12
+ ARG PG_DATA=/data/postgres
13
+ ARG PG_DATABASE=postgres
14
+ ARG PG_HOST=127.0.0.1
15
+ ARG PG_PORT=5432
16
+ ARG PG_USER=postgres
17
+ ARG PG_PASSWORD=postgres
13
18
14
19
# ######################################################################
15
20
# # Build the stacks-blockchain-api
@@ -60,13 +65,17 @@ ARG STACKS_BLOCKCHAIN_API_DIR
60
65
ARG PG_DATA
61
66
ARG PG_VERSION
62
67
ARG V2_POX_MIN_AMOUNT_USTX
63
- ENV PG_HOST=127.0.0.1
64
- ENV PG_PORT=5432
65
- ENV PG_USER=postgres
66
- ENV PG_PASSWORD=postgres
67
- ENV PG_DATABASE=postgres
68
+ ARG PG_HOST
69
+ ARG PG_PORT
70
+ ARG PG_USER
71
+ ARG PG_PASSWORD
72
+ ARG PG_DATABASE
73
+ ENV PG_HOST=${PG_HOST}
74
+ ENV PG_PORT=${PG_PORT}
75
+ ENV PG_USER=${PG_USER}
76
+ ENV PG_PASSWORD=${PG_PASSWORD}
77
+ ENV PG_DATABASE=${PG_DATABASE}
68
78
ENV PG_DATA=${PG_DATA}
69
- ENV PG_VERSION=${PG_VERSION}
70
79
ENV STACKS_SVC_DIR=${STACKS_SVC_DIR}
71
80
ENV STACKS_BLOCKCHAIN_DIR=${STACKS_BLOCKCHAIN_DIR}
72
81
ENV STACKS_BLOCKCHAIN_API_DIR=${STACKS_BLOCKCHAIN_API_DIR}
@@ -79,6 +88,7 @@ ENV STACKS_BLOCKCHAIN_API_PORT=3999
79
88
ENV STACKS_BLOCKCHAIN_API_HOST=0.0.0.0
80
89
ENV STACKS_CORE_RPC_HOST=127.0.0.1
81
90
ENV STACKS_CORE_RPC_PORT=20443
91
+ ENV STACKS_CORE_P2P_PORT=20444
82
92
ENV MAINNET_STACKS_CHAIN_ID=0x00000001
83
93
ENV TESTNET_STACKS_CHAIN_ID=0x80000000
84
94
ENV V2_POX_MIN_AMOUNT_USTX=${V2_POX_MIN_AMOUNT_USTX}
@@ -110,15 +120,14 @@ RUN mkdir -p \
110
120
&& rm -rf /var/cache/apt/* /var/lib/apt/lists/* /tmp/* ${STACKS_SVC_DIR}/getty*
111
121
COPY --from=stacks-blockchain-build /out ${STACKS_BLOCKCHAIN_DIR}
112
122
COPY --from=stacks-blockchain-api-build /app ${STACKS_BLOCKCHAIN_API_DIR}
113
- RUN cp ${STACKS_BLOCKCHAIN_API_DIR}/stacks-blockchain/Stacks-mocknet.toml ${STACKS_BLOCKCHAIN_DIR}/Stacks-testnet.toml \
114
- && cp ${STACKS_BLOCKCHAIN_API_DIR}/stacks-blockchain/Stacks-mocknet.toml ${STACKS_BLOCKCHAIN_DIR}/Stacks-mocknet.toml
123
+ COPY stacks-blockchain/Stacks-*.toml ${STACKS_BLOCKCHAIN_DIR}/
115
124
116
125
# ##################################
117
126
# # runit service files
118
127
RUN printf '#!/bin/sh\n exec 2>&1\n [ ! -d %s ] && mkdir -p %s && chown -R postgres:postgres %s && gosu postgres /usr/lib/postgresql/%s/bin/pg_ctl init -D %s\n exec gosu postgres /usr/lib/postgresql/%s/bin/postmaster -D %s' ${PG_DATA} ${PG_DATA} ${PG_DATA} ${PG_VERSION} ${PG_DATA} ${PG_VERSION} ${PG_DATA} > ${STACKS_SVC_DIR}/postgresql/run \
119
128
&& printf '#!/bin/sh\n rm -rf %s' ${PG_DATA} > ${STACKS_SVC_DIR}/postgresql/finish \
120
129
&& printf '#!/bin/sh\n exec svlogd -tt %s/postgresql' ${STACKS_LOG_DIR} > ${STACKS_SVC_DIR}/postgresql/log/run \
121
- && printf '#!/bin/sh\n exec 2>&1\n if [ $STACKS_NETWORK != "mainnet" ]; then \n exec %s/stacks-node start --config=%s/Stacks-testnet .toml 2>&1\n else \n exec %s/stacks-node mainnet 2>&1\n fi' ${STACKS_BLOCKCHAIN_DIR} ${STACKS_BLOCKCHAIN_DIR} ${STACKS_BLOCKCHAIN_DIR} > ${STACKS_SVC_DIR}/stacks-blockchain/run \
130
+ && printf '#!/bin/sh\n exec 2>&1\n case $STACKS_NETWORK in \n testnet) \n exec %s/stacks-node start --config=%s/Stacks-testnet.toml 2>&1 \n ;; \n mocknet) \n exec %s/stacks-node start --config=%s/Stacks-mocknet .toml 2>&1\n ;; \n *) \n exec %s/stacks-node start --config=%s/Stacks- mainnet.toml 2>&1\n ;; \n esac' ${STACKS_BLOCKCHAIN_DIR} ${STACKS_BLOCKCHAIN_DIR} ${STACKS_BLOCKCHAIN_DIR} ${STACKS_BLOCKCHAIN_DIR} ${STACKS_BLOCKCHAIN_DIR} ${STACKS_BLOCKCHAIN_DIR} > ${STACKS_SVC_DIR}/stacks-blockchain/run \
122
131
&& printf '#!/bin/bash\n exec 2>&1\n sv start postgresql stacks-blockchain || exit 1\n if [ $STACKS_NETWORK != "mainnet" ]; then\n export STACKS_CHAIN_ID=%s\n else\n export STACKS_CHAIN_ID=%s\n export V2_POX_MIN_AMOUNT_USTX=%s\n fi\n cd %s && exec node ./lib/index.js 2>&1' ${TESTNET_STACKS_CHAIN_ID} ${MAINNET_STACKS_CHAIN_ID} ${V2_POX_MIN_AMOUNT_USTX} ${STACKS_BLOCKCHAIN_API_DIR} > ${STACKS_SVC_DIR}/stacks-blockchain-api/run \
123
132
&& printf '#!/bin/sh\n exec svlogd -tt %s/stacks-blockchain-api' ${STACKS_LOG_DIR} > ${STACKS_SVC_DIR}/stacks-blockchain-api/log/run \
124
133
&& printf '#!/bin/sh\n /usr/bin/runsvdir %s' ${STACKS_SVC_DIR} > /entrypoint.sh \
@@ -131,6 +140,6 @@ RUN printf '#!/bin/sh\nexec 2>&1\n[ ! -d %s ] && mkdir -p %s && chown -R postgre
131
140
${STACKS_SVC_DIR}/stacks-blockchain-api/log/run \
132
141
/entrypoint.sh
133
142
134
- EXPOSE ${STACKS_BLOCKCHAIN_API_PORT} ${STACKS_CORE_RPC_PORT}
143
+ EXPOSE ${STACKS_BLOCKCHAIN_API_PORT} ${STACKS_CORE_RPC_PORT} ${STACKS_CORE_P2P_PORT}
135
144
VOLUME /data
136
- ENTRYPOINT ["/entrypoint.sh" ]
145
+ CMD ["/entrypoint.sh" ]
0 commit comments