Aligned Engineering Updates - June 2nd - 6th, 2025

Aligned Engineering Updates - June 2nd - 6th, 2025

This week we upgraded the fast mode protocol on Testnet to its latest version, bringing some reliability upgrades and upgrading the verifiers libraries to their latest version.

We also worked on improving the aggregation mode all across the board, from reliability, to performance and a better integration with the current explorer.

Latest PRs Merged

Limit number of proofs to fetch

https://github.com/yetanotherco/aligned_layer/pull/1956

It adds a limit for the number of proofs to fetch. When the fetcher reaches that limit or when the proofs for the batch surpass that limit the fetching stops and the last aggregated block us updated to the block number of that log so that the next aggregation starts at that block.

Non-paying proofs are ignored when queue is full

https://github.com/yetanotherco/aligned_layer/pull/1958

When the queue is full, non-paying proofs were being ignored.

This PR fixes that by performing replacement on low-fee proofs.

Update Docs and made releases for the latest versiosn

https://github.com/yetanotherco/aligned_layer/pull/1940

https://github.com/yetanotherco/aligned_layer/pull/1954

https://github.com/yetanotherco/aligned_layer/pull/1970

https://github.com/yetanotherco/aligned_layer/pull/1976

Verification & sp1 aggregation

https://github.com/yetanotherco/aligned_layer/pull/1955

While aggregating many proofs in sp1 we noticed that setting up the prover has quite the overhead (around 400ms). This PR addresses that issue by:

  • Parallelising the verification in the fetching process with rayon.
  • Obtaining the vk once instead of the setting up the client with the program elf every time: for this the proof pre verification was moved to the creation of the struct so that the vk is computed only once and in parallel regarded if the pre-verification is enabled or not.

Support search for aggregation mode

https://github.com/yetanotherco/aligned_layer/pull/1944

It extends the explorer's search functionality to support querying aggregated proofs by:

  • Merkle root of the aggregated proof.
  • Proof commitment included in an aggregated proof.

Manage subscription to events without panic

https://github.com/yetanotherco/aligned_layer/pull/1729

Previously, the Operator panicked if one connection (either main or fallback) failed.

The previous solution to this (#1692) was to iterate infinitely over both connections, this had the "silent failure" problem, as an operator could fail and retry forever without notice to its owner.

Now if one connection fails, the Operator will use the other one, while continuously trying to reconnect to the failed one; and if both connections fail, and the retryables are consumed, the Operator will exit, logging the errors of each connection RPC, so the owner/manager of the Operator server can fix it accordingly.

This PR also added the usage of fallback when operator calls DisableVerifiers.

Stop listening to blocks when one of the rpcs disconnects

https://github.com/yetanotherco/aligned_layer/pull/1961

This PR improves the batcher's ws connection. The batcher maintains two ws connections: a primary and a fallback. Previously, if either connection failed during listen_to_new_blocks, the entire process would fail.

With this PR now:

  • The batcher only returns an error if both connections fail. If at least one succeeds, the process continues.
  • Previously, a select call would return immediately on the first event, when one disconnected then it would be the first one to return making it fail. The new logic listens to both connections and only exits if both fail.

Bump gnark version to 0.12

https://github.com/yetanotherco/aligned_layer/pull/1863

  • Update the version in go.mod and go.sum.
  • Update the test files of groth16 to make it work (plonk 0.10 test files still works).
  • Fix the CI to use the correct test files.
  • Update the docs.

Targets to verify aggregated proof for every network

https://github.com/yetanotherco/aligned_layer/pull/1943

Previously, the target to verify if a proof was aggregated was hardcoded for holesky-stage. Since we now have ethereum-package and holesky, the target was updated to support every network. Also, based on the NETWORK param the RPC_URL and BEACON_URL are automatically set to public nodes.

Upgrade SP1 to 5.0.0 in Aggregation, verification mode and examples

https://github.com/yetanotherco/aligned_layer/pull/1965

Update golang lintern on CI and fix warnings

https://github.com/yetanotherco/aligned_layer/pull/1967

Change all addresses in yamls to be quoted, as to avoid them being interpreted as numbers in some machines

https://github.com/yetanotherco/aligned_layer/pull/1966

Stay tuned:  🐦 Twitter | 🗨️ Telegram | 👾 Discord | 🌐 Website | 📝 Manifesto