- 이더리움에서 스마트 컨트랙트를 실행하기 위해서는 솔리디티 코드를 작성한 뒤, solc(솔리디티 컴파일러)를 통해 컴파일하여 이더리움 블록체인에 배포한다.
- ABI(Application Binary Interface)는 스마트 컨트랙트 코드에 대한 설명이 담긴 interface이다.
🍎 ABI는 JSON의 형식이다.- 스마트 컨트랙트는 solc에 의해서 16진수 이진코드(바이트 코드)가 되어 블록체인에 배포되기에, 해당 스마트 컨트랙트가 무슨 기능을 지닌지 쉽게 알 수 있게 해주는 AIB가 필요하다.
🥝 이더리움 네트워크의 각 노드들은 지갑을 통해서 상호작용을 한다.
🥝 이때, JSON-RPC 형식의 데이터로 상호작용을 하고, 상호작용을 하기 위한 데이터가 ABI이다.- ABI는 스마트 컨트랙트 코드의 함수에 대해서 정의하고, 어떤 인자가 필요하며 어떤 데이터가 반환되는지, 노드가 컨트랙트를 실행하기 위해 어떤 작업을 수행해야 하는지 알려준다.
// 솔리디티 컴파일러 solc 설치
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt update
sudo apt install solc
// 설치 버전 확인
solc --version
솔리디티는 고급 언어이기에 가상 머신 EVM은 솔리디티를 읽을 수 없다.
따라서, 솔리디티를 바이트 코드로 컴파일 해야하고, 이를 위해서 컴파일러 solc를 사용한다.
이더리움 스마트 컨트랙트 코드를 작성하는 다양한 IDE가 있고, 웹 기반 IDE로 Remix가 있다.
Remix는 솔리디티를 사용한 dApp 개발을 도와주는 통합 개발 환경이다.
Remix는 자바스크립트로 만들어졌기에 브라우저에서 사용이 가능하다.
(로컬이나 데스크탑 버전을 사용할 수도 있다)
vs code와 연결을 통해 로컬 파일을 수정할 수도 있다.
이더리움에서 제공하는 퍼블릭 테스트 네트워크를 의미한다.
테스트 네트워크는 실제 이더리움과 비슷하지만, 실제로 트랜잭션이 이루어지지는 않는다.
현재 이더리움에서는 세 개의 퍼블릭 테스트넷이 제공된다.
( Ropsten, Kovan, Rinkeby )
솔리디티 코드를 이더리움 네트워크에 올리기 위한 여러 복잡한 과정을 해결해주는 Truffle, Dapple, Embark와 같은 프레임워크를 선택할 수 있다.
프레임워크들은 솔리디티 코드에 대해서 디버깅, 테스트, 컴파일, 배포와 같은 기능을 제공해준다.
참고 자료 출처 : 코드 스테이츠