Subsquid Worker Node Hardware Requirements
4 vCPU
8GB RAM
1TB SSD
Public IP
1gbps network / Always On
100_000 tSQD tokens
Some AGOR (Arbitrum Goerli)
Create bash script inside of a new folder. This script will help use run the Subsquid worker node.
mkdir -p $HOME/subsquid-setup
sudo tee $HOME/subsquid-setup/run_worker.sh > /dev/null <<'EOF'
#!/usr/bin/env sh
docker compose --version >/dev/null || (echo "Docker compose not installed"; exit 1)
if [ ! -d "$1" ]
then
echo "Provided data directory ($1) does not exist. Usage: $0 <DATA_DIR> <DOCKER_COMPOSE_ARGS>"
exit 1
fi
# Get absolute path
DATA_DIR="$(cd "$(dirname -- "$1")" >/dev/null; pwd -P)/$(basename -- "$1")"
echo "Using data dir $DATA_DIR"
shift
export USER_ID=$(id -u)
export GROUP_ID=$(id -g)
cat <<EOF > docker-compose.yml
version: "3.8"
services:
rpc_node:
image: subsquid/rpc-node:mirovia
environment:
P2P_LISTEN_ADDR: /ip4/0.0.0.0/tcp/${LISTEN_PORT:-12345}
RPC_LISTEN_ADDR: 0.0.0.0:50051
BOOT_NODES: >
12D3KooWSRvKpvNbsrGbLXGFZV7GYdcrYNh4W2nipwHHMYikzV58 /dns4/testnet.subsquid.io/tcp/22345,
12D3KooWQC9tPzj2ShLn39RFHS5SGbvbP2pEd7bJ61kSW2LwxGSB /dns4/testnet.subsquid.io/tcp/22346
KEY_PATH: /app/data/key
volumes:
- ./:/app/data
user: "${USER_ID}:${GROUP_ID}"
ports:
- "${LISTEN_PORT:-12345}:${LISTEN_PORT:-12345}"
worker:
depends_on:
rpc_node:
condition: service_healthy
image: subsquid/p2p-worker:mirovia
environment:
PROXY_ADDR: rpc_node:50051
SCHEDULER_ID: 12D3KooWQER7HEpwsvqSzqzaiV36d3Bn6DZrnwEunnzS76pgZkMU
AWS_ACCESS_KEY_ID: 66dfc7705583f6fd9520947ac10d7e9f
AWS_SECRET_ACCESS_KEY: a68fdd7253232e30720a4c125f35a81bd495664a154b1643b5f5d4a4a5280a4f
AWS_S3_ENDPOINT: https://7a28e49ec5f4a60c66f216392792ac38.r2.cloudflarestorage.com
AWS_REGION: auto
SENTRY_DSN: https://3d427b41736042ae85010ec2dc864f05@o1149243.ingest.sentry.io/4505589334081536
volumes:
- ${DATA_DIR}:/app/data
user: "${USER_ID}:${GROUP_ID}"
EOF
exec docker compose "$@"
mkdir -p $HOME/subsquid-setup
sudo tee $HOME/subsquid-setup/run_worker.sh > /dev/null <<'EOF'
#!/usr/bin/env sh
docker compose --version >/dev/null || (echo "Docker compose not installed"; exit 1)
if [ ! -d "$1" ]
then
echo "Provided data directory ($1) does not exist. Usage: $0 <DATA_DIR> <DOCKER_COMPOSE_ARGS>"
exit 1
fi
# Get absolute path
DATA_DIR="$(cd "$(dirname -- "$1")" >/dev/null; pwd -P)/$(basename -- "$1")"
echo "Using data dir $DATA_DIR"
shift
export USER_ID=$(id -u)
export GROUP_ID=$(id -g)
cat <<EOF > docker-compose.yml
version: "3.8"
services:
rpc_node:
image: subsquid/rpc-node:mirovia
environment:
P2P_LISTEN_ADDR: /ip4/0.0.0.0/tcp/${LISTEN_PORT:-12345}
RPC_LISTEN_ADDR: 0.0.0.0:50051
BOOT_NODES: >
12D3KooWSRvKpvNbsrGbLXGFZV7GYdcrYNh4W2nipwHHMYikzV58 /dns4/testnet.subsquid.io/tcp/22345,
12D3KooWQC9tPzj2ShLn39RFHS5SGbvbP2pEd7bJ61kSW2LwxGSB /dns4/testnet.subsquid.io/tcp/22346
KEY_PATH: /app/data/key
volumes:
- ./:/app/data
user: "${USER_ID}:${GROUP_ID}"
ports:
- "${LISTEN_PORT:-12345}:${LISTEN_PORT:-12345}"
worker:
depends_on:
rpc_node:
condition: service_healthy
image: subsquid/p2p-worker:mirovia
environment:
PROXY_ADDR: rpc_node:50051
SCHEhttps://github.com/subsquid/subsquid-network-contracts/wiki/Mirovia-worker-installationDULER_ID: 12D3KooWQER7HEpwsvqSzqzaiV36d3Bn6DZrnwEunnzS76pgZkMU
AWS_ACCESS_KEY_ID: 66dfc7705583f6fd9520947ac10d7e9f
AWS_SECRET_ACCESS_KEY: a68fdd7253232e30720a4c125f35a81bd495664a154b1643b5f5d4a4a5280a4f
AWS_S3_ENDPOINT: https://7a28e49ec5f4a60c66f216392792ac38.r2.cloudflarestorage.com
AWS_REGION: auto
SENTRY_DSN: https://3d427b41736042ae85010ec2dc864f05@o1149243.ingest.sentry.io/4505589334081536
volumes:
- ${DATA_DIR}:/app/data
user: "${USER_ID}:${GROUP_ID}"
EOF
exec docker compose "$@
Generate your key file. Your peer Id will be displayed after you enter this command. It is needed later so please and copy the peer Id and save it somewhere safe.
docker run --rm subsquid/rpc-node:mirovia keygen >key
Get 100_000 tSQD and some AGOR and register your peer ID on chain. You will find the wallet private key from metamask.
docker run --rm subsquid/worker-registration:mirovia <PEER_ID> <WALLET_PRIVATE_KEY>
Make the run_worker.sh script executable then execute the script
chmod +x $HOME/subsquid-setup/run_worker.sh
$HOME/subsquid-setup/run_worker.sh $HOME/squid up -d
Ensure the container has started by checking the logs
docker logs -f worker-1
More details can be found in the official documentation
Recent Comments