New features and enhancements
Aptos Blockchain
- Implemented “rolling commit” to track the prefix of committed transactions in parallel execution accurately, without introducing overhead compared to the current lazy commit approach that can only commit all the transactions together.
Aptos Frameworks
- AIP-10: Move objects for global access to heterogeneous set of resources stored at a single address on-chain. Objects offer a rich capability model that allows for fine-grained resource control and ownership management. By leveraging the aspects of the account model, objects can directly emit events that may lead to a richer understanding of on-chain actions.
- AIP-12: A new Multisig account standard that is primarily governed by transparent data structures and functions in a smart contract (multisig_account) with more ease of use and more powerful features than the current multied25519-auth-key-based accounts.
- AIP-16: New cryptography natives for hashing and MultiEd25519 PK validation to add support for computing the Blake2b-256 hash function in Move smart contracts, computing SHA2-512, SHA3-512 and RIPEMD-160 hash functions in Move smart contracts, and upgrade MultiEd25519 PK validation to V2 address a bug where a PK with 0 sub-PKs would've been considered valid.
- AIP-18: Introducing SmartVector and SmartTable into aptos move standard library. These two data structures are built for storing on-chain large datasets that either cannot fit into
vector
or are expensive to useTable
. Our preliminary benchmark shows a remarkable saving in gas in terms of storage fee. - Added math libraries. This includes sqrt, mulDiv, exp/log for FixedPoint32, floor_log2, log2, mulDiv and ceil_div for u64 and u128.
Added ability to access chain ID inside aptos_stdlib.
Move Language and VM
- AIP-8: Higher-order Inline Functions for Collections
Proposed functions merged into move-stdlib and aptos-stdlib (as can be seen in the simple_map and vector Move modules).
No decision yet about the shape of those features for large collections like tables and upcoming smart collections. - AIP-9: Resource groups to support storing multiple distinct Move resources together into a single storage slot.
- AIP-17: Reducing Execution Costs by Decoupling Transaction Storage and Execution Charges. This allows for a new gas schedule to lower execution and IO transaction costs by 100x.
Resolved Issues
- Our MultiEd25519 Move module allowed for some invalid MultiEd25519 PKs to be deserialized as ValidatedPublicKey structs. Such incorrectly-deserialized structs would have been caught later on during signature verification. We have fixed this bug to guarantee correct semantics of MultiEd25519 validated PKs. #5822
Security Fixes
- The Move bytecode verifier has a new metering logic to prevent denial of service attacks. Overly complex programs are detected and rejected by the verifier. (released into Mainnet with v1.2.6)
- All Move native function implementations in Rust have been changed to preemptively charge gas before executing any potentially-expensive operation. This precludes DoS attacks. (released into Mainnet with v1.2.6)
Deployment
- Commit hash
88bb502c81fbdbb194a64be1e62a10703d6bfa36
- Docker image tag:
aptos-node-v1.3.2
- Release branch: https://github.com/aptos-labs/aptos-core/tree/aptos-release-v1.3
[Testnet] v1.3.1 -> v1.3.2
- [gha] add credentials for gas calibration for 1.3 by @rahxephon89 in #7036
- [cherry-pick] various improvement for consensus by @zekun000 in #7343
Full Changelog: aptos-node-v1.3.1...aptos-node-v1.3.2