Klaytn v1.8.0 버전 업데이트와 관련하여 문의드립니다

안녕하세요, klaytn docs의 faq를 보면 web3.js와 web3j를 사용하여 klaytn에 직접 요청을 보낼 수 없다 라고 되어 있는데 klaytn v1.8.0에서도 이는 마찬가지일까요? 이전처럼 caver-js와 caver-java로만 이용 가능할까요?

1.8.0 부터 eth 호환성을 개선하였기 때문에 이더리움과 동일하게 처리하지 못하는 클레이튼의 독자적인 기능 또는 이더리움에서만 작동하는 기능들 재외하고는 web3.js 지원이 개선되는것으로 보시면 될것같습니다.

단 end-point node 를 직접 운영하시는 경우에는 설정한.옵션에따라 차이가 있을것으로 생각되고요.

답변 되셨길 바랍니다. 감사합니다.

1 Like

web3-java도 지원이 가능할까요? 또, web3-js와 web3-java지원이 가능해지면 klaytn docs에 관련 내용이 업데이트 될수 있을까요?

@moomin

안녕하세요.
Klaytn이 v1.8.0이 되면서 eth 네임스페이스로 오는 요청들은 이더리움의 자료구조로 해석을 하고 반환하는 자료구조 또한 이더리움의 자료구조로 리턴을 해주게끔 변경이 되었습니다.

해당 내용은 이미 https://docs.klaytn.com/dapp/json-rpc/api-references/eth 에 상세하게 기술이 되어 있습니다.

다만, web3-java와 web3-js 를 100% 지원한다고 문서 상에 기술하는 데는 어려움이 있습니다.
예를 들어, https://docs.klaytn.com/dapp/json-rpc/api-references/eth/caution 문서를 보시면 이더리움과 클레이튼이 태생적으로 다른 디자인을 택하기 때문에 발생하는 차이점, 한계점 등이 기술되어 있는데요.
Klaytn에서는 PoW를 합의알고리즘으로 채택하고 있지 않기 때문에 블록을 조회할 때 리턴되는 필드 중 difficulty 필드의 값은 언제나 0x1 로 고정이되어 리턴이 됩니다. 이더리움은 현재 이 값이 상당히 큰 값으로 반환이 되고 있죠.

만약 이 필드 값을 web3-java에서 처리할 때, 특정 값보다 낮으면 에러를 리턴하는 로직이 있다면 어떻게 될까요? 그러면 자료구조(구성하고 있는 필드 그리고 이름)는 동일하지만 사용할 수 없겠죠.

클레이튼이 v1.8.0이 되면서 이더리움과의 호환성을 최대한 맞추었고 대부분 문제 없이 동작할 테지만, web3-java가 100% 동작한다고는 보장하긴 어려울 거 같습니다.

사용하는데 크게 무리는 없을 것으로 생각이 되지만, 이 부분은 유의해주시고 Toward Ethereum Equivalence #1 — Klaytn v1.8.0 소개 | by Klaytn | Klaytn Korea | Feb, 2022 | Medium 도 참고 부탁드립니다.

1 Like