# v1.5.0

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

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

Cypress Packages

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

Baobab Packages

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

Common Packages

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

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

Cypress Packages

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

Baobab Packages

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

Common Packages

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

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

Cypress Packages

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

Baobab Packages

* [kcn-baobab-v1.5.0-0-darwin-10.10-amd64.tar.gz](http://packages.klaytn.net/klaytn/v1.5.0/kcn-baobab-v1.5.0-0-darwin-10.10-amd64.tar.gz)
* [kpn-baobab-v1.5.0-0-darwin-10.10-amd64.tar.gz](http://packages.klaytn.net/klaytn/v1.5.0/kpn-baobab-v1.5.0-0-darwin-10.10-amd64.tar.gz)
* [ken-baobab-v1.5.0-0-darwin-10.10-amd64.tar.gz](http://packages.klaytn.net/klaytn/v1.5.0/ken-baobab-v1.5.0-0-darwin-10.10-amd64.tar.gz)

Common Packages

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

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

* Not supported yet

## Release Notes for Klaytn v1.5.0 <a href="#release-notes-for-klaytn-v1-5-0" id="release-notes-for-klaytn-v1-5-0"></a>

### New Features <a href="#new-features" id="new-features"></a>

* 상태 마이그레이션 (<https://github.com/klaytn/klaytn/pull/507>)
  * 불필요하고 오래된 상태/스토리지 트리를 제거하여 Klaytn 노드(Cypress) 스토리지 용량을 75%(800 GB -> 200 GB) 절약하는 새로운 JSON-RPC API
    * admin.startStateMigration()
    * admin.stopStateMigration()
    * admin.stateMigrationStatus
  * Klaytn node currently requires about 1TB of storage space. This size of storage was a burdensome for efficient node operation, and the state migration came here to relieve this. The state migration removes the stale state/storage trie nodes which are unnecessary for new block generation and validation. Before starting a state migration, `stakingInfo` is saved in a database to get `stakingInfo` without the staled state after the state migration.
* Warm-up trie node cache (<https://github.com/klaytn/klaytn/pull/548>)
  * New JSON-RPC APIs to speed up the block processing by iterating the latest state trie and caching it
    * debug.startWarmUp()
    * debug.stopWarmUp()
  * Until now, Klaytn node had to continuously access a database for processing a block due to uncached state trie nodes, which results in the delay in block processing. The introduced "warm-up" feature reduces this delay by iterating the last state trie and caching it.
* Import blocks from String (<https://github.com/klaytn/klaytn/pull/516>)
  * Importing blocks was available only with a file. Importing blocks from a string is required for some use cases.
  * New JSON-RPC APIs
    * admin.importChainFromString()
* Fastcache (<https://github.com/klaytn/klaytn/pull/490>)
  * Fastcache as trie node cache with the autoscaled cache size, reducing memory consumption compared to Bigcache

### Improvements <a href="#improvements" id="improvements"></a>

* Parameterizes triesInMemory and maxRequestContentLength (<https://github.com/klaytn/klaytn/pull/555>, <https://github.com/klaytn/klaytn/pull/564>)
* Uses cached state database in TraceBlock (<https://github.com/klaytn/klaytn/pull/546>)
* Improves consensus logic
  * Adds unit test code (<https://github.com/klaytn/klaytn/pull/487>, <https://github.com/klaytn/klaytn/pull/492>)
  * Refactors `SubList`/`SubListWithProposer` (<https://github.com/klaytn/klaytn/pull/551>)
  * Prevents validators from sending consensus message if they are not in committee (<https://github.com/klaytn/klaytn/pull/549>)
  * Istanbul message handler now checks whether the sender is a member of the committee or not (<https://github.com/klaytn/klaytn/pull/545>)
* Prevents `commit` twice when a node stops (<https://github.com/klaytn/klaytn/pull/530>)
* Refactors staking manager (<https://github.com/klaytn/klaytn/pull/515>)
* Builds and publishes public docker image (<https://github.com/klaytn/klaytn/pull/491>)
* Improves Trace API
  * Adds `txHash` into `txTraceResult` (<https://github.com/klaytn/klaytn/pull/488>)
  * `tracer` now supports `CREATE2` (<https://github.com/klaytn/klaytn/pull/489>)
  * `tracer` now reports transaction revert information (<https://github.com/klaytn/klaytn/pull/484>)
* Allows DNS address string to start with numeric character for encoding URL (<https://github.com/klaytn/klaytn/pull/482>)
* Removes vendor directory (<https://github.com/klaytn/klaytn/pull/498>)

### Fixes <a href="#fixes" id="fixes"></a>

* Reorganizes the stop sequence of blockchain module (<https://github.com/klaytn/klaytn/pull/535>)
* Fixes `computeStateDB` to not compute for non-existing block number (<https://github.com/klaytn/klaytn/pull/483>)
* Prevents files to be overwritten via admin.exportChain (<https://github.com/klaytn/klaytn/pull/480>)
