Skip to content

Releases: eth-act/zkboost

v0.6.0

23 Apr 07:53
c0afc3e

Choose a tag to compare

0.6.0 (2026-04-23)

Features

v0.5.0

10 Apr 13:33
cec3b23

Choose a tag to compare

0.5.0 (2026-04-10)

Features

  • update config to move proof timeout into per zkvm config (#54) (0013038)

v0.4.1

08 Apr 12:04
8570815

Choose a tag to compare

What's Changed

  • fix: tracing panicking and update docker example by @han0110 in #50

Full Changelog: v0.4.0...v0.4.1

v0.4.0

08 Apr 09:24
daa411b

Choose a tag to compare

What's Changed

  • feat: richer mock zkvm config and more metrics by @han0110 in #44
  • feat: implement simple dashboard by @han0110 in #46
  • feat: add opentelemetry support and add proof traces in grafana dashboard by @han0110 in #47
  • refactor: rename enum variant External to Ere by @han0110 in #48
  • refactor: rename history_size to retention and tidy up a bit dashboard frontend by @han0110 in #49

Full Changelog: v0.3.1...v0.4.0

Docker Image

The zkboost docker image is now publisded at ghcr.io/eth-act/zkboost/zkboost:latest to be less verbose.

(previously at ghcr.io/eth-act/zkboost/zkboost-server:latest)

Configuration Migration

  • Before (v0.3.0)

    port = 3000
    el_endpoint = "http://localhost:8545"
    
    # Remote Ere server
    [[zkvm]]
    kind = "external"
    endpoint = "http://ethrex-zisk:3000"
    proof_type = "ethrex-zisk"
    
    [[zkvm]]
    kind = "external"
    endpoint = "http://reth-zisk:3000"
    proof_type = "reth-zisk"
    
    # Mock zkVM backend
    [[zkvm]]
    kind = "mock"
    proof_type = "reth-sp1"
    mock_proving_time_ms = 5000
    mock_proof_size = 1024
  • After (v0.4.0)

    port = 3000
    el_endpoint = "http://localhost:8545"
    
    # NEW: optional dashboard section
    [dashboard]
    # enabled = false  # default
    # retention = 256  # default
    
    # CHANGED: "external" -> "ere"
    [[zkvm]]
    kind = "ere"
    endpoint = "http://ethrex-zisk:3000"
    proof_type = "ethrex-zisk"
    
    [[zkvm]]
    kind = "ere"
    endpoint = "http://reth-zisk:3000"
    proof_type = "reth-zisk"
    
    # CHANGED: mock_proving_time_ms -> mock_proving_time (structured)
    # mock_proof_size is now optional (defaults to 1024)
    [[zkvm]]
    kind = "mock"
    proof_type = "reth-sp1"
    mock_proving_time = { kind = "constant", ms = 5000 }
    
    # NEW: random and linear proving time modes
    # mock_proving_time = { kind = "random", min_ms = 2000, max_ms = 8000 }
    # mock_proving_time = { kind = "linear", ms_per_mgas = 300 }

Dashboard

When config set with dashboard.enabled = true, 3 dashboard related API will be available:

  • /dashboard - Returns the single HTML page
  • /dashboard/state - Returns the dashboard state
  • /dashboard/events - Subscribe to real-time SSE
Dashboard state API response sample
{
    "buildVersion": "0.4.0",
    "proofTypes": [
        "ethrex-zisk",
        "reth-risc0",
        "reth-sp1",
        "reth-zisk"
    ],
    "historicalBlocks": [
        {
            "blockNumber": 6766,
            "blockHash": "0x76855eee4c37d23e6a67e37f4bb47a22a4fc0c66822ab7ad1227f05a50b4e23f",
            "blockTimestamp": 1775476903,
            "gasUsed": 17964372,
            "witnessStartedS": 0.13103699684143066,
            "witnessEndedS": 0.14049148559570312,
            "witnessSize": 494030,
            "witnessSuccess": true,
            "proofs": {
                "reth-risc0": {
                    "requestedS": 0.1310124397277832,
                    "startedS": 0.17314672470092773
                },
                "reth-sp1": {
                    "requestedS": 0.1310124397277832,
                    "startedS": 0.14104723930358887,
                    "status": "error",
                    "error": "mocking failure",
                    "endedS": 3.1417808532714844
                },
                "reth-zisk": {
                    "requestedS": 0.1310124397277832,
                    "startedS": 0.14104032516479492,
                    "status": "success",
                    "endedS": 6.151628732681274,
                    "proofSize": 1024
                },
                "ethrex-zisk": {
                    "requestedS": 0.1310124397277832,
                    "startedS": 0.14104270935058594,
                    "status": "success",
                    "endedS": 2.4982376098632812,
                    "proofSize": 1024
                }
            }
        }
   ],
    "historySize": 256
}

Note:

  • The status of the proof could be one of success, timeout, or error
  • The timestamps are the offset second from the timestamp of the block (e.g. "requestedS": 0.17160606384277344 means the proof is requested 0.17 secs after the block's timestamp)
  • If the timestamps are not responded yet, it means the event hasn't happened yet (e.g. endedS not showing means it's still proving)
Dashboard rendered sample dashboard

Grafana Dashboard Update

  • Added Prove Duration Distribution panel
  • OTel is integrated, when running with Tempo, the Grafana dashboard will show the proof traces diagram. Check docker/example/observability for example setup.
Updated Grafana dashboard preview
  • Prove Duration Distribution panel
    image

  • Proof Traces row
    image