Algorand v2.0.0 Release Notes

Dear Algorand Community,

The Algorand Foundation today announced the availability of a protocol upgrade that significantly expands the range of decentralized applications (Dapps) and processes that can be built on the Algorand platform. For the first time, enterprise-scale Dapps can be built on the world’s first pure proof of stake (PPoS) blockchain without sacrificing performance. If you haven’t already, check out the foundation’s official press release.

There are 3 primary Layer-1 features that will be released today on the Algorand blockchain. Each feature below contains a link to the technical documentation, a summary of the feature, and the SDK documentation associated with the respective feature.

  1. Algorand Standard Asset (ASA) - ASA provides a standardized, Layer-1 mechanism to represent any type of asset on the Algorand blockchain. ASAs can include fungible assets (such as currencies, stablecoins, utility tokens, etc), non-fungible assets (unique assets such as tickets, etc.), restricted fungible assets (such as securities), and restricted non-fungible assets (such as licenses, certifications). Asset issuers, or specified delegates, can optionally have the ability to freeze an account’s ability to transact with their asset and clawback their asset when required.
    For more information on the SDK usage, check out our ASA SDK Documentation.

  2. Atomic Transfers - Atomic Transfers offer a Layer-1 secure way to simultaneously transfer a number of assets among a number of parties. Specifically, many transactions are grouped together and either all transactions are executed or none of them are. This feature can be used for use cases such as matching funding, debt settlement, decentralized exchanges, and complex trades.
    For more information on the SDK usage, check out our Atomic Transfers SDK Documentation.

  3. Algorand Smart Contract (ASC1) - ASC1s are Layer-1 smart contracts that automatically enforce custom rules and logic, typically around how assets (ASAs or Algos) can be transferred. They are complex economic relationships made up of basic transaction primitives written in a new language called Transaction Execution Approval Language (TEAL). Examples of ASC1s that can be written are escrow accounts, loan payments, limit and stop orders, subscription payments, and collateralized obligations.
    For more information on the SDK usage, check out our ASC1 SDK Documentation.

In addition to the main features of this release (mentioned above) we also have a handful of commits relating to bug-fixes, performance improvements, test infrastructure, etc that have accrued since the launch of Algorand 1.0.0. The full list of changes can be found here, but listed below are some of the more noteworthy updates.

Major Updates

  1. Re-enable firstvalid and lastvalid for goal clerk
  2. Export DNS configuration
  3. Updated algoh to capture algod logs on early termination
  4. Fix filter for next round period 0 votes
  5. Add data-driven utility for automatic relay configuration
  6. Goal ledger supply: rounds are not denominated in microalgos
  7. Add a kmd_config.json.example to the installer dir
  8. Add user-agent to all outgoing http requests
  9. Switch from dep to go modules
  10. Created algocfg to provide cli access to config.json
  11. Add goal report
  12. Allow transactions to explicitly specify mutual exclusion
  13. Change version to 2.0.x

Minor Updates

  1. Improve Ledger Wallet support
  2. Move TelemetryURL to SRV Record
  3. Add semantic version output flag to updater
  4. Support retrieving peer addresses using multiple SRV records
  5. Update the docker file to work*
  6. Add bash and zsh completion support
  7. Add metrics to heartbeat event
  8. New public S3 bucket and directory layout for release binaries

Performance Optimization

  1. Optimize transaction pool pending transactions retrieval
  2. Avoid revalidating confirmed transaction during block evaluator recomputation
  3. Remove redundant liveness and duplicate checks in txHandler

Cleanup / Tech Debt

  1. Remove legacy upgrade paths prior to mainnet release
  2. Eliminate warning message when a client disconnects normally.
  3. Improve FHS 3.0 and Secure Deployment best practices
  4. Block/Tracker DB reset on switching to archival mode
  5. Add support for building 64-bit ARM
  6. README formatting*

Bug Fixes

  1. Transient transactions DoS attack
  2. Return error when consensus protocol is unknown to libgoal
  3. Fix random network unit test failures

*Denotes a PR proposed by the community and accepted by Algorand.

Supported Node Platforms:

  • Ubuntu 18.04
  • MacOS
8 Likes

Can someone point me to 2.0 timeline for mainnet upgrade? Since 2.0 is not backward compatible, all nodes need to be updated to continue to work. Right?

Hey visybl,

One of the members in our community built this dashboard: https://www.cartan.group/industry-insights/demos/algorand-protocol-upgrade

Details of the upgrade process are here: https://algorand.foundation/protocol-development

In direct answer to your question, yes if the consensus version for the network upgrades and your node has the old version it will no longer be able to connect to the active network.

Thanks!

Thanks Paul. The dashboard is what I was looking for. Will upgrade my node.