v1.7.0
Package Downloads
RPM
Cypress Packages
Baobab Packages
Common Packages
Linux
Cypress Packages
Baobab Packages
Common Packages
MacOS
Cypress Packages
Baobab Packages
Common Packages
Windows
Not supported yet
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: 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)
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_startRPC → admin_startHTTP
admin_stopRPC → admin_stopHTTP
Old names have been deprecated, but are still available.
Last updated