# v1.12.0

## Package Downloads <a href="#package-downloads" id="package-downloads"></a>

### RPM <a href="#rpm" id="rpm"></a>

Cypress Packages

* [kcnd-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kcnd-v1.12.0-0.el7.x86_64.rpm)
* [kpnd-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kpnd-v1.12.0-0.el7.x86_64.rpm)
* [kend-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kend-v1.12.0-0.el7.x86_64.rpm)

Baobab Packages

* [kcnd-baobab-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kcnd-baobab-v1.12.0-0.el7.x86_64.rpm)
* [kpnd-baobab-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kpnd-baobab-v1.12.0-0.el7.x86_64.rpm)
* [kend-baobab-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kend-baobab-v1.12.0-0.el7.x86_64.rpm)

Common Packages

* [kscnd-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kscnd-v1.12.0-0.el7.x86_64.rpm)
* [kspnd-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kspnd-v1.12.0-0.el7.x86_64.rpm)
* [ksend-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/ksend-v1.12.0-0.el7.x86_64.rpm)
* [kbnd-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kbnd-v1.12.0-0.el7.x86_64.rpm)
* [kgen-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0.el7.x86_64.rpm)
* [homi-v1.12.0-0.el7.x86\_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0.el7.x86_64.rpm)

### Linux <a href="#linux" id="linux"></a>

Cypress Packages

* [kcn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-linux-amd64.tar.gz)
* [kpn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-linux-amd64.tar.gz)
* [ken-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-linux-amd64.tar.gz)

Baobab Packages

* [kcn-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-linux-amd64.tar.gz)
* [kpn-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-linux-amd64.tar.gz)
* [ken-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.11.1/ken-baobab-v1.12.0-0-linux-amd64.tar.gz)

Common Packages

* [kscn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-linux-amd64.tar.gz)
* [kspn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-linux-amd64.tar.gz)
* [ksen-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-linux-amd64.tar.gz)
* [kbn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-linux-amd64.tar.gz)
* [kgen-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-linux-amd64.tar.gz)
* [homi-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-linux-amd64.tar.gz)

### MacOS <a href="#macos" id="macos"></a>

Cypress Packages

* [kcn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [kpn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [ken-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [kcn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-darwin-arm64.tar.gz)
* [kpn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-darwin-arm64.tar.gz)
* [ken-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-darwin-arm64.tar.gz)

Baobab Packages

* [kcn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.11.1/ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [kcn-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-darwin-arm64.tar.gz)
* [kpn-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [ken-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)

Common Packages

* [kscn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [kspn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [ksen-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [kbn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [kgen-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [homi-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-darwin-10.10-amd64.tar.gz)
* [kscn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-darwin-arm64.tar.gz)
* [kspn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-darwin-arm64.tar.gz)
* [ksen-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-darwin-arm64.tar.gz)
* [kbn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-darwin-arm64.tar.gz)
* [kgen-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-darwin-arm64.tar.gz)
* [homi-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-darwin-arm64.tar.gz)

### Windows <a href="#windows" id="windows"></a>

* Not supported yet

### Docker <a href="#docker" id="docker"></a>

* [klaytn/klaytn:v1.12.0](https://hub.docker.com/r/klaytn/klaytn)

## Release Notes <a href="#release-notes" id="release-notes"></a>

Klaytn v1.12.0 contains a hardfork upgrade that results in backward-incompatible changes. All Baobab nodes must be upgraded to v1.12.0 or higher before the target block number. The hardfork block number for Cypress mainnet will be scheduled in the next version.

This version includes two different hardforks. The first is the features equivalent to Ethereum Caucun hardfork, and the second is an optional hardfork implementing the Randao on-chain randomness.

The hardfork schedule is as follows:

**Baobab testnet**

* Block number: 141367000 (estimated time: 19 Dec, 10:00 AM UTC+9)
* Hardfork contents: Cancun hardfork, Randao hardfork

### Cancun Hardfork features

* Added the TLOAD, TSTORE opcodes to EVM according to [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) ([#1988](https://github.com/klaytn/klaytn/pull/1988))
* Added the BLOBBASEFEE, BLOBHASH opcodes and the POINT\_EVALUATION (0x0a) precompile to EVM according to [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) and [EIP-7516](https://eips.ethereum.org/EIPS/eip-7516) except Blob transaction type support ([#2032](https://github.com/klaytn/klaytn/pull/2032))
* Added the MCOPY opcode to EVM according to [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) ([#1980](https://github.com/klaytn/klaytn/pull/1980))
* Modified the behavior of the SELFDESTRUCT opcode according to [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) ([#1986](https://github.com/klaytn/klaytn/pull/1986))
* Adjusted ComputationCost for the recommended hardware specification, and increased the ComputationCostLimit ([#2037](https://github.com/klaytn/klaytn/pull/2037))
* Modified the behavior of the EXTCODEHASH opcode to return 0 when the account is empty according to [EIP-1052](https://eips.ethereum.org/EIPS/eip-1052) ([#2040](https://github.com/klaytn/klaytn/pull/2040))
* Fully support AccessList transaction type according to [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) ([#1955](https://github.com/klaytn/klaytn/pull/1955))

### Randao Hardfork features

* Added the System Contract Registry according to [KIP-149](https://github.com/klaytn/kips/issues/149) ([#1968](https://github.com/klaytn/klaytn/pull/1968), [#1987](https://github.com/klaytn/klaytn/pull/1987), [#1999](https://github.com/klaytn/klaytn/pull/1999), [#2054](https://github.com/klaytn/klaytn/pull/2054), [#2059](https://github.com/klaytn/klaytn/pull/2059))
* Added the BLS Public Key Registry according to [KIP-113](https://github.com/klaytn/kips/issues/113) ([#1951](https://github.com/klaytn/klaytn/pull/1951), [#1990](https://github.com/klaytn/klaytn/pull/1990), [#2017](https://github.com/klaytn/klaytn/pull/2017), [#2029](https://github.com/klaytn/klaytn/pull/2029), [#2052](https://github.com/klaytn/klaytn/pull/2052), [#2053](https://github.com/klaytn/klaytn/pull/2053))
* Added the RANDAO fields to block headers according to [KIP-114](https://github.com/klaytn/kips/issues/114) ([#2009](https://github.com/klaytn/klaytn/pull/2009), [#2014](https://github.com/klaytn/klaytn/pull/2014), [#2028](https://github.com/klaytn/klaytn/pull/2028))
* Modified block proposer selection to use unpredictable randomness according to [KIP-146](https://github.com/klaytn/kips/issues/146) ([#2030](https://github.com/klaytn/klaytn/pull/2030), [#2039](https://github.com/klaytn/klaytn/pull/2039))

### Improvements

* Added the Upstream EN feature. When an EN fails to find the block data during an API handling, it can query another EN specified by the `--rpc.upstream-en` flag. ([#2013](https://github.com/klaytn/klaytn/pull/2013))
* Increased the block consensus quorum to harden network security. ([#2026](https://github.com/klaytn/klaytn/pull/2026))
* The JavaScript runtime of the built-in console now supports [ECMAScript6](http://es6-features.org/) features ([#2001](https://github.com/klaytn/klaytn/pull/2001))
* Optimized the data synchronization between RocksDB instances. ([#1947](https://github.com/klaytn/klaytn/pull/1947))
* Added the node flag --vm.opdebug to measure opcode execution times. ([#2012](https://github.com/klaytn/klaytn/pull/2012))
* Transaction-related APIs return more detailed error messages about bad signatures ([#1967](https://github.com/klaytn/klaytn/pull/1967))
* Optimized the debug\_startWarmUp API ([#2011](https://github.com/klaytn/klaytn/pull/2011))
* Added the debug\_traceCall AP to support ERC-4337 bundlers ([#1965](https://github.com/klaytn/klaytn/pull/1965), [#1979](https://github.com/klaytn/klaytn/pull/1979))
* Added the admin\_nodeConfig API ([#1996](https://github.com/klaytn/klaytn/pull/1996))
* Added the eth\_createAccessList API to help build AccessList type transactions ([#2027](https://github.com/klaytn/klaytn/pull/2027))
* Added the eth\_getBlockReceipts API, and modified the klay\_getBlockReceipts API to accept block numbers. ([#2019](https://github.com/klaytn/klaytn/pull/2019))

### Fixes

* Fixed governance-related bugs ([#1942](https://github.com/klaytn/klaytn/pull/1942), [#1984](https://github.com/klaytn/klaytn/pull/1984))
* Fixed the debug\_setHead API to correctly rewind governance-related internal states. You can attempt recovery from governance-related block sync problems. ([#1966](https://github.com/klaytn/klaytn/pull/1966), [#2002](https://github.com/klaytn/klaytn/pull/2002))
* Fixed some log levels. ([#1946](https://github.com/klaytn/klaytn/pull/1946), [#1978](https://github.com/klaytn/klaytn/pull/1978))
* Fixed debug\_traceTransaction API to correctly function with value transfer to EOAs. ([#1953](https://github.com/klaytn/klaytn/pull/1953))
* Fixed klay\_recoverFromTransaction API to correctly process Ethereum-typed transactions ([#1975](https://github.com/klaytn/klaytn/pull/1975))
* Fixed the block and header fetching APIs to not fail with the “pending” block number. ([#1994](https://github.com/klaytn/klaytn/pull/1994))
* Fixed the eth\_maxPriorityFeePerGas API to return 0 since Magma hardfork. ([#2008](https://github.com/klaytn/klaytn/pull/2008))

### Miscellaneous

* Update the rlpx and abi packages ([#1954](https://github.com/klaytn/klaytn/pull/1954), [#2015](https://github.com/klaytn/klaytn/pull/2015))
* Enable some packages to be built for WASM target ([#1983](https://github.com/klaytn/klaytn/pull/1983))
* Minor maintenance ([#1941](https://github.com/klaytn/klaytn/pull/1941), [#1944](https://github.com/klaytn/klaytn/pull/1944), [#1948](https://github.com/klaytn/klaytn/pull/1948), [#1952](https://github.com/klaytn/klaytn/pull/1952), [#1956](https://github.com/klaytn/klaytn/pull/1956), [#1969](https://github.com/klaytn/klaytn/pull/1969), [#1971](https://github.com/klaytn/klaytn/pull/1971), [#1972](https://github.com/klaytn/klaytn/pull/1972), [#1973](https://github.com/klaytn/klaytn/pull/1973), [#1974](https://github.com/klaytn/klaytn/pull/1974), [#1977](https://github.com/klaytn/klaytn/pull/1977), [#1982](https://github.com/klaytn/klaytn/pull/1982), [#1985](https://github.com/klaytn/klaytn/pull/1985), [#1991](https://github.com/klaytn/klaytn/pull/1991), [#1992](https://github.com/klaytn/klaytn/pull/1992), [#1993](https://github.com/klaytn/klaytn/pull/1993), [#1995](https://github.com/klaytn/klaytn/pull/1995), [#1997](https://github.com/klaytn/klaytn/pull/1997), [#1998](https://github.com/klaytn/klaytn/pull/1998), [#2004](https://github.com/klaytn/klaytn/pull/2004), [#2007](https://github.com/klaytn/klaytn/pull/2007), [#2016](https://github.com/klaytn/klaytn/pull/2016), [#2020](https://github.com/klaytn/klaytn/pull/2020), [#2024](https://github.com/klaytn/klaytn/pull/2024), [#2031](https://github.com/klaytn/klaytn/pull/2031), [#2033](https://github.com/klaytn/klaytn/pull/2033), [#2034](https://github.com/klaytn/klaytn/pull/2034), [#2035](https://github.com/klaytn/klaytn/pull/2035), [#2036](https://github.com/klaytn/klaytn/pull/2036), [#2041](https://github.com/klaytn/klaytn/pull/2041), [#2050](https://github.com/klaytn/klaytn/pull/2050), [#2055](https://github.com/klaytn/klaytn/pull/2055), [#2056](https://github.com/klaytn/klaytn/pull/2056), [#2058](https://github.com/klaytn/klaytn/pull/2058), [#2061](https://github.com/klaytn/klaytn/pull/2061))
