Improvements
RPC Deprecation Announcement
- Starting from v2.0.3,
cfx_getLogs
andeth_getLogs
will no longer support the parameterslimit
andoffset
. They are not efficient and can be replaced by setting the block/epoch range instead. - Starting from v2.0.3,
cfx_clientVersion
will have include more information likeweb3_clientVersion
in eSpace. - Starting from v2.0.3,
fromEpoch
will default to "latest_state" incfx_getLogs
. - Starting from v2.0.3,
fromBlock
will default to "latest" ineth_getLogs
.
RPC Improvements
- Report error in
cfx_getLogs
andeth_getLogs
ifget_logs_filter_max_limit
is configured but the query would return more logs. The previous behavior ofcfx_getLogs
was to silently truncate the result. The previous behavior ofeth_getLogs
was to raise an error whenfilter.limit
is too low, regardless of how many logs the query would result in. eth_gasPrice
now estimate gas prices accurately instead of returning a fixed value.- Support phantom transactions and return correct fields in eSpace
trace
RPCs. - Add fields
valid
andcreateType
for eSpacetrace
RPCs. - Add RPC
rpc_methods
to return all available methods andrpc_modules
to return all RPC modules. - Add
totalEspaceTokens
in the response ofcfx_getSupplyInfo
. - Add local RPCs
pos_start_voting
,pos_stop_voting
, andpos_voting_status
. Check #2438 for details. - Accept requests with zero as sender in
eth_call
. - Accept unknown fields in
eth_call
.
Configuration Improvements
- Allow PoS voting nodes to have running backups. #2438 includes an introduction.
- Add config parameter
get_logs_filter_max_block_number_range
for limiting the maximum gap betweenfrom_block
andto_block
during Core space log filtering (cfx_getLogs
). Note: eSpace blocks correspond to epochs in Core space, so the range ineth_getLogs
can be limited usingget_logs_filter_max_epoch_range
. - Add config parameter
min_phase_change_normal_peer_count
to set the number of normal-phase peers needed for phase change. The default value is set to 3 to make it more robust. - Add environment variable
CFX_POS_KEY_ENCRYPTION_PASSWORD
to configure pos key encryption password. Check #2464 for details. - Set a proper max open files with
ulimit
in the default Linux/macOS start bash script. - Improve the client version output to include more information.
Transaction Pool Improvements
- Allow pending transactions to be replaced unconditionally after 200000 epochs.
Bug Fixes
- Fix an issue that phantom transactions may have the same hash. Now all phantom transactions have different hashes after this fix.
- Create PoS log file directory if it does not exist.
- Fix a panic issue when the node is started with
stdout
unavailable. - Fix an issue that an old transaction is not replaced according to a higher
epoch_height
. - Increase the request timeout upper bound to fix sync issues in normal cases.