aptos-core

Aptos is a layer 1 blockchain built to support the widespread use of blockchain through better technology and user experience.

OTHER License

Downloads
188.6K
Stars
6.1K
Committers
468

Bot releases are visible (Hide)

aptos-core - Aptos Framework v1.12.1

Published by sherry-x 5 months ago

What's Changed

Full Changelog: https://github.com/aptos-labs/aptos-core/compare/aptos-node-v1.12.2...aptos-framework-v1.12.1

aptos-core - Aptos CLI Release v3.4.1

Published by github-actions[bot] 5 months ago

aptos-core - [Mainnet][Testnet] Aptos Node Release v1.13.1

Published by sherry-x 5 months ago

Release Hash: 34a535e360563e595b3ac4d80cf84160c7a19521

CLI Version this release is compatible with: v3.3.1+

Validator Update Required? Yes, by June 7th.

Fullnode Update Required? Yes, by June 11th.

Aptos Improvement Proposals (AIPs)

Check out all of our AIPs and discussions here on GitHub

New features and enhancements

  • [AIP-73] Dispatchable Token Standard]: Developers can define their custom way of withdrawing and deposit for their fungible asset, allowing for a much more extensible way of using our Aptos Framework.
    • Ecosystem Impact: Defi developers. The token issuer can now create customized hook logic upon transfer. Calling of those hooks would be handled automatically by Aptos Framework so no api change is actually needed from the smart contract side. However, meaning of transfer could now be a bit more nuanced due to the hook logic and token issuer will have more freedom on what to do upon transfer.
    • Feature Flag: DISPATCHABLE_FUNGIBLE_ASSET
  • [AIP-83] Framework-level Untransferable Fungible Asset Stores: Prevents transfers of an object even with a TransferRef. This can only be enabled during the construction of an object.
    • Ecosystem Impact: Smart contact developers

Aptos Blockchain

Quorum Store

  • Improved logic for filtering duplicate transactions.

Storage

  • fixed performance issue where on node bootup truncation was done repeatedly on the state value data set
  • Performance improvement by adding StateKeyRegistry and avoid duplicating StateKeys at runtime.
  • Performance improvement by replacing small HashSets on JMT internal Nodes with ordered Slices (Node cloning is faster).
  • Performance improvement when throughput is high, by execution layer not requesting SMT internal nodes from the DB that are already cached.

Move

VM

  • Refactor MoveResolver to be used inside the VM only.
  • Support new randomness annotation parameter for customized gas deposit. (AIP: TBD).
  • Fixed error reporting logic in VM when a new frame is created

Framework

  • AIP-73: Dispatchable Token Standard
  • Migrate token v1 and other fixes of event v2 migration

Gas

  • Fixed broken HTML in gas profiler

Resolved Issues

Bug Fixes

aptos-core - [Testnet] Aptos Node Release v1.13.0

Published by sherry-x 5 months ago

Release Hash: b3af42c6fe49e603b422339342b090ad5aa478d0

aptos-core - [Mainnet][Testnet] Aptos Node Release v1.12.2

Published by sherry-x 5 months ago

Validator Update Required? No, optional.
Fullnode Update Required? No, optional.

What's Changed

aptos-core - Aptos CLI Release v3.3.1

Published by github-actions[bot] 5 months ago

  • Fixed incompatibility bug that broken local simulation and gas profiling.
aptos-core - [Mainnet][Testnet] Aptos Node Release v1.12.1

Published by sherry-x 5 months ago

Validator Update Required? Yes, by May 23rd.

Fullnode Update Required? No, but preferred. if not upgrade, doing fast sync would be slow on fullnodes.

What's Changed

Read full release note for v1.12 here

aptos-core - [Mainnet][Testnet] Aptos Node Release v1.12.0

Published by sherry-x 5 months ago

Release Hash: a9146fa7ddac52c6c6fdc4ed15eeb4e3cf0f7bd6

CLI Version this release is compatible with: v3.3.0+

Validator Update Required? Y

Fullnode Update Required? Y

Aptos Improvement Proposals (AIPs)

Check out all of our AIPs and discussions here on GitHub

New features and enhancement

  • [AIP-61] Keyless accounts: Allows users to effectively create “keyless” blockchain accounts that are secured via the user’s existing Web 2 account (e.g., their Google account) and not via a secret key, which can be lost very easily.
    • Ecosystem Impact: SDK for Dapp and wallet developers to enable keyless accounts secured via, say, “Sign in with Google” flows
    • Related: [AIP-75] Prover Service. Does zero-knowledge proof computation on behalf of Aptos Keyless users during login, enabling fast and private authentication for Keyless accounts.
  • [AIP-63] Coin to Fungible Asset Migration: This AIP proposes a global mapping to treat coins and fungible assets interchangeably, facilitating migration by converting CoinStore<CoinType> to PrimaryFungibleStore.
    • Ecosystem Impact: After enabled, Dapps and exchanges should kickoff the migration to update the balance view.
    • Feature Flag: COIN_TO_FUNGIBLE_ASSET_MIGRATION
  • [AIP-71] Refactor Aptos Framework Events with Module Events: This AIP proposes a migration plan for all handle events (event v1) in Aptos Framework to module events (event v2) with double emitting.
    • Ecosystem Impact: After enabled, Dapps would see both v1 and v2 events. They should start to migrate their event tracking from event v1 to v2.
    • Feature Flag: MODULE_EVENT_MIGRATION
  • [AIP-79] Implementation of instant on-chain randomness
    • Dependencies: AIP-64
    • On-chain configs: randomness_config, randomness_api_v0_config
  • [AIP-82] Transaction Context Extension: This AIP proposes an extension to the transaction context module within the Aptos Framework. The enhancement will enable users to retrieve user transaction information directly in smart contracts.
    • Ecosystem Impact: N.A.
    • Feature Flag: TRANSACTION_CONTEXT_EXTENSION

Aptos Blockchain

Mempool

  • Parallel validation of transaction in Mempool - Allows mempool validation of transactions to happen in parallel which allows higher mempool throughput and reduces the latency when the transaction validation is the bottleneck for certain types of transactions.

Move

VM

  • Adds a check in the VM to reject bytecode generated by V2 compiler to be published to mainnet
    • Feature Flag: REJECT_UNSTABLE_BYTECODE

Gas

  • Updated the integer type deserialization to optimize gas usage
  • Enable write IO gas for transaction and events

Resolved Issues

Bug Fixes

  • Fixed error propagation and reporting in MoveVM
aptos-core - Aptos CLI Release v3.3.0

Published by github-actions[bot] 6 months ago

aptos-core - Aptos CLI Release v3.2.0

Published by github-actions[bot] 6 months ago

aptos-core - [Testnet] Aptos Node Release v1.10.2

Published by sherry-x 6 months ago

aptos-core - [Mainnet][Testnet] Aptos Node Release v1.11.2

Published by sherry-x 6 months ago

Release Hash: a1cda42dfe78f4c7ed13eec6b49604a21e2a0f2c

CLI Version this release is compatible with: v3.1.0

Docker image tag: aptos-node-v1.11.2

Validator Update Required? Yes, by Apr 27th

Fullnode Update Required? Yes, by May 2nd

Full release notes for v1.11 here

Move Components

  • Fixed a security issue in the Move Resource Viewer that could have allowed a malicious client to generate large memory allocations when processing specially crafted Move resources. Thanks to the CertiK SkyFall team for reporting this issue via our Aptos Bounty program.
aptos-core - Adhoc release 20240412

Published by sherry-x 6 months ago

commit hash: f1a6438b9acd9146ae0070a1f55aa99776a21305

aptos-core - [Testnet] Aptos Node Release v1.11.0

Published by sherry-x 6 months ago

Release Hash: d43fc866641fa2654c287aa288fce0d80cc64a0f

CLI Version this release is compatible with: v3.1.0

Validator Update Required? Yes, by Apr 15th

Fullnode Update Required? Optional

Aptos Improvement Proposals (AIPs)

Check out all of our AIPs and discussions here on GitHub.

  • AIP-31 - Allowlisting for delegation pool
    • This AIP empowers delegation pool owner to define which addresses is allowed to stake to the pool.
    • Feature flag: DELEGATION_POOL_ALLOWLISTING
  • AIP-77 - Multisig V2 Enhancement
    • This AIP proposes to enhance the Multisig V2 by (1) limiting the maximum number of pending transactions, (2) introducing batch operation functions, and (3) implicitly voting on the transaction execution.
    • Feature flag: MULTISIG_V2_ENHANCEMENT
  • AIP-78 - Aptos Token Objects Framework Update
    • 3 modules in the aptos-token-objects framework were upgraded.
      • collection.move
        • Functions added to change name and max supply for a collection
      • token.move
        • Functions added to create a token with a provided seed as well as token name.
        • Functions added to create tokens by specifying the collection via Object<Collection> rather than collection_name.
      • property_map.move
        • Function added to create a move a PropertyMap via ExtendRef.

Breaking Changes

N/A

Aptos Blockchain

General

  • Store VM debug information on side. This helps decouple the error code and error message from the hash calculation and also pass some error message that was not previously passed from VM to developers
  • [Randomness building block; feature-gated] New top-level component DKG runtime that when the current epoch expires, executes a Distributed Key Generation (DKG) protocol off-chain with peers and puts a verifiable DKGResult validator transaction into the validator transaction pool.
    • A DKGResult validator transaction, once executed, makes the randomness keys available for the next validator set and switch epoch.
    • The following related consensus logics have been enabled in 1.10.
      • When proposing a block, also pull from validator transaction pool.
      • When verifying a block proposal, reject it if a validator transaction is present without its corresponding feature enabled.

Consensus

  • [Randomness building block; feature-gated] When broadcast a vote for a block, also broadcast randomness share for the parent of the block.
  • [Randomness building block; feature-gated] Added a new component RandManager that:
    • receives ordered block stream from consensus
    • ensures every block has randomness (by exchanging randomness shares with peers)
    • forward randomness-ready block stream to BufferManager

Mempool

  • Mempool was updated to more intelligently select peers when forwarding transactions. This helps to reduce end-to-end transaction latencies and improves transaction propagation reliability.

VM

  • [Randomness building block] support new validator transaction variant: DKGResult.
    • Indirectly feature-gated: it is ensured that DKGResult validator transaction won’t be ordered when the feature is disabled. Also, since it’s not a user transaction, simulation is not a thing and won’t be an issue.

Latency Reduction

  • Add a long poll API /transactions/wait_by_hash/:txn_hash. The motivation is to reduce e2e latencies by learning of committed responses immediately.
  • Broadcast proposal votes to reduce one hop latency. Changes to our consensus protocol to broadcast proposal vote instead of sending it to the next leader. This way we reduce one hope latency (100 ms) to aggregate the QC.
  • All validators broadcast commit vote messages. Similar to above change but this is for commit vote and reduces one hop on commit vote aggregation.
  • Reduce mempool poll time from 50 ms to 10ms. This reduces the mempool polling time on PFNs from 50 ms to 10 ms thus reducing the latency per transaction by 25-40 ms.
  • Reduce latency of cloning network sender using Arc pointers. A minor optimization to reduce expensive clone in conesnsus - doesn’t help much with latency under normal load but helps when validators fall behind and fetch blocks remotely.
  • Adding inline transactions in payload to reduce latency. Changes to our quorum store protocol to allow inlining transactions in a QS batch (up to certain max number). On an average this change reduces the latency of the transaction by one round trip (200 ms).
  • Improve peer selection in Mempool. This change improves the peer selection logic for mempool (i.e. deciding which peers to forward transactions to):
    • Currently, the logic just selects peers based on network types and roles, but this is somewhat inefficient (especially when nodes define seeds that override more peformant peers).
    • To avoid this, the change updates the selection logic to prioritize peers based on: (i) network type; (ii) distance from the validators (e.g., to avoid misconfigured and/or disconnected VFNs); and (iii) peer ping latencies (i.e., to favour closer peers).
    • To avoid excessively reprioritizing peers (which can be detrimental to mempool under load), we only update the peer priorities when: (i) our peers change; (ii) we’re still waiting for the peer monitoring service to populate the peer ping latencies; or (iii) if neither (i) or (ii) is true, we update every ~10 minutes (configurable). This avoids overly reprioritizing peers at steady state.
    • Testing - New and existing test infrastructure. We also ran several PFN-only tests to ensure that the average broadcast latencies are reduced.

Framework

  • [Randomness building block] Any on-chain config that is loaded in rust every block/every epoch now has to buffer updates until the next epoch, instead of applying them directly. Old update functions (e.g., consensus_config::set() ) are disabled. New functions (e.g, consensu_config::set_for_next_epoch()) are added. This applies to future on-chain configs.
    • List of existing on-chain configs affected.
      • ConsensusConfig
      • ExeuctionConfig
      • GasSchedule
      • Features
      • Version
      • JWKConsensusConfig
      • RandomnessConfig
    • Typically, feature-gating is achieved by on-chain configs. This change affects on-chain configs themselves, so can’t be easily feature-gated.
  • [Randomness building block] Added operations to support async reconfiguration with DKG in reconfiguration_with_dkg.move.
    • Indirectly feature-gated: it does not have public access and all private callers are feature-gated.
  • [Randomness building block] Validator set changes (e.g., validator join/leave) are now rejected when a reconfiguration is in progress.
    • Indirectly feature-gated: reconfiguration will be instant and won’t be “in progress” when randomness feature is off.
  • [Randomness building block] New module randomness.move to hold per-block randomness seed and some naive randomness APIs.

Resolved Issues

Bug Fixes

  • Track (for counters) all the txns in consensus payload size during very high gas pressure scenarios where we want to include only a subset of those txns in a block.
aptos-core - [Mainnet][TestNet] Adhoc Release 20240328

Published by ibalajiarun 7 months ago

Commit not open sourced yet, please use the pre-built binary or docker image for your deployment.

Summary: Improves the API's performance on annotating on chain move values

Commit hash: ea0b8f0ba1050a7cefd18820ef84fbbdd9210513
Docker image tag: adhoc-20240328
Digest: sha256:3ebae73b78066d0d1e8a1c36dcf57ef85585a48f42b97588fab33f2edcbb1283

Validators: REQUIRED, upgrade by April 4th, 12:00 PM PST
Full Nodes: REQUIRED, upgrade by April 4th, 12:00 PM PST

aptos-core - [Mainnet][Testnet] Aptos Node Release v1.10.1

Published by sherry-x 7 months ago

Release Hash: 4174fd615d442ccac6e5d77db00ba693d0d57108

Recommended CLI Version: aptos-cli-v3.1.0

Docker Image: aptos-node-v1.10.1

Validator Update: Required by 3/27 11:59pm PST

Full Node Update: Required by 3/29 11:59pm PST

Resolved Issues

Bug Fixes

  • Resolved some corner cases for the upcoming AIP-67 - Native Consensus for JSON Web Key (JWK)
  • Memory improvements to the upcoming AIP-47 - Aggregators V2
  • Resolved rare consensus/mempool corner cases
  • Cleaning up the logs by demoting non-important error logs to warns, for better visibility of real issues
  • Fix validator transaction handling for Rosetta
  • Improvements/fixes to BlockSTM error handling

Improvements

  • Adding new payload type called “QuorumStoreInlineHybrid”. This is used for piggybacking a few batches inline into the payload along with batches that have proof of store. The goal is to reduce the end to end latency.
  • Adding gas charging for module loading of dependent modules

Full Changelog: https://github.com/aptos-labs/aptos-core/compare/aptos-node-v1.10.0...aptos-node-v1.10.1

aptos-core - Aptos CLI Release v3.1.0

Published by github-actions[bot] 7 months ago

aptos-core - Aptos CLI Release v3.0.2

Published by github-actions[bot] 7 months ago

aptos-core - Aptos CLI Release v3.0.1

Published by github-actions[bot] 8 months ago

aptos-core - Aptos CLI Release v3.0.0

Published by github-actions[bot] 8 months ago