Releases: ProvableHQ/snarkVM
Releases · ProvableHQ/snarkVM
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 #2162
- [Stress-04] Create nested tree for finalize root by @raychu86 in #2170
- [ZKS-04] Fixes the maximum transmissions per batch, increases the transactions per block by @howardwu in #2198
- [Fix] Add
signatureto reserved keywords. by @d0cd in #2238 - [Refactor] Adds some tests and contains some documentation suggestions for the
fix/cast-lossy-field-to-groupPR by @d0cd in #2272 - [Fix] Fix circuit for cast lossy field to group. by @acoglio in #2133
- [Feature] Enable
cast.lossyfor all literal types. by @d0cd in #2273 - [NCC-ADN] Prevent ignoring proving/verifying tasks #2 by @vicsn in #2276
- [Test] add tests for subgroup membership/nonmembership of small order curve points by @bendyarm in #2282
- [NCC-Y7H] Create compute_function_id helper which enforces minimal TLV encoding by @vicsn in #2154
- [NCC-EVJ] Use
Committeestakes when determining the timestamp of aSubdagby @raychu86 in #2223 - [ZKS-03] Proof Delegation Is Subject To Truncation by @vicsn in #2267
- [Fix] Declare public variable 1field once by @vicsn in #2268
- [Fix] Store the aborted solution IDs in blocks by @raychu86 in #2284
- [Fix] Add checks for existing transactions and solutions by @raychu86 in #2313
- [ZKS-05] Caller Is Not Fixed Throughout Function Execution by @vicsn in #2076
- [Fuzzing-ILT] Disallow
Identifiers with the same form asLiteralTypes. by @d0cd in #2319 - [Stress-06] Price Finalize Opcodes Based On Operand Types by @iamalwaysuncomfortable in #2281
- Update finalize
setcosts based on storage size. by @raychu86 in #2214 - update: add many_input_and_output.aleo for test by @randomsleep in #2333
- [HackerOne-2300725] Limit the number of allowed constraints for deployments by @vicsn in #2271
- Clarify constraint limit logic by @vicsn in #2340
- [ZKS-04] Track committee size. by @d0cd in #2213
- Remove extraneous set_constraint_limit and clarify why by @vicsn in #2342
- [ZKS-02] Introduce committee lookback by @raychu86 in #2336
- [ZKS-00] Reverts election certificates by @howardwu in #2343
- [Refactor] Renames
Testnet3toMainnetV0by @howardwu in #2347 - [Fix] Prevent passing in too many public inputs to Varuna by @howardwu in #2094
- fix: don't use 3 for mainnet by @joske in #2351
- Remove the outdated version of
BatchCertificateby @raychu86 in #2350 - Clean up
ConfirmedTransactionsMapby @raychu86 in #2349 - Cleanup
UpdateKeyValueandRemoveKeyValuefinalize operations by @raychu86 in #2348 - Cache transaction checks by @ljedrz in #2270
- [Coinbase Go/No-Go] Bond balances in genesis block by @vicsn in #2308
- [ZKS-02] Fix committee usage when calculating the next timestamp by @raychu86 in #2353
- [HackerOne-2354265] Restrict number of imports, program depth, and call depth. by @d0cd in #2352
- [Feature] Adds a histogram label by @joske in #2357
- [ZKS-02] Use committee lookback at
anchor_round - 1for timestamp calculation by @raychu86 in #2358 - Add impl Ternary for Box<T: Ternary> by @kpp in #2362
- [nit] Use
checked_addfor account supply calculation by @raychu86 in #2364 - [Cleanup] Address TODOs for
Commandparsers and serializers. by @d0cd in #2355 - [HackerOne-2239704] Introduce an override for atomic batch operations by @ljedrz in #2296
- [Feature] Introduce
TRANSACTION_SPEND_LIMIT. by @d0cd in #2368 - [ZKS-02] Introduce Committee IDs by @raychu86 in #2374
- [Fix] Fix unit test
string::test_randomby @kpp in #2363 - [Fix] Relax ordering checks for futures by @evan-schott in #2356
- [Fix/Optimize] Fixes and optimizes calculation of execution cost. by @d0cd in #2369
- [ZKS-08][HackerOne-2289066] Make leader election tamper resistant by @raychu86 in #2378
- [Fix] Limit program size to 100KBs by @vicsn in #2384
- [HackerOne-2311934] Verify transactions prior to speculation by @raychu86 in #2376
- add tests for poseidon by @bendyarm in #2394
- [Go/No-Go] ARC-0037 - Introduce withdrawal address for stakers by @raychu86 in #2385
- Update Staker requirements and
BatchHeader::MAX_CERTIFICATESby @raychu86 in #2386 - Update inputs in genesis transactions by @raychu86 in #2396
- Add parallelism to
BatchHeaderandCommitteedeserialization by @raychu86 in #2395 - [Test] Execution cost. by @d0cd in #2379
- [Fix] Update README.md by @dembelekaro in #2400
- [Fix] Don't re-seed the TestRng when calling check_merkle_tree by @ljedrz in #2399
- [Feature] Updates the puzzle integration for development and testing by @d0cd in #2401
- Replace
self.callerwithself.signerinfee_publicby @raychu86 in #2397 - Bumps MSRV to 1.76.0 and updates Clippy by @howardwu in #2405
- [Feature] Add
transfer_public_as_signertocredits.aleoby @d0cd in #2402 - Update
is_openflag to check for new stakers by @raychu86 in #2406 - [Optimize] Add more descriptive error messages by @raychu86 in #2411
- Bound parallel verification of transactions by @raychu86 in #2387
- [HackerOne-2332566] Update the target threshold by @raychu86 in #2410
- [HackerOne-2332566] Unify target calculations by @raychu86 in #2412
- [Log] Changes to epoch hash. by @d0cd in #2420
- [Fix] Use original transaction ordering in speculation by @raychu86 in #2421
- [Test] Proof target tests by @iamalwaysuncomfortable in #2423
- [Fix] Use previous block for proof target. by @d0cd in #2422
- [Testing] Expand transaction ordering test by @raychu86 in #2430
- [Feature] Introduce
TestnetV0Network Impl by @raychu86 in #2414 - Reduce zero-padding and cache zero-hashes in k-ary MerkleTree by @ljedrz in #2407
- Reduce zero-padding and cache zero-hashes in MerkleTree by @ljedrz in #2415
- Use a parallel sort to order txs while speculating by @ljedrz in #2425
- [Feature] new
network.idopcode by @evan-schott in #2419 - [Fix] Add
BFTAbortedTransmissionIDsMapby @raychu86 in #2433 - [Feature] Mitigate payment-free verification by @raychu86 in #2428
- Fix new clippy lints by @ljedrz in #2429
- Add support to fetch delegators for given validator by @vicsn in #2434
- [Feature] Introduces a maximum transaction size. by @d0cd in #2437
- [TOB] Fix length in
Serializeimpl forTransitionby @d0cd in #2440 - [Test] Add additional case for max committee limit testing by @raychu86 in #2442
- Delegator benchmarks by @iamalwaysuncomfortable in #2436
- Introduce large execution transaction test helper by @niklaslong in #2438
- [TOB] Improve code quality by @d0cd in #2441
- Adds a variable limit for deployments by @howardwu in https://github.com/Al...