Search

14장 - 소스코드 컴파일링

대분류
블록체인
소분류
Blockchain - 그라운드X
유형
Test.sol
최종 편집 일시
2024/10/29 08:01
생성 일시
2023/04/29 00:39
15 more properties

Test.sol

Simple Storage 컨트랙트를 정의하는 test.sol이 있다고 가정
다음과 같은 방법으로 test.sol을 컴파일
$ ls test.sol $ solcjs --bin true --abi true -o out test.sol //npm방식 $ ls out test.sol $ tree out out ├── test_sol_SimpleStorage.abi └── test_sol_SimpleStorage.bin 0 directories, 2 files
Bash
복사

Bytecode&ABI

Solidity 소스코드(.sol파일)를 컴파일하면 Bytecode(.bin파일)와 ABI(.abi파일)가생성
Bytecode
컨트랙트를 배포할때 블록체인에 저장하는 정보
Bytecode는 Solidity 소스코드를 EVM이 이해할 수 있는 형태로 변환한 것
컨트랙트 배포시 HEX로 표현된 Bytecode를 TX에 담아 노드에 전달
ABI(ApplicationBinaryInterface) a.k.a. JSON interface
ABI는 컨트랙트 함수를 JSON 형태로 표현한 정보로 EVM이 컨트랙트 함수를 실행할 때 필요
컨트랙트 함수를 실행하려는 사람은 ABI정보를 노드에제공
ByteCode 예시
ABI 예시