github klaytn/klaytn v1.7.0
v1.7.0 Release Notes

latest releases: v1.12.1, v1.12.1-rc.2, v1.12.1-rc.1...
2 years ago

v1.7.0 Release Notes

Klaytn v1.7.0 contains important changes for the protocol upgrade which may result in incompatible changes like Ethereum Hard-forks.
This version enables the protocol upgrade for Baobab testnet at block #75373312, estimated for November 15th. Cypress mainnet will be subject to the same protocol upgrade in the next version.

Protocol Upgrade Features

  • Introduces Ethereum's Istanbul hard-fork items
    • EIP-152: Introduces a precompiled contract, BLAKE2F at address 0x09 (#960 #1010)
    • EIP-1108: Reprices the gas cost of precompiled contracts, ECADD, ECMUL, and Pairing Check (#987)
    • EIP-1344: Introduces a new opcode, CHAINID at 0x46 (#952)
    • EIP-1844: Introduces a new opcode, SELFBALANCE at 0x47. It reprices the gas cost of SLOAD, BALANCE, and EXTCODEHASH (#958)
    • EIP-2200: Changes the gas metering algorithm of the opcode SSTORE (#996)
  • Moves addresses of Klaytn precompiled contracts (#912)
    • vmLog: 0x09 → 0x3fd
    • feePayer: 0x0a → 0x3fe
    • validateSender: 0x0b → 0x3ff
    • Contracts deployed before the incompatible change activation will continue to work as before even for the transaction executed after the activation.
  • Changes the gas calculation logic for the data field of legacy type transactions (#986)
    • With this change, the same data fee calculation logic will be applied for all transaction types.
  • Enhances the validation and gas calculation logic of multi-sig transactions (#1001)
    • The signature verification fee for multi-sig transactions is in proportion to the number of unique signatures.
    • Transactions that contain more signatures than the maximum number of the account's accountKey are invalid.
    • The transaction which contains at least one invalid signature is invalid.
  • Reduces computation costs of over-priced opcodes (#1033)
    • Affected opcodes: addmodmulmodnotxorshlshr, and sar.
  • Introduces a minimum staking amount for validators as a governance item (#920 #963 #1023 #1024 #1034)
    • If a validator doesn’t stake enough KLAY, the node will not be selected as a proposer or a committee member.
  • Randomly selects new committee members on every round change (#997)

New Features

  • Introduces two klay APIs that return a block header: klay_getHeaderByNumber and klay_getHeaderByHash (#975)
  • Introduces two istanbul APIs that return demoted validators (#974)
    • istanbul_getDemotedValidators: Returns the demoted validators at a given block number.
    • istanbul_getDemotedValidatorsAtHash: Returns the demoted validators at a given block hash.
    • A demoted validator is one of the validators but cannot be a proposer or committee member due to insufficiently staking KLAY.
  • Introduces the dumpgenesis command which returns the genesis block in JSON format (#992)
  • Introduces CustomRetryer for DynamoS3DB to retry requests for all error cases (#982)
  • Introduces experimental flags related to block generation time (#989)
    • BlockGenerationIntervalFlag: Determines the block generation interval between two successive blocks (Only for CNs)
    • BlockGenerationTimeLimitFlag: Sets the vm execution time limit during block generation (Only for CNs)
    • OpcodeComputationCostLimitFlag: Sets the computation cost limit for a transaction

Improvements

  • Changed the block parameter type from blockNumber or blockHash to blockNumberOrHash (#975)
    • Affected APIs: klay_accountCreated, klay_getAccount, klay_getAccountKey, klay_getBalance, klay_getCode, klay_getTransactionCount, klay_isContractAccount, klay_getBlockByNumber, klay_getBlockTransactionCountByNumber, klay_getBlockWithConsensusInfoByNumber, klay_getCommittee, klay_getCommitteeSize, klay_getCouncil, klay_getCouncilSize, klay_getStorageAt, klay_getLogs, klay_newFilter, klay_call, klay_getTransactionByBlockNumberAndIndex, debug_dumpBlock, debug_getBlockRlp, debug_printBlock, and governance_itemsAt
  • Added SetHeader method to Klaytn client (#1020)
  • Utilized dirtyStorage more accurately (#993)
  • Set the request body size limit of fastHttpServer with maxRequestContentlength (#1029)
  • Enabled UseOpcodeComputationCost EVM option on debug API (#1035)
  • Updated istanbul consensus engine to verify headers synchronously (#957)
  • Enhanced the state migration feature to support non-single type DB (#954)

Fixes

  • Handled abnormal returns of state.NewForPrefetching (#1011)
  • Fixed abnormal application of governance votes in edge cases (#1018)

Miscellaneous

  • Renamed two admin APIs (#971)
    • admin_startRPCadmin_startHTTP
    • admin_stopRPCadmin_stopHTTP
    • Old names have been deprecated, but are still available.

Binaries

  • Linux: kcn kpn ken kscn kspn ksen kbn kgen homi
  • Darwin: kcn kpn ken kscn kspn ksen kbn kgen homi
  • Baobab-linux: kcn kpn ken
  • Baobab-darwin: kcn kpn ken
  • Don't miss a new klaytn release

    NewReleases is sending notifications on new releases.