KAS와 web3-java 연동이 가능할까요?

Web3 vs kas sdk 글에서 'web3로 Klaytn측에 연결해서 사용하시면 현재로서는 사용이 어려울 듯합니다. Klaytn 노드와 통신하는 부분은 Klaytn SDK 를 사용해주시는 것이 좋을 거 같습니다.'라고 해주셨고,

Klaytn v1.8.0 버전 업데이트와 관련하여 문의드립니다 - Denver님의 글 #4 이 글에서는 'https://docs.klaytn.com/dapp/json-rpc/api-references/eth/caution 3 문서를 보시면 이더리움과 클레이튼이 태생적으로 다른 디자인을 택하기 때문에 발생하는 차이점, 한계점 등이 기술되어 있다’라고 하셨는데요

안내해주신
https://docs.klaytn.com/dapp/json-rpc/api-references/eth/caution 3https://docs.klaytn.com/dapp/json-rpc/api-references/eth 문서 등을 읽어보았는데 말씀하신 태생적으로 다른 디자인을 택하기 때문에 발생하는 차이점, 한계점 등이 저는 eth_call이라던지 이런 메서드의 구현방식 차이로 이해했습니다.

그런데 이런 메서드의 태생적인 차이를 감안하는 것과는 별개로 KAS API, KAS node와 web3 java 환경이 연동 가능한 지에 대해서는 찾지 못했는데, 이 부분에 대해서 여쭤봐도 될까요?

KAS 노드와 web3 java가 연동이 안된다면 caver java 사용하는 것을 염두에 두고 있습니다.

다만 가능한 부분인지의 여부에 대해서 판단을 내리지 못해 다시 질문을 올립니다.ㅠㅠ

문서를 읽으면 KAS와 web3 java가 연동이 된다/안된다 가 자연스레 이해되는 부분일수 있는데 블록체인에 대한 지식이 미흡하여 재차 여쭤보는점 양해 부탁드립니다.ㅜㅜ

기본적으로 JSON-RPC 를 이용한 통신이기 때문에, 전송하는 요청의 구조만 제대로 작성하시면 블럭체인과의 통신은 web3나 caver 없이도 구현 가능하시리라 생각합니다.

특히 KAS API에만 구현된 기능은, KAS에서 제공하는 openAPI spec을 이용하셔서 사용 가능하시구요, 이는 KAS Reference Documentation (klaytnapi.com) 에서 예제를 확인하실 수 있습니다.

caver와 web3는 sdk로써 JSON-RPC 부분을 wrapping 해서 좀더 간편하게 기능을 수행할수 있게 만들어진 부분이고, 요청 보내는 data를 직접 구현하는게 아니시라면 caver 를 사용하시는것을 추천드립니다.

web3 를 이용해 KAS 노드에 접속하는 부분은 authentication 부분만 KAS 에 접속할수 있도록 아래와 같이 node에 접속하는 headers를 이용하셔서 KAS node의 주소에 접속하시면됩니다.

const accessKeyId = "{{your_accessKeyId}}";
const secretAccessKey = "{{your_secretAccessKey}}";

const option = {
    headers: [
      {name: 'Authorization', value: 'Basic ' +  Buffer.from(accessKeyId + ':' + secretAccessKey).toString('base64')},
      {name: 'x-chain-id', value: '8217'},
    ]
}

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

3개의 좋아요