Announcement, Technology, Klaytn Core, News

Klaytn v1.11.0 릴리즈 노트

Klaytn v1.11.0이 릴리즈 되었습니다. 이번 업그레이드는 State Pruning, Node Storage Sharing 기능 등을 포함하는 것이 특징입니다. 자세한 내용은 이 링크에서 자세히 확인하시길 바랍니다. 

Klaytn v1.11.0에는 이전 버전과 호환되지 않는 변경을 초래하는 하드포크 업그레이드가 포함되어 있습니다. 모든 Baobab 노드는 목표 블록 번호 이전에 v1.11.0 이상으로 업그레이드되어야 합니다. 이번 하드포크는 이더리움 상하이 하드포크와 동등한 기능을 구현합니다. Cypress 메인넷의 하드포크 블록 번호는 다음 버전에서 예정되어 있습니다 . 

하드포크 일정은 아래와 같습니다:

Baobab testnet

  • 블록 번호: 131608000 (예상 시간: 8월 28일 오전 10시 30분 UTC+9)
  • 하드포크 내용: 상하이 하드포크

하드포크 기능

  • EIP-3651 (#1883)에 따라 COINBASE opcode 의 가스 비용을 조정했습니다.
  • EIP-3855 (#1861)에 따라 PUSH0 opcode가 EVM에 추가했습니다.
  • EIP-3860 (#1888)에 따라 초기 코드와 관련된 가스 비용을 조정했습니다.
  • EOA를 덮어쓰는 방식으로 새 컨트랙트 계정을 만들 수 있도록 수정했습니다. (#1904)

v1.11.0 업그레이드 시 유의사항

Klaytn 노드는 urfave/cli 라이브러리를 활용해 ken 과 homi 등의 커맨드 라인 인터페이스 (CLI)를 구현하고 있습니다. Klaytn v1.11.0부터는 YAML파일 설정 기능을 지원하기 위해 CLI 라이브러리를 urfave/cli v2 로 교체했습니다. 이에 따라 커맨드 상에서 반드시 플래그가 (예: –datadir) 앞에 나오고 인자가 (예: <keyfile>) 뒤에 붙어야 합니다. 사용하시는 스크립트를 수정하셔야 할 수도 있습니다.

예를 들어 아래 커맨드는 더 이상 작동하지 않습니다. 기존에 작동하던 커맨드가 다르게 동작하면서도 에러 메시지가 나오지 않을 수도 있으므로 주의해주시기 바랍니다.

$ ken account import --password <passwordfile> <keyfile> --datadir <datadir>
$ ken --datadir ~/data init ~/genesis.json
$ kcn attach klay.ipc --exec API
$ homi setup local --cn-num 1 --servicechain -o ./homi-output

아래 커맨드는 정상 작동합니다. 스크립트를 아래와 같이 변경해주세요.

$ ken account import --password <passwordfile> --datadir <datadir> <keyfile>
$ ken init --datadir ~/data ~/genesis.json
$ kcn attach --exec <statement> klay.ipc
$ homi setup --gen-type local --cn-num 1 --servicechain -o ./homi-output

개선 사항

  • 누적 블록 보상을 조회할 수 있는 새로운 API governance_getRewardsAccumulated 추가했습니다.(#1848
  • 더 높은 가스 가격으로 트랜잭션을 재전송하는 새로운 API eth_resend 추가했습니다. (#1894)
  • 하드포크 상태 조회를 위한 새로운 API klay_forkStatus 추가했습니다. (#1804)
  • admin_exportChain API에 블록 범위 옵션 도입했습니다. (#1873)
  • 체인 구성 및 거버넌스와 관련된 일부 API를 제거했습니다. 대체 API를 사용하세요. (#1860)
    • 제거된 API: governance_itemsAt, governance_chainConfigAt, governance_chainConfig, klay_govParamsAt, klay_chainConfigAt, klay_chainConfig, klay_gasPriceAt
    • 대체 API: governance_getParams, governance_getChainConfig, klay_getParams, klay_getChainConfig
  • 트랜잭션 실패 시 자세한 오류 메시지를 반환하도록 일부 API를 업데이트했습니다. (#1763 #1845)
  • 실행 시간이 타임아웃을 초과하면 RPC 서버가 HTTP 503 오류를 반환합니다. (#1921)
  • 일부 debug.trace* RPC의 실행 시간 및 동시성 제한합니다. (#1920)
  • 서명에서 서명자 주소를 복구하기 위한 새로운 API recoverFromTransaction 및 recoverFromMessage 추가(#1911 #1937)
  • 로그 파일 위치 및 로테이션 설정을 지정하기 위한 노드 플래그를 도입했습니다. (#1869 #1884)
  • 노드 플래그는 YAML 파일을 사용하여 지정할 수 있습니다. (#1684 #1905 #1910 #1917 #1931)
  • 기록 블록 데이터를 실시간으로 삭제하는 KIP-111 Live Pruning 기능 추가 (#1852 #1854 #1859 #1871 #1899 #1902 #1914 #1916)
  • 노드 간 공유 저장소를 허용하는 RocksDB 지원 추가 (#1855 #1900 #1912 #1913 #1918)
  • BIP-39 니모닉으로 제네시스 계정을 생성하는 homi 명령 옵션 추가 (#1813)
  • 생성된 파일에 ABI 메타데이터를 포함하도록 abigen 명령 업데이트 (#1881)
  • 하위 명령인 util 추가 (#1691)

수정 사항

  • 예기치 않은 노드 시작 실패 수정 (#1829 #1868)
  • JSON-RPC API 버그 수정 (#1847 #1851 #1874 #1878 #1903 #1834)
  • 서비스 체인에서 보상 분배 로직이 deferredTxFee=false로 구성되는 문제 수정(#1886)
  • BN이 항상 동일한 PN을 추천하는 버그 수정  (#1835)

기타

바이너리(Binaries)