Skip to content

Releases: slvDev/sieve

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 15 Mar 15:45

Added

  • Pretty terminal UI: startup banner, animated spinners, progress bar with ETA, follow status with block age (suppressed with --verbose)
  • --verbose / -v flag to use tracing logs instead of pretty UI
  • [api].port TOML config for GraphQL API (omit to disable, --api-port overrides)
  • .env file support via dotenvyDATABASE_URL loaded automatically
  • sieve init now creates .env with default database URL
  • add-contract auto-fetches deploy block from Etherscan as start_block (override with --start-block)
  • [p2p].port TOML config and --p2p-port CLI flag to override default 30303

Changed

  • Breaking: all sensitive URLs removed from TOML — use .env file instead (DATABASE_URL, WEBHOOK_URL, RABBITMQ_URL)
  • --fresh log downgraded from warn to info (hidden in pretty mode, visible with --verbose)
  • Prettified sieve init and add-contract CLI output
  • docker-compose.yml uses ${VAR} interpolation from .env (works with Coolify and other platforms)

Fixed

  • GraphQL API now serves on /graphql path (was only /)
  • Follow-mode peer eviction: mark_peer_success was 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

Choose a tag to compare

@github-actions github-actions released this 11 Mar 21:04

Changed

  • Docker images built from pre-compiled binaries instead of compiling in CI (~30s vs 40+ min)

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 11 Mar 20:07

Added

  • --version / -V flag to CLI
  • sieve init now creates a working USDC Transfer config with ERC20 ABI (plug and play)
  • sieve init --docker generates a docker-compose.yml with PostgreSQL and healthcheck
  • Multi-platform Docker images (linux/amd64 + linux/arm64)

Changed

  • sieve init no longer creates docker-compose.yml by default (use --docker)

Fixed

  • Release workflow: filter artifacts to skip Docker buildx cache metadata

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 10 Mar 23:03

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

Choose a tag to compare

@github-actions github-actions released this 10 Mar 14:45

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-contract fetches 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_URL for 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
  • sieveup installer — curl | bash install with automatic updates