Klaytn Docs
Search…
v1.7.0

Cypress Packages
Baobab Packages
Common Packages

Cypress Packages
Baobab Packages
Common Packages

  • Not supported yet

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.

  • 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: addmod, mulmod, not, xor, shl, shr, 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)

  • 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

  • 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)

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

  • Renamed two admin APIs (#971)
    • admin_startRPC → admin_startHTTP
    • admin_stopRPC → admin_stopHTTP
    • Old names have been deprecated, but are still available.
Last modified 6mo ago
Copy link
Edit on GitHub
On this page
Package Downloads
Linux
MacOS
Windows
Release Notes
Protocol Upgrade Features
New Features
Improvements
Fixes
Miscellaneous