1. Account/Contract Merge

  • Merge Overview:
    • Casper currently contains separate Accounts and Contracts. These record types are similar but contain small differences. Condor merges these into one record called AddressableEntity.
    • All existing Account and Contract records will migrate upon on-chain interaction (e.g., sending transactions, native transfers).
    • All new “accounts” and “contracts” created on the system will result in an AddressableEntity record being created.
    • PublicKeys and AccountHashes for existing Account records remain in place and continue to function with the corresponding AddressableEntity record.
  • Changes to Named Keys:
    • Named keys are now a top-level concern and stored directly in global state.
    • Entry points for smart contracts are now a top-level concern, with each entry point being stored directly in global state rather than embedded within an AddressableEntity record.
  • Action Items:
    • Any off-chain logic that retrieves Account or Contract records from the blockchain (e.g., processing, storage, indexing) must be modified to retrieve and use the AddressableEntity record structure.

2. Fee Elimination

  • New Support Features:
    • Condor introduces support for configurable fee, refund, and pricing strategies. The initial rollout will be in “NoFee” mode, where tokens are placed on hold instead of transferred from a paying purse.
    • There is a configurable interval that determines how long a balance hold remains. The available balance of a purse equals its actual balance minus all non-expired holds.
    • Off-chain logic can use the existing query_balance endpoint for the available balance or the new query_balance_details RPC endpoint for detailed balance information.
  • Action Items:
    • Placing holds rather than taking fees is beneficial as gas costs return over time.
    • Existing implementations should generally not need changes.
    • Advanced platforms with automated funding should consider the new behavior for optimal scheduling strategies.

3. Dynamic Pricing

  • Gas Price Changes:
    • Current gas price is 1 mote per unit of gas. Condor introduces a configurable gas price multiplier.
    • Gas price adjusts based on block usage in the current era, increasing or decreasing by 1 within set thresholds.
    • Minimum and maximum gas prices and adjustment thresholds are configurable.
    • The gas price is included in the block header for easy discovery.
  • Action Items:
    • Plan for potential cost increases during high network usage.
    • Transactions can specify the maximum gas price they are willing to pay using the gas_tolerance field.

4. Transaction Types

  • Transition to Transaction Model:
    • The Deploy structure is deprecated; Condor introduces a Transaction model.
    • Condor supports native / Wasm-less user-land mint and stake management actions.
  • Action Items:
    • Verify compatibility with the legacy Deploy model.
    • Consider upgrading to the Transaction model to leverage new features and efficiencies.

5. Block Restructure

  • Changes to Block Structure:
    • Block records are modified. New blocks post-Condor will use the new format; historical blocks retain their original format.
  • Action Items:
    • Upgrade client software to parse new blocks while retaining the ability to handle historical blocks.

6. Contract Level Events

  • New Feature:
    • Smart contracts can define message topics and emit messages as contract level events.
  • Action Items:
    • Existing systems do not need changes.
    • Consider migrating from dictionaries for events to the new system for better security and support.

7. Zug Consensus Protocol

  • New Consensus Protocol:
    • Zug Consensus Protocol replaces Highway on the Casper network.
    • Private/hybrid networks can choose between Highway or Zug.
  • Action Items: None.

8. Server-Sent Event (SSE) Endpoint Changes

  • Event Stream Changes:
    • Due to the structural changes in certain record kinds (notably the Block record structure and the transition from the Deploy model to the Transaction model), and the addition of contract-level events in the form of Messages, there are breaking changes to the contents of the event stream.
    • Changes include:
      • Instead of a DeployProcessed event, there is now a TransactionProcessed event.
      • Instead of a DeployExpired event, there is now a TransactionExpired event.
      • Other similar changes in event naming and content.
  • Action Items:
    • Existing software (including SDKs) that deserializes the JSON produced by the SSE event stream will require updating to continue to follow the event stream post-Condor.
    • Software that does not follow the event stream is unaffected by these changes.

For further details, you can refer to the updated documentation available at the provided links: