Releases: yetanotherco/aligned_layer
v0.20.0
For Operators
This upgrade is mandatory for Mainnet.
Deploy Instructions
From v.0.19.0
If upgrading from v0.19.0, follow the steps in our documentation.
What's Changed
- feat(batcher): get last max fee msg by @MarcosNicolau in #2127
- test(batcher): add script to test unlocked funds flow by @JuArce in #2126
- fix(zkquiz): use compressed mode for sp1 by @JuArce in #2155
- fix(examples): l2 missing public inputs when submitting proof to Aligned by @MarcosNicolau in #2154
- fix(sdk): hoddi proof aggregator address in sdk by @MarcosNicolau in #2158
- feat: improve periodic proof sending script by @maximopalopoli in #2156
- chore: update gnark dep by @MarcosNicolau in #2157
- docs: v0.20.0 by @JuArce in #2161
- v0.20.0 by @JuArce in #2159
Full Changelog: v0.19.1...v0.20.0
v0.19.1
This Release adds several improvements to CLI, SDK and Batcher. Also it updates examples to be compatible with Hoodi network
CLI / SDK
Introduced functionality to unlock, lock, and withdraw funds.
Batcher
Automatically removes users with unlocked funds. Unlocking your funds will remove your pending proofs from the queue.
For Operators
This upgrade is Optional for both Testnet and Mainnet.
What's Changed
- Log address on lack of funds error by @MauroToscano in #2119
- feat(batcher): poll for unlock events and remove users with unlocked funds by @JuArce in #2123
- fix(test): Change the tests Holesky RPC url to the Hoodi one by @maximopalopoli in #2133
- Pull fixes from testnet by @JuArce in #2135
- feat: notify user after replacement message by @maximopalopoli in #2131
- docs: update Holesky network for Hoodi in the examples of submitting proofs tutorial by @maximopalopoli in #2134
- fix: change pub input curl URL in get_proof_test_files script by @maximopalopoli in #2136
- Restore flush logic (Nuclear option for state recovery) by @MauroToscano in #2121
- docs: change Holesky network for Hoodi in the Try Aligned section by @maximopalopoli in #2138
- docs: change Holesky for Hoodi in Generating proofs for Aligned section by @maximopalopoli in #2139
- docs: use Hoodi instead of Holesky in Aligned CLI section examples by @maximopalopoli in #2140
- fix: add Hoodi support for the circom example by @maximopalopoli in #2141
- fix: use hoodi instead of holesky in the verify example by @maximopalopoli in #2143
- fix: use hoodi network instead of holesky on zkquiz example by @maximopalopoli in #2144
- fix: add Hoodi support for l2 example by @maximopalopoli in #2142
- feat: unlock, lock and withdraw funds in sdk and cli by @MarcosNicolau in #2149
- docs: v0.19.1 by @JuArce in #2148
- v0.19.1 by @JuArce in #2137
Full Changelog: v0.19.0...v0.19.1
v0.19.0
For Operators
This upgrade is mandatory for both, Testnet and Mainnet.
Improvements
- Optimized Ethereum RPC usage
- Enhanced stability for tasks downloading
- Updated dependencies
Deploy Instructions
From v.0.18.0
If upgrading from v0.18.0, follow the steps in our documentation.
From v.0.16.x
If upgrading from v0.16.x, complete the following steps due to renamed targets:
Mainnet
git fetchgit checkout v0.19.0make operator_build ENVIRONMENT=mainnet- Restart the operator
Testnet
git fetchgit checkout v0.19.0make operator_build ENVIRONMENT=testnet- Restart the operator
Breaking Changes
Operators
SDK
- Handle Circom public inputs as bytes instead of JSON. #2077
What's Changed
- Pull testnet to staging by @MauroToscano in #2027
- hotfix(operator): retry logic for batches download by @JuArce in #2030
- fix: improve sp1 proof handling by @JuArce in #2037
- Add Risc0 to task sender by @MauroToscano in #2036
- Pull testnet changes to staging by @MauroToscano in #2038
- fix: bump ethereum-genesis-generator image version in network_params.yaml by @avilagaston9 in #2032
- Sp1 task sender by @MauroToscano in #2039
- docs: update SUMMARY.md by @cliraa in #2040
- feat: upload batches to multiple storage services by @JuArce in #2045
- feat(aggregation mode): add retry logic to batches download by @JuArce in #2046
- Fix fmt Agg Mode by @MauroToscano in #2048
- perf(batcher): optimize verification data size calculation by @MauroToscano in #2055
- Fix links and add script to look for them by @MauroToscano in #2060
- Pull staging updates by @MauroToscano in #2061
- Rework batcher concurrency by @MauroToscano in #2017
- Remove readme file by @MauroToscano in #2070
- Fix cbor serialization overhead by @MauroToscano in #2064
- feat: Sepolia deployment by @JuArce in #2066
- feat(batcher): enforce a min max_fee and min bump for replacements by @MauroToscano in #2067
- feat: Hoodi deployment by @JuArce in #2076
- fix(operator): reduce polling frecuency and remove newbatchv2 logic by @JuArce in #2080
- fix: circom public inputs commitment by @MarcosNicolau in #2077
- feat: circom example by @MarcosNicolau in #2078
- fix(ethereum-package): pin to v5.0.1 by @JuArce in #2099
- docs: add Operator config file template for Sepolia Network by @JuArce in #2095
- fix(explorer): get proof bytes correctly by @JuArce in #2101
- docs: add operator config file template for hoodi network by @JuArce in #2094
- fix(makefile): remove duplicated target by @JuArce in #2082
- infra: upload ansible inventories by @JuArce in #2104
- feat: bump Risc0 to v3.0.3 by @JuArce in #2102
- feat(operator): add thread pool operator to avoid exhausting the systems by @MauroToscano in #2079
- docs: add link to Hoodi explorer by @JuArce in #2105
- docs: update Submitting proofs with Hoodi network by @JuArce in #2109
- docs: add Hoodi contracts and strategies addresses by @JuArce in #2106
- docs: update Aligned CLI section with Hoodi network by @JuArce in #2107
- docs: update SDK reference with Hoodi network by @JuArce in #2108
- docs: update Running an Operator guide with Hoodi network by @JuArce in #2096
- Pull docs from testnet to staging by @MauroToscano in #2110
- fix(explorer): do not use @firstblock to fetch logs from Ethereum by @JuArce in #2112
- Docs update use cases 20250905 by @bjdyakov in #2111
- Pull fixes from testnet by @JuArce in #2117
- docs: v0.19.0 by @JuArce in #2116
- fix(makefile): load operator address correctly by @JuArce in #2113
- v0.19.0 by @MauroToscano in #2059
Full Changelog: v0.18.0...v0.19.0
v0.18.0
For Operators
This upgrade is mandatory for both, Testnet and Mainnet.
Deploy Instructions
From v.0.17.0
If upgrading from v0.17.0, follow the steps in our documentation.
From v.0.16.x
If upgrading from v0.16.x, complete the following steps due to renamed targets:
git fetchgit checkout v0.18.0make operator_build ENVIRONMENT=testnet- Restart the operator
Breaking Changes
Operators
- Risc0 has been updated to version v2.3.0.
What's Changed
- refactor: avoid cloning immutable values by @maximopalopoli in #1995
- feat: update risc0 to v2.2.0/2.3.0 by @JuArce in #2020
- docs: v0.18.0 by @JuArce in #2022
- v0.18.0 by @JuArce in #2023
- docs: fix operator upgrade guide by @JuArce in #2026
Full Changelog: v0.17.0...v0.18.0
v0.17.0
For Operators
This upgrade is mandatory for both, Testnet and Mainnet.
Deploy Instructions
As we renamed some targets, you will need to do the following steps to deploy the new version
- git fetch
- git checkout v0.17.0
- make operator_build ENVIRONMENT=testnet
Breaking Changes
Operators
make build_operatorhas been renamed tomake operator_buildmake update_operatorhas been renamed tomake operator_update- Risc0 has been update to version v2.1.0
SDK
Groth16Bn254has been renamed toGnarkGroth16Bn254to avoid ambiguity with Circom
CLI
Groth16Bn254has been renamed toGnarkGroth16Bn254to avoid ambiguity with Circom
What's Changed
- pull fixes from testnet by @JuArce in #1977
- Avoid recompilation of Aggregation Mode by using receipts on the Makefile by @MauroToscano in #1962
- refactor: rename
batcherfolder tocratesby @MarcosNicolau in #1951 - chore(makefile): unify naming conventions in targets by @JuArce in #1979
- fix(ci): run workflows on pushes to testnet/staging by @JuArce in #1981
- docs: aggregation mode by @MarcosNicolau in #1964
- docs: improve ethereum package steps by @maximopalopoli in #1990
- feat: update risc zero version up to 2.1.0 by @maximopalopoli in #1992
- fix: update explorer URL printed after proof submission by @maximopalopoli in #1989
- docs: improve docs folder by @maximopalopoli in #1988
- feat: integrate circom verifier by @JuArce in #1987
- docs: update to v0.17.0 by @maximopalopoli in #1997
- fix: rename groth16/plonk to gnark_groth16 and gnark_plonk to avoid ambiguity with circom by @JuArce in #1999
- refactor: migrate go-circom-prover-verifier to go-rapidsnark by @JuArce in #2002
- fix(CI and tests): merkle tree ffi tests and pin go-ethereum version in aggregator build by @JuArce in #2004
- fix(operator): pin go-ethereum and eigenlayer-cli version by @JuArce in #2007
- v0.17.0 by @JuArce in #1996
- fix: missing target build_batcher_client by @JuArce in #2009
- hotfix: operator_update target by @JuArce in #2011
New Contributors
- @maximopalopoli made their first contribution in #1990
Full Changelog: v0.16.1...v0.17.0
v0.16.1
For Operators
This upgrade is mandatory for both, Testnet and Mainnet.
Troubleshooting
- Error when checking out to latest release.
error: Your local changes to the following files would be overwritten by checkout:
go.mod
go.sum
To solve this, run
git reset --hard HEAD
- Rust version error.
error: failed to parse manifest at `/home/ubuntu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/alloy-primitives-1.2.0/Cargo.toml`
Caused by:
feature `edition2024` is required
The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.83.0 (5ffbef321 2024-10-29)).
Consider trying a newer version of Cargo (this may require the nightly release).
See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.
To solve this, update Rust and proceed with standard installation
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
What's Changed
- fix(operator): set channel stable on risc0 and merkle tree ffi by @JuArce in #1974
- docs: update to v0.16.1 by @JuArce in #1976
Full Changelog: v0.16.0...v0.16.1
v0.16.0
For Operators
This upgrade is mandatory for both, Testnet and Mainnet.
Troubleshooting
- Error when checking out to latest release.
error: Your local changes to the following files would be overwritten by checkout:
go.mod
go.sum
To solve this, run
git reset --hard HEAD
- Rust version error.
error: failed to parse manifest at `/home/ubuntu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/alloy-primitives-1.2.0/Cargo.toml`
Caused by:
feature `edition2024` is required
The package requires the Cargo feature called `edition2024`, but that feature is not stabilized in this version of Cargo (1.83.0 (5ffbef321 2024-10-29)).
Consider trying a newer version of Cargo (this may require the nightly release).
See https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#edition-2024 for more information about the status of this feature.
To solve this, update Rust and proceed with standard installation
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
What's Changed
- feat/perf(aggregation-mode): verification & sp1 aggregation by @MarcosNicolau in #1955
- feat(explorer): support search for aggregation mode by @MarcosNicolau in #1944
- fix(operator): manage subscription to events without panic by @JuArce in #1729
- fix(batcher): stop listening to blocks when one of the rpcs disconnects by @MarcosNicolau in #1961
- feat: bump gnark version to 0.12 by @Mechanix97 in #1863
- chore(dev): targets to verify aggregated proof for every network by @MarcosNicolau in #1943
- Change all addresses in yamls to be quoted, as to avoid them being interpreted as numbers by @MauroToscano in #1966
- feat: bump SP1 version to v5.0.0 by @JuArce in #1965
- ci: update golangci-lint.yml versions by @JuArce in #1967
- docs: update to v0.16.0 by @JuArce in #1970
- pull fixes from testnet by @JuArce in #1973
- v0.16.0 by @JuArce in #1969
Full Changelog: v0.15.3...v0.16.0
v0.15.3
For Operators
This upgrade is Optional for both Testnet and Mainnet.
What's Changed
- feat(agg-mode): support risc0 stark proofs by @MarcosNicolau in #1874
- infra(aggregation_mode): add setup files by @JuArce in #1866
- feat: proof aggregator upgrade scripts by @MarcosNicolau in #1888
- hotfix: use eigenSDK v0.1.13 for devnet by @JuArce in #1895
- feat: deploy risc0 groth16 verifier contracts in anvil by @MarcosNicolau in #1876
- refactor(agg-mode): reduce types, abstractions and double merkle root in PI by @MarcosNicolau in #1889
- feat(explorer): show aggregation mode componentes on testnet only by @MarcosNicolau in #1890
- Pull fixes from testnet by @JuArce in #1903
- fix(contracts): revert #1762 verifyBatchInclusion function by @JuArce in #1892
- fix(aggregation_mode): invert variables order and add setter for risc0 contract by @JuArce in #1901
- fix(contracts): revert #1762 verifyBatchInclusion function (#1892) by @MauroToscano in #1905
- feat: risc0 for sdk and cli by @MarcosNicolau in #1886
- fix(aggregation_mode): add testnet contract address to SDK by @JuArce in #1909
- infra(alerts): add alerts for aggregation mode by @JuArce in #1906
- feat: explorer show aggregtor (risc0, sp1) on aggregation mode views by @MarcosNicolau in #1904
- feat(aggregation_mode): use deterministic build for SP1 by @JuArce in #1916
- fix: explorer aggregated proofs pagination by @MarcosNicolau in #1899
- infra(aggregation_mode): add Risc0 setup by @JuArce in #1898
- fix(aggregation_mode): reset
proof-aggregator.last_aggregated_block.jsonwhen startingstart_proof_aggregator_devby @JuArce in #1920 - feat(aggregation_mode): use deterministic build for Risc0 by @JuArce in #1918
- fix(explorer): show unknown if no aggregator set in aggregated proof view by @JuArce in #1922
- script to send proofs with random addresses by @Mechanix97 in #1865
- docs: add metrics references for operators by @JuArce in #1913
- fix(aggregation_mode): hardcode image_id and vk_hash from solidity contract by @MarcosNicolau in #1910
- refactor(aggregation_mode): migrate merkle tree to lambdaworks by @MarcosNicolau in #1911
- fix(aggregation_mode: update
vk hashandimage idby @JuArce in #1927 - fix(explorer): update aggregation mode functions by @JuArce in #1929
- feat(aggregation_mode): add missing functions and events by @MauroToscano in #1930
- docs: add missing proof aggregator address by @MarcosNicolau in #1933
- fix: update eigenlayer contracts for devnet by @JuArce in #1932
- fix(explorer): redesign aggregator badges design by @MarcosNicolau in #1935
- feat(batcher): add queue limit by @Mechanix97 in #1875
- fix(CI): set rust version to 1.86.0 by @JuArce in #1939
- fix(ethereum_package): fix localnet/devnet on Ethereum package by @JuArce in #1937
- fix(aggregation_mode): merkle-tree backend openzeppelin compliant by @MarcosNicolau in #1931
- Refactor sdk modules by @MauroToscano in #1941
- feat(aggregation_mode): verify aggregated proof on chain by @MarcosNicolau in #1915
- Pull from testnet to staging by @JuArce in #1952
- feat(examples): full example and docs for aggregation mode by @MarcosNicolau in #1942
- feat(aggregation_mode): aggregate proofs in chunks by @MarcosNicolau in #1896
- feat(aggregation-mode): limit number of proofs to fetch by @MarcosNicolau in #1956
- fix(batcher): non paying proofs are ignored when queue is full by @JuArce in #1958
- docs: update to v0.15.3 by @JuArce in #1954
- v0.15.3 by @JuArce in #1940
Full Changelog: v0.15.2...v0.15.3
v0.15.2
For Operators
This upgrade is mandatory for both, Testnet and Mainnet.
Eigenlayer's Mainnet Slashing implementation causes the following error when starting Operators on v0.15.1 or earlier:
Could not create AVS reader
This release resolves the error.
All operators must upgrade to this version to ensure compatibility.
Please note that Aligned has not yet implemented any slashing mechanisms, so there is no need to be concerned about slashing impacts at this time.
Troubleshooting
You may need to install g++ with the following command:
sudo apt update && sudo apt install g++
What's Changed
- fix: clippy by @JuArce in #1844
- hotfix: add flag to use random addresses for proof_generator_addr in Aligned CLI by @JuArce in #1850
- feat: aggregation mode by @MarcosNicolau in #1840
- 1853 fix use -z instead of eq when checking if variable is empty by @Mechanix97 in #1854
- modify anvil_start by @Mechanix97 in #1857
- feat: integrate sp1 verifier with aggregation mode by @JuArce in #1843
- feat: aggregation mode explorer by @MarcosNicolau in #1846
- perf: aggregation-mode sp1 prover setup by @MarcosNicolau in #1862
- feat: aggregated proofs explorer views by @MarcosNicolau in #1856
- infra(aggregation_mode): update testnet addresses by @JuArce in #1868
- Checks functions refactor by @MauroToscano in #1860
- chore: update contract addresses by @JuArce in #1869
- Change match for if let in serialization on connections by @MauroToscano in #1858
- refactor: agg mode by @MarcosNicolau in #1871
- Change SP1-sdk version from 4.1.3 to 4.1.7 by @Mechanix97 in #1851
- feat(aggregation_mode): save last processed block in a file by @Mechanix97 in #1872
- fix(ci): pin eigenlayer cli version to v0.11.3 by @JuArce in #1881
- feat: aggregation mode sdk by @MarcosNicolau in #1861
- fix(operatorsaggregator): update EigenSDK version for mainnet by @JuArce in #1883
- docs: update to v0.15.2 by @JuArce in #1885
- v0.15.2 by @MauroToscano in #1879
New Contributors
- @Mechanix97 made their first contribution in #1854
Full Changelog: v0.15.1...v0.15.2
v0.15.1
For Operators
This upgrade is optional.
This upgrade is a hotfix if you are having the following error trying to build v0.15.0:
error while loading shared libraries: libsp1_verifier_ffi.so: cannot open shared object file: No such file or directory
What's Changed
- docs: update dependencies for operators by @JuArce in #1832
- hotfix(operator): add SP1 path to LD_LIBRARY_PATH and OPERATOR_FFIS by @JuArce in #1835
- docs: update to v0.15.1 by @JuArce in #1837
- docs: update examples and SDK specs by @JuArce in #1839
Full Changelog: v0.15.0...v0.15.1