private network를 만든 이유는 스마트 컨트랙트를 private network에서 시험가동을 하여 오류를 확인하여 가스를 아끼기 위하여 사용하기도 합니다. 스마트 컨트랙트를 private network에 배포하기 위하여 remix IDE와 연동을 하는 방법을 알아보도록 하겠습니다.
geth --datadir . --identity “RainbowBear” --networkid 33 --nodiscover --http --http.api “db, eth,net, web3” --http.corsdomain “*” --http.port 8808
위의 명령어를 통하여 networkid는 33이고 http.port는 8808인 네트워크를 엽니다. --http.corsdomain을 통하여 cors를 설정하는데 "*"의 경우는 모든 domain에서 접근할 수 있도록 하는 와일드카드입니다. 위와 같이 입력을 하고 remix IDE에 접속합니다.
Remix IDE와 프라이빗 네트워크 연동하기
remix IDE 주소 : https://remix.ethereum.org/
접속을 하였다면 아래의 사진과 같이 ENVIRONMENT를 누르면 다양한 환경이 나타나게 됩니다. 저희가 이용할 프라이빗 네트워크는 External Http Provider를 이용하게 됩니다.
External Http Provider를 선택하면 Endpointer를 입력하라고 뜹니다. 저희는 8808 포트로 설정을 해두었기 때문에 localhost:8808로 설정하게 됩니다.
만약 다른 주소 혹은 ip를 이용하고 있다면 아래의 사진에 있는 정보를 확인하여 endpoint의 주소를 입력해 주면 됩니다.
위의 정보를 확인하여 External HTTP Provider를 설정하게 되면 프라이빗 네트워크에 생성된 계좌를 확인할 수 있습니다.
저는 하나의 계좌만 만들어두었기 때문에 하나만 뜨지만 여러 개의 계좌를 가지고 있다면 계좌가 여러 개 나타나며 우측에 소괄호 안에 잔액이 표시됩니다.
스마트 컨트랙트 배포하기
컨트랙트를 배포하기 위하여 우선 컨트랙트를 작성하여야 합니다. 제일 왼쪽의 문서를 나타내는 기호를 클릭 후 FILE EXPLORER에서 옵션을 이용하여 파일을 생성합니다. 생성 후에 우측에 컨트랙트에 대한 내용을 작성합니다.
컨트랙트를 작성 후 컴파일을 하고 나면 배포를 하기 위해서 DEPLOY & RUN TRANSACTIONS로 돌아와 ENVIRONMENT와 배포할 ACCOUNT를 확인합니다. 올바른 네트워크와 ACCOUNT라면 CONTRACT를 확인하여 원하는 컨트랙트가 맞다면 Deploy를 눌러 배포합니다.
위와 같은 방식을 이용하여 제가 연 저만의 프라이빗 네트워크에 스마트 컨트랙트를 배포하는 방법을 알아보았습니다. 위와 같은 방법을 이용하며 프라이빗 네트워크에서 테스트를 할 수 있고 테스트를 완료한 컨트랙트를 메인 네트워크에 올린다면 메인 네트워크에 컨트랙트를 잘못 올리고 수정할 때마다 나가는 비용을 아낄 수 있습니다.