mirror of
https://github.com/serai-dex/serai.git
synced 2024-11-17 01:17:36 +00:00
Update Dockerfiles
Cleans files, updates Bitcoin and Monero versions, fixes Monero immediately exiting.
This commit is contained in:
parent
c2f32e7882
commit
b6579d5a2a
9 changed files with 148 additions and 178 deletions
|
@ -1,37 +1,46 @@
|
|||
# Deploy
|
||||
|
||||
## Run with Docker Compose
|
||||
|
||||
Running the Serai infrastructure is easy with Docker.
|
||||
|
||||
We utilize compose profiles to easily orchestrate various pieces of the infrastructure.
|
||||
We utilize compose profiles to easily orchestrate various pieces of the
|
||||
infrastructure.
|
||||
|
||||
**Example:** `docker compose --profile cluster-coins-sm up`
|
||||
|
||||
All commands are assumed to be ran from the deploy folder, not the serai root folder.
|
||||
All commands are assumed to be ran from `/deploy`, not the root folder.
|
||||
|
||||
### Profiles:
|
||||
* base - single node, named base
|
||||
* coins - node clients for coins only (BTC, ETH, XMR)
|
||||
* cluster-sm - Alice (Validator), Bob, Charlie
|
||||
* cluster-coins-sm - cluster-sm with coins
|
||||
* cluter-lg - Alice (Validator), Bob, Charlie, Dave, Eve, Ferdie
|
||||
* cluster-coins-lg - cluster-lg with coins
|
||||
* monero - full node monero only
|
||||
* bitcoin - full node bitcoin only
|
||||
* ethereum - full node ethereum only
|
||||
|
||||
You can supply one or more profiles to the docker compose command to orchestrate the desired components.
|
||||
* `bitcoin` - Bitcoin node
|
||||
* `monero` - Monero node
|
||||
* `ethereum` - Ethereum node
|
||||
* `coins` - Nodes for all external networks (BTC, ETH, XMR)
|
||||
|
||||
**Example:** `docker compose --profile base --profile bitcoin up`
|
||||
* `serai` - Serai node
|
||||
* `cluster-sm` - "Alice", "Bob", and "Charlie" Serai nodes, all validators
|
||||
* `cluster-lg` - `cluster-sm` with non-validators "Dave", "Eve", and "Ferdie"
|
||||
|
||||
You can supply one or more profiles to the docker compose command to orchestrate
|
||||
the desired components.
|
||||
|
||||
**Example:** `docker compose --profile coins --profile serai up`
|
||||
|
||||
## Orchestration Approach
|
||||
|
||||
### Builds
|
||||
The Serai node is the only piece of our infrastructure that we compile locally and for the first build, it can take 10 minutes or more to complete the image. Images for external coins download binaries, then verify the signatures and checksums of the build. Overall the standard image build process looks like:
|
||||
|
||||
The Serai infrastructure is locally compiled. This may take several minutes.
|
||||
|
||||
Images for external networks download binaries, before verifying their checksums
|
||||
and signatures.
|
||||
|
||||
**Stage 1 -- Builder**
|
||||
* Configure environment.
|
||||
* Get the binary.
|
||||
* Verify binary using GPG.
|
||||
* Uncompress binary to prepare image.
|
||||
* Decompress binary to prepare image.
|
||||
|
||||
**Stage 2 -- Image**
|
||||
* Copy needed files from builder.
|
||||
|
@ -40,13 +49,17 @@ The Serai node is the only piece of our infrastructure that we compile locally a
|
|||
* Expose necessary ports.
|
||||
* Map necessary volumes.
|
||||
|
||||
The best way is to build using docker compose, but if you prefer to build using docker directly, each image can be built directly.
|
||||
The best way is to build using `docker compose`. If you'd prefer to build using
|
||||
`docker` directly, each image can be built independently.
|
||||
|
||||
**Example:** `docker build ./coins/bitcoin`
|
||||
|
||||
### Entrypoint
|
||||
The Serai full node and external full nodes each are started from an entrypoint script inside the /scripts folder.
|
||||
|
||||
To update the scripts on the image you must rebuild the updated images using the --build flag after "up" in docker compose.
|
||||
The Serai node and external networks' nodes are each started from an entrypoint
|
||||
script inside the /scripts folder.
|
||||
|
||||
To update the scripts on the image you must rebuild the updated images using the
|
||||
`--build` flag after `up` in `docker compose`.
|
||||
|
||||
**Example:** `docker compose --profile bitcoin up --build`
|
||||
|
|
|
@ -1,49 +1,36 @@
|
|||
# Configure Environment
|
||||
FROM alpine:latest as builder
|
||||
|
||||
ENV BITCOIN_VERSION=23.0
|
||||
ENV BITCOIN_VERSION=25.0
|
||||
ENV GLIBC_VERSION=2.28-r0
|
||||
ENV BITCOIN_DATA=/home/bitcoin/.bitcoin
|
||||
|
||||
WORKDIR /home/bitcoin
|
||||
|
||||
RUN apk update \
|
||||
&& apk --no-cache add ca-certificates gnupg bash su-exec
|
||||
RUN apk update && \
|
||||
apk --no-cache add ca-certificates bash su-exec git gnupg
|
||||
|
||||
# Get Binary
|
||||
# TODO: When bitcoin.org publishes 23.0, retrieve checksums from there.
|
||||
RUN wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz \
|
||||
&& wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS \
|
||||
&& wget https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/SHA256SUMS.asc
|
||||
|
||||
# Verify Binary
|
||||
# For the PGP keys of builders and developers, refer to
|
||||
# https://github.com/bitcoin/bitcoin/tree/master/contrib/builder-keys
|
||||
# Serai recognizes the builder keys for 16/17 signatures
|
||||
# from the 23.0 release
|
||||
ENV KEYS 152812300785C96444D3334D17565732E08E5E41 0AD83877C1F0CD1EE9BD660AD7CC770B81FD22A8 590B7292695AFFA5B672CBB2E13FC145CD3F4304 948444FCE03B05BA5AB0591EC37B1C1D44C786EE 9EDAFF80E080659604F4A76B2EBB056FD847F8A7 E777299FC265DD04793070EB944D35F9AC3DB76A F4FC70F07310028424EFC20A8E4256593F177720 D1DBF2C4B96F2DEBF4C16654410108112E7EA81F
|
||||
ENV KEYS2 4DAF18FE948E7A965B30F9457E296D555E7F63A7 28E72909F1717FE9607754F8A7BEB2621678D37D 74E2DEF5D77260B98BC19438099BAD163C70FBFA 71A3B16735405025D447E8F274810B012346C9A6 9D3CC86A72F8494342EA5FD10A41BDC3F4FAFF1C 287AE4CA1187C68C08B49CB2D11BD4F33F1DB499 F9A8737BF4FF5C89C903DF31DD78544CF91B1514
|
||||
|
||||
# Use hardcoded prints to get keys from servers. 2 Different servers used.
|
||||
RUN gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys ${KEYS} \
|
||||
&& gpg --keyserver hkp://keys.openpgp.org:80 --recv-keys ${KEYS2}
|
||||
|
||||
# verify all sigs and check for valid signature from laanwj -- 71A3
|
||||
RUN gpg --verify --status-fd 1 --verify SHA256SUMS.asc SHA256SUMS | grep "^\[GNUPG:\] VALIDSIG.*71A3B16735405025D447E8F274810B012346C9A6"
|
||||
# Verify all sigs and check for valid signature from laanwj -- 71A3
|
||||
RUN git clone https://github.com/bitcoin-core/guix.sigs && \
|
||||
cd guix.sigs/builder-keys && \
|
||||
find . -iname '*.gpg' -exec gpg --import {} \; && \
|
||||
gpg --verify --status-fd 1 --verify ../../SHA256SUMS.asc ../../SHA256SUMS | grep "^\[GNUPG:\] VALIDSIG.*71A3B16735405025D447E8F274810B012346C9A6"
|
||||
|
||||
RUN grep bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz SHA256SUMS | sha256sum -c
|
||||
|
||||
# Prepare Image
|
||||
RUN tar xzvf bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz
|
||||
|
||||
# Prepare Image
|
||||
FROM ubuntu:latest as image
|
||||
WORKDIR /home/bitcoin
|
||||
COPY --from=builder /home/bitcoin/* .
|
||||
|
||||
RUN mv bin/* /bin \
|
||||
&& mv lib/* /lib \
|
||||
&& mv share/* /share
|
||||
RUN mv bin/* /bin && mv lib/* /lib
|
||||
|
||||
COPY ./scripts /scripts
|
||||
|
||||
|
|
|
@ -13,8 +13,8 @@ RUN wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-${GETH_
|
|||
&& wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-${GETH_VERSION}.tar.gz.asc
|
||||
|
||||
# Verify Binary
|
||||
# refer to https://geth.ethereum.org/downloads/#openpgp_signatures
|
||||
# for the PGP keys of builders and developers
|
||||
# Refer to https://geth.ethereum.org/downloads/#openpgp_signatures for the PGP
|
||||
# PGP keys of builders and developers
|
||||
ENV KEYS 9BA28146 E058A81C 05A5DDF0 1CCB7DD2
|
||||
|
||||
RUN gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys ${KEYS} \
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
FROM alpine:latest as builder
|
||||
|
||||
# https://downloads.getmonero.org/cli/monero-linux-x64-v0.18.1.0.tar.bz2
|
||||
# https://downloads.getmonero.org/cli/monero-linux-x64-v0.18.2.2.tar.bz2
|
||||
# Verification will fail if MONERO_VERSION doesn't match the latest
|
||||
# due to the way monero publishes releases. They overwrite a single hashes.txt file
|
||||
# each release, meaning we can only grab the SHA256 of the latest release.
|
||||
# due to the way monero publishes releases. They overwrite a single hashes.txt
|
||||
# file with each release, meaning we can only grab the SHA256 of the latest
|
||||
# release.
|
||||
# Most publish a asc file for each release / build architecture ¯\_(ツ)_/¯
|
||||
ENV MONERO_VERSION=0.18.1.0
|
||||
# monero-linux-x64-v0.18.1.0.tar.bz2 - https://github.com/monero-project/monero-site/commit/9dda1e3ccb84aa14dc09ed598a6d438c18363833
|
||||
ENV MONERO_VERSION=0.18.2.2
|
||||
ENV GLIBC_VERSION=2.28-r0
|
||||
|
||||
WORKDIR /home/monero
|
||||
|
@ -18,12 +18,10 @@ RUN apk update \
|
|||
RUN wget https://downloads.getmonero.org/cli/monero-linux-x64-v${MONERO_VERSION}.tar.bz2
|
||||
|
||||
# Verify Binary -- fingerprint from https://github.com/monero-project/monero-site/issues/1949
|
||||
ENV KEYS F0AF4D462A0BDF92
|
||||
RUN gpg --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options no-self-sigs-only --receive-keys ${KEYS}
|
||||
|
||||
ADD ./temp/hashes-v${MONERO_VERSION}.txt .
|
||||
RUN gpg --verify hashes-v${MONERO_VERSION}.txt \
|
||||
&& cat hashes-v${MONERO_VERSION}.txt | grep "$(sha256sum monero-linux-x64-v${MONERO_VERSION}.tar.bz2 | cut -c 1-64)"
|
||||
RUN gpg --keyserver hkp://keyserver.ubuntu.com:80 --keyserver-options no-self-sigs-only --receive-keys 81AC591FE9C4B65C5806AFC3F0AF4D462A0BDF92 && \
|
||||
gpg --verify hashes-v${MONERO_VERSION}.txt && \
|
||||
cat hashes-v${MONERO_VERSION}.txt | grep "$(sha256sum monero-linux-x64-v${MONERO_VERSION}.tar.bz2 | cut -c 1-64)"
|
||||
|
||||
# Cleanup
|
||||
RUN tar -xvjf monero-linux-x64-v${MONERO_VERSION}.tar.bz2 --strip-components=1
|
||||
|
|
|
@ -6,4 +6,5 @@ RPC_PASS="${RPC_PASS:=seraidex}"
|
|||
# Run Monero
|
||||
# TODO: Restore Auth
|
||||
monerod --regtest --offline --fixed-difficulty=1 \
|
||||
--rpc-bind-ip=0.0.0.0 --rpc-access-control-origins * --confirm-external-bind
|
||||
--rpc-bind-ip=0.0.0.0 --rpc-access-control-origins * --confirm-external-bind \
|
||||
--non-interactive
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
# This GPG-signed message exists to confirm the SHA256 sums of Monero binaries.
|
||||
#
|
||||
# Please verify the signature against the key for binaryFate in the
|
||||
# source code repository (/utils/gpg_keys).
|
||||
#
|
||||
#
|
||||
## CLI
|
||||
0ea5ddb0630d6657810d38b1968ae76ba8e54806f46a2cc9bd02602f999aa741 monero-android-armv7-v0.18.1.0.tar.bz2
|
||||
ca8c9daeaee758d482d5cde94912d33b2f62656719c821b2a496fd81c0d52a79 monero-android-armv8-v0.18.1.0.tar.bz2
|
||||
1076d260b8b8fe513653916dabfa3c3790030836750d3af6bca56fc138a06af1 monero-freebsd-x64-v0.18.1.0.tar.bz2
|
||||
ecba059a2dbbef9f059e37c0f329df037501752dd871719b41104c5d4c6d358b monero-linux-armv7-v0.18.1.0.tar.bz2
|
||||
69e2bba6d5bd8fcf4986f59f232fdfd33b4ae2ce0959fd59567b153b923e057e monero-linux-armv8-v0.18.1.0.tar.bz2
|
||||
9318e522a5cf95bc856772f15d7507fdef2c028e01f70d020078ad5e208f1304 monero-linux-x64-v0.18.1.0.tar.bz2
|
||||
3d54dc813116955537a4a5ae4a0a3943d9d32842e076c223ea096551db438158 monero-linux-x86-v0.18.1.0.tar.bz2
|
||||
065766f5799c6b972145e2b27830a584c18f64bdd276f31801493b7ef9e51b3c monero-mac-armv8-v0.18.1.0.tar.bz2
|
||||
da87ac5c713f17985cd57bcd007ec76ffe75123cb546cd655edb14fdd8c3d745 monero-mac-x64-v0.18.1.0.tar.bz2
|
||||
d0e2b3255163ec0499de42639cc86cf4ddae0bc5fa65aa7377ff9c40305da8fd monero-win-x64-v0.18.1.0.zip
|
||||
ed18233503b6135a29732a79b261b50aced24b99686843bc11e7e9fb2d50cf42 monero-win-x86-v0.18.1.0.zip
|
||||
0e4cb82d5f0c455536526c9f3105d1c8f683d4c0ad18a69972c0863944b01328 monero-source-v0.18.1.0.tar.bz2
|
||||
#
|
||||
## GUI
|
||||
9b2c8978f96e8c9662373b427ef320ccd9d652d346435a8487a756bf55cf43ff monero-gui-install-win-x64-v0.18.1.0.exe
|
||||
6c993b622516d85555d8962767b39c79a3b3614cbdf0ab9f62fa07e3826498d0 monero-gui-linux-x64-v0.18.1.0.tar.bz2
|
||||
0b06351b370863dce8fff9d8659a8235b98505c61c7e4f5af23843b161d92186 monero-gui-mac-x64-v0.18.1.0.dmg
|
||||
39c4290a01072cc8fe8eabaa2c61598421a72eac6011eccd16a2a63e89323fa2 monero-gui-win-x64-v0.18.1.0.zip
|
||||
ecb33e329af5cf671b562a0c14a562a7b061736a0f75733dc862b29e9176797c monero-gui-source-v0.18.1.0.tar.bz2
|
||||
#
|
||||
#
|
||||
# ~binaryFate
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEgaxZH+nEtlxYBq/D8K9NRioL35IFAmL04d8ACgkQ8K9NRioL
|
||||
35II+A/+J2z+VbOIc4ZZdHRuwOchGcyyafpmtQM3JqSNCtlo3y2973yuUSWen26T
|
||||
MSkwsOIinGxsRllAdTyoJPTvv0Ohl2vVqbigAvrtuti9h0C75mX1AdBY7C2ot37L
|
||||
6flWDcBdE1VJOsZqPpUj6MsF8738H/n1z4KAjA5WZB7bJerHB3bFu4J5TjUFmhM1
|
||||
Uf+uH28V7hJUd3sWAe6okbJWsexfLdof1jvpg5sH7Mb2XhP6C8bJVDVXYzDOZoan
|
||||
zYB9IcBAP9pY9xp6F1M33n5Un+75ShyyTrGjRc8Fbbgr/SpsTZZ5YKwoVAEnMH3K
|
||||
AEOLFDZEhzO4j0BoyeV/K9q6bzSSsrbyo1yQ38UWT3yCJYpQJWKmFJHvMz0/N1xH
|
||||
pMpuc5otmRiYddB/PgRp+uKzQzq6ye1LYh3PmvU8b9yaE+2XxqXR8cTUNid0E5gQ
|
||||
iXZjuLD06nDCtSe7m2Duj9W39PeB3M+kALU27KOjcio7WG0H2O0TJqVyBnBbviYi
|
||||
PpCa5sBbr9NxdgRLWEaFfynaVa7ls3NkaO9ipN0tRJ6uUuAxuEgzBRpL+cYHK+fo
|
||||
ZD223xP8Z33ZF+DIe6D+sCDW/UJNGCK3PBuDSQrzXSQkysQj2+mcQ9JNFIkY+Xm2
|
||||
SvDIaTuLAZLo6DXxzPPBuKB1iYWh0LUmAMaCOM220j/eKq9Y5yA=
|
||||
=M0wB
|
||||
-----END PGP SIGNATURE-----
|
48
deploy/coins/monero/temp/hashes-v0.18.2.2.txt
Normal file
48
deploy/coins/monero/temp/hashes-v0.18.2.2.txt
Normal file
|
@ -0,0 +1,48 @@
|
|||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
# This GPG-signed message exists to confirm the SHA256 sums of Monero binaries.
|
||||
#
|
||||
# Please verify the signature against the key for binaryFate in the
|
||||
# source code repository (/utils/gpg_keys).
|
||||
#
|
||||
#
|
||||
## CLI
|
||||
ec7b9913d048bec79ec7f7320df03e1f9c7ee015a051d8509e2d4ed33ddf3301 monero-android-armv7-v0.18.2.2.tar.bz2
|
||||
c9d4889ff3f2c01e34f3beb3ab640fd73a535cc715ae8db591fd23724be0401c monero-android-armv8-v0.18.2.2.tar.bz2
|
||||
187f58410b5aac866f7200bb1e4244ba1940b51db772d33374dfa748f30c11a7 monero-freebsd-x64-v0.18.2.2.tar.bz2
|
||||
11b70a9965e3749970531baaa6c9d636b631d8b0a0256ee23a8e519f13b4b300 monero-linux-armv7-v0.18.2.2.tar.bz2
|
||||
f3867f2865cb98ab1d18f30adfd9168f397bd07bf7c36550dfe3a2a11fc789ba monero-linux-armv8-v0.18.2.2.tar.bz2
|
||||
186800de18f67cca8475ce392168aabeb5709a8f8058b0f7919d7c693786d56b monero-linux-x64-v0.18.2.2.tar.bz2
|
||||
c0999191b57156fc7b4e7e64fe50ffdf16781bae0ebc12c96c41b2c60bdee79f monero-linux-x86-v0.18.2.2.tar.bz2
|
||||
b6acf2716e6474d329d4c0bdf3b797299e4e789758f631bafa3930b613e3643c monero-mac-armv8-v0.18.2.2.tar.bz2
|
||||
8043a681155bf0339dc2eac1feb93d03295bd68c9bb5b472600fa5b1439ba68d monero-mac-x64-v0.18.2.2.tar.bz2
|
||||
964c13f5d596289d2ab8ba9e265ff1e255a06269cf8fd216187d7b77a11c1371 monero-win-x64-v0.18.2.2.zip
|
||||
b7366408e74b321aa5fa3993187a862d93dc41cbc43dc585f82fc17a4c423ded monero-win-x86-v0.18.2.2.zip
|
||||
c3345c4ca24aab13182433ccec8f7008ec3e37ba5e8c640714ad015a1f683aac monero-source-v0.18.2.2.tar.bz2
|
||||
#
|
||||
## GUI
|
||||
165c183a7490cfe04a8296e05ad592e3e08705c879bd9facf2dab16a6ef2cf05 monero-gui-install-win-x64-v0.18.2.2.exe
|
||||
027707b0ad740908c26895e3bf569ca284a813263129fe2635049313c5129230 monero-gui-linux-x64-v0.18.2.2.tar.bz2
|
||||
0b676d21b8133830b8446744382ae7c8b51d0e228713184d70100721504bdd4c monero-gui-mac-x64-v0.18.2.2.dmg
|
||||
770eb381e1eb3490113c1edac67a92506e0b027daa1de8486b8d5fac3b4def54 monero-gui-win-x64-v0.18.2.2.zip
|
||||
58ced28d3eecda0c47f51003ae65b5bdf076ef60bdb25614421a07ef2e0791a4 monero-gui-source-v0.18.2.2.tar.bz2
|
||||
#
|
||||
#
|
||||
# ~binaryFate
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEgaxZH+nEtlxYBq/D8K9NRioL35IFAmQ0AzAACgkQ8K9NRioL
|
||||
35IOCA//YyuvSVI6k8wOxDV9FTIVxYhEganpJJQfXx5Z7Cz022GnJRRYdSBHgvhP
|
||||
ALZ9T3oxaY+pXV7iYq6kHeXdkJ7Rrkmjho09sjwS1dpo7u1CXw5wFK7Fn8TnoSjt
|
||||
ykGaCwcfPTg8QzT7sjSulCGEsNPv2Lg5+bDcNcr6NXukoTTD4BxxQeyJxKbyZg7F
|
||||
/ImVTVNO5qH15zDXVIE/oUSohxrNvWtwdjjCbmmbGwaJsnBw+cWbybJyWuAzsNYG
|
||||
xtr2tuABJM0Vy2G28uNWZxSqE+ty5CEk+bQSZPGFjPemwtJOS55qPOBxqSn5O+cy
|
||||
YnEdbGjJthTM9a+om0qQ2Z1b45ahmZ9M2rkX7gOXqFDhVqaErbWFsEzgPGIR3YkS
|
||||
2Hy80cdFhRKp2dLVJfv3vHQJzyU4OXjjcHy2MXE349Ec/Iquun5RO5GJMyySnkGK
|
||||
oySSyi/D+A/jgimmFN6DNZaDLh0AvaUYzYJI9B2Y/9troo6YSvItD876gcZ84bvU
|
||||
dJYFt9b6q66ngwdFOVcmMVDWM6LwuXYDZHRwzdo5ujeTof+5Bsn72s2J64pYvVqc
|
||||
VMGCrJfCePNr9iLXWSW+Z2MDrHE1XrNSjOxkQNNoTJFwur97j/K7O8+WeaEpFAFs
|
||||
H9C09/mPzHehYGYqXBk7ghLtr3N3j4DgnCU7uM9oASdO5e57bts=
|
||||
=W+Y7
|
||||
-----END PGP SIGNATURE-----
|
|
@ -1,19 +1,6 @@
|
|||
version: "3.9"
|
||||
name: serai-dev
|
||||
# ------------------------------------------------------------
|
||||
# Services
|
||||
# ------------------------------------------------------------
|
||||
# Profiles:
|
||||
# base - single node, unidentified
|
||||
# coins - node clients for coins only (BTC, ETH, XMR)
|
||||
# cluster-sm - Alice, Bob, Charlie
|
||||
# cluster-coins-sm - cluster-sm with coins
|
||||
# cluster-lg - Alice, Bob, Charlie, Dave, Eve, Ferdie
|
||||
# cluster-coins-lg - cluster-lg with coins
|
||||
# monero - full node monero only
|
||||
# bitcoin - full node bitcoin only
|
||||
# ethereum - full node ethereum only
|
||||
# Example: docker compose --profile bitcoin up
|
||||
|
||||
volumes:
|
||||
serai-base:
|
||||
serai-alice:
|
||||
|
@ -24,6 +11,47 @@ volumes:
|
|||
serai-ferdie:
|
||||
|
||||
services:
|
||||
# Coin services
|
||||
|
||||
bitcoin:
|
||||
profiles:
|
||||
- bitcoin
|
||||
- coins
|
||||
build:
|
||||
context: ./coins/bitcoin/
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- "./coins/bitcoin/scripts:/scripts"
|
||||
entrypoint: /scripts/entry-dev.sh
|
||||
ports:
|
||||
- "18443:18443"
|
||||
|
||||
ethereum:
|
||||
profiles:
|
||||
- ethereum
|
||||
- coins
|
||||
build:
|
||||
context: ./coins/ethereum/
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- "./coins/ethereum/scripts:/scripts"
|
||||
entrypoint: /scripts/entry-dev.sh
|
||||
|
||||
monero:
|
||||
profiles:
|
||||
- monero
|
||||
- coins
|
||||
build:
|
||||
context: ./coins/monero/
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- "./coins/monero/scripts:/scripts"
|
||||
entrypoint: /scripts/entry-dev.sh
|
||||
ports:
|
||||
- "18081:18081"
|
||||
|
||||
# Serai services
|
||||
|
||||
_serai:
|
||||
&serai_defaults
|
||||
restart: unless-stopped
|
||||
|
@ -39,14 +67,14 @@ services:
|
|||
volumes:
|
||||
- "./serai/scripts:/scripts"
|
||||
|
||||
serai-base:
|
||||
serai-node:
|
||||
<<: *serai_defaults
|
||||
hostname: serai-base
|
||||
hostname: serai-node
|
||||
profiles:
|
||||
- base
|
||||
- serai
|
||||
environment:
|
||||
CHAIN: local
|
||||
NAME: base
|
||||
NAME: node
|
||||
|
||||
serai-alice:
|
||||
<<: *serai_defaults
|
||||
|
@ -54,9 +82,7 @@ services:
|
|||
profiles:
|
||||
- alice
|
||||
- cluster-sm
|
||||
- cluster-coins-sm
|
||||
- cluster-lg
|
||||
- cluster-coins-lg
|
||||
environment:
|
||||
CHAIN: local
|
||||
NAME: alice
|
||||
|
@ -68,9 +94,7 @@ services:
|
|||
profiles:
|
||||
- bob
|
||||
- cluster-sm
|
||||
- cluster-coins-sm
|
||||
- cluster-lg
|
||||
- cluster-coins-lg
|
||||
environment:
|
||||
CHAIN: local
|
||||
NAME: bob
|
||||
|
@ -82,9 +106,7 @@ services:
|
|||
profiles:
|
||||
- charlie
|
||||
- cluster-sm
|
||||
- cluster-coins-sm
|
||||
- cluster-lg
|
||||
- cluster-coins-lg
|
||||
environment:
|
||||
CHAIN: local
|
||||
NAME: charlie
|
||||
|
@ -96,7 +118,6 @@ services:
|
|||
profiles:
|
||||
- dave
|
||||
- cluster-lg
|
||||
- cluster-coins-lg
|
||||
environment:
|
||||
CHAIN: local
|
||||
NAME: dave
|
||||
|
@ -107,7 +128,6 @@ services:
|
|||
profiles:
|
||||
- eve
|
||||
- cluster-lg
|
||||
- cluster-coins-lg
|
||||
environment:
|
||||
CHAIN: local
|
||||
NAME: eve
|
||||
|
@ -118,56 +138,6 @@ services:
|
|||
profiles:
|
||||
- ferdie
|
||||
- cluster-lg
|
||||
- cluster-coins-lg
|
||||
environment:
|
||||
CHAIN: local
|
||||
NAME: ferdie
|
||||
|
||||
# Processor Services
|
||||
|
||||
# Coin Services
|
||||
bitcoin:
|
||||
profiles:
|
||||
- single-coins
|
||||
- cluster-coins-sm
|
||||
- cluster-coins-lg
|
||||
- coins
|
||||
- bitcoin
|
||||
build:
|
||||
context: ./coins/bitcoin/
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- "./coins/bitcoin/scripts:/scripts"
|
||||
entrypoint: /scripts/entry-dev.sh
|
||||
ports:
|
||||
- "18443:18443"
|
||||
|
||||
ethereum:
|
||||
profiles:
|
||||
- single-coins
|
||||
- cluster-coins-sm
|
||||
- cluster-coins-lg
|
||||
- coins
|
||||
- ethereum
|
||||
build:
|
||||
context: ./coins/ethereum/
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- "./coins/ethereum/scripts:/scripts"
|
||||
entrypoint: /scripts/entry-dev.sh
|
||||
|
||||
monero:
|
||||
profiles:
|
||||
- single-coins
|
||||
- cluster-coins-sm
|
||||
- cluster-coins-lg
|
||||
- coins
|
||||
- monero
|
||||
build:
|
||||
context: ./coins/monero/
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- "./coins/monero/scripts:/scripts"
|
||||
entrypoint: /scripts/entry-dev.sh
|
||||
ports:
|
||||
- "18081:18081"
|
||||
|
|
|
@ -5,6 +5,7 @@ LABEL description="STAGE 1: Build"
|
|||
ADD common /serai/common
|
||||
ADD crypto /serai/crypto
|
||||
ADD coins /serai/coins
|
||||
ADD message-queue /serai/message-queue
|
||||
ADD processor /serai/processor
|
||||
ADD coordinator /serai/coordinator
|
||||
ADD substrate /serai/substrate
|
||||
|
@ -32,7 +33,7 @@ RUN --mount=type=cache,target=/root/.cache/ \
|
|||
--mount=type=cache,target=/root/.solc-select \
|
||||
solc-select use 0.8.16
|
||||
|
||||
# Mount cargo and serai cache for Cache & Build
|
||||
# Mount cargo and the Serai cache
|
||||
RUN --mount=type=cache,target=/root/.local/ \
|
||||
--mount=type=cache,target=/root/.solc-select \
|
||||
--mount=type=cache,target=/root/.cache/ \
|
||||
|
|
Loading…
Reference in a new issue