Releases: Conflux-Chain/conflux-rust
Conflux v3.0.3-fix
Security Fix
- Fix a possible panic under certain circumstances. Node operators are strongly recommended to upgrade.
Conflux v3.0.3-testnet-fix
Security Fix
- Fix a possible panic under certain circumstances. Node operators are strongly recommended to upgrade.
Conflux v3.0.3
Bug Fixes
- Fix CIP-78 sponsor flags: Fixed incorrect
gasCoveredBySponsorandstorageCoveredBySponsorreceipt fields for reverted transactions in the cip78a→cip78b window during testnet replay (#3388) - Fix incorrect tx gas limit in packing pool: Fixed incorrect transaction gas limit maintenance in packing pool (#3383)
- Fix fee_history deadlock: Use
read_recursiveto avoid reentrant deadlock infee_history(#3374) - Fix PoS force-retire overflow: Fixed "subtract with overflow" panic when PoS force-retire happens early (#3343)
- Fix eth_estimateGas for SenderDoesNotExist: Handle
SenderDoesNotExistas insufficient funds error ineth_estimateGas(#3341) - Fix CPU mining: Fixed unexpected mining time in CPU mining (#3339)
- Fix stratum: Remove peer from stratum worker if sending message failed (#3307)
New Features
CIP-166: Count Leading Zeros Opcode
State Dump Subcommand
- Added
dumpsubcommand to dump all eSpace accounts as JSON file (#3314)
RPC Changes
- cfx_getTransactionReceipt: Include
accumulatedGasUsedfield (#3362) - Core space trace: Updated
trace_epochresponse type, removedOptionwrapper for some fields (#3371, #3369) - Core space log: Added
timeStampto Core Space log object including light clientget_logs(#3358) - Core space address verbose mode: Added configuration option
rpc_address_simple_modeto control Core Space address verbose mode (#3356) - Transaction pool logging: Added debug RPCs and logging for transaction pool diagnostics (#3345)
Infrastructure & Dependencies
- Bump Rust to 1.90 (#3333)
- Bump revm and c-kzg to latest version (#3347)
- Cargo deny: Resolved multiple dependency audit issues (#3346, #3363, #3370, #3376, #3381, #3384, #3386)
- CI/CD: Added Linux, macOS, and Windows GitHub Actions build workflows with release artifact upload (#3351, #3364, #3365, #3367)
- Fix Windows build: Upgraded
vergentovergen-git2(#3361), fixed Windows compile issue from jemallocator upgrade (#3342) - Log configuration: Improved error hints for missing log config and TTY issues (#3357, #3359, #3360)
- Upgrade solc-select: Fixed 403 error in integration tests (#3379, #3382)
Conflux v3.0.3-testnet
Bug Fixes
- Fix CIP-78 sponsor flags: Fixed incorrect
gasCoveredBySponsorandstorageCoveredBySponsorreceipt fields for reverted transactions in the cip78a→cip78b window during testnet replay (#3388) - Fix incorrect tx gas limit in packing pool: Fixed incorrect transaction gas limit maintenance in packing pool (#3383)
- Fix fee_history deadlock: Use
read_recursiveto avoid reentrant deadlock infee_history(#3374) - Fix PoS force-retire overflow: Fixed "subtract with overflow" panic when PoS force-retire happens early (#3343)
- Fix eth_estimateGas for SenderDoesNotExist: Handle
SenderDoesNotExistas insufficient funds error ineth_estimateGas(#3341) - Fix CPU mining: Fixed unexpected mining time in CPU mining (#3339)
- Fix stratum: Remove peer from stratum worker if sending message failed (#3307)
New Features
CIP-166: Count Leading Zeros Opcode
State Dump Subcommand
- Added
dumpsubcommand to dump all eSpace accounts as JSON file (#3314)
RPC Changes
- eth_blockByNumber: Added support for
pendingtag (#3368) - cfx_getTransactionReceipt: Include
accumulatedGasUsedfield (#3362) - Core space trace: Updated
trace_epochresponse type, removedOptionwrapper for some fields (#3371, #3369) - Core space log: Added
timeStampto Core Space log object including light clientget_logs(#3358) - Core space address verbose mode: Added configuration option
rpc_address_simple_modeto control Core Space address verbose mode (#3356) - Transaction pool logging: Added debug RPCs and logging for transaction pool diagnostics (#3345)
Infrastructure & Dependencies
- Bump Rust to 1.90 (#3333)
- Bump revm and c-kzg to latest version (#3347)
- Cargo deny: Resolved multiple dependency audit issues (#3346, #3363, #3370, #3376, #3381, #3384, #3386)
- CI/CD: Added Linux, macOS, and Windows GitHub Actions build workflows with release artifact upload (#3351, #3364, #3365, #3367)
- Fix Windows build: Upgraded
vergentovergen-git2(#3361), fixed Windows compile issue from jemallocator upgrade (#3342) - Log configuration: Improved error hints for missing log config and TTY issues (#3357, #3359, #3360)
- Upgrade solc-select: Fixed 403 error in integration tests (#3379, #3382)
Conflux v3.0.2
Bug Fixes
RPC
- Fix eth_call coinbase opcode: Fixed bug where
eth_callcoinbase opcode was using a random address instead of the correct one
Others
- Fix PoS reward reexecution: Fixed issue where PoS reward in DB was not checked if it's on pivot for reexecution
RPC Changes
New RPC Endpoints
- debug_blockProperties: Added a custom eSpace RPC endpoint to return extra block property information for all transactions in an eSpace block. This is useful for services that require verification of transaction execution, as transactions within a single Conflux eSpace block may have different block contexts (coinbase, timestamp, difficulty) during execution. See documentation for details.
RPC Improvements
- Log timestamp support: Added
blockTimestampfield to eSpacelogobject (for methods likeeth_getLogsandeth_getFilterLogs) - Block number type improvements:
- Renamed RPC type
BlockNumbertoBlockIdfor better precision - RPC type
BlockNumbernow supports block hash case
- Renamed RPC type
- Log format optimization: Optimized bytes log format from number array to hex string
- Fix parity trace compatibility: Fixed parity trace error and result structure incompatibility issue
- Fix block retrieval errors: Use new defined error types instead of strings for block retrieve methods
- RPC configuration: Added configuration options for eSpace RPCs
Performance Improvements
- Storage optimization: Optimized to only read from storage if entry is not occupied
- eth_feeHistory: Optimized to only read header instead of full block for base price calculation
Infrastructure & Dependencies
Memory Management
- jemalloc upgrade: Switched from
jemallocatortotikv-jemallocator - Memory profiling: Added memory and CPU pprof support for profiling
Conflux v3.0.2-testnet
Bug Fixes
RPC
- Fix eth_call coinbase opcode: Fixed bug where
eth_callcoinbase opcode was using a random address instead of the correct one
Others
- Fix PoS reward reexecution: Fixed issue where PoS reward in DB was not checked if it's on pivot for reexecution
RPC Changes
New RPC Endpoints
- debug_blockProperties: Added a custom eSpace RPC endpoint to return extra block property information for all transactions in an eSpace block. This is useful for services that require verification of transaction execution, as transactions within a single Conflux eSpace block may have different block contexts (coinbase, timestamp, difficulty) during execution. See documentation for details.
RPC Improvements
- Log timestamp support: Added
blockTimestampfield to eSpacelogobject (for methods likeeth_getLogsandeth_getFilterLogs) - Block number type improvements:
- Renamed RPC type
BlockNumbertoBlockIdfor better precision - RPC type
BlockNumbernow supports block hash case
- Renamed RPC type
- Log format optimization: Optimized bytes log format from number array to hex string
- Fix parity trace compatibility: Fixed parity trace error and result structure incompatibility issue
- Fix block retrieval errors: Use new defined error types instead of strings for block retrieve methods
- RPC configuration: Added configuration options for eSpace RPCs
Performance Improvements
- Storage optimization: Optimized to only read from storage if entry is not occupied
- eth_feeHistory: Optimized to only read header instead of full block for base price calculation
Infrastructure & Dependencies
Memory Management
- jemalloc upgrade: Switched from
jemallocatortotikv-jemallocator - Memory profiling: Added memory and CPU pprof support for profiling
Conflux v3.0.1
Improvements
- Return a detailed version for
conflux --version.
Bug Fix
- Fix the bug of using wrong ws_address to open rpc endpoints.
- Fix
Mismatch between definition and access of rpc-argserror.
RPC Changes
eth_getBlockByNumberreturns null when parameter is bigger than latest block.
Note: The Windows version does not support opening the Core Space WebSocket port(
jsonrpc_ws_port,jsonrpc_local_ws_port).
Conflux v3.0.1-testnet-fix
v3.0.1-testnet-fix introduces a new hardfork. All nodes should be upgraded before the epoch number reaches 229140000 (estimated on Aug 18).
Improvements
- Return a detailed version for
conflux --version.
Bug Fix
- Fix incorrect implementation of CIP145.
- Fix the bug of using wrong ws_address to open rpc endpoints.
- Fix
Mismatch between definition and access of rpc-argserror.
RPC Changes
eth_getBlockByNumberreturns null when parameter is bigger than latest block.
Note: The Windows version does not support opening the Core Space WebSocket port(
jsonrpc_ws_port,jsonrpc_local_ws_port).
Conflux v3.0.0
This release introduces a new hardfork. All nodes should be upgraded before the epoch number reaches 129680000 (estimated on Sep 1). CIP-156 will be enabled when the PoS block number reaches 2754720 (estimated on Sep 1).
Conflux is planning to activate and implement modifications of 8 different CIPs (improvement proposals), including CIP-150, CIP-151, CIP-152, CIP-154, CIP-156, CIP-165, CIP-645 and CIP-7702, as well as related RPC updates in the next Hardfork system upgrade.
For more details, please refer to the following link: https://www.confluxdocs.com/docs/general/hardforks/v3.0
CIP Changes:
These CIPs are mainly divided into the following categories:
-
EVM Compatibility: CIP-150, CIP-151, CIP-152, CIP-165, CIP-645, CIP-7702
-
Bug Fix: CIP-154
-
Specification Adjustment: CIP-156
The following is a brief introduction of these CIPs.
CIP 150
This CIP replicates EIP-3541, which disallows deploying new code that starts with the 0xEF byte.
CIP 151
This CIP replicates EIP-6780, which prevents contracts from being destroyed by SELFDESTRUCT in most cases, with the only exception being the destruction of a contract within the same transaction as its creation.
CIP 152
This CIP replicates EIP-3607, which addresses a potential security issue where an EOA could share the same address as a contract due to a collision attack. Specifically designed EOAs with code (like EIP-7702), are not affected by this restriction.
CIP 154
This CIP addresses an implementation error in CIP-142, which incorrectly implemented the TLOAD opcode as SLOAD.
CIP 156
This CIP changes the penalty of PoS malicious behavior from permanent stake forfeiting to temporary stake locking.
CIP 165
Introduces precompiles for BLS12-381 curve operations as defined in EIP-2537, enabling efficient execution of tasks such as BLS signature verification.
CIP 645
This CIP proposes aligning Conflux eSpace's behavior with Ethereum's EVM to ensure compatibility with Ethereum development tools and provide a consistent experience for developers. It also addresses the impact of new EIPs on Conflux Core Space.
The following Ethereum Improvement Proposals (EIPs) are implemented or adapted:
| Description | Link |
|---|---|
| EIP-1108: Reduces gas costs for alt_bn128 precompile | EIP-1108 |
| EIP-1884: Reprices trie-size-dependent opcodes | EIP-1884 |
| EIP-2028: Reduces Calldata gas cost | EIP-2028 |
| EIP-2200: Rebalances net-metered SSTORE gas cost | EIP-2200 |
| EIP-2565: Reduces gas cost for modular exponentiation transactions | EIP-2565 |
| EIP-2929: Increases gas costs for opcode transactions to mitigate DDoS | EIP-2929 |
| EIP-3529: Removes gas refunds for SELFDESTRUCT and reduces SSTORE refunds | EIP-3529 |
| EIP-3651: Reduces gas fees for accessing COINBASE address | EIP-3651 |
| EIP-3860: Limits initcode size to 49152 | EIP-3860 |
Additionally, this CIP addresses discrepancies found during Ethereum behavioral alignment tests, including:
-
Implementation of EIP-4844-related opcodes (BLOBHASH and BLOBBASEFEE) with consistent "zero" results.
-
Nonce alignment for failed CREATE2 operations (EIP-684 compliance).
-
Proper validation of fee-related conditions for transactions (EIP-1559 compliance).
-
Memory boundary handling in MCOPY (EIP-5656 compliance).
-
Transient storage lifecycle changes to conform to EIP-1153.
-
Link:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-645.md
CIP 7702
This CIP introduces EIP-7702 to Conflux eSpace.
RPC changelog
⚠️ Note: To enable the RPC service for eSpace, you need to open both the HTTP (jsonrpc_http_eth_port) and WebSocket (jsonrpc_ws_eth_port) ports in the configuration file.
Below RPC add support for EIP-7702 tx:
-
eth_call & eth_estimateGas
-
transaction related RPCs: eth_getTransactionByHash, eth_blockByNumber, eth_blockByHash
Misc changes:
-
Support gasFee in transaction receipt for espace RPC
-
eSpace
block.gasLimitchange to half of the consensus gas limit, addblock.espaceGasLimitto return the real gas limit for eSpace transactions. -
eSpace parity style trace RPCs updates:
a. Trace RPC methods now compatible with parity and erigon, including
trace_block,trace_transaction,trace_filter, this is aAPI breaking changeb. Two new RPCs
trace_getandtrace_blockSetAuthare addedc.
trace_blockSetAuthis a Conflux specific RPC used to get the block set auth result, check trace doc for details.d. These trace methods now support
SelfDestruct(Suicide)trace, to access historical selfdestruct transaction data, a resync of the data is required. -
eSpace now support geth style
txpoolnamespace methods, including:txpool_status,txpool_inspect,txpool_content,txpool_contentFrom -
eth_call,eth_estimateGasadd support forstateoverridefeature.
Conflux v3.0.1-testnet
v3.0.0-testnet introduces a new hardfork. All nodes should be upgraded before the epoch number reaches 223340000 (estimated on Jul 1). CIP-156 will be enabled when the PoS block number reaches 2745000 (estimated on Jul 1).
Bug Fix
- Fix suicide trace wrong traceAddress bug.
- Fix the Windows binary crash issue.