github kaiachain/kaia v2.1.0
Kaia v2.1.0 Release Notice

one day ago

Kaia v2.1.0 introduces the MEV Auction mechanism along with improvements to APIs and storage efficiency. No hardfork is included in this release.

New node configurations

Notes to Consensus Node (CN) operators

A v2.1.0 CN accepts KIP-249 BidTx and includes BidTx in the block it proposes. There is another entity called the Auctioneer server that decides auction winners and sends the winner information to CNs. The Auctioneer has to connect to CNs over the new “auction” namespace RPCs, such as auction_submitBid.

Therefore, CNs should open the RPC over WebSocket and allow the auction namespace only. For example, in your kcnd.conf,

WS_ENABLE=1
WS_API="auction"

It is recommended that proper security measures, such as firewalls, be taken to restrict the exposure of the RPC endpoint.

Notes to Full node operators

LevelDB’s snappy compression is now on by default since v2.1.0. Nodes before v2.1.0 can enable it using the following flag. This option automatically compresses newly written data. Check "compressionType=snappy" in the startup log (except for statetrie directorires).

--db.leveldb.compression 2

For existing uncompressed data, trigger an explicit database compaction via RPC. The compaction (distinct from compression) performs housekeeping that rewrites the old data, thus compressing it as a side effect. This process is slow - about 10 hours for a Mainnet node. Disk I/O will rise, but not enough to interfere with block synchronization.

debug.chaindbCompact({ "preset": "allbutstate" })

Combining the compression option and manual compaction can significantly save disk space, e.g. 2TB on a Mainnet full node. See the data here.

Notes to Archive node operators

Kaia v2.1.0 introduces an experimental implementation of an efficient statedb implementation, FlatTrie. It is an adaptation of Erigon’s state scheme where accounts and contract variables are efficiently organized. In an experiment, the disk space of a Kairos archive node at 12 million blocks was about 1600 GB in default settings and 600 GB in FlatTrie setting.

Use --state.experimental-flat-trie flag to enable it. It always runs in the archive mode, regardless of “gcmode” or “state.block-interval” flags. You have to start from an empty database and re-sync blocks. Some features are unavailable with FlatTrie. To name a few, eth_getProof API, live pruning, and block rewinding.

Improvements

  • Added the MEV Auction feature as per KIP-249 (#466, #482, #486, #488, #490, #491, #507, #530, #544, #536. #532, #533, #541, #542, #537, #534, #535, #548, #561, #562, #563, #566, #567, #569, #579, #581, #587)
  • Added the RocksDB support (#455)
  • Added a fine-grained control to the debug_chaindbCompact API (#475)
    Modified the default value of --db.leveldb.compression to 2 (all except statetrie) (#552)
  • Added the experimental FlatTrie database scheme (#512)
  • Added the “safe” and “finalized” keywords in the RPC block number parameters (#496)
  • Added sanity checks for EIP-7702 SetCode transactions (#497)
  • Added EthClient to invoke eth namespace APIs (#565)
  • Added --vrank.log-frequency to fine tune vrank statistics (#585)

Fixes

  • Fixed a corner case of kaia_estimateGas (#452)
  • Fixed the ordering of event log subscription API in CNs (#432)
  • Fixed the kaia_getTotalSupply and kaia_getRewards to correctly respect the Upstream EN (#470, #483)
  • Fixed the kaia_getBlockWithConsensusInfo API to accept “pending” block number (#546)
  • Fixed the local transaction journaling issue (#473)
  • Fixed potential concurrency issues (#476, #494)
  • Fixed the subscription API to clean up resources (#560)

Miscellaneous

Downloads

Please find the download links at https://docs.kaia.io/nodes/downloads/

Thank you @shandongzhejiang, @gopherorg, @rustfix, @ChanHongMing, @jishudashu, @pingshuijie, @queryfast, @tanhuaan, @youzichuan, @wmypku, @vetclippy, @keeghcet, @zhoujiaweii, @quantpoet, @EthGiveawa375, @stemlaud, @russcoss, @spuradage for your first contribution to Kaia.

Don't miss a new kaia release

NewReleases is sending notifications on new releases.