스마트 컨트랙트 코딩 👉 소스 코드 컴파일 👉 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)

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

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

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


참고 했던 사이트 🖥