Skip to content

graphsense-lib 2.11.0

Choose a tag to compare

@github-actions github-actions released this 29 Apr 08:09
· 294 commits to master since this release

[2.11.0] 2026-04-29

Library (v2.11.0)

Added

  • New ingest pipeline: replaced ethereum-etl and bitcoin-etl with direct batch RPC for all chains.
  • Dual-sink pipeline: from-node --sinks delta --sinks cassandra ingests to both Delta Lake and Cassandra in a single pass.
  • TRX gRPC source: replaced HTTP-based TRX ingestion with native gRPC for higher throughput.
  • UTXO prevout resolution: verbosity 3 support for BTC/BCH; getrawtransaction-based input resolution for LTC/ZEC. Removes the Cassandra dependency on ingest and enables input resolution for Delta Lake ingest.
  • ETH Pectra fields: requestsHash, authorizationList, y_parity, parentBeaconBlockRoot, uncles, creationMethod.
  • EIP-2930/4844 Cassandra fields: access_list stored in Delta and Cassandra schema.
  • Named S3 configs: per-sink S3 references via s3_configs in graphsense.yaml.
  • Config validation: warn on unknown keys at all nesting levels instead of failing; optimal source_max_workers defaults per currency; new source_max_workers knob for tuning RPC concurrency.
  • Sink-level locking: independent locks for Delta and Cassandra sinks; single lock for ingest+compact.
  • Sink divergence detection: refuse to ingest when Delta and Cassandra sinks have diverged.
  • ingest_complete marker: bootstrap-marker state table for keyspace auto-discovery.
  • Node-restart resilience: HTTP RPC and Tron gRPC retries now tolerate up to ~5 minutes of node downtime.
  • ingest module added to ty type-checking scope.

Changed

  • UTXO addresses stored as plain text instead of custom binary encoding in delta lake. (breaking, needs delta lake re-intest from node)
  • Delta Lake writes and compaction use ZSTD level 5 compression.
  • Reduced Delta pre-compaction file sizes by ~10× and lowered output cache limit.
  • Increased Cassandra driver heartbeat timeout to avoid spurious retries.
  • Tag summary: lower weight on darkweb and unknown tags; more emphasis on high-confidence tags.
  • semver-check now accepts full SemVer 2.0 prerelease and build-metadata identifiers.
  • Registry pattern for dump.py, decoupled transform/sink boundary.
  • Obfuscation plugin RESt: easier toggle flags for debugging
  • Replaced the cashaddress dependency with a local implementation.

Performance

  • Significantly sped up Tron and Ethereum ingest (parallelized source I/O, chunk-level pipelining, gRPC instead of REST for Tron, faster hex/bytes conversions, in-place sorts, merged transform passes).

Web API + Python client (webapi-2.11.0)

Added

  • New /{currency}/clusters/... endpoints (get_cluster, list_cluster_addresses,
    list_cluster_neighbors, list_cluster_links, list_address_tags_by_cluster,
    list_cluster_txs, search_cluster_neighbors) that supersede the
    corresponding /entities/... endpoints. Both sets return identical data;
    new integrations should use /clusters/....
  • New cluster field on Address, Cluster/Entity, and AddressTag response
    models. Dual-emitted alongside the existing entity field.
  • New Cluster, NeighborCluster, NeighborClusters, ClusterAddresses types
    in the generated Python client (subclasses of the Entity* types, so both
    are usable during the deprecation window).
  • RFC 9745 Deprecation: true response header, RFC 8594 Sunset response
    header (per-route sunset dates) on the /entities/... endpoints, and a
    Link header with rel="deprecation" on every deprecated route. Clients
    can detect these without parsing the OpenAPI schema.
  • Written deprecation policy in the API description (visible in /docs and
    in the generated spec).

Deprecated

  • /{currency}/entities/... endpoints — use /{currency}/clusters/... instead.
  • entity field on Address, Cluster, NeighborEntity, and AddressTag
    use cluster instead.
  • status field on Address — legacy field, no replacement.

All deprecated surfaces continue to work; see the "Deprecation policy" section
of the API description for the support window.

What's Changed

Full Changelog: v2.10.1...v2.11.0