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 hidden (Show)

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 - [Testnet] Aptos Node Release v1.10.0

Published by sherry-x 8 months ago

Please update by: 3/5 5:00PM Pacific

Release Hash: b24f6cd08f84b179e49090c7e51a501c535096ca

CLI Version this release is compatible with: v2.5.0+

Validator Update Required? Y

Fullnode Update Required? Y

Aptos Improvement Proposals (AIPs)

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

Breaking Changes

  • [AIP-43] Parallelize Digital Assets (Token V2) minting: Allow much higher throughput for Token V2 NFT minting/burning of a single collection.
    • Ecosystem Impact: If you are running indexer/calling fullnodes API for TokenV2 - there is a change in minting and burning events being emitted, as well in which resources token data is stored. Onchain contracts are not affected.
    • Feature Flag: concurrent_token_v2
  • [AIP-64] Validator transaction type: Introduces a framework for validators to publish quorum-certified on-chain config updates with low latency.
    • Ecosystem Impact: Indexers, Explorers, SDKs need to be able to handle a new transaction type ValidatorTransaction
  • [AIP-66] Passkey Accounts: Allows the user to sign transactions and create an account associated with their passkey.
    • Ecosystem Impact: Indexers, Explorers, SDKs need to be able to handle a change to the AnySignature proto type, where the signature field was deprecated and converted to a oneof signature_variant enum (see PR #12016 for more details)
    • Feature Flag: web_authn_signature

New features and enhancements

  • [AIP-47] Aggregators V2: Revamped the concept of Aggregators (which are efficient concurrent counters), allowing them to be concurrently used in control flow, and “snapshots” of their values to be stored in other fields, enabling AIP-43 above, and other things to come.
    • Feature Flags: aggregator_v2_api, aggregator_v2_delayed_fields , resource_groups_split_in_vm_change_set
  • [AIP-54] Object Code Deployment: Introduces a method to deploy code to objects, allowing more modular and resource efficient development. This simplifies and reduces the amount of steps necessary to deploy to accounts/resource accounts.
    • Ecosystem Impact: New CLI commands
      • CLI commands have been generated to support this feature. See detail in AIP-54.
      • Users are now able to deploy code to objects via the CLI, just how they are able to publish code to addresses/resource accounts,
    • Feature Flag: object_code_deployment
  • [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 keyless accounts impacting Dapp and wallet developers
  • [AIP-65] Storage Fee for State Bytes Refundable: Updates the Storage Fee charging scheme so that: 1. the per item 1KB free quota is removed, every byte is charged on allocation; 2. an item larger than 1KB is no longer punished by being charged storage fee every time it gets modified and 3. storage fee charged for the bytes are now refundable on item deletion, in addition to the fee for the slot allocation. Creating state items of the size between 200bytes to 4KB will see slight cost increase although the charge is now fully refundable and >1KB items are no longer punished for being modified.
    • Feature Flag: refundable_bytes
  • [AIP-66] Passkey Accounts: Allows the user to sign transactions and create an account associated with their passkey.
    • Ecosystem Impact: New method for account creation and transaction signing. No SDK available yet.
    • Feature Flag: web_authn_signature
  • [AIP-67] Native consensus for JSON Web Keys(JWK): Creates a flow to replicate JWKs on chain for a given list of OpenID Connect (OIDC) providers.
  • [AIP-68] Reordering transactions in a block for fairness: Updates the Transaction Shuffler logic to add other aspects of fairness to how transactions are ordered in the block by extending AIP-27 to adjacent transactions (in the proposed order) that match two new categories - module and entry function, to give transactions from non-dominant modules / entry functions a better chance of survival when a potential block cut results from the block gas limit being.
  • [AIP-69] Start replication of Google JWKs on chain: Starts the replication of Google JWKs on chain, using the native JWK consensus framework.
    • Required: [AIP-67] Native consensus for JSON Web Keys(JWK)
    • Ecosystem Impact: Operators need to ensure their nodes have access to the following Google APIs: https://accounts.google.com/.well-known/openid-configuration and the jwk_uri of the response JSON from the API above

Aptos Blockchain

General

  • Rust was upgraded to use the 1.75.0 toolchain version.
  • Improved backpressure to be able to handle slow and poorly gas-calibrated transactions as well, keeping latency predictable.

Networking

  • Implemented latency-aware peer dialing, allowing PFNs to prioritize connections to low-latency peers.

State sync

  • Improved the state sync execution pipeline by adopting 4 pipelined phases (instead of 3). This improves syncing throughput and performance under load.

Configuration

  • As outlined in Static Identity for Fullnodes, a fullnode will generate a random network identity if a static identity isn’t configured. This generated identity is now saved to /opt/aptos/data/ephemeral_identity_key so it will be retained after any restarts.

    • Use this command to retrieve your generated peer ID:
    aptos key extract-peer --host 1.1.1.1:6180 \
        --private-network-key-file /opt/aptos/data/ephemeral_identity_key \
        --output-file /path/to/peer-info.yaml
    

Move

VM

  • Added a cache to avoid re-verifying previously verified Move modules during loading.
  • Improved performance with per-frame cache for paranoid mode
  • Introduced a new native ValueImpl which the aggregator can use to define custom serialization/deserialization logic.
  • Improved devs debugging through refactoring of errors and error forwarding

Gas

  • Improved the gas-calibration code
  • Added gas charge for type creation
  • Added a new binary remote-gas-profiler to the aptos-debugger crate. The tool allows devs to generate a gas profiling report for a transaction on chain.

Resolved Issues

Bug Fixes

  • Added new local cache to prevent unneeded operations during Move modules' bytecode verification.
  • Enabled the max object nesting check, preventing running out of gas due to ownership cycles
    • Feature flag: MAX_OBJECT_NESTING_CHECK
  • Fixed the race condition with the order of operations
  • Fixed VM error resolver. Errors are now propagated from where they originated and are not ignored.
aptos-core - [Mainnet][Testnet] Aptos Node Release v1.9.7

Published by sherry-x 8 months ago

What's Changed

Full Changelog: https://github.com/aptos-labs/aptos-core/compare/aptos-node-v1.9.5...aptos-node-v1.9.7

Upgrade requirement

  • Validators: required, upgrade before 2/28 end of day
  • Fullnodes: optional
aptos-core - [Indexer][GRPC] Upgrade to node 1.10

Published by bowenyang007 8 months ago

Release GRPC compatible with node 1.10.

Changes to the protobuf include

  • A new transaction type (validator transactions)
  • Remove ModuleBundlePayload - It's not used anywhere anyway
  • Add new authentication types - Keyless, and R1
  • Add authenticator type to signature and deprecating the old signature field that was only bytes
aptos-core - Adhoc Release 20240209

Published by sherry-x 8 months ago

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

Published by bchocho 9 months ago

Release Notes

Recommended CLI Version: v2.3.2+
Docker Link: aptos-node-v1.9.3
Validator Update: Optional
Full Node Update: Optional

New features and enhancements

Aptos Blockchain

API

  • New counters for fullnode API usage of view function and txn simulation calls.
aptos-core - [Testnet] Aptos Node Release v1.9.2

Published by igor-aptos 9 months ago

Release Notes

Recommended CLI Version: v2.3.2+
Docker Link: aptos-node-v1.9.2
Validator Update: Required
Full Node Update: Required

New features and enhancements

Aptos Blockchain

General

  • Rust was upgraded to use the 1.72.1 toolchain version.

API

  • View function API now supports BCS arguments as inputs, allowing inputs to be the same as transaction inputs

Blockchain

  • Backpressure improvements: detection for when to do backpressure was improved, to avoid sporadically kicking in when system is not overloaded. Backpressure is further tuned to be more aggressive under load, to make sure latency is kept low, and making the blockchain more responsive.

Networking

  • Increased the number of outbound connections from 4 to 6 for fullnodes. This improves load balancing of network resources under load.

State sync

  • Improved the peer selection algorithm for data requests by leveraging peer monitoring metadata, latency and network topology information.
  • Implemented multi-fetch for data requests, allowing nodes to fetch data from multiple peers concurrently. This improves reliability in the face of failures and transient outages.
  • Improved the data pre-fetcher to more efficiently tolerate head of line blocking.
  • Improved the state sync execution pipeline by adopting 3 pipelined phases (instead of 2). This improves syncing throughput and performance under load.

Aptos Framework

Aptos Improvement Proposals (AIPs)

aptos-core - [Testnet] Release v1.9.0

Published by grao1991 10 months ago

Release Notes

Recommended CLI Version: v2.3.2+
Docker Link: aptos-node-v1.9.0
Validator: Required
Full Node: Required

New features and enhancements

Aptos Blockchain

General

  • Rust was upgraded to use the 1.72.1 toolchain version.

Networking

  • Increased the number of outbound connections from 4 to 6 for fullnodes. This improves load balancing of network resources under load.

State sync

  • Improved the peer selection algorithm for data requests by leveraging peer monitoring metadata, latency and network topology information.
  • Implemented multi-fetch for data requests, allowing nodes to fetch data from multiple peers concurrently. This improves reliability in the face of failures and transient outages.
  • Improved the data pre-fetcher to more efficiently tolerate head of line blocking.
  • Improved the state sync execution pipeline by adopting 3 pipelined phases (instead of 2). This improves syncing throughput and performance under load.

Aptos Improvement Proposals (AIPs)

aptos-core - adhoc release 2023-12-23

Published by perryjrandall 10 months ago

docker image tag: adhoc-20231223

aptos-core - [Mainnet][Testnet] Release v1.8.3

Published by thepomeranian 11 months ago

Release Notes

Recommended CLI Version: v2.3.2+
Docker Link: aptos-node-v1.8.3
Validator: Required
Full Node: Required

New features and enhancements

Aptos Blockchain

API

  • Added BCS support for inputs and outputs of View Functions

Consensus

  • opt-in authenticated admin API endpoint, that surfaces information about ordered-but-not-yet-committed transactions

State sync

Aptos Improvement Proposals (AIPs)

  • AIP-51 Changing beneficiaries for operators: Allows operators to set a beneficiary address to which their commission will be directed. This feature applies to the staking contract, the delegated staking contract, and the vesting contract.
    • Requires enabling feature flag OPERATOR_BENEFICIARY_CHANGE
aptos-core - Upgrade indexer to support node v1.8

Published by bowenyang007 11 months ago

This change will be compatible with node upgrade v1.8. It should only be applied to GRPC. The best binaries that work with this version are:

aptos-core - [Mainnet | Testnet] Release v1.8.2

Published by sherry-x 11 months ago

Validator: Optional if already upgraded to adhoc-20231120
Full Node: Required

Docker image: aptos-node-v1.8.2

What's Changed

Move VM and Language

  • Fixed a security issue in the Move loader that could have allowed a malicious user to generate an out of memory condition when publishing a specially crafted Move module. Thanks to the CertiK SkyFall team for reporting this issue via our Aptos Bounty program.
  • Fixed a security issue in the Aptos transaction validator that could have allowed a malicious user to generate an out of memory condition when submitting a specially crafted transaction.

Full Changelog: https://github.com/aptos-labs/aptos-core/compare/aptos-node-v1.8.1...aptos-node-v1.8.2

aptos-core - adhoc release 2023-11-20

Published by sherry-x 11 months ago

aptos-core - [Mainnet | Testnet] Release v1.8.1

Published by ibalajiarun 11 months ago

Release Notes

Recommended CLI Version: v2.3.0+
Docker Link: aptos-node-v1.8.1

New features and enhancements

Aptos Frameworks

  • AIP-49 – Add transaction support for SECP256K1 ECDSA. This uses feature flag: single_sender_authenticator. This reuses the same feature flag as AIP-55.
  • AIP-52 – Automatically create user accounts when said account is sponsored by another fee paying account. This uses feature flag: sponsored_automatic_account_creation
  • AIP-53 – Make it so that a transaction sent by a client need not know who the fee payer is when signing the transaction. This uses feature flag: fee_payer_account_optional
  • AIP-55 – Generalize transaction authentication making it easier to add new transaction authenticators used across single singer, multi-agent, and fee payer transactions. It also adds support for generalized K-of-N multikey accounts, previously only available to ED22519. This uses feature flag: single_sender_authenticator

Move Language and VM

  • Limits the maximum identifier length in Move modules from 65535 to 255, which is used in the serializer and deserializer of the Move binary format. This uses feature flag: limit_max_identifier_length
aptos-core - [testnet] Release v1.8.0

Published by perryjrandall 12 months ago

Release Notes

Recommended CLI Version: v2.3.0+
Docker Link: aptos-node-v1.8.0

New features and enhancements

Aptos Frameworks

  • AIP-49 – Add transaction support for SECP256K1 ECDSA. This uses feature flag: single_sender_authenticator. This reuses the same feature flag as AIP-55.
  • AIP-52 – Automatically create user accounts when said account is sponsored by another fee paying account. This uses feature flag: sponsored_automatic_account_creation
  • AIP-53 – Make it so that a transaction sent by a client need not know who the fee payer is when signing the transaction. This uses feature flag: fee_payer_account_optional
  • AIP-55 – Generalize transaction authentication making it easier to add new transaction authenticators used across single singer, multi-agent, and fee payer transactions. It also adds support for generalized K-of-N multikey accounts, previously only available to ED22519. This uses feature flag: single_sender_authenticator

Move Language and VM

  • Limits the maximum identifier length in Move modules from 65535 to 255, which is used in the serializer and deserializer of the Move binary format. This uses feature flag: limit_max_identifier_length
aptos-core - Release v1.7.3

Published by sherry-x about 1 year ago

Validator: Required
Full Node: Optional

Docker image tag: aptos-node-v1.7.3_14758a1e2c846ae37126fc5de7fc30d59408c40d
Digest: sha256:5a6b6099784d2657c7078e1bb09117528bb8d2f788f8ca1ed7e16601403f4041
Docker image link: https://hub.docker.com/layers/aptoslabs/validator/aptos-node-v1.7.3_14758a1e2c846ae37126fc5de7fc30d59408c40d/images/sha256-5a6b6099784d2657c7078e1bb09117528bb8d2f788f8ca1ed7e16601403f4041?context=explore
Commit hash: 14758a1e2c846ae37126fc5de7fc30d59408c40d and 99ba9c8f1501f5a38ea93007040e958ce5b84d81 are both valid

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

Published by msmouse about 1 year ago

Upgrade Validators by: end of day 9/20/2023
Docker: https://hub.docker.com/layers/aptoslabs/validator/aptos-node-v1.7.2/images/sha256-1681ffdd8b07df90a5e2506f144392997249f555c9dddae65ee48e4ac98d7b2d?context=explore

What's Changed

Full Changelog: https://github.com/aptos-labs/aptos-core/compare/aptos-node-v1.7.1...aptos-node-v1.7.2