v1.7.0
Package Downloads
RPM
Cypress Packages
Baobab Packages
- kcnd-baobab-v1.7.0-0.el7.x86_64.rpm
- kpnd-baobab-v1.7.0-0.el7.x86_64.rpm
- kend-baobab-v1.7.0-0.el7.x86_64.rpm
Common Packages
- kscnd-v1.7.0-0.el7.x86_64.rpm
- kspnd-v1.7.0-0.el7.x86_64.rpm
- ksend-v1.7.0-0.el7.x86_64.rpm
- kbnd-v1.7.0-0.el7.x86_64.rpm
- kgen-v1.7.0-0.el7.x86_64.rpm
- homi-v1.7.0-0.el7.x86_64.rpm
Linux
Cypress Packages
Baobab Packages
- kcn-baobab-v1.7.0-0-linux-amd64.tar.gz
- kpn-baobab-v1.7.0-0-linux-amd64.tar.gz
- ken-baobab-v1.7.0-0-linux-amd64.tar.gz
Common Packages
- kscn-v1.7.0-0-linux-amd64.tar.gz
- kspn-v1.7.0-0-linux-amd64.tar.gz
- ksen-v1.7.0-0-linux-amd64.tar.gz
- kbn-v1.7.0-0-linux-amd64.tar.gz
- kgen-v1.7.0-0-linux-amd64.tar.gz
- homi-v1.7.0-0-linux-amd64.tar.gz
MacOS
Cypress Packages
- kcn-v1.7.0-0-darwin-10.10-amd64.tar.gz
- kpn-v1.7.0-0-darwin-10.10-amd64.tar.gz
- ken-v1.7.0-0-darwin-10.10-amd64.tar.gz
Baobab Packages
- kcn-baobab-v1.7.0-0-darwin-10.10-amd64.tar.gz
- kpn-baobab-v1.7.0-0-darwin-10.10-amd64.tar.gz
- ken-baobab-v1.7.0-0-darwin-10.10-amd64.tar.gz
Common Packages
- kscn-v1.7.0-0-darwin-10.10-amd64.tar.gz
- kspn-v1.7.0-0-darwin-10.10-amd64.tar.gz
- ksen-v1.7.0-0-darwin-10.10-amd64.tar.gz
- kbn-v1.7.0-0-darwin-10.10-amd64.tar.gz
- kgen-v1.7.0-0-darwin-10.10-amd64.tar.gz
- homi-v1.7.0-0-darwin-10.10-amd64.tar.gz
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.