Releases: hyli-org/hyli
Releases · hyli-org/hyli
Release list
v0.15.0
Breaking changes
- 💥 ♻️ Pass calldata to build_commitment_metadata (#1934)
- 💥 Push metrics instead of exposing them on a Prometheus endpoint (#1835)
- 💥 ✨ Prover supports contract upgrade (#1755)
Features
- ✨ no_std for hyli-model & contract-sdk (#1970)
- ✨ Add tiny blob loadtest scenario (#1962)
- ✨ add ssbp tool (#1961)
- ✨ Add v2 for Noir parser for blob abstraction (#1930)
- ✨ Make backup on bad manifest configurable (#1931)
- ✨ Add metadata support for SMT registration (#1927)
- ✨ Handle contract updates in autoprovers (#1909)
- ✨ Add ContractName::validate (#1912)
- ✨ Detect contract updates (#1907)
- ✨ Persist module error on shutdown (#1898)
- ✨ Add LongRunningTest binary for SMT contract (#1895)
- ✨ Add noop meter provider when feature disabled (#1889)
- ✨ Fast catchup from a list of peers (#1867)
- ✨ hylix: add multi-node devnet support (#1854)
- ✨ Add BlockRequest to DA layer (#1799)
- ✨ Use genesis timestamp in bucket path (#1824)
- ✨ Add on-disk checksum verification for module persistence (#1800)
- ✨ GCS uploader uploads in parallel & list objects from bucket (#1815)
- ✨ Compute a shared genesis timestamp (#1821)
- ✨ Persist async work in mempool properly (#1796)
- ✨ Indexer has contract updates history (#1759)
- ✨ Hylix devnet runs registry (#1756)
- ✨ Handle sync replies in a safe way (#1789)
- ✨ Allow 'own_lane.rs' to handle multiples lanes on a single node (#1760)
- ✨ Message interceptor in hyli-net for message dropping (#1766)
- ✨ contract-listener: persist state and split sequenced/settled events (#1762)
- ✨ Send pg_notify && ContractListener module (#1725)
Bug Fixes
- 🐛 Reth tx reverted settled as failed (#1986)
- 🐛 Big Bro checks no node votes after timeouting (#1984)
- 🐛 Fix colors missing in logs (#1975)
- 🐛 Fix node build with reth feature (#1974)
- 🐛 Fix cached mempool vote lane sizes (#1958)
- 🐛 Fix bbup link in Dockerfile.base (#1960)
- 🐛 Clarify clean_and_update_lanes behaviour (#1955)
- 🐛 Fix tx_blob_count in genesis proofs (#1952)
- 🐛 fix misleading log message when building a signed block (#1951)
- 🐛 Small hardenings in consensus (#1943)
- 🐛 Further node state fixes (#1942)
- 🐛 Fix Tx timeout resetting to soft-cap (#1941)
- 🐛 Fix updating via hyli accidentally overwriting state (#1940)
- 🐛 Fix mempool proof validation and persistence (#1939)
- 🐛 Fix restoring blob/proof work in mempool (#1938)
- 🐛 Advance tip/clean lanes before trying to fill holes (#1936)
- 🐛 Fix wrong tip update when using pop function (#1935)
- 🐛 Hylix: Set db var env for wallet (#1932)
- 🐛 Fix fast catchup & genesis start for good hopefully (#1915)
- 🐛 Fix duplicate tx in explorer + use txs_contracts (#1917)
- 🐛 Fix loadtest with instrumentation via noop_provider (#1910)
- 🐛 Fix event loop gauge metric (#1906)
- 🐛 Fix fast-catchup at genesis by deactivating it (#1901)
- 🐛 Replace TxHash for TxId in ContractListener module (#1899)
- 🐛 Fix consensus command metric drift (#1896)
- 🐛 Update peer list for Da catchupper, improve log verbosity (#1893)
- 🐛 Fix backfill stopping because of mempool blocks above the ceiling (#1892)
- 🐛 Simplify & fix catchup / backfill (#1890)
- 🐛 Fix catch-up robustness in DA (#1888)
- 🐛 Strenghten DA-stream against holes (#1882)
- 🐛 rollback on rest feature as it does not compile with no default (#1886)
- 🐛 Fix leaking dependency hyli_turmoil_shims in macros (#1885)
- 🐛 Fix cfg use in macros (#1884)
- 🐛 Fix hyli build no default features (#1879)
- 🐛 Fix DA answering stream requests when start_height isn't available (#1875)
- 🐛 fix absent files not in manifest failing (#1874)
- 🐛 Fix fast catchup for manifest logic (#1872)
- 🐛 Fix gcs uploader parsing list env var (#1866)
- 🐛 Fix p2p starvation from lifo_slot, latency metrics (#1865)
- 🐛 Put back bus client name for bus metrics (#1861)
- 🐛 make da_listener use fallbacks on startup too (#1859)
- 🐛 Fix gcs_uploader error about rustls (#1858)
- 🐛 Fix dissemination.rs dropping sync requests early (#1857)
- 🐛 consensus: accept commit messages while leader (#1850)
- 🐛 Add safety check in ModulesHandler::new() (#1853)
- 🐛 Fix DataAvailability instant broadcast of new blocks when peer catchup (#1851)
- 🐛 Make cargo commands init OTLP meter by default (#1847)
- 🐛 Add safety check in ModulesHandler::new() (#1827)
- 🐛 Fix clippy/fmt (#1848)
- 🐛 Fix TCP deadlock when buffer is full (#1840)
- 🐛 Fix cargo test by running fewer Fjalls in parallel (#1846)
- 🐛 Fix gcs uploader not uploading genesis block (#1839)
- 🐛 Fix load test for telemetry (#1838)
- 🐛 Fix SMT auto prover telemetry setup (#1837)
- 🐛 gcs uploader: Persist genesis timestamp and resume uploads (#1832)
- 🐛 gcs uploader: Fix DA starting at block 1 + better logs (#1826)
- 🐛 Drop zombie stream tasks in DA (#1823)
- 🐛 Fix dissemination order in mempool (#1822)
- 🐛 Consensus: refactor TC handling & fix sync request issues (#1818)
- 🐛 Drop stream on tcp closed in DataAvailability (#1820)
- 🐛 Fix bug when accidentally local CP (#1817)
- 🐛 Fix: Add per-instance module shutdown (even w/ duplicate modules) (#1814)
- 🐛 Fix a race in hold_518, add tests (#1810)
- 🐛 turmoil merge retry (#1804)
- 🐛 "Revert More deterministic turmoil tests (#1793)" (#1802)
- 🐛 More deterministic turmoil tests (#1793)
- 🐛 Avoid creating forked DPs on restart from scratch (#1797)
- 🐛 Fix signature validation + simplify API (#1791)
- 🐛 Start timeout scheduling right after genesis (#1792)
- 🐛 Fix proxy path typo (#1776)
- 🐛 Fix contract registration test flakiness (#1777)
- 🐛 Resend timeout certificate on timeout (#1761)
- 🐛 contract_listener: track block cursors by height+index (#1764)
- 🐛 Fix ContractListener to send event on tx Success (#1754)
- 🐛 Fixes around consensus, rejoining and timeout certificates (#1742)
Documentation
- 📝 Hyli-bus documentation (#1989)
Tests
- ✅ Reduce test flakiness (#1916)
- 🧪 Add reproducible chaos testing with turmoil (#1819)
- 🧪 Add message corruption hooks for turmoil network simulation (#1790)
- 🧪 drop data proposals test (#1779)
- 🧪 add turmoil test suites (#1757)
Performance
- ⚡️ Speed up CSI queries & some explorer paging queries with txs_contr… (#1928)
- ⚡️ Disseminate less often (#1926)
- ⚡️ Speedup fast catchup by not going through JSON (#1913)
- ⚡️ Use ContractListener event in CSI (#1908)
- ⚡️ Skip hashing txs for proof hydration / p2p (#1911)
- ⚡️ Speed up PG writes, hopefully (#1900)
- ⚡️ Leverage ContractListener in Autoprovers (#1855)
- ⚡️ Make axum dependency optional (#1883)
- ⚡️ Add feature to remove opentelemetry_sdk from default's dependencies (#1881)
- ⚡️ feature gate hyli-registry (#1880)
- ⚡️ Introduce fjall feature to reduce dependency tree (#1878)
- ⚡️ Add sp1-network feature to lower default dependency tree (#1877)
- ⚡️ Add gcs feature to avoid pulling unecessary dependency (#1876)
- ⚡ 💥 Switch string hashes to Vec (#1813)
- ⚡ Use a ringbuffermap for buffered prepares to reduce state size in serialization (#1778)
- ⚡️ Remove poda updated and broadcast votes (#1768)
Refactoring
- ♻️ Refactor consensus timeout workflow (#1988)
- ♻️ Introduce query() in hyli-bus for better syntax (#1987)
- ♻️ Split local replay from SignedDAListener (#1959)
- ♻️ 💥 Better ContractHandler + 📝 Add documentation on CSI (#1933)
- ♻️ Add missing message types to tcp client/clean TcpMessageLabel macro (#1894)
- ♻️ Rename tcp api server (#1897)
- ♻️ Reuse signed DA listener logic as a DaClient (#1860)
- ♻️ Better display of hylix config (#1862)
- ♻️ Hylix: ProgressExecutor & better config migration & remove enum duplication (#1836)
- ♻️ Extract common OpenTelemetry initialization into its own crate (#1833)
- ♻️ Move NodeStateProcessor inside SignedDAListener module using BlockProcessor (#1801)
- ♻️ Refactor Autobahn tests (#1816)
- ♻️ Move DAListener to NodeStateProcessor to avoid code duplication (#1798)
- ♻️ Move bus to new crate hyli-bus (#1780)
- ♻️ Make parent DPHash more explicit (#1794)
- ♻️ add tcp labels to send histograms (#1788)
- ♻️ Split turmoil tests into categorized modules (#1787)
- ♻️ Remove usage of Block/parsed_block in modules & tools (#1773)
- ♻️ Update peer knowledge when processing CCPs (#1753)
- ♻️ Merge Sync request/reply logic into dissemination (#1752)
- ♻️ Switch own lane dissemination logic to a separate module (#1751)
- ♻️ Add lane IDs to mempool messages, and handle them properly (#1750)
Logging
- 🔊 Fixup mempool metric to counter (#1919)
- 🔊 more metrics around block/dp sizes (#1918)
- 🔊 Add a 'last branch taken' gauge to event loops (#1868)
- 🔊 Improve TCP/P2P servers logs and code (#1743)
Security
- 🔒️ Fix identity verification in SMT contract (#1956)
Devtools / CI
- 🔨 Add HYLI_PG_HOST_PORT to use fixed --pg port (#1977)
- 💚 Fix build of crates after no_std (#1976)
- 💚 ci: use csi feature for hyli-client-sdk build matrix (#1891)
- 💚 Use cargo check instead of cargo build (#1887)
- 👷♂️ Fix docker multiplatform upload for ghcr (#1811)
- 💚 Clippy fixes (#1795)
- 💚 Fix compilation of bonsai-runner / loadtest (#1775)
- 💚 actually fix check-crate-compilation (#1770)
- 💚 Hopefully fix hyli check-crate-compilation (#1769)
- 💚 Run CI on a custom docker image prebuilt with useful programs (#1767)
- 💚 Don't actually use cache copy (#1763)
Removed
- 🔥 remove fast catchup override, superseded by manifest (#1856)
- 🔥 Remove all usage of Block/parsed_block (#1774)
Dependencies
- ⬆️ Bump version 0.15.0 (#1995)
- ⬆️ Bump tokio from 1.49.0 to 1.50.0 (#1982)
- ⬆️ Bump console from 0.16.2 to 0.16.3 (#1967)
- ⬆️ Bump assertables from 9.8.4 to 9.8.6 (#1946)
- ⬆️ Bump whoami from 2.1.0 to 2.1.1 (#1966)
- ⬆️ Bump which from 8.0.0 to 8.0.2 (#1965)
- ⬆️ Bump proc-macro-crate from 3.4.0 to 3.5.0 (#1945)
- ⬆️ Bump google-cloud-storage from 1.7.0 to 1.8.0 (#1944)
- ⬆️ Update SMT im...
v0.14.1
Features
- ✨ Add a label to tcp socket streams (#1737)
- ✨ Send tracing context over TCP in new TcpHeaders (#1711)
- ✨ Introduce TCP headers (#1710)
- ✨ Carry span context over bus (#1703)
- ✨ Add OTLP instrumentation support (#1692)
- ✨ Use a fresh DB every clean restart with some settings (#1688)
- ✨ Reth verifier (#1660)
Bug Fixes
- 🐛 Fix/bubble up tcp error (#1728)
- 🐛 Fix tracing setup (#1726)
- 🐛 Don't leave joining mode if we receive a TC for a much later slot (#1723)
- 🐛 correct OpenAPI schema for proof hash endpoint (#1698)
- 🐛 Gather WaitingDissemination events sending (#1712)
- 🐛 Conserve transaction status priority in indexer's db (#1706)
- 🐛 Add distinctive bytes for consensus markers (#1702)
Tests
- 🧪 Make leader choice deterministic wrt turmoil seed (#1689)
Performance
- ⚡️ Do no recreate contracts in LRT (#1707)
- ⚡ Shorter backoff for mempool sync replies with exponential backoff (#1690)
- ⚡ Remove cache from ci job build with feature flags (#1700)
- ⚡️ Share same key for RustCache in CI (#1686)
- ⚡️ Activate trie feature for SMT fastpath (#1683)
- ⚡️ Use RustCaching in CI (#1684)
Refactoring
Logging
- 🔊 Add a status gauge to the consensus metrics (#1735)
Devtools / CI
- 💚 CI fixup: faster unit test cov, run check-crates on github (#1732)
- 💚 CI profile for tests (#1729)
- 💚 Use distinct caches (#1716)
- 💚 CI don't work directly in cache but copy & save (#1715)
- 💚 Use self-hosted runner (#1704)
Removed
- 🔥 Remove unnecessary sleep (#1687)
Dependencies
- ⬆️ Bump zip from 3.0.0 to 6.0.0 (#1719)
- ⬆️ update bb to 2.0.3 (#1722)
- ⬆️ Update turmoil and Rand (#1699)
- ⬆️ Bump borsh from 1.5.7 to 1.6.0 (#1697)
- 📌 Hylix use 'latest' tag (#1681)
- ⬆️ Bump risc0-zkvm from 3.0.3 to 3.0.4 (#1676)
- ⬆️ Bump tower_governor from 0.7.0 to 0.8.0 (#1677)
- ⬆️ Bump quote from 1.0.41 to 1.0.42 (#1675)
- ⬆️ Bump hyper-util from 0.1.17 to 0.1.18 (#1678)
- ⬆️ Bump testcontainers-modules from 0.12.1 to 0.14.0 (#1679)
Uncategorized
v0.14.0
Breaking changes
- 💥 Add soft&hard timeout values for contracts timeout (#1671)
Features
- ✨ Detect settleable contracts during settlement (#1674)
- ✨ Introduce ModifiedContractData struct (#1668)
- ✨ Add block_height info (#1663)
- ✨ Dockerfile for ARM (#1637)
- ✨ Hylix: add --no-pull option (#1655)
- ✨ Rate proxy add blacklisted contracts & identities (#1648)
- ✨ Add endpoint v1/indexer/contract/{cn}/last_settled_tx_id (#1651)
- ✨ Rate limit proxy hot reload config (#1647)
- ✨ Hylix add delete contract command (#1644)
- ✨ Check local images no failing pull (#1630)
- ✨ Hylix allow to set node RUST_LOG (#1626)
- ✨ Hylix run checks if devnet is running & better error output (#1616)
- ✨ Hylix allow extra args to run (#1614)
- ✨ Allow starting GCS uploader at a different block height (#1606)
- ✨ Hylix tests & improved run (#1599)
- ✨ Hylix devnet logs command (#1605)
- ✨ Hylix: resume stopped devnet + pause command (#1604)
- ✨ Hylix config command (#1598)
Bug Fixes
- 🐛 Fix txevents indexing (#1664)
- 🐛 Fix deserialization for permissioned blob action (#1662)
- 🐛 Fix tracing random drop of logs (#1661)
- 🐛 Fix proxy blacklist of register (#1654)
- 🐛 Fix clippy checks (#1646)
- 🐛 Hylix run as release given conf (#1642)
- 🐛 Reduce compilation artifacts size in CI tests (#1632)
- 🐛 Hylix Fix Hyli DB url to be more generic (#1618)
- 🐛 Hylix set SP1_PROVER for run & fix devault conf (#1617)
- 🐛 Fix TX type for mempool events (#1602)
Documentation
- 📝 readme updates (#1659)
Performance
Refactoring
- ♻️ Factorize tx set_timeout code (#1666)
- ♻️ Tweak dockerfile setup looking at ARM compat (#1629)
- ♻️ Move nativer verifiers to remove hyli-verifiers dependency in hyli-modules (#1620)
Logging
- 🔊 Hylix add log warning on bake failure (#1615)
Deployments
- 🚀 Multi-plaftorm base docker image (#1640)
Devtools / CI
- 👷 CI push to new gcp registry (#1673)
- 💚 Fixup base docker build (#1641)
- 💚 Fix clippy for 1.90 (#1621)
- 💚 Fix clippy for 1.89 (#1613)
Removed
Dependencies
- ⬆️ Upgrade Risc0 to v3.0.3 (#1657)
- ⬆️ Bump blst from 0.3.15 to 0.3.16 (#1638)
- ⬆️ Bump clap from 4.5.47 to 4.5.48 (#1622)
- ⬆️ Update to bb 0.87.9 (#1634)
- ⬆️ Bump serde_with from 3.14.0 to 3.14.1 (#1624)
- ⬆️ Bump chrono from 0.4.41 to 0.4.42 (#1612)
- ⬆️ Bump ureq from 3.1.1 to 3.1.2 (#1610)
Uncategorized
v0.14.0-rc3
Features
Bug Fixes
- 🐛 Fix panic when processing old blocks in indexer (#1593)
- 🐛 Fix hashing of verified proof TX to match proof TX (#1591)
Tests
- ✅ Start testing client sdk (#1594)
Performance
- ⚡ Indexer improvements: faster streaming + re-add txs_contracts (#1584)
Refactoring
- ♻️ Hylix up & down (#1585)
Logging
Dependencies
- ⬆️ Bump axum-test from 17.3.0 to 18.1.0 (#1589)
- ⬆️ Bump ureq from 3.1.0 to 3.1.1 (#1590)
- ⬆️ Bump console from 0.16.0 to 0.16.1 (#1587)
Uncategorized
v0.14.0-rc2
Features
Bug Fixes
- 🐛 Prevent message loss on the TCP API side (#1578)
- 🐛 Fix transaction events in indexer (#1573)
- 🐛 Use a different block for consensus processing to keep cuts around when catching up (#1559)
Refactoring
- ♻️ Upgrade autoprover to the new block events (#1563)
- ♻️ Rework UnsettledBlobTransaction to keep BlobTransaction around (#1562)
- ♻️ Introduce a 'stateful-event' struct, replace usage of Block in CSI (#1561)
- ♻️ Store TxId directly in unsettledBlobTransaction (#1560)
- ♻️ Don't leak NodeStateProcessing (#1558)
Removed
- 🔥 Remove proxying src/node_state.rs (#1557)
Dependencies
- ⬆️ Update dependencies for cairo-m (#1571)
Uncategorized
v0.14.0-rc1
Breaking changes
- 💥 Add Verifier&ProgramId in ProofTransaction (#1484)
- 💥 ✨ Add an endpoint for prover readiness (#1390)
Features
- ✨ add cairo m verifier (#1545)
- ✨ Start backfill from first hole in storage (#1544)
- ✨ Add test for timeout rebroadcast (#1539)
- ✨ Move OnChain execution at settlement logic (#1521)
- ✨ Improve QueryNewCut - faster and avoids staleness (#1520)
- ✨ Replace Register/Delete virtual blob w/ real ones (#1494)
- ✨ Store proofs on GCS instead of PG -remove proofs by default (#1420)
- ✨ Improve block creation flexibility in single-consensus (#1486)
- ✨ Per-message type capacity on bus (#1483)
- ✨ Boundless runner (#1372)
- ✨ Store cycles count in metrics (#1436)
- ✨ Add AdminApi to smt auto provers (#1437)
- ✨ Embed nodestate in indexer (#1432)
- ✨ Add admin download file endpoint (#1429)
- ✨ Uprade CI test timeout to 20 minutes (#1428)
- ✨ Node state checker tool + Signed block Da listener (#1383)
- ✨ Make consensus timeout configurable (#1398)
- ✨ Detect when a received DP is already on top on lane (#1389)
- ✨ Add monitoring on success/failure of a tx (#1386)
Bug Fixes
- 🐛 Fix clippy checks (#1549)
- 🐛 Make blob proof output indices consistent with executed blobs (#1542)
- 🐛 Fix docs tools (#1522)
- 🐛 move back to rust1.88 and fix cargo docs (#1519)
- 🐛 SettleAsFailed Tx with incorrect OnChainEffects (#1509)
- 🐛 Clippy to rustc 1.89 (#1517)
- 🐛 fix dockerfile (#1515)
- 🐛 Properly sign NIL timeout certificates (#1512)
- 🐛 Refacto of consensus TC handling for fast-forward support (#1510)
- 🐛 Allow fast-forwarding views on consensus timeouts (#1502)
- 🐛 Configure DA client correctly in DA module (#1496)
- 🐛 Fixup alloc-track feature (#1493)
- 🐛 Fix dissemination fees checks (#1480)
- 🐛 CSI handle upgrade contract (#1367)
- 🐛 Fix fjall compression feature (#1478)
- 🐛 Prevent indexer crash on shutdown (#1477)
- 🐛 Carry on on errors in the indexer when possible (#1474)
- 🐛 Add env var to conf DA sleep timeout (#1455)
- 🐛 DAListener should always start from 0 or current height (#1430)
- 🐛 Don't stop when not finding contract (#1462)
- 🐛 only allow faucet and wallet (#1459)
- 🐛 Make VerifiedProofTx hash match ProofTx hash (#1421)
- 🐛 Enable timeout fix from genesis (#1456)
- 🐛 Fix crash on wrong smt blob format (#1447)
- 🐛 Indexer/Dump store at shutdown (#1444)
- 🐛 Prover checks blocks height (#1431)
- 🐛 Remove timeout in bus send_waiting method (emits warns) (#1427)
- 🚑️ Fix clippy+fmt (#1417)
- 🐛 Fix mempool AlreadyOnTop issue, cleanup put() (#1414)
- 🐛 data availability tcp server mem leak (#1410)
- 🐛 Add node-state-check to node & fixup SignedDaListener to match DAList… (#1409)
- 🐛 Redisseminate first dps (#1405)
- 🐛 Fix prover serde (#1407)
- 🐛 Da tcp server metrics + backoff slow clients (#1404)
- 🐛 Fix delete contract + add tests (#1403)
- 🐛 Fix settlement bug after hyle TX (#1401)
- 🐛 Do not stop module on failed ping (#1402)
- 🐛 Fix indexer for some failing verified proof TX (#1400)
- 🐛 Clean dead peers in data availability + add client timeout (#1399)
- 🐛 Do not reprocess buffered&ignored dp (#1397)
- 🐛 Data availability send if full (#1395)
- 🐛 Fix Txhash for failed proof output validation (#1385)
Documentation
- 📝 Hylix docs upgrades (#1550)
- 📝 Introduce Hylix (#1497)
- 📝 README restructuration & updates (#1546)
- 📝 Better CONTRIBUTING (#1490)
Configuration
- 🔧 Rust version from workspace (#1488)
Tests
- ✅ Clippy fix (#1458)
Performance
- ⚡ Fast catchup (#1514)
- ⚡️ Remove ProofData frm SignedBlock (#1472)
- ⚡️ Fail blobs early when valid proof of failing (#1435)
- ⚡️ Do not re-execute blobs if failed prediction was good (#1307)
- ⚡️ Speed up contracts query (#1445)
- ⚡️ Speedup node-state (#1473)
- ⚡️ Allow 'da:' prefix for faster local DA listener (#1457)
- ⚡️ Prevent using different lib version (#1449)
- ⚡️ speedup prover (#1461)
- ⚡️ Speed up node state (#1460)
- ⚡ improve sql indexer (#1448)
- ⚡️ Optimise query to get transactions (#1443)
- ⚡️ Don't try to deser as NukeTxAction unless on Hyle (#1438)
- ⚡️ Light, fast SMT executor (#1426)
- ⚡️ Make consensus more reactive to new DPs (#1406)
- ⚡ da listener retry (#1396)
Refactoring
- 🚚 Fix rename docker registry (#1556)
- 🚚 Rename all to hyli (#1555)
- ♻️ Refactor node-state to use callbacks and reimplement Indexing + compatibility layer (temporarily) (#1535)
- ♻️ Swap handler and tests in indexer module (#1541)
- ♻️ Make current_proposal an explicit option (#1516)
- ♻️ Move some mempool code around for readability (#1518)
- ♻️ Split explorer & indexer (#1333)
- ♻️ Add settlement status for tx in recursion (#1434)
Devtools / CI
- 🔨 Remove unnecessary heap allocation (#1464)
- 🔨 Add alloc-track to track allocations + HTML tool (#1482)
- 💚 Fix build crates (#1471)
- 🔨 Rate limit proxy (#1413)
Removed
- 🔥 Remove NukeTxAction (rip) (#1491)
Dependencies
- ⬆️ Bump indexmap from 2.10.0 to 2.11.0 (#1552)
- ⬆️ Bump axum-test from 17.3.0 to 18.0.0 (#1553)
- ⬆️ Bump sp1-sdk from 5.0.8 to 5.1.1 (#1531)
- ⬆️ Bump toml from 0.9.2 to 0.9.5 (#1529)
- ⬆️ Bump tokio from 1.46.1 to 1.47.1 (#1528)
- ⬆️ Bump clap from 4.5.41 to 4.5.43 (#1525)
- ⬆️ Bump whoami from 1.6.0 to 1.6.1 (#1527)
- ⬆️ Bump uuid from 1.17.0 to 1.18.0 (#1524)
- ⬆️ Bump assertables from 9.8.1 to 9.8.2 (#1526)
- ⬆️ Bump sp1-zkvm from 5.1.1 to 5.2.1 (#1523)
- ⬆️ Bump toml from 0.8.23 to 0.9.2 (#1504)
- ⬆️ Bump tokio-util from 0.7.15 to 0.7.16 (#1507)
- ⬆️ Bump serde_json from 1.0.141 to 1.0.142 (#1506)
- ⬆️ Bump sp1-zkvm from 5.0.8 to 5.1.1 (#1505)
- ⬆️ Bump keyring from 3.6.2 to 3.6.3 (#1508)
- ⬆️ Upgrade risc0 (#1465)
- ⬆️ Bump syn from 2.0.101 to 2.0.104 (#1387)
- ⬆️ Bump assertables from 9.7.1 to 9.8.0 (#1415)
Uncategorized
v0.13.2
Breaking changes
- 💥 Timeout fixes after block 445000 (#1382)
Features
- ✨ Update timeout window in contracts (#1384)
Bug Fixes
- 🐛 Fix prover catchup under load (#1379)
- 🐛 🐛 Timeout bugs correction [REVERT] (#1380)
- 🐛 don't send messages to no-one in block_dbg (#1378)
Performance
- ⚡️ Shutdown aware timeout + wait less for proofs (#1377)
v0.13.1
Features
- ✨ Update contract programId from permissioned blob (#1365)
- ✨ Prover check its stored state (#1361)
- ✨ Dont wait other peers when genesis (#1357)
- ✨ Only fetch the to entry for SyncRequests with from == None (#1355)
- ✨ Allow multiple blobs in the nuke tx (#1335)
- ✨ Error on full bus channel, wait in da_listener (#1344)
- ✨ Add useful health data to node_state / consensus API (#1338)
- ✨ Allow nuke transaction (#1315)
- ✨ Allow indexer to configure query buffer size (#1330)
- ✨ DAListener can read dump folder (#1320)
Bug Fixes
- 🐛 Make sure hyle contract has only one configuration, even when overriding in genesis (#1371)
- 🐛 Fix prover catchup with only unsettled txs (#1370)
- 🐛 NodeState timeout bug (#1369)
- 🐛 Fix timeout during catchup (#1362)
- 🐛 Fix prover for duplicated_txs (#1358)
- 🐛 Batch insertion/update on PG (#1354)
- 🐛 ReSync when building a block, add tests (#1350)
- 🐛 Fix incorrect exit-of-joining on catchup (#1353)
- 🐛 Fix state revert of SMT-like contracts (#1341)
- 🐛 Fix proof stats endpoint (#1337)
- 🐛 Fix SMT handler (#1331)
Tests
- ✅ Reduce flakiness (#1356)
Performance
- ⚡️ Deduplicate buffered proposals, drop on restart (#1374)
- ⚡️ Fix bonsai_runner blocking sleep (#1376)
- ⚡️ Don't wait so long for proofs (#1373)
- ⚡️ Fix CSI memory leak (#1368)
- ⚡ Higher dp size from 40kb to 40mb (#1364)
- ⚡️ Prevent blob TXs with too many blobs (#1345)
- ⚡ Fix prover oom (#1332)
- ⚡️ Introduce new txs_contracts table for better query (#1329)
- ⚡️ Better query for indexer contracts endpoints (#1328)
Logging
- 🔊 Bump shutdown timeout to 5s (#1375)
- 🔇 Reduce loglevel (#1360)
- 🔇 Clean debug log (#1334)
- 🔊 Better logging on shutdown (#1284)
Devtools / CI
Removed
- 🔥 Revert "⚡️ Don't wait so long for proofs (#1373)"
Dependencies
- ⬆️ Bump serde_with from 3.12.0 to 3.13.0 (#1349)
Uncategorized
- 🔈 Clean logs in mempool (#1343)
v0.13.0
Breaking changes
- 💥 RunResult as vec (#1222)
- 💥 Update noir TX parsing (#1205)
- 💥 Refactor build_modules to simplify apps (#1173)
- 💥 ✨ Change sdk & all contracts to be multiproof (#1057)
- 💥 🐛 Explicitly separate server ports from public IP addresses for DA / p2p (#1053)
- 💥 Use '@' instead of '.' to separate identities from contract names (#1033)
- 💥 State reads in HyleOutput, cleanup (#1030)
Features
- ✨ Permission delete contracts with hyli@wallet identity (#1304) (#1327)
- ✨ Add metrics to smt autoprover (#1324)
- ✨ New catchup logic for AutoProver: execute only settled (#1313)
- ✨ Freeze staking balances (#1310)
- ✨ Add autoprover bin (#1306)
- ✨ Add metrics to autoprover (#1289)
- ✨ Permission delete contracts with hyli@wallet identity (#1304)
- ✨ Deploy 'oxygen' and 'vitamin' (#1292)
- ✨ AutoProver has max txs per proof conf (#1262)
- ✨ AutoProver can batch multiple blocks (#1260)
- ✨ Handle contract registration and deletion properly in indexer (#1259)
- ✨ native blobs keep settlement unblocked V2 (#1233)
- ✨ Add peak_tps to stats endpoint (#1242)
- ✨ Provide a TxExecutorHandler for native verifiers (#1244)
- ✨ Add enpoint to get proof count stats per verfier (#1229)
- ✨ Store LaneId of transactions (#1227)
- ✨ Add earliest_unsettled field to indexer contracts (#1218)
- ✨ Propagate MempoolEvents in DA listener (#1219)
- ✨ Allow batching on partial states contracts (#1210)
- ✨ Add constructor metadata to register actions and indexers (#1196)
- ✨ Add CSI for SMT Token (-> oranj) & fix genesis (#1204)
- ✨ Add dedicated sp1 NetworkProver (#1203)
- ✨ Mempool Sync submodule (#1201)
- ✨ Add contract & blocks txs count to indexer (#1191)
- ✨ Add explicit default state in prover (#1193)
- ✨ Use prover networks (#1157)
- ✨ Allow many config files (#1177)
- ✨ Return Secp256k1 blob after checking it (#1168)
- ✨ Auto prover retry on SessionCreateErr (#1155)
- ✨ Handshake with current height (#1143)
- ✨ Use signed headers in mempool net messages (#1103)
- ✨ Start new consensus slots faster unless we are making no progress (#1108)
- ✨ Add indexer stats endpoint (#1122)
- ✨ Add timestamp to indexer txs (#1105)
- ✨ Stream new blocs & txs on websocket (#1102)
- ✨ Introduce p2p canals (#1095)
- ✨ Configure timeouts per-contracts (#1043)
- ✨ Websocket: Add topic messages (#1086)
- ✨ CSI send custom events on bus (#1085)
- ✨ Add WebSocket module (#1081)
- ✨ Extend bus client with generics & use it for AutoProver (#1078)
- ✨ Prevent sending message based on ping (#1076)
- ✨ Auto prover module (#1056)
- ✨ Ping all peers regularly in p2p server (#1073)
- ✨ Reconnect TcpClient in async (#1066)
- ✨ Add CheckSecp256k1 to sdk & helper on Secp256k1Blob (#1022)
- ✨ P2P server reconnection (#1059)
- ✨ P2P Module into p2p server (#1036)
- ✨ CSI: add more handlers (#1037)
Bug Fixes
- 🐛 Fix prover remaining_blobs (#1325)
- 🐛 Handle errors better in GCS uploader (#1321)
- 🐛 Fix handling txs with multiple blobs (#1323)
- 🐛 Fix autoprover catchup for good, hopefully (#1317)
- 🐛 Gate behind feature (#1319)
- 🐛 Fix new prover catchup & check catchup is good ! (#1316)
- 🐛 Fix dockerbuild for autoprover (#1311)
- 🐛 Fix dockerbuild for autoprover (#1309)
- 🐛 Fix multiple bugs for Autoprover (#1305)
- 🐛 Fix genesis deposit for fees (#1301)
- 🐛 Fix GCS conf #2 (#1302)
- 🐛 Fix GCS conf setup (#1300)
- 🐛 Prevent early settlement of TXs (#1299)
- 🐛 Fix tests for timeout (#1288)
- 🐛 Fix timeout resets after settlement
- 🐛 Fix prover mismatch when settled & failed in same block + fix find in buffered blocks (#1286)
- 🐛 Fix autoprover handling of TX that fail in pos > 0 (#1281)
- 🐛 Fix when duplicated txs (#1280)
- 🐛 Fix Autoprover when future tx fails (#1278)
- 🐛 Make NodeState keep calm and dont panic (#1274)
- 🐛 Disable mempool status event in indexer for now (#1275)
- 🐛 Match ZK / Handler contracts for SMT token (#1272)
- 🐛 Fix AutoProver prove all txs when timeout (#1270)
- 🐛 Fix self-transfers in txexecutorhandler (#1268)
- 🐛 Timeout sending TCP messages, add metrics (#1265)
- 🐛 Store TxCtx for unsettled tx in CSI (#1266)
- 🐛 Fix state_history management in autoprover (#1261)
- 🐛 Fix txs stuck in limbo (#1258)
- 🐛 Fix catchup break on recent block (#1243)
- 🐛 Fix AutoProver when first txs are timeout (#1256)
- 🐛 Fix missing events from Tx history (#1255)
- 🐛 Fix state reset on tx error (#1249)
- 🐛 Fix node state settlement after failed TXs (#1250)
- 🐛 Fixes for explorer (#1247)
- 🐛 Fix program output type in indexer (#1238)
- 🐛 Add required traits (#1246)
- 🐛 Fixup native verifiers (#1245)
- 🐛 Update when slot when catching up in consensus (#1240)
- 🐛 Fix check_caller_callees, add tests, prevent panics (#1228)
- 🐛 Fix prover catchup: buffer all pending blobs (#1231)
- 🐛 Fix prover bugs & add tests (#1225)
- 🐛 Fix SMT transfer to self (#1221)
- 🐛 Fix prover start height when loading from disk (#1217)
- 🐛 More tests on the indexer + get_transaction returns proof_tx | blob_tx (#1215)
- 🐛 Avoid duplicate tx make crash indexer (#1214)
- 🐛 Add missing block_height to transaction events (#1213)
- 🐛 Fix inconsistencies in indexer api (#1209)
- 🐛 Fix smt-token blob inputs (#1206)
- 🐛 Add hyle contract to genesis for indexer (#1200)
- 🐛 Fix reverse dp order when creating a block (#1190)
- 🐛 DAListener handle blocks in right order (#1182)
- 🐛 Don't stop DAListener on NodeState error (#1180)
- 🐛 Fix ClientProver calldatas type (#1165)
- 🐛 Increase da frame frame_size (#1160)
- 🐛 Fix sp1 verifier (#1152)
- 🐛 Switch consensus to MsgWithHeader (#1156)
- 🐛 Tcp double transmission + turmoil flakyness (#1153)
- 🐛 Avoid exponential explosion in consensus syncrequest (#1135)
- 🐛 Fix TX timeout for unknown contracts / deletion (#1147)
- 🐛 Start a new task after connection failure (#1141)
- 🐛 Fix verify_poda to ensure growing cuts, fix QueryNewCut (#1128)
- 🐛 Fix node handling of duplicate TXs leading to crash (#1117)
- 🐛 Fix creation of DP, only disseminate if relevant (#1106)
- 🐛 Fix conf of perf test harness to avoid race (#1107)
- 🐛 Improve consensus prepare buffering for robustness (#1093)
- 🐛 Fix macro frame length to transmit max length (#1071)
- 🐛 Redo handshake on message fail (#1069)
- 🐛 Fix LRT for @ identities (#1065)
- 🐛 Use peer addr instead of local addr in client connections (#1061)
- 🐛 Fix handle multiple outputs (#1052)
- 🐛 Fix processing of on_commit while joining (#1062)
- 🐛 Fix missing lane id (#1044)
- 🐛 Resplit turmoil tests in jobs (#1055)
- 🐛 Fix turmoil tests (#1054)
- 🐛 Avoid committing the wrong slot when receiving multiple messages (#1045)
- 🐛 Missed Prepare for slow node (#1031)
- 🐛 Fixup identity - use the last @ (#1034)
- 🐛 Fix timedout tx missing its lane_id in block (#1041)
- 🐛 Put monotonic checks for timestamps (#1038)
- 🐛 keep context for failing requests (#1025)
- 🐛 Buffer podas waiting for data proposals being processed (#1024)
- 🐛 Fix ordering of tx processing (#1032)
- 🐛 fix clean or preserve noir temp files based on env var (#1021)
- 🐛 Fix noir parser to be compatible with bb.js (#1020)
Documentation
Configuration
- 🔧 Rust fmt (#1166)
Tests
- ✅ Fix tests (#1322)
- ✅ Autoprover add test on tx success & fails in same block (#1287)
- 🧪 Add test for ordered dps in signed blocks (#1192)
- 🧪 Add turmoil test to check hosts keep try to connect (#1145)
- ✅ More tolerant turmoil tests (#1121)
- 🧪 Add turmoil test that restart hosts and checks handshakes are correct… (#1080)
- ✅ Fix p2p_server flakyness (#1088)
- ✅ restore tests (#1077)
- 🧪 Add utest for server/client macro for max_frame_length (#1074)
- 🧪 🐛 Use OS port in test instead of fixed port (#1064)
- 🧪 Make p2p turmoil test fail if handshake does not end. (#1060)
Performance
- ⚡️ Generate proof of failures in more cases (#1312)
- ⚡️ Indexer batch insert blocks (#1241)
- ⚡ Make native blobs non blocking during settlement (#1211)
- ⚡ Dedup txs on dissemination (avoid mempool status event emission) (#1224)
- ⚡️ Take SP1ProvingKey as input to allow better init (#1216)
- ⚡ Use stream when fetching data from Fjall (#1174)
- ⚡️ Process buffered DP when done with one (#1162)
- ⚡️ Remove fancy codec from TcpServer and just operate on bytes (#1158)
- ⚡️ Optimise DP dissemination (#1150)
- ⚡ Abort started tcp clients (#1130)
- ⚡️ Fix fjall storage of DA blocks by height (#1116)
- ⚡ TCP - Retrigger handshakes on failures, better logs, (#1125)
- ⚡️ Go back to disseminating every 3s (#1123)
- ⚡ Offload own data proposal hashing (#1118)
- ⚡️ Slow dissemination ticks to every 10 s (#1111)
- ⚡️ Force 6 worker threads for testnet (#1109)
- ⚡️ Skip re-hashing DPs from fjall (#1104)
- ⚡ Batch send calls in P2P server (#1094)
- ⚡️ Cache processed DPs to avoid undue processing (#1090)
- ⚡ Move sends in coroutins in tcp server (#1087)
- ⚡️ Use a custom threadpool for the previously spawn_blocking tasks in mempool to reduce CPU load (#1083)
- 🧵 Do not remove p2p peer on tcp socket close (#1091)
- ⚡️ Re-disseminate 'old' DPs less often (#1082)
- ⚡️ Limit max DP size for smoother execution (#1058)
- ⚡️ Split DP & metadata (signatures, ...) in mempool storage. (#1040)
- ⚡️ Minor tweaks to the test perf harness setup (#1035)
Refactoring
- ♻️ Move indexer hanlder to file (#1230)
- ♻️ Reorg indexer api mod (#1226)
- ♻️ Introduce trait NodeApiClient to be able to have a Mock (#1223)
- ♻️ Handle MsgWithHeader in p2p module (#1167)
- ♻️ Move consensusNetMessage out of hyle_model (#1159)
- ♻️ Extract modules to sdk (#1149)
- ♻️ Remove trait BusMessage (#1148)
- ♻️ Prefix consensus metrics (#1134)
- ♻️ Move node state tests to src/node_state/test (#1132)
- ♻️ Tweak metrics (#1110)
- ♻️ Remove useless results (#1075)
- ♻️ Reorg hyle_verif...
v0.13.0-rc.4
Breaking changes
- 💥 New noir contract output parser (#996)
- 💥 Split contract execution in 2 traits (#948)
- 💥 Split and rename ContractInput into ZkProgramInput/Calldata (#945)
Features
- ✨ Allow deserialize proof from base64 or from Vec (#1004)
- ✨ HyleOutput can return only composed blobs (#992)
- ✨ Add token contract using SparseMerkleTrie (#976)
- ✨ Add retry mechanism to http client (#1005)
- ✨ Skip serde on BlobTx (#980)
- ✨ Proper timeout messages (#947)
- ✨ Add proof output to blob endpoints (#989)
- ✨ Split blob Tx & Proof Tx in indexer (#986)
- ✨ Add option to build a specific contract (#981)
- ✨
RestApiRunContextimpl (#971) - 🚩 Add feature flag for keyring support (#977)
Bug Fixes
- 🐛 Fix indexer ordering - DESC on height and index (#1017)
- 🐛 fixed noir verifier (#985)
- 🐛 Fix main function for smt-token (#1013)
- 🐛 Wait indexer to have received block (#993)
- 🐛 Fix loadtest urls (#1003)
- 🐛 Interpret as ms instead of seconds (#998)
- 🐛 Fix timeout with PQC to be independent of views (#995)
- 🐛 Select available port instead of random (#994)
- 🐛 Turn plain u64/u128 into TimestampMs (#990)
- 🐛 Fix contract registration not being DAGed properly (#913)
- 🐛 Do not serde build_start_height in mempool (#987)
- 🐛 Fix DP parent hash in DB leading to duplicates (#983)
- 🐛 Fixup URLs in loadtest (#984)
Tests
Refactoring
- ♻️ Remove useless traits in Consensus (#1011)
- ♻️ Struct&Trait renaming + file creation (#988)
- ♻️ Changed applicable
timestamps fromu64tou128(#961) - ♻️ Remove reqwest client (#973)
Logging
- 🔊 Move some logs to trace (#974)
Work in Progress
- 🚧 🐛 Temporary fix contract build (#1014)
Security
- 🔒️ Compute voting power of unique validators (#978)
Devtools / CI
Dependencies
- ⬆️ Bump indexmap from 2.8.0 to 2.9.0 (#1007)
- ⬆️ Bump tokio from 1.44.1 to 1.44.2 (#1010)
- ⬆️ Bump axum from 0.8.1 to 0.8.3 (#968)
- ⬆️ Update fjall (#970)