1. Account/Contract Merge

  • Merge Overview:
    • Casper currently tracks Accounts and Contracts as separate record types, which are about 80% identical but have distinct fields and behaviors. Condor merges these into one entity record called AddressableEntity, simplifying the code base and removing arbitrary behavioral restrictions.
    • Migration:
      • Existing Account and Contract records will migrate upon on-chain interaction (e.g., sending transactions, native transfers).
      • New “accounts” and “contracts” will create an AddressableEntity record.
      • PublicKey/AccountHash associations for existing Account records remain and function with the corresponding AddressableEntity.
    • Named Keys:
      • Previously embedded in Account and Contract records, named keys are now a top-level concern stored directly in global state. This improves scalability and reduces gas cost volatility.
      • Entry points for smart contracts also transition to top-level storage in global state, similarly to named keys.
    • Action Items:
      • Off-chain logic retrieving Account or Contract records for processing, storage, indexing, etc., must be updated to use the AddressableEntity record structure.

2. Fee Elimination

  • New Features:
    • Condor introduces configurable fee, refund, and pricing strategies, initially rolling out in “NoFee” mode. This mode places a balance hold on the paying purse instead of transferring tokens used for gas.
    • A configurable interval determines how long a balance hold remains. The available balance equals the actual balance minus non-expired holds.
    • Query Balance:
      • Off-chain logic can continue using the query_balance endpoint for available balance or the new query_balance_details RPC endpoint for detailed balance information.
    • Action Items:
      • Existing implementations generally do not need changes.
      • Platforms with automated funding should consider the new behavior for optimal scheduling strategies.

3. Dynamic Pricing

  • Gas Price Changes:
    • Condor introduces a configurable gas price multiplier based on block consumption. Gas price adjusts at the end of each era based on average block usage, increasing or decreasing by 1 within set thresholds.
    • Configuration:
      • Minimum and maximum gas prices and adjustment thresholds are configurable.
      • The current 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 a maximum gas price using the gas_tolerance field.

4. Transaction Types

  • Transition to Transaction Model:
    • The Deploy structure is deprecated; Condor introduces a Transaction model, supporting more advanced features.
    • Existing Deploys will continue to be accepted and executed if compatible, but eventual full transition to the Transaction model is recommended.
    • Action Items:
      • Determine if existing off-chain systems remain compatible with the legacy Deploy model.
      • Consider upgrading to the Transaction model for new features and efficiencies.

5. Block Restructure

  • Changes to Block Structure:
    • Block records are modified to accommodate more types of Transactions and surface previously embedded information. New blocks will use the new format; historical blocks retain their original format.
    • Action Items:
      • Client software must be upgraded 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, maintaining identity and exact ordering in interactions.
    • Action Items:
      • Existing systems do not need changes.
      • Smart contracts using dictionaries for events should consider migrating 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:
    • Structural changes to Block records and the transition from Deploy to Transaction model, as well as the addition of contract-level events, result in breaking changes to the event stream.
    • Changes include:
      • DeployProcessed becomes TransactionProcessed.
      • DeployExpired becomes TransactionExpired.
      • Verbs and behavioral semantics remain the same.
    • Action Items:
      • Update software and SDKs to handle the new event stream post-Condor.

For more details, you can refer to the following resources: