[EOS] Smart Contract 개발 준비 1 - EOS 노드 설치steemCreated with Sketch.

in #kr7 years ago (edited)

iron_modolee.png

안녕하세요. 개발자 모도리입니다.
지난 글에서 말씀 드린 것 처럼 EOS Smart Contract 작성 방법 1탄을 준비했습니다.
EOS 초보 개발자의 입장에서 최대한 어렵지 않게 작성해 보려고 합니다.
진행에 어려운 점이 있을 경우 댓글로 남겨주시면 답변 드리겠습니다.

개발 환경

개발 환경은 Ubuntu 17.10에서 진행합니다.
혹시 Ubuntu 환경이 아니신 분들은 아래 동영상으로 보시고 설치해 주시면 됩니다.
버추얼박스에 리눅스 우분투 17.10 데스크탑 설치하기

사전 준비

계정에 root 패스워드 입력 없이 sudo 명령을 사용할 수 있는 권한을 줍니다.
sudo visudo 로 권한 설정 파일을 엽니다.
visudo.png

계정명 ALL=(ALL:ALL) NOPASSWD:ALL
NOPASSWD 스펠링 주의하세요
제일 아래 추가 후 Ctrl + x -> y -> Enter 순으로 입력합니다.

우분투 업데이트 서버를 다음카카오 서버로 변경합니다.
(글 다 쓰고 빌드했다가 실패해서 다시 추가했습니다. ㅠㅠ)
sudo vi /etc/apt/sources.list
:(콜론)누른 후 아래 명령어를 입력하고 엔터를 누르면 kr.archive.ubuntu.com이 ftp.daumkakao.com으로 변경된 것을 확인할 수 있습니다.
%s/kr.archive.ubuntu.com/ftp.daumkakao.com
:(콜론)누른 후 wq를 입력해서 저장하고 나옵니다.
change_repository.png
패키지 목록을 최신 버전으로 업데이트합니다.
sudo apt-get update
최신 버전의 패키지가 있을 경우 설치합니다.
sudo apt-get upgrade
개인적으로 생각하는 필수 패키지들을 설치합니다.
sudo apt-get install build-essential ssh git vim

이제 본 게임을 시작합니다!

소스 코드 다운로드

EOS의 소스코드는 EOS Github에서 받을 수 있습니다.
Github에 들어가면 소스 코드 목록 밑에 README.md 파일이 보여지고 있습니다. 보시면 자세히 어떻게 설치를 진행하면 되는지 나와 있으니 저는 이만... 있습니다.

github_readme.png

기본적으로 지원하고 있는 OS는 4종류입니다.

  1. Amazon 2017.09 버전과 그 이후 버전
  2. Fedora 25 버전과 그 이후 버전 (Fedora 27을 추천)
  3. Ubuntu 16.04 버전과 그 이후 (Ubuntu 16.10 추천) <- 저는 여기에 속합니다.
  4. MacOS Darwin 10.12 버전과 그 이후 (MacOS 10.13.x 추천)

소스코드를 다운 받아야 하는데, local testnet에서 실행할 것인지 public testnet에서 실행할 것인지에 따라서 받아야 되는 소스가 다릅니다. (정확히는 동일한 git을 clone하고 다른 버전으로 checkout해야 합니다.)
이유는 2018.03.06 현재는 DAWN 3.x 버전을 개발 중입니다. 그래서 public testnet은 아직 기존의 DAWN 2.x 버전으로 운영되고 있기 때문에 public testnet에 접속해서 스마트 컨트랙트를 올려보고 하려면 2.x 버전을 받아서 빌드해야 하고, 그냥 최신 버전을 local testnet에서 개발해 보겠다 라고 하면 3.x 버전을 받아서 빌드하면 됩니다.

저는 우선 3.x 버전을 받아서 local testnet에서 개발을 해보려합니다. 그런데 As of February 2018, master is under heavy development and is not suitable for experimentation. 라는 문구를 발견할 수 있습니다. 현재 master 브랜치는 불안정한 상태라서 권장하고 있지 않네요.

master_fail.png

그러면 그나마 안정적인 3.x 버전을 찾아봅시다.
상단에 releases 탭을 눌러보면 그 동안 릴리즈 됐던 히스토리가 나오는데 그 중에서 latest release라고 되어 있는 것을 다운 받아서 빌드하겠습니다. DAWN-2018-01-31-ALPHA
README.md 파일에 나와 있는 것 처럼 git clone으로 해보겠습니다.
git clone https://github.com/eosio/eos --recursive
주~~욱 신나게 소스코드를 받아 옵니다.
git_clone.png

하지만 지금 받아 온 소스는 master 브랜치의 소스입니다. 그래서 아까 봐뒀던 DAWN-2018-01-31-ALPHA 소스로 checkout 해줍니다.
cd eos
git checkout DAWN-2018-01-31-ALPHA
ls
git_checkout.png
ls_eos.png
위의 파일 중에서 build.sh 파일을 이용해서 소스를 빌드하게 됩니다. 그런데 그냥 빌드하게 되면 에러가 발생하는데 doxygen 패키지가 없어서 발생하는 에러입니다. 의존성 패키지를 설치할 때 함께 설치할 수 있도록 스크립트에 추가합니다.

vi scripts/install_dependencies.sh
맨 마지막에 doxygen을 추가합니다.
add_doxygen.png
이제 대망의 빌드 스크립트를 실행합니다.

./build.sh ubuntu
빌드는 꽤 오랜 시간이 걸리기 때문에 돌려놓고 이만 자러 가야겠습니다.

부디 내일 아침에 빌드가 성공적으로 되어 있길 바라며...

(추가) 중간에 업데이트 서버에서 패키지들을 못 받아와서 에러가 발생했습니다. 다음카카오서버로 변경하는 방법 추가했습니다.

(추가) 자고 일어났더니 중간에 패스워드를 입력해야 되는 부분이 있어서 1/3도 안되는 부분에서 멈춰있었네요 ㅠㅠㅠㅠㅠ 이 부분은 계정에 패스워드 입력 없이 root 권한을 행사할 수 있게 설정해 줘야 합니다.

참고 자료

The first EOS developer meetup in Korea
Ubuntu 소프트웨어 업데이트 서버를 daum으로 변경 (sources.list)
[Linux] sudo 로그인 시 패스워드 입력 없이 권한얻기

Sort:  

와우 좋은 내용이네요~~ 저도 한번 해봐야겠네요~
이오스 스마트컨트랙이라니~~ ㅎㅎ
가입 글에도 남겼지만~ 글은 50:50으로 쓰세요~ 무조건 이득입니다.
개발자이신 만큼.. 스팀에도 한번 관심가져보세요. 짱 좋습니다 ㅎㅎ

관심있게 봐 주셔서 감사합니다. 도움이 되는 내용 올리도록 노력하겠습니다. 스팀도 차근차근 알아가 보려고요 ㅋ

오 !! 개발자셨군요 :)

저도 프로그래밍을 배워보고 싶어서 요즘 끄적끄적 해보고 있는데 아무래도 비전공자이고 독학으로 하려다 보니 어렵더라구요 ㅠㅠ

그래도 꾸준히 해보겠습니다 !

스팀잇에 온걸 환영합니다 :)

팔로우하고 갑니다 !

환영해 주셔서 감사합니다.
저도 독학은 많이 어렵더라고요. ㅠㅠ
그래도 스팀잇에 글 연재 시작했으니, 연재 이어 가려면 계속 공부할 수 밖에 없을 것 같아요.
팔로우 감사합니다.^^

개발자분들 응원합니다.

응원 감사합니다! ^^

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63550.59
ETH 2644.53
USDT 1.00
SBD 2.81