⛓ 블록체인

[Klaytn 클레이튼 블록체인 어플리케이션 만들기] 12~14강

락꿈사 2022. 2. 13. 15:31

Klatn 블록체인 어플리케이션 만들기

BAPP 개념 및 설계

  • BAPP : Blockchin APPlication
  • 덧셈문제를 3초안에 맞추면 무료로 0.1klay 지급하기
  • 사용할 블록 체인 : 클레이튼
    • 이더리움의 비잔티움 버전을 Fork해서 나온 버전 
    • 클레이튼 블록 체인과 소통할 수 있는 자바스크립트 라이브러리 caver.js 사용 (이더리움의 web3.js와 유사)
    • solidity 언어 사용 
    • 트러플 프레임워크 사용
    • Tools : IDE (스마트 계약 테스팅) / Wallet (계정 관리) /  Scope 검색엔진 (트랜젝션 정보 찾기)

 

Klaytn Wallet & 계정 관리

  • 클레이튼 네트워크를 사용하기 위해서는 계정이 필요
  • https://baobab.wallet.klaytn.com/ <- 링크에서 Accont 생성
  • 이 월렛은 테스팅 목적으로 여기서 사용하는 클레이는 금전적인 가치를 지니고 있지 않음
  • KeyStore File :  Account를 생성하는 것은 은행에서 통장을 만드는 것과 비슷한데, 이 통장을 다른 사람이 함부로 사용하지 못하게 금고에 넣어서 관리한다고 할 때 이 금고 역할을 하는 것이 KeyStore 파일과 비밀번호 조합임
  • 이렇게 하면 트렌잭션 서명에 필요한 Private Key가 해커나 외부 침입으로부터 보호가 됨
  • Private key : 클레이튼 BApp 내에서 거래, 즉 트렌잭션에 서명하기 위해 필요한 필수적인 존재. 외부에 노출되면 절대 안됨
  • KeyStore File과 KeyStore 비밀번호가 있어야 비밀키가 접근이 됨
  • private key나 Keystore File을 이용하여 내 계좌 보기

  • KLAY Faucet을 사용하여 5 KLAY 받기

  • 클레이를 전송할 때
    • Transection Fee Limit : 일종의 수수료
    • 이 비용은 Gas Price(합의 노드에게 트랜잭션 처리해달라고 지불하는 돈. 클레이튼의 경우 항상 25 ston으로 고정되어 있음) * Gas Limit(트랜잭션을 처리하면서 들어가는 가스의 최대 한도 비용)으로 책정됨
    • 클레이튼에서 단순한 송금은 트랜잭션 비용이 0.000625 클레이로 고정되어 있음
    • 스마트 계약 함수를 통한 트랜잭션은 복잡성에 따라 Gas Limit이 바뀌기 때문에 트랜잭션 비용이 고정되어 있지 않음

 

Klaytn IDE 스마트 계약

  • 4_AddingGame.sol에 코드 작성
pragma solidity >=0.7.0 <0.9.0;

contract AdditionGame{
    // 주소형 타입
    // 배포하는 순간 운영자의 계정의 주소를 저장할 수 있는 변수
    address public owner;

    // 생성자
    // 배포할 때 제일 먼저 불러오며 그 이후에는 생성자에 접근할 수 없음 
    // 컨트랙의 소유가 계정 정할 수 있음
    constructor() public{
        // msg.sender는 현재 이 컨트랙을 호출하고 있는 사람을 반환함
        // 생성자에서 msg.sender가 쓰이면 배포하는데 쓰이고 있는 계정을 뜻함
        // 이 계정을 owner 변수에 저장해서 블록체인에 영원히 기록
        // 초기화에 이 과정이 있어야 함
        owner = msg.sender;
    }
}
  • 4_AddingGame.sol 코드 선택하고

  • 버전 맞춰서 컴파일. Language는 Solidity, EVM Version은 istanbul로 설정

  • DEPLOY & RUN TRANSACIONS 항목으로 이동
  • ACCOUNT에 내 Private key 등록하여 내 계좌 등록, ENVIRONMENT Baobab, CONTRACT에 AddingGame이 선택된 것 확인하고 DEPLOY 눌러 배포

  • ADDITIONGAME이라는 스마트 컨트랙트가 맺어진 것 확인하기