Releases: slvDev/sieve
Releases · slvDev/sieve
Release list
v0.1.5
Added
- Pretty terminal UI: startup banner, animated spinners, progress bar with ETA, follow status with block age (suppressed with
--verbose) --verbose/-vflag to use tracing logs instead of pretty UI[api].portTOML config for GraphQL API (omit to disable,--api-portoverrides).envfile support viadotenvy—DATABASE_URLloaded automaticallysieve initnow creates.envwith default database URLadd-contractauto-fetches deploy block from Etherscan asstart_block(override with--start-block)[p2p].portTOML config and--p2p-portCLI flag to override default 30303
Changed
- Breaking: all sensitive URLs removed from TOML — use
.envfile instead (DATABASE_URL,WEBHOOK_URL,RABBITMQ_URL) --freshlog downgraded from warn to info (hidden in pretty mode, visible with--verbose)- Prettified
sieve initandadd-contractCLI output docker-compose.ymluses${VAR}interpolation from.env(works with Coolify and other platforms)
Fixed
- GraphQL API now serves on
/graphqlpath (was only/) - Follow-mode peer eviction:
mark_peer_successwas dead code, causing all peers to be evicted after 120s idle at the tip (peers=0 loop) - Head probe responses now refresh peer liveness, preventing eviction during idle periods
v0.1.4
Changed
- Docker images built from pre-compiled binaries instead of compiling in CI (~30s vs 40+ min)
v0.1.3
Added
--version/-Vflag to CLIsieve initnow creates a working USDC Transfer config with ERC20 ABI (plug and play)sieve init --dockergenerates a docker-compose.yml with PostgreSQL and healthcheck- Multi-platform Docker images (linux/amd64 + linux/arm64)
Changed
sieve initno longer creates docker-compose.yml by default (use--docker)
Fixed
- Release workflow: filter artifacts to skip Docker buildx cache metadata
v0.1.1
Fixed
- Follow-mode stall when all peers have stale head_cap (pending=1, inflight=0 indefinitely)
- Background head tracker continuously probes chain tip via P2P, overrides per-peer head_cap in follow mode
- Peer heads now updated after successful fetch (monotonic, never regresses)
v0.1.0
Initial release.
- P2P sync engine — connect directly to Ethereum devp2p network, no RPC needed
- TOML configuration — define contracts, events, calls, transfers in a single config file
- ABI decoding — automatic event log and calldata decoding via alloy
- PostgreSQL storage — auto-generated tables from config, atomic per-block transactions
- Indexed parameter filtering — topic-level filters to reduce noise before decoding
- Call trace indexing — decode function calldata for successful transactions
- Native ETH transfer indexing — track value transfers with address filters
- Factory contract support — dynamic child contract discovery via creation events
- Auto-generated GraphQL API — filtering, sorting, cursor/offset pagination, AND/OR composition
- Follow mode — real-time indexing after historical sync catches up
- Reorg detection — automatic rollback on chain reorganizations (64-block window)
- Webhook streaming — HTTP POST notifications per block
- RabbitMQ streaming — per-event JSON messages with routing key templates
- Prometheus metrics — blocks, events, transfers, calls counters
- Health endpoints —
/health(liveness),/ready(503 during backfill, 200 when caught up) - CLI subcommands —
init,schema,reset,add-contract,inspect,peers - Etherscan integration —
add-contractfetches verified ABIs with proxy detection - Docker support — multi-stage Dockerfile with dependency caching
- Checkpoint/resume — automatic progress tracking, idempotent re-processing
- Environment variable fallbacks —
DATABASE_URL,WEBHOOK_URL,RABBITMQ_URLfor production deployments - Bloom filter pre-screening — skip receipt fetching for ~98% of blocks with no matching events
- Batched DB transactions — 64 blocks per COMMIT for faster writes
- Parallel block processing — N CPU workers for decode/filter pipeline
- AIMD batch growth — faster warmup from 32 to 128 blocks per request
sieveupinstaller —curl | bashinstall with automatic updates