Node Setup
This guide explains how to set up a Paradex full node using either Pathfinder or Juno via Docker.
Prerequisites
-
Docker: Install Docker using the official guide.
-
Ethereum Node URL: Obtain an Ethereum node URL for the target network (Mainnet or Sepolia Testnet) from a provider like Infura or Alchemy.
- Pathfinder requires a WebSocket URL (
wss://
). - Juno supports WebSocket (
wss://
) or HTTP (https://
).
Export the URL(s) as environment variables before running
docker run
: - Pathfinder requires a WebSocket URL (
-
(Optional) AWS CLI & Decompression Tools: For downloading snapshots, you’ll need
awscli
installed and configured, pluszstd
(for Pathfinder snapshots) ortar
(for Juno snapshots).
Running Pathfinder
Set up a Paradex node using the Pathfinder client.
Setup Steps
-
Create Data Directory:
-
(Optional) Download Snapshot: Download and decompress a snapshot to speed up sync. (Requires
awscli
andzstd
).Note: Snapshot URLs/availability may change.
-
Run Container (Paradex Mainnet): Requires
ETHEREUM_NODE_WSS_URL
variable (see Prerequisites).Key Paradex Parameters:
PATHFINDER_CHAIN_ID
,PATHFINDER_FEEDER_GATEWAY_URL
,PATHFINDER_GATEWAY_URL
,PATHFINDER_NETWORK="custom"
. -
Check Logs:
-
Stop Container:
Running Juno
Set up a Paradex node using the Juno client.
Setup Steps
-
Create Data Directory:
-
(Optional) Download Snapshot: Download and decompress a snapshot to speed up sync. (Requires
awscli
andtar
).Note: Snapshot URLs/availability may change.
-
Run Container (Paradex Mainnet): Requires
ETHEREUM_NODE_WSS_URL
orETHEREUM_NODE_HTTP_URL
variable (see Prerequisites).Key Paradex Parameters:
JUNO_NETWORK=custom
,JUNO_STARKNET_FEEDER_URL
,JUNO_STARKNET_GATEWAY_URL
,JUNO_ETHEREUM_CHAIN_ID
,JUNO_UNVERIFIABLE_RANGE
,JUNO_ETHEREUM_CORE_CONTRACT_ADDRESS
. -
Check Logs:
-
Stop Container:
Running on Testnet
To run either Pathfinder or Juno on the Paradex Testnet, adapt the respective Mainnet docker run
command:
-
Use Sepolia Ethereum Node: Ensure you are using a Sepolia Ethereum Node URL (WSS for Pathfinder, WSS or HTTP for Juno). Set the appropriate environment variable (e.g.,
ETHEREUM_NODE_WSS_URL_TESTNET
orETHEREUM_NODE_HTTP_URL_TESTNET
from Prerequisites). -
Adjust Parameters: Modify the environment variables (
-e
flags) in thedocker run
command to use the correct Testnet values. Key parameters to change include:- Starknet Chain ID (
PATHFINDER_CHAIN_ID
or inferred by Juno via gateways) - Starknet Gateway URLs (
PATHFINDER_FEEDER_GATEWAY_URL
,PATHFINDER_GATEWAY_URL
,JUNO_STARKNET_FEEDER_URL
,JUNO_STARKNET_GATEWAY_URL
) - Ethereum Chain ID (
JUNO_ETHEREUM_CHAIN_ID
) - Ethereum Core Contract Address (
JUNO_ETHEREUM_CORE_CONTRACT_ADDRESS
)
Find the precise Testnet values by querying the Testnet System Config API:
https://api.testnet.paradex.trade/v1/system/config
- Starknet Chain ID (
-
(Optional) Use Testnet Snapshot: If available, download and use a Testnet-specific database snapshot. Update the S3 URL and potentially the host directory path in the snapshot download commands.
-
Use Different Names/Paths: Change the Docker container name (
--name
) and the host volume path (-v
) to avoid conflicts with your Mainnet node configuration (e.g.,--name pathfinder-paradex-testnet
,-v $HOME/pathfinder-testnet:/usr/share/pathfinder/data
).