Ecosystem metrics
- New Repos
- 25
- New
- Commits
- 744
- up 1.8%
- Releases
- 6
- up 50.0%
- Contributors
- 55
- up 10.0%
- Merges
- 18
- down 30.8%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
8523 commits in all time
Jul 17, 2026 21:54 – Oct 15, 2026 21:54 UTC
fix: report storage members that share a key
Two members of the same storage kind (global, local or box) with the same key silently overwrote each other, for example through inheritance. The compiler now reports an error naming both members. Adds expected-output tests for the collision and for the cases that must stay valid: the same key in different storage kinds, and distinct keys.
630ea99e
pull/408/head
2/52 ++ 1 --
feat: add post-quantum transaction leaderboard API endpoints for QRL, Algorand, and Solana
4389f870
main
3/12 ++ 9 --
Merge 0c4591a8f21720f9a7d516d124bd35159d33c5be into cf7ac7503efd5cb1303627036d9a9e37fb6e904f
9b66ef38
pull/6781/merge
2/91 ++ 1 --
agreement: persist the crash recovery snapshot compressed
The previous release restores zstd-compressed snapshots; persist them compressed from this one. A mainnet snapshot goes from 433 KB to 105 KB, for 0.75 ms to encode and 0.25 ms to decode, and it is written twice per round. A rollback to the previous release restores these snapshots; releases before it do not decode them and start the round fresh, as they do for any snapshot they cannot decode.
0c4591a8
pull/6781/head
2/21 ++ 29 --
Merge 6e3b53b67b1847048c0cbcf82f35b6f22650ff86 into cf7ac7503efd5cb1303627036d9a9e37fb6e904f
c112aca3
pull/6779/merge
2/99 ++ 1 --
agreement: restore zstd-compressed crash recovery snapshots
The persisted state is mostly votes, and it holds their content several times over: every vote carries the proposal value, the bundle that proved a threshold repeats the signatures of the votes that formed it, and msgpack writes every field name. zstd at level 3 removes the repeats and keeps the signatures and proofs: a mainnet snapshot shrinks from 433 KB to 105 KB. This release restores a compressed snapshot, recognized by its frame magic, and still persists the uncompressed form; the next release persists the compressed form, so that the release before this one, which does not decompress, restores what this one persists.
6e3b53b6
pull/6779/head
2/99 ++ 1 --
Merge d80102bd19b7f146ba23688a220f0b79bf7a2f44 into cf7ac7503efd5cb1303627036d9a9e37fb6e904f
275d6f26
pull/6780/merge
6/351 ++ 42 --
agreement: stop persisting the per-proposal copies of the votes
voteTracker held every accepted vote in Voters and again in Counts[proposal].Votes. Since the previous release generates bundles from Voters, the copies have no reader: stop maintaining them. Each vote is about 780 bytes encoded and the copies went into every crash recovery snapshot, about a third of a mainnet cert-step snapshot. The field stays, omitted when empty, so that snapshots written by the previous release still decode; it restores them with the copies, which it does not read. Releases before the previous one would restore a snapshot without the copies with incomplete bundles, so this change ships one release after the bundle change.
d80102bd
pull/6780/head
3/67 ++ 44 --
Merge d57fbf97049e3735bbbd424f3589aec098836905 into cf7ac7503efd5cb1303627036d9a9e37fb6e904f
c818f672
pull/6776/merge
5/298 ++ 12 --
agreement: generate bundles from Voters and validate restored trackers
genBundle built a threshold's bundle from Counts[proposal].Votes, a second copy of the votes already held in Voters. Build it from Voters, so that a persisted state without the per-proposal copies restores with complete bundles; the next release stops persisting them. The copies are still maintained here, so that a state persisted by this release restores on the previous one. Validate a restored vote tracker before using it: the counts must be the weight of its voters, the equivocators count the weight of its equivocators, and no sender in both maps. A state that fails is not restored; the node starts the round fresh, as it does for a state it cannot decode.
d57fbf97
pull/6776/head
5/298 ++ 12 --
Merge 221608ed0919d5a88039790bb066ffeb49fd15a0 into cf7ac7503efd5cb1303627036d9a9e37fb6e904f
b0c916f7
pull/6761/merge
9/323 ++ 135 --
Merge f2602c632ea9165c6359f9437e0488e392a842cb into cf7ac7503efd5cb1303627036d9a9e37fb6e904f
959f90f9
pull/6751/merge
5/150 ++ 27 --
agreement: stop persisting the per-proposal copies of the votes
voteTracker held every accepted vote in Voters and again in Counts[proposal].Votes. Since the previous release generates bundles from Voters, the copies have no reader: stop maintaining them. Each vote is about 780 bytes encoded and the copies went into every crash recovery snapshot, about a third of a mainnet cert-step snapshot. The field stays, omitted when empty, so that snapshots written by the previous release still decode; it restores them with the copies, which it does not read. Releases before the previous one would restore a snapshot without the copies with incomplete bundles, so this change ships one release after the bundle change.
89b9e15f
pull/6780/head
3/67 ++ 44 --
agreement: generate bundles from Voters and validate restored trackers
genBundle built a threshold's bundle from Counts[proposal].Votes, a second copy of the votes already held in Voters. Build it from Voters, so that a persisted state without the per-proposal copies restores with complete bundles; the next release stops persisting them. The copies are still maintained here, so that a state persisted by this release restores on the previous one. Validate a restored vote tracker before using it: the counts must be the weight of its voters, the equivocators count the weight of its equivocators, and no sender in both maps. A state that fails is not restored; the node starts the round fresh, as it does for a state it cannot decode.
2424a79a
pull/6776/head
5/297 ++ 12 --
arc60: support PQ schemes and remove CAIP122
Non breaking changes to ARC60 to support PQ schemes. CAIP was also removed and replaced with a security section noting that address auth is non-trivial on Algorand due to rekeying. A future ARC that leverages ARC60 can standardize SIWA
519110b8
pull/494/head
5/61 ++ 442 --
refactor: create quantum transaction printer tool with Falcon-1024 signing and live leaderboards
81861f01
main
7/229 ++ 53 --
Merge abdc972c0f1b5e6678543c342efff57dc14e54e9 into cf7ac7503efd5cb1303627036d9a9e37fb6e904f
d9221bfa
pull/6768/merge
2/285 ++ 0 --
Merge 1d00837649f0d397030dbef2fbe91d2b71d5dbc4 into 69e6af844b1ecb5787a45f132cce29daaac1cccf
59258330
pull/460/merge
15/964 ++ 502 --
chore(deps): update non-major dependencies
1d008376
renovate/non-major-dependencies
15/964 ++ 502 --
chore(deps): update non-major dependencies
5faa4dea
renovate/branches/renovate/non-major-dependencies
15/964 ++ 502 --
Merge d2722b6a80783e02d946599b077c85261853973b into cf7ac7503efd5cb1303627036d9a9e37fb6e904f
1523f372
pull/6779/merge
2/71 ++ 1 --
agreement: zstd-compress the crash recovery snapshot
The persisted state is mostly the votes of the round's steps, and it holds their content several times over: every vote carries the proposal value, the bundle that proved a threshold repeats the signatures of the votes that formed it, and msgpack writes every field name. zstd at level 3 replaces the repeats with references and leaves the signatures and proofs: a mainnet snapshot shrinks from 433 KB to 105 KB, for 0.75 ms to encode and 0.25 ms to decode. The snapshot is written twice per round, so this removes most of the crash database's disk writes. decode recognizes a zstd frame by its magic number and still reads the uncompressed snapshots of earlier releases.
d2722b6a
pull/6779/head
2/71 ++ 1 --
Merge a4e5f3fe9c301bb34165a4e391d01dcf8433a59b into cfe2e364b80e466defbb7e066f63e7c9a9ca6717
6b5fa351
pull/201/merge
1/1 ++ 0 --