Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
cdb6400
improve router
oxarbitrage Dec 12, 2025
870429b
add some docs
oxarbitrage Dec 12, 2025
679b29a
add merged schema
oxarbitrage Dec 17, 2025
5b4379e
add schema url
oxarbitrage Dec 17, 2025
adba5b6
add a README
oxarbitrage Dec 18, 2025
27632a0
fix playground url
oxarbitrage Dec 18, 2025
675b8e1
move readme
oxarbitrage Dec 19, 2025
2e07495
fix panic
oxarbitrage Mar 5, 2026
7efb9b3
rpc-router: add unit tests for schema merging and routing logic
oxarbitrage Mar 5, 2026
db2e279
simplify
oxarbitrage Mar 5, 2026
77aa77e
rpc-router: read RPC credentials from env vars instead of hardcoding
oxarbitrage Mar 5, 2026
d854925
rpc-router: make CORS origin configurable via CORS_ORIGIN env var
oxarbitrage Mar 5, 2026
ead7bb5
change info to wanr
oxarbitrage Mar 5, 2026
755fda4
rpc-router: document fail-fast startup behavior in README
oxarbitrage Mar 5, 2026
f058faa
rpc-router: extract playground URL constant and document z3_merged.js…
oxarbitrage Mar 5, 2026
bf02219
rpc-router: add integration tests with mock backends
oxarbitrage Mar 5, 2026
d813925
add serial test
oxarbitrage Mar 5, 2026
51937a6
rename tests to unit tests
oxarbitrage Mar 5, 2026
8d28403
fix readme
oxarbitrage Mar 5, 2026
fa7d05b
fmt
oxarbitrage Mar 5, 2026
1fa6c75
router: fix fallback routing + add LISTEN_PORT + regtest dev environment
oxarbitrage Mar 5, 2026
ff422ac
zallet: bump submodule to fix regtest crash
oxarbitrage Mar 5, 2026
d626fb8
update rust version
oxarbitrage Mar 5, 2026
65c9803
update regtest
oxarbitrage Mar 5, 2026
a889f10
update cleanup instructions
oxarbitrage Mar 5, 2026
af088a2
remove static schema file generation
oxarbitrage Mar 5, 2026
a19a845
consistency
oxarbitrage Mar 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ Z3_GRAFANA_DATA_PATH=grafana_data
# Network name for all services (e.g., Mainnet, Testnet, Regtest)
NETWORK_NAME=Mainnet
# Globally enables RPC cookie authentication
ENABLE_COOKIE_AUTH=true
ENABLE_COOKIE_AUTH=false
# In-container directory for the .cookie authentication file
COOKIE_AUTH_FILE_DIR=/var/run/auth

Expand All @@ -104,6 +104,9 @@ COMPOSE_PROFILES=monitoring
# =============================================================================
# Zebra Configuration
# =============================================================================
# Zebra mining configuration (regtest miner address from zcash/integration-tests)
# Uncomment and set for regtest testing; leave unset for mainnet
# ZEBRA_MINING__MINER_ADDRESS=tmSRd1r8gs77Ja67Fw1JcdoXytxsyrLTPJm
# Zebra logging (will be mapped to RUST_LOG in container)
Z3_ZEBRA_RUST_LOG=info
# Zebra tracing filter (config-rs format: ZEBRA_TRACING__FILTER)
Expand Down
25 changes: 8 additions & 17 deletions config/zallet.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,50 +4,41 @@
# It does NOT connect to the standalone Zaino service (which is for gRPC clients).
# For full configuration options, run: zallet example-config

[builder]
# Transaction builder settings - using defaults

[builder.limits]
# Transaction limits - using defaults
orchard_actions = 250

[consensus]
# Network must match NETWORK_NAME in .env (Mainnet/Testnet)
network = "main"

[database]
# Wallet database - using defaults (wallet.db in datadir)

[external]
# External settings - using defaults

[features]
as_of_version = "0.1.0-alpha.1"
as_of_version = "0.0.0"

[features.deprecated]
# No deprecated features enabled

[features.experimental]
# No experimental features enabled

[indexer]
# Zallet's embedded Zaino indexer libraries connect to Zebra's JSON-RPC endpoint
# to fetch blockchain data. The validator_address MUST point to Zebra (not the
# standalone Zaino service). Service name 'zebra' and port from Z3_ZEBRA_RPC_PORT in .env
validator_address = "zebra:18232"

# Cookie authentication (matches Zebra's ENABLE_COOKIE_AUTH=true)
validator_cookie_auth = true
validator_cookie_path = "/var/run/auth/.cookie"
validator_user = "zebra"
validator_password = "zebra"

[keystore]
# Age encryption identity file (mounted from ./config/zallet_identity.txt)
encryption_identity = "identity.txt"

[note_management]
# Note management - using defaults

[rpc]
# RPC server configuration
# Bind address is set via ZALLET_RPC_BIND environment variable in docker-compose
bind = ["0.0.0.0:28232"]
timeout = 30

[[rpc.auth]]
user = "zebra"
pwhash = "eaa27c81df81f655e69bbe84026e733a$bb9f70d53decfeca863cb114f7b0fd5ae050c7ef885c3d5fa73d5bace6c14fea"
29 changes: 29 additions & 0 deletions docker-compose.override.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# docker-compose.override.yml.example
#
# Development override for quick iteration without waiting for Zebra sync
#
# Usage:
# cp docker-compose.override.yml.example docker-compose.override.yml
# docker compose up -d
#
# This override changes Zebra's healthcheck from /ready to /healthy,
# allowing dependent services (Zaino, Zallet) to start immediately
# once Zebra has peer connections, without waiting for full sync.
#
# ⚠️ WARNING: Services may experience delays or errors while Zebra syncs
# ⚠️ Only use for development/testing, NOT production
#
# For production or production-like testing, follow the two-phase deployment:
# 1. docker compose up -d zebra # Sync Zebra first
# 2. docker compose up -d # Start full stack

services:
zebra:
healthcheck:
# Use /healthy (has peers) instead of /ready (synced to tip)
# Allows Zaino and Zallet to start immediately
test: ["CMD-SHELL", "curl -sf http://127.0.0.1:8080/healthy || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
1 change: 1 addition & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ services:
- ZEBRA_RPC__ENABLE_COOKIE_AUTH=${ENABLE_COOKIE_AUTH}
- ZEBRA_RPC__COOKIE_DIR=${COOKIE_AUTH_FILE_DIR}
- ZEBRA_METRICS__ENDPOINT_ADDR=${ZEBRA_METRICS__ENDPOINT_ADDR}
- ZEBRA_MINING__MINER_ADDRESS=${ZEBRA_MINING__MINER_ADDRESS}
volumes:
# Blockchain state (defaults to named volume 'zebra_data')
- ${Z3_ZEBRA_DATA_PATH}:/home/zebra/.cache/zebra
Expand Down
Loading