Releases: eth-act/zkboost
Releases · eth-act/zkboost
v0.6.0
v0.5.0
v0.4.1
v0.4.0
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
ExternaltoEreby @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, orerror - The timestamps are the offset second from the timestamp of the block (e.g.
"requestedS": 0.17160606384277344means 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.
endedSnot showing means it's still proving)
Grafana Dashboard Update
- Added
Prove Duration Distributionpanel - OTel is integrated, when running with Tempo, the Grafana dashboard will show the proof traces diagram. Check
docker/example/observabilityfor example setup.


