Technology

Klaytn v1.9.0 Release Notes

We are happy to announce that Klaytn v1.9.0 has been released.

Klaytn v1.9.0 contains a protocol upgrade that results in backward incompatible changes, like the Ethereum hard forks. All Baobab/Cypress nodes would thus have to be upgraded to v1.9.0 or higher before the target block number. This hard fork is called ‘Magma’. It contains an implementation of the dynamic gas price mechanism suggested in [KIP71]

The planned hardfork schedule is as follows:

Magma hard fork blocknumber & estimated date

– Baobab: 98347376 11:00 AM (UTC+9) Aug 8

– Cypress: 99841497 11:00 AM (UTC+9) Aug 29

NOTE: This version updates the version of the database to support snapshot sync. You cannot downgrade to the older versions with existing data after updating to v1.9.0. 

NOTE: For dApp developers, you can understand and prepare a dynamic gas price mechanism by reading this article.

NOTE: Snapshot sync is shipped on this version, but not yet enabled as default. The state snapshot should be generated on remote peers to sync properly, but it is not yet ready. You can manually enable snapshot sync with `–syncmode snap`, but be advised that we expect it would find suitable peers after a few weeks. This feature is only experimental at this moment.

Protocol Upgrade(hardfork) Features

– Implemented dynamic gas price mechanism (#1442 #1452 #1493 #1501 #1518 #1519 #1530 #1537 #1538)

– Implemented APIs to support dynamic gas mechanism (#1520)

    – `klay_upperBoundGasPrice` returns the maximum value of the dynamic gas price

    – `klay_lowerBoundGasPrice` returns the maximum value of the dynamic gas price

– Updated `klay_gasPrice` to suggest `2 * currentBlock.baseFee` after Magama hardfork (#1534)

– Updated sync of parent chain status (#1427)

New Features

– Developed snapshot sync (#1434  #1435 #1441 #1443 #1450 #1451 #1455 #1456 #1457 #1469 #1473 #1524)

Improvements

– Invalidated the block header having a different changeSet size (#1220)

– Added dynamic waiting time between block generation (#1340)

– Updated callTracer and fastCallTracer to be more descriptive for SELFDESTRUCT operation (#1343)

– Refactored BadBlock handling logic to store it in database (#1371)

– Enhanced txpool validation logic for fee-delegation txs (#1372)

– Introduced rlp package and update rlp-related logic (#1385)

– Added detail revert messages at `klay_call`, `klay_estimateGas` (#1408)

– Supported daemon execution using Docker with kpn, kcn and kbn (#1476)

– Added constant metric for showing binary version (#1488)

Fixes

– Fixed tracer to handle inner insta-fail (#1352)

– Removed vote when checkVote() fails in HandleGovernanceVote (#1367)

– Fixed multiChannelPeer ReadMsg loop to read closed ch immediately (#1389)

– Fixed a potential buffer-over-run in transaction sorting (#1398)

– Fixed concurrency API call bugs related to service chain (#1438)

– Increased required consensus messages with six validators or less (#1462)

– Filled missing Gini field to the GetStakingInfo result (#1464)

– Fixed wrong return of api related to snapshot (#1468)

– Fixed DoCall for free to transaction with no price fields (#1540)

– Enhanced validations for tracer output converting logic (#1549)

Miscellaneous

– Minor maintenance (#766 #1157 #1227 #1316 #1362 #1500 #1515)

For more details on the update, please refer to this link.