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: