스마트 컨트랙트 코딩 👉 소스 코드 컴파일 👉 ABI 로부터 스마트 컨트랙트 객체 생성 👉 스마트 컨트랙트 배포 👉 채굴

  1. ‘솔리디티’ 언어로 스마트 컨트랙트 코딩

  2. EVM은 솔리디티를 못읽기때문에 ‘solc’를 이용하여 소스코드 컴파일

  3. EVM이 읽게 ‘바이트코드’ 형태로 만듬

  4. 구체적인 정보는 ‘ABI’ 에서 취득해야한다

  5. ‘ABI’와 ‘바이트코드’를 사용해 컨트랙트 객체를 만들어준 뒤

  6. 사용될 지갑주소가 포함된 트랙잭션을 생성해 함께 배포(deploy) 한다

  7. 배포(deploy)의 결과로는 트랙잭션 해시를 반환받는다

  8. 블록의 채굴이 이루어지면 최종적으로 이더리움 블록체인에 스마트 컨트랙트가 올라간다

⭐ 솔리디티 파일이 ‘컴파일’ 되면 컨트랙트 객체가 생성이 되는데
실제 블록체인에 배포될 코드인 ‘바이트코드’와
‘ABI (json 형태로 쉽게 보여지는 코드)’ 가 생성된다

ABI는 👉 json 형태로 input, name, type 이런것들이 담겨있다
bytecode는 👉 0과 1 등 으로, 컴퓨터가 읽을 수 있는 언어
ex) 0101010100


solc (솔리디티 파일을 컴파일하는 Javascript 라이브러리)

  • ‘솔리디티’ 언어를 이용하여 스마트 계약을 작성(코딩)하게 되면
    확장자가 ‘.sol’ 인 파일을 생성하게 된다

  • ‘.sol’ 파일은 사람이 읽을 수 있는 파일이지 / 컴퓨터가 이해하는 파일이 아니기 때문에 / 바로 EVM (이더리움 가상 머신)에 올릴 수 없다

  • 그래서 ‘솔리디티’ 를 👉 ‘바이트 코드’로 변환해서 EVM에 올려야 하는데
    이처럼 ‘.sol’ 파일을 컴파일 해야 할 때, ‘solc’ 라이브러리를 사용해야 한다


컴파일 (Compile)

  • ‘특정 프로그래밍 언어’로 쓰여 있는 문서를 👉 ‘다른 프로그래밍 언어’로 옮기는 언어 번역하는 과정

  • ‘고급 프로그래밍 언어’를 실행 프로그램으로 만들기 위해 👉 ‘저급 프로그래밍 언어’로 바꾸는 과정

  • ‘원시 코드’에서 👉 ‘목적 코드’로 옮기는 과정


참고 했던 사이트 🖥