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: