Releases: ProvableHQ/snarkVM
Releases · ProvableHQ/snarkVM
testnet-v4.8.0
Bump ConsensusVersion heights
v4.0.0
snarkVM is a zkVM library. It powers the Aleo network and most of the software used to interact with it. There are a number of breaking changes introduced in v4.0.0:
- Records now contain a new "_version" field. New records generated after ConsensusVersion::V8 will have a version of 1, while those before have version 0.
- Programs verifying keys for all programs deployed on-chain have been updated to a new version to support the new record version, and as such all programs now require the use of edition 1. (Introduced in #2793R).
- As described above, transactions with output records will now have an encrypted sender field that encodes the signer of the transaction that produced the record. This will allow users to determine what address sent them a record. Serialization for the following objects has changed:
- Request::InputID now includes for record inputs a "record_view_key": record_view_key entry. Blocks do not contain requests, so this should not impact all indexers.
- Transition::Output now includes for record outputs an optional "sender_ciphertext": sender_ciphertext entry, which will be populated from ConsensusVersion::V8 onwards.
- You can retrieve the latest program edition using block_store().get_latest_program (In contrast to e.g. block_store().get_program). Once program upgradability is introduced in a future release, you’ll be able to review all.
- Querytrait is now used as a trait object. This significantly improves the ergonomics of using these functions. If you don’t want to pass in a Query, just pass in None. Note that if you do use a Query object, you may need to instantiate it e.g. as follows: Some(&Query::<N, BlockMemory>::from(endpoint)).
v1.0.0
What's Changed
- [TOB-19] Update committee member sorting by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2162
- [Stress-04] Create nested tree for finalize root by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2170
- [ZKS-04] Fixes the maximum transmissions per batch, increases the transactions per block by @howardwu in https://github.com/AleoNet/snarkVM/pull/2198
- [Fix] Add
signatureto reserved keywords. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2238 - [Refactor] Adds some tests and contains some documentation suggestions for the
fix/cast-lossy-field-to-groupPR by @d0cd in https://github.com/AleoNet/snarkVM/pull/2272 - [Fix] Fix circuit for cast lossy field to group. by @acoglio in https://github.com/AleoNet/snarkVM/pull/2133
- [Feature] Enable
cast.lossyfor all literal types. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2273 - [NCC-ADN] Prevent ignoring proving/verifying tasks #2 by @vicsn in https://github.com/AleoNet/snarkVM/pull/2276
- [Test] add tests for subgroup membership/nonmembership of small order curve points by @bendyarm in https://github.com/AleoNet/snarkVM/pull/2282
- [NCC-Y7H] Create compute_function_id helper which enforces minimal TLV encoding by @vicsn in https://github.com/AleoNet/snarkVM/pull/2154
- [NCC-EVJ] Use
Committeestakes when determining the timestamp of aSubdagby @raychu86 in https://github.com/AleoNet/snarkVM/pull/2223 - [ZKS-03] Proof Delegation Is Subject To Truncation by @vicsn in https://github.com/AleoNet/snarkVM/pull/2267
- [Fix] Declare public variable 1field once by @vicsn in https://github.com/AleoNet/snarkVM/pull/2268
- [Fix] Store the aborted solution IDs in blocks by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2284
- [Fix] Add checks for existing transactions and solutions by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2313
- [ZKS-05] Caller Is Not Fixed Throughout Function Execution by @vicsn in https://github.com/AleoNet/snarkVM/pull/2076
- [Fuzzing-ILT] Disallow
Identifiers with the same form asLiteralTypes. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2319 - [Stress-06] Price Finalize Opcodes Based On Operand Types by @iamalwaysuncomfortable in https://github.com/AleoNet/snarkVM/pull/2281
- Update finalize
setcosts based on storage size. by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2214 - update: add many_input_and_output.aleo for test by @randomsleep in https://github.com/AleoNet/snarkVM/pull/2333
- [HackerOne-2300725] Limit the number of allowed constraints for deployments by @vicsn in https://github.com/AleoNet/snarkVM/pull/2271
- Clarify constraint limit logic by @vicsn in https://github.com/AleoNet/snarkVM/pull/2340
- [ZKS-04] Track committee size. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2213
- Remove extraneous set_constraint_limit and clarify why by @vicsn in https://github.com/AleoNet/snarkVM/pull/2342
- [ZKS-02] Introduce committee lookback by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2336
- [ZKS-00] Reverts election certificates by @howardwu in https://github.com/AleoNet/snarkVM/pull/2343
- [Refactor] Renames
Testnet3toMainnetV0by @howardwu in https://github.com/AleoNet/snarkVM/pull/2347 - [Fix] Prevent passing in too many public inputs to Varuna by @howardwu in https://github.com/AleoNet/snarkVM/pull/2094
- fix: don't use 3 for mainnet by @joske in https://github.com/AleoNet/snarkVM/pull/2351
- Remove the outdated version of
BatchCertificateby @raychu86 in https://github.com/AleoNet/snarkVM/pull/2350 - Clean up
ConfirmedTransactionsMapby @raychu86 in https://github.com/AleoNet/snarkVM/pull/2349 - Cleanup
UpdateKeyValueandRemoveKeyValuefinalize operations by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2348 - Cache transaction checks by @ljedrz in https://github.com/AleoNet/snarkVM/pull/2270
- [Coinbase Go/No-Go] Bond balances in genesis block by @vicsn in https://github.com/AleoNet/snarkVM/pull/2308
- [ZKS-02] Fix committee usage when calculating the next timestamp by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2353
- [HackerOne-2354265] Restrict number of imports, program depth, and call depth. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2352
- [Feature] Adds a histogram label by @joske in https://github.com/AleoNet/snarkVM/pull/2357
- [ZKS-02] Use committee lookback at
anchor_round - 1for timestamp calculation by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2358 - Add impl Ternary for Box<T: Ternary> by @kpp in https://github.com/AleoNet/snarkVM/pull/2362
- [nit] Use
checked_addfor account supply calculation by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2364 - [Cleanup] Address TODOs for
Commandparsers and serializers. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2355 - [HackerOne-2239704] Introduce an override for atomic batch operations by @ljedrz in https://github.com/AleoNet/snarkVM/pull/2296
- [Feature] Introduce
TRANSACTION_SPEND_LIMIT. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2368 - [ZKS-02] Introduce Committee IDs by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2374
- [Fix] Fix unit test
string::test_randomby @kpp in https://github.com/AleoNet/snarkVM/pull/2363 - [Fix] Relax ordering checks for futures by @evan-schott in https://github.com/AleoNet/snarkVM/pull/2356
- [Fix/Optimize] Fixes and optimizes calculation of execution cost. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2369
- [ZKS-08][HackerOne-2289066] Make leader election tamper resistant by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2378
- [Fix] Limit program size to 100KBs by @vicsn in https://github.com/AleoNet/snarkVM/pull/2384
- [HackerOne-2311934] Verify transactions prior to speculation by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2376
- add tests for poseidon by @bendyarm in https://github.com/AleoNet/snarkVM/pull/2394
- [Go/No-Go] ARC-0037 - Introduce withdrawal address for stakers by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2385
- Update Staker requirements and
BatchHeader::MAX_CERTIFICATESby @raychu86 in https://github.com/AleoNet/snarkVM/pull/2386 - Update inputs in genesis transactions by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2396
- Add parallelism to
BatchHeaderandCommitteedeserialization by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2395 - [Test] Execution cost. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2379
- [Fix] Update README.md by @dembelekaro in https://github.com/AleoNet/snarkVM/pull/2400
- [Fix] Don't re-seed the TestRng when calling check_merkle_tree by @ljedrz in https://github.com/AleoNet/snarkVM/pull/2399
- [Feature] Updates the puzzle integration for development and testing by @d0cd in https://github.com/AleoNet/snarkVM/pull/2401
- Replace
self.callerwithself.signerinfee_publicby @raychu86 in https://github.com/AleoNet/snarkVM/pull/2397 - Bumps MSRV to 1.76.0 and updates Clippy by @howardwu in https://github.com/AleoNet/snarkVM/pull/2405
- [Feature] Add
transfer_public_as_signertocredits.aleoby @d0cd in https://github.com/AleoNet/snarkVM/pull/2402 - Update
is_openflag to check for new stakers by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2406 - [Optimize] Add more descriptive error messages by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2411
- Bound parallel verification of transactions by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2387
- [HackerOne-2332566] Update the target threshold by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2410
- [HackerOne-2332566] Unify target calculations by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2412
- [Log] Changes to epoch hash. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2420
- [Fix] Use original transaction ordering in speculation by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2421
- [Test] Proof target tests by @iamalwaysuncomfortable in https://github.com/AleoNet/snarkVM/pull/2423
- [Fix] Use previous block for proof target. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2422
- [Testing] Expand transaction ordering test by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2430
- [Feature] Introduce
TestnetV0Network Impl by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2414 - Reduce zero-padding and cache zero-hashes in k-ary MerkleTree by @ljedrz in https://github.com/AleoNet/snarkVM/pull/2407
- Reduce zero-padding and cache zero-hashes in MerkleTree by @ljedrz in https://github.com/AleoNet/snarkVM/pull/2415
- Use a parallel sort to order txs while speculating by @ljedrz in https://github.com/AleoNet/snarkVM/pull/2425
- [Feature] new
network.idopcode by @evan-schott in https://github.com/AleoNet/snarkVM/pull/2419 - [Fix] Add
BFTAbortedTransmissionIDsMapby @raychu86 in https://github.com/AleoNet/snarkVM/pull/2433 - [Feature] Mitigate payment-free verification by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2428
- Fix new clippy lints by @ljedrz in https://github.com/AleoNet/snarkVM/pull/2429
- Add support to fetch delegators for given validator by @vicsn in https://github.com/AleoNet/snarkVM/pull/2434
- [Feature] Introduces a maximum transaction size. by @d0cd in https://github.com/AleoNet/snarkVM/pull/2437
- [TOB] Fix length in
Serializeimpl forTransitionby @d0cd in https://github.com/AleoNet/snarkVM/pull/2440 - [Test] Add additional case for max committee limit testing by @raychu86 in https://github.com/AleoNet/snarkVM/pull/2442
- Delegator benchmarks by @iamalwaysuncomfortable in https://github.com/AleoNet/snarkVM/pull/2436
- Introduce large execution transaction test helper by @niklaslong in https://github.com/AleoNet/snarkVM/pull/2438
- [TOB] Improve code quality by @d0cd in https://github.com/AleoNet/snarkVM/pull/2441
- Adds a variable limit for deployments by @howardwu in https://github.com/Al...