project3 진행 기록1

FeelSoo·2022년 8월 7일
0

스마트컨트랙트 파트를 진행중이고 Klaytn 기반 프로젝트를 진행중이었다.

레퍼런스 API를 참고하려고 Klaytn 공식 문서와 KAS API Service 공식 문서 2곳을 살펴봤다.

우선은 KAS API Service가 더 최신버젼인듯 했다.

Klaytn 공식문서에는 caver-js 모듈을 사용하는 방식이 적혀있었고

https://ko.docs.klaytn.foundation/dapp/sdk/caver-js/getting-started

KAS docs에는 익스텐션 버젼인 caver-js-ext-kas 모듈을 사용하여 진행된다.

그래서 후자의 모듈을 사용하여 진행해보기로 했고 공식문서에 나와있는대로 간단한 테스트 API 호출을 진행해봤다.

응 안된다. ㅋㅋ

그래 쉽게 가면 항상 뭔가 허전하지 ㅋㅋ

그래서 공식 문서에 나와있는 링크들 뒤져가며 찾아보다가 영문 문서랑 한국어 문서랑 비교해보니 약간 다른 것을 알 수 있었다.

영문 문서에 나와있는대로 진행해보니 되었다.

https://docs.klaytnapi.com/v/en/references/sdk

결국 한글 문서를 최신 업데이트 안해논것이었다.

이것 때문에 오늘 삽질 + 현기증이 났다 ㅎㅎ

caver-js-ext-kas 모듈 사용법을 간략하게 요약하면 익숙했던 코드 작성 방식과 조금 많이 달라졌다.

caver-js는 참고로 caver-js는 web3 모듈을 데모한 것이다. 그래서 web3 모듈 사용 방식과 비슷하므로 web3 모듈 사용 방식에 대해 간략하게 정리한다

  1. Solidity로 스마트 컨트랙트 코드를 작성한 후

  2. Remix IDE를 통해서 컴파일하여 Abi 코드 를 추출한 후

  3. 해당 스마트컨트랙트를 블록체인 네트워크에 배포(Deploy)한다. ( Local or Testnet ( Ropsten ) or Mainet )

  4. web3에 abi, contract address를 인자로 넣어 web3 함수를 만든 후 이더리움 메인 or 테스트넷에 연결시켜

( infura 모듈 사용해서 서버단과 이더리움 테스트넷 or 메인넷 연결해야 함 )

  1. 블록체인 네트워크에 배포되어있는 스마트컨트랙트 함수들과 서버단이 상호작용할 수 있게 진행된다.

스마트컨트랙트는 일종의 함수들의 집합이라고 생각하면 된다.

서버단에서

클라이언트단으로부터 블록체인 네트워크에 배포되어있는 함수들을 실행시키는 API 요청을 받으면

서버는 web3 모듈을 통해 블록체인 네트워크에 접근하여 해당하는 함수를 실행한다.

( ex -- 사용자가 NFT 발행하기 버튼 클릭하면 서버에 요청 도착하고 서버는 요청에 해당하는 함수를 블록체인 네트워크에 접근하여 transact 한다. )

( VS Code로 컴파일 및 배포를 원한다면 ganache & Truffle 모듈을 사용하면 됨.

즉 Remix IDE or ganache & Truffle 중 선택해서 진행 )

중요한 건 Solidity를 작성해서 그것을 컴파일해서 abi를 취득해야 했는데

caver-js-ext-kas는 Solidity 작성이 필요없는 것 같다. 나도 이 모듈을 오늘 처음 써봐서 잘 모르긴한데 지금까지 진행한걸로는 그렇다.

내 예상에는 스마트컨트랙트 코드 ( solidity로 작성하는 ) 를 컴파일해야 얻을 수 있는 abi가 미리 레퍼런스로 제공되어서 가능한 것 같다.

아무튼 이거 한다고 계속 공식문서 뒤져가며 공식 유투브, 깃허브, 포럼 다 돌아다녔다 ㅋ.ㅋ

profile
세상은 넓고 배울건 많다

0개의 댓글