Update Dockerfiles

Cleans files, updates Bitcoin and Monero versions, fixes Monero immediately
exiting.
This commit is contained in:
Luke Parker 2023-07-19 19:22:49 -04:00
parent c2f32e7882
commit b6579d5a2a
No known key found for this signature in database
9 changed files with 148 additions and 178 deletions

View file

@ -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`

View file

@ -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

View file

@ -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} \

View file

@ -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

View file

@ -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

View file

@ -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-----

View 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-----

View file

@ -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"

View file

@ -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/ \