⛓ 블록체인
[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 스마트 계약
- https://ide.klaytn.net/ <- 링크 접속
- 이 부분은 강의에서 사용하는 IDE 인터페이스와 달라져 다른 영상을 다수 참고함 (https://www.youtube.com/watch?v=QYeBPgqKgIc <- 링크 참고 )
- default work space에 4_AddingGame.sol 파일 생성
- 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이라는 스마트 컨트랙트가 맺어진 것 확인하기