v1.8.0

Package Downloads

RPM

Cypress Packages

Baobab Packages

Common Packages

Linux

Cypress Packages

Baobab Packages

Common Packages

MacOS

Cypress Packages

Baobab Packages

Common Packages

Windows

  • Not supported yet

Release Notes

Klaytn v1.8.0 contains the protocol upgrade which results in incompatible changes like Ethereum hard forks. All nodes need to be upgraded to this version before the target block number.

The planned hard fork schedule is as follows:

  • Baobab Testnet (Baobab block number 86513895, planned date: March 24)

    • EthTxType hard fork: #86513895 (IstanbulEVM and LondonEVM hard fork already applied on Baobab)

  • Cypress Mainnet (Cypress block number 86816005, planned date: March 31)

    • IstanbulEVM hard fork: #86816005

    • LondonEVM hard fork: #86816005

    • EthTxType hard fork: #86816005

Note: Istanbul EVM hard fork includes changes in the gas cost for the EVM opcode as well as in how to use the APIs. The existing contracts may not function as expected due to these changes, so please refer to the [Cautions on the Protocol Update] section of this article.

Protocol Upgrade Features

  • Introduced EthTxType hard fork that enables new transactions types to support Ethereum transaction types: TxTypeEthereumAccessListand TxTypeEthereumDynamicFee (#1142 #1158)

What’s New in v1.8.0

  • Defined EthereumTxTypeEnvelope (#1171)

  • Implemented EIP-2930 signer and London signer for the new transaction types (#1142 #1158)

  • Introduced eth namespace APIs to support Ethereum API format (#1076 #1077 #1083 #1088 #1093 #1095 #1121 #1123 #1124 #1127 #1129 #1130 #1134 #1172)

  • Added new klay namespace APIs: klay_maxPriorityFeePerGas, klay_createAccessList, and klay_feeHistory (#1156)

  • Introduced the rpc.eth.noncompatible flag that disables Ethereum API format compatibility (#1072)

  • Added baseFeePerGas field in the block header API returns (#1183)

  • Implemented State Snapshot (#1112 #1116 #1152 #1154 #1155 #1173 #1174)

  • Implemented auto-restart daemon for crash tolerance (#1101)

Improvements

  • Adjusted account manager unlock timing when a node starts (#1141)

  • Allowed add/remove multiple validators in a single vote (#1110)

  • Enhanced the validation logic of governance voting API (#1109)

  • Unified mutexes in blockchain.go (#1099)

Fixes

  • Fixed a governance cache initializing bug (#1168)

  • Fixed klay_gasPrice API to return proper gas price values (#1211)

  • Fixed race condition issues triggered by transaction fields update (#1091)

  • Fixed call tracer panic caused by deep return objects (#1203)

ETC

  • Set hard fork block numbers for Cypress network (#1230)

    • IstanbulEVM hard fork: 86816005

    • LondonEVM hard fork: 86816005

    • EthTxType hard fork: 86816005

  • Set a hard fork block number for Baobab network (#1230)

    • EthTxType hard fork: 86513895

Cautions regarding the hard fork

The new version is expected to affect Klaytn DApps currently in service, so if you are a service operator or a developer, we recommend you also read the series Toward Ethereum Equivalence #1 #2 #3 #4 along with the instructions below.

For DApp Services Providers

You may experience Out of Gas errors with old smart contracts

The IstanbulEVM hard fork EVM includes changes in the gas cost for the opcode (Please refer to “Protocol Upgrade Features” in the Klaytn v1.7.0 Release Notes). If your contract had a lot of functions that require limited gas cost like fallback, this change in gas cost may cause an Out of Gas. So far we have determined problems for cases when upgradeable contracts that inherited OpenZeppelin’s BaseAdminUpgradeabilityProxy.sol and BaseUpgradeabilityProxy.sol implement a fallback function identical to Proxy.sol. Please check if the function is implemented in a similar way. Also keep in mind that gas costs are subject to constant change, so please refrain from using actions with heavy loads in the fallback except for printing logs. (reference).

Some Precompiled Contract addresses will be changed

The addresses vmLog(0x09), feePayer(0x0a), validateSender(0x0b) will be transferred to ensure compatibility with Ethereum’s precompiled contracts. It only applies to contracts deployed after the hard fork; contracts deployed before that will remain usable. For more details, please refer to Toward Ethereum Equivalence #2 — Changes in Precompiled Contract Addresses.

Update your caver to v1.8.0 or higher to support the new transaction types

You will be able to use the new transaction types with the EthTxType hard fork. If you need the new transaction formats for a service that requires accessing the transactions of other accounts, make sure to update your caver to v1.8.0 (js, java) or higher. For more details on the new types, please refer to Toward Ethereum Equivalence #4 — Ethereum transaction types.

For EN Operators

New return values for eth andklay APIs

Before, you could make an API call using the eth namespace and it worked the same as klay namespace. But starting with v1.8.0, the eth namespace APIs will adopt Ethereum API return formats. You can find out more in Toward Ethereum Equivalence #3 — Supporting Ethereum API formats. If you want to stick to the behaviors of the old version and use eth like klay, just add the --rpc.eth.noncompatible init option.

Add eth in the EN’s default allowed API list

eth namespace APIs are supported for ENs, and eth has been added to the default allowed list. You need to add eth to the configurations pf RPC_API and WS_API in the kend.conf file in order to use eth APIs. net, web3 APIs used with Ethereum tools like hardhat have also been added to the list. To sum up, the default API white list in v1.8.0 includes: RPC_API="klay,net,eth,web3", WS_API="klay,net,eth,web3"

Last updated