An oracle that bridges Zcash block data onto an Avalanche L1.
127
AvalancheGo v1.14.0 + the redbridge-oracle custom Snowman VM plugin (bridges Zcash block data onto an Avalanche subnet via Warp messaging), pre-baked into the official avaplatform/avalanchego image.
zavaxbridgev3m4wPxaHpvGr8qfMeyK6PRW3idZrPHmYcMTt7oXdK47yurVH| Minimum | Recommended | |
|---|---|---|
| CPU | 8 vCPU | 16 vCPU |
| RAM | 16 GB | 32 GB |
| Storage | 1 TB NVMe SSD | 2 TB NVMe SSD |
| Network | 200 Mbps, static/reserved public IP | 1 Gbps |
docker pull reddev2020/redbridge-oracle-node:v1.0.0
docker run -d --name avago4 \
-e AVAGO_NETWORK_ID=fuji \
-e AVAGO_HTTP_HOST=0.0.0.0 \
-e AVAGO_HTTP_PORT=9650 \
-e AVAGO_STAKING_PORT=9651 \
-e AVAGO_TRACK_SUBNETS=2d6dKcxZuLbP4uHa3KY64DuZNk2q7GpX2FqnGdtQyu4tqXgjft \
-e ZAVAX_CHAIN_ID=2TrCrta1d2vgipS4okDzybWk42qTDFmACQ2Jyx3pgKdxqhDJSJ \
-e ZCASH_RPC_ENDPOINT=http://127.0.0.1:8232 \
-e ZCASH_RPC_USER= \
-e ZCASH_RPC_PASSWORD= \
-e ZCASH_CONFIRMATION_DEPTH=24 \
-p 9657:9657 \
-p 127.0.0.1:9650:9650 \
-v /mnt/blockstorage/.avalanchego-node1:/data \
reddev2020/redbridge-oracle-node:v1.0.0
If you change
AVAGO_HTTP_PORT/AVAGO_STAKING_PORTfrom their defaults, update both the-evalue and the matching-pmapping — the two are independent flags and Docker won't reconcile them for you.
| Port | Purpose | Publish policy |
|---|---|---|
9650/9650* | AvalancheGo HTTP RPC (VM served under /ext/bc/<chainID>/rpc) | Do not expose publicly. Bind to 127.0.0.1 and put a reverse proxy in front for production. |
9651/9651* | AvalancheGo P2P / staking | Must be reachable from the internet for validators. |
* Defaults are 9650/9651; the example above remaps them to 9656/9657.
AvalancheGo reads any CLI flag as --flag-name -> AVAGO_FLAG_NAME (dashes -> underscores, uppercased) — any flag from the AvalancheGo config reference (https://docs.avax.network/nodes/configure/configs-flags) works this way, not just the ones below.
| Variable | Purpose | Default |
|---|---|---|
AVAGO_NETWORK_ID | Network to join: fuji, mainnet, or a numeric local ID | fuji |
AVAGO_HTTP_HOST | RPC bind address | 0.0.0.0 (rebind to 127.0.0.1 on the host via -p 127.0.0.1:PORT:PORT) |
AVAGO_HTTP_PORT | AvalancheGo RPC port | 9650 |
AVAGO_STAKING_PORT | AvalancheGo P2P/staking port | 9651 |
AVAGO_TRACK_SUBNETS | Subnet ID(s) this node tracks/validates | Fuji redbridge-oracle subnet |
ZAVAX_CHAIN_ID | Blockchain ID whose VM config.json to generate | (unset = skip config generation) |
ZCASH_RPC_ENDPOINT | Zcash JSON-RPC URL | http://127.0.0.1:8232 |
ZCASH_RPC_USER | Zcash RPC username | (empty) |
ZCASH_RPC_PASSWORD | Zcash RPC password | (empty) |
ZCASH_CONFIRMATION_DEPTH | Confirmations required before a height can be bridged | 24 |
The entrypoint writes these Zcash-related values into $AVAGO_DATA_DIR/configs/chains/$ZAVAX_CHAIN_ID/config.json before starting AvalancheGo. If you'd rather manage that file yourself, leave ZAVAX_CHAIN_ID unset and mount your own config.json into the volume.
Switching networks: AVAGO_TRACK_SUBNETS and ZAVAX_CHAIN_ID above are the Fuji subnet/chain IDs — they won't resolve on mainnet. If deploying to mainnet, override both together (don't just flip AVAGO_NETWORK_ID), and start from a fresh volume — a data dir bootstrapped against Fuji genesis can't be reused for mainnet.
/data is the AvalancheGo data directory — staking keys, DB, chain/subnet configs all live there. Always mount a volume:
-v /mnt/blockstorage/.avalanchego-node1:/data
Back up /data/staking (staker.key + signer.key) — losing it means losing the validator's NodeID and having to re-onboard as a validator.
To reuse an existing (non-Docker) AvalancheGo data directory, stop that process first (a DB can't be held open by two processes at once), then bind-mount it in directly — the container will pick up the same NodeID and state.
# Primary Network bootstrapped
curl -s -X POST --data '{"jsonrpc":"2.0","id":1,"method":"info.isBootstrapped","params":{"chain":"P"}}' \
-H 'content-type:application/json' http://127.0.0.1:9650/ext/info
# redbridge-oracle chain serving RPC
curl -s -X POST --data '{"jsonrpc":"2.0","id":1,"method":"info.isBootstrapped","params":{"chain":"2TrCrta1d2vgipS4okDzybWk42qTDFmACQ2Jyx3pgKdxqhDJSJ"}}' \
-H 'content-type:application/json' http://127.0.0.1:9650/ext/info
info.isBootstrapped returns true for chain Pinfo.isBootstrapped returns true for the redbridge-oracle blockchain ID--track-subnets includes the redbridge-oracle subnet IDContent type
Image
Digest
sha256:19ee9d886…
Size
86 MB
Last updated
3 months ago
docker pull reddev2020/zavax-oracle-node:v1.0.0