Technology

Klaytn v1.9.0 릴리즈 노트

가스비 설계에는 몹시 까다로운 딜레마가 내포되어 있습니다. 낮게 고정된 가스비가 사용자 입장에서 대대적 이점이라는 것은 두말할 나위가 없는 사실이지만, 그만큼 악용 하기도 쉬워지기 때문에 네트워크 상황을 고려했을 때 마냥 좋은 것만은 아니랍니다. 민감하고 중요한 문제인 만큼 클레이튼 팀은 최적의 방안을 찾기 위해 오래 고민해왔습니다. 그리고 이러한 배경에서 도입된 것이 Klaytn v1.9.0 릴리즈와 함께 선 보이게 된 동적 가스비 메커니즘입니다.

Klaytn v1.9.0 은 이더리움의 하드포크처럼 과거 버전과 호환되지 않는 변경이 포함되어 있습니다. 따라서 모든 Baobab/Cypress 노드들은 타겟 블록 번호 전에 v1.9.0 또는 그 이상으로 업그레이드해야 합니다. 이번 하드포크의 이름은 ‘마그마’ 입니다. 클레이튼 하드포크의 명칭은 화산과 관련 있습니다. 이 하드포크에는 [KIP 71] 에서 제안된 동적 가스 가격 메커니즘의 구현이 포함되어 있습니다.

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

마그마 하드포크 블록넘버 & 예정일

  • Baobab 테스트넷: 98347376 11:00 AM (UTC+9) Aug 8
  • Cypress 메인넷: 99841497 11:00 AM (UTC+9) Aug 29

참고: 이 버전은 스냅샷 동기화를 지원하기 위해 데이터베이스의 버전을 업데이트합니다. 업데이트 후에는 이전 버전으로 다운그레이드 할 수 없습니다.

참고: dApp 개발자의 경우, 해당 페이지를 읽고 동적 가스 가격 메커니즘을 이해하실 수 있습니다.

참고: Snapshot sync 기능이 업데이트 되었습니다. 하지만, 현재 default 기능은 아닙니다. Snapshot sync를 위해서 다른 피어들에게 state snapshot이 생성되어야 하지만, 아직 준비가 되지 않았습니다. 수동으로 — syncmode snap 플래그와 함께 기능을 활성화 시킬 수 있지만, 충분한 피어들이 state snapshot을 생성할 때 까지 몇 주 소요될 것으로 예상합니다. 해당 기능은 현재 베타버전입니다.

# 프로토콜 업그레이드(하드포크) 기능

  • 고정되어 있던 가스비가 네트워크 상황에 따라 동적으로 적용됩니다. (#1442 #1452 #1493 #1501 #1518 #1519 #1530 #1537 #1538)
  • 동적 가스비 관련 API가 추가됩니다. (#1520)
  • klay_upperBoundGasPrice : 동적 가스비의 최고값을 반환합니다.
  • klay_lowerBoundGasPrice : 동적 가스비의 최저값을 반환합니다.
  • 마그마 하드포크 이후에 트랜잭션이 실행 가능하도록 가스비를 제안해주는 klay_gasPrice 값이 2 * currentBlock.baseFee 로 변경됩니다. (#1534)
  • 부모체인 상태 동기화 업데이트 (#1427)

## 신규 기능

## 개선사항

  • 다른 changeSet 크기를 가지고 있는 블록헤더들은 무효처리됩니다. (#1220)
  • 블록 생성 주기를 네트워크가 혼잡하지 않는 경우에 더 빠르게 처리합니다. (#1340)
  • callTracer 및 fastCallTracer가 SELFDESTRUCT 명령을 수행할 때, 좀 더 상세한 트레이스 결과를 출력합니다. (#1343)
  • BadBlock 로그를 수정하고, 저장되는 위치를 변경하였습니다. (#1371)
  • 가스비 대납 트랜잭션에서 보내는 계정과 가스비 대납 계정이 같은 경우에 대한 검증 로직을 추가하였습니다.(#1372)
  • 이더리움에 적용된 rlp 패키지와 관련 로직을 추가하였습니다. (#1385)
  • klay_call, klay_estimateGas의 결과가 원복되는 경우에 대한 에러 메시지를 추가하였습니다. (#1408)
  • 기존에는 Docker를 이용하여 EN만 실행할 수 있었으나, 이제는 EN, PN, CN 모두 실행이 가능합니다. (#1476)
  • 바이너리 버전을 보여주기위한 새로운 메트릭을 추가하였습니다. (#1488)

## 수정

  • 내부 insta-fail을 처리하기 위한 트레이서 수정하였습니다. (#1352)
  • HandleGovernanceVote 에서 checkVote() 가 실패할 때 투표 제거하였습니다.(#1367)
  • 닫힌 ch를 즉시 읽기위해 multiChannelPeer ReadMsg 루프 수정하였습니다. (#1389)
  • 트랜잭션 정렬에서 잠재적인 buffer-over-run 수정하였습니다. (#1398)
  • 서비스 체인과 관련된 동시성 API 콜 버그 수정하였습니다. (#1438)
  • 검증자가 6명 이하인 경우, 필요한 합의 메세지 증가하였습니다. (#1462)
  • GetStakingInfo 결과값에 누락된 지니 필드 채웠습니다. (#1464)
  • 스냅샷과 관련된 잘못된 API 반환 수정하였습니다. (#1468)
  • 가격 필드가 없는 거래에대해 무료로 DoCall을 수정하였습니다. (#1540)
  • 트레이서의 출력 변환 로직에 대한 유효성 검사 강화하였습니다. (#1549)

## 기타

더 자세한 정보는 이 링크를 참고해주세요. 클레이튼 미디엄에 구독해 더 많은 소식을 만나보세요. 감사합니다!