create account

[EOS] Smart Contract 개발 준비 1 - EOS 노드 설치 by modolee

View this thread on: hive.blogpeakd.comecency.com
· @modolee · (edited)
$2.88
[EOS] Smart Contract 개발 준비 1 - EOS 노드 설치
![iron_modolee.png](https://steemitimages.com/DQmWQDjyP5d1RNW3mkCWUkDQ6yh3uDJFUZErPpaKBwKi4gM/iron_modolee.png)

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

### 개발 환경

개발 환경은 Ubuntu 17.10에서 진행합니다.
혹시 Ubuntu 환경이 아니신 분들은 아래 동영상으로 보시고 설치해 주시면 됩니다.
[버추얼박스에 리눅스 우분투 17.10 데스크탑 설치하기](https://www.youtube.com/watch?v=hftXXfzlAQk)

### 사전 준비
계정에 root 패스워드 입력 없이 sudo 명령을 사용할 수 있는 권한을 줍니다.
`sudo visudo` 로 권한 설정 파일을 엽니다.
![visudo.png](https://steemitimages.com/DQmemFn8hE2CzVAXVx21rbKfCrLQJBoiW8s2qiErSeC2V9h/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](https://steemitimages.com/DQmTWaoY8ctEXFW1PuDybv75pL7FS6r5tbdWB8qxTWHYNkA/change_repository.png)
패키지 목록을 최신 버전으로 업데이트합니다.
`sudo apt-get update`
최신 버전의 패키지가 있을 경우 설치합니다.
`sudo apt-get upgrade`
개인적으로 생각하는 필수 패키지들을 설치합니다.
`sudo apt-get install build-essential ssh git vim`

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

### 소스 코드 다운로드
EOS의 소스코드는 [EOS Github](https://github.com/EOSIO/eos)에서 받을 수 있습니다.
Github에 들어가면 소스 코드 목록 밑에 README.md 파일이 보여지고 있습니다. 보시면 자세히 어떻게 설치를 진행하면 되는지 나와 ~~있으니 저는 이만...~~ 있습니다.

![github_readme.png](https://steemitimages.com/DQmPMo51wYEsGVZeADDjNDHKQojbFq3fqdVYJPZ1Q1jH67f/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](https://steemitimages.com/DQmNMxmnMgPZKA9WZbeX9Ba4Qz6BNaVMh8TxDxVfuvAPGPv/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](https://steemitimages.com/DQmPrW5GV5AWhdtoHXEvXRw9cHRpSnE7724RqJVquPVSMTz/git_clone.png)

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

`vi scripts/install_dependencies.sh`
맨 마지막에 **doxygen**을 추가합니다.
![add_doxygen.png](https://steemitimages.com/DQmSML7gk5BNhvNUkcv6ZE91HPka8N76FudhbsrUubwtLEW/add_doxygen.png)
이제 대망의 빌드 스크립트를 실행합니다. 

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

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


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

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

## 참고 자료
[The first EOS developer meetup in Korea](https://www.youtube.com/playlist?list=PLysThb_HoI_FrcgPoLeabMwQvILeRxU_k)
[Ubuntu 소프트웨어 업데이트 서버를 daum으로 변경 (sources.list)](http://inasie.tistory.com/39)
[[Linux] sudo 로그인 시 패스워드 입력 없이 권한얻기](http://gompangs.tistory.com/81)
👍  , , , , , , , , , , , , , , , ,
properties (23)
authormodolee
permlinkeos-smart-contract-1-eos
categorykr
json_metadata{"tags":["kr","kr-newbie","kr-dev","eos"],"image":["https://steemitimages.com/DQmWQDjyP5d1RNW3mkCWUkDQ6yh3uDJFUZErPpaKBwKi4gM/iron_modolee.png","https://steemitimages.com/DQmemFn8hE2CzVAXVx21rbKfCrLQJBoiW8s2qiErSeC2V9h/visudo.png","https://steemitimages.com/DQmTWaoY8ctEXFW1PuDybv75pL7FS6r5tbdWB8qxTWHYNkA/change_repository.png","https://steemitimages.com/DQmPMo51wYEsGVZeADDjNDHKQojbFq3fqdVYJPZ1Q1jH67f/github_readme.png","https://steemitimages.com/DQmNMxmnMgPZKA9WZbeX9Ba4Qz6BNaVMh8TxDxVfuvAPGPv/master_fail.png","https://steemitimages.com/DQmPrW5GV5AWhdtoHXEvXRw9cHRpSnE7724RqJVquPVSMTz/git_clone.png","https://steemitimages.com/DQmUnD4cbMRuygY2uTYBxVQFJMxe7PhX5Mu9NdqBUCyWhnW/git_checkout.png","https://steemitimages.com/DQmNirGdJpjNq7WBNAFD586dwFC9kj671uvTuzzXDWNPeYq/ls_eos.png","https://steemitimages.com/DQmSML7gk5BNhvNUkcv6ZE91HPka8N76FudhbsrUubwtLEW/add_doxygen.png"],"links":["https://www.youtube.com/watch?v=hftXXfzlAQk","https://github.com/EOSIO/eos","https://www.youtube.com/playlist?list=PLysThb_HoI_FrcgPoLeabMwQvILeRxU_k","http://inasie.tistory.com/39","http://gompangs.tistory.com/81"],"app":"steemit/0.1","format":"markdown"}
created2018-03-05 16:55:42
last_update2018-03-06 13:58:48
depth0
children6
last_payout2018-03-12 16:55:42
cashout_time1969-12-31 23:59:59
total_payout_value2.191 HBD
curator_payout_value0.687 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length4,157
author_reputation285,192,678,959
root_title"[EOS] Smart Contract 개발 준비 1 - EOS 노드 설치"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd0
post_id42,421,432
net_rshares707,638,199,584
author_curate_reward""
vote details (17)
@creamer7 ·
오 !! 개발자셨군요 :)

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

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

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

팔로우하고 갑니다 !
👍  
properties (23)
authorcreamer7
permlinkre-modolee-eos-smart-contract-1-eos-20180306t132141171z
categorykr
json_metadata{"tags":["kr"],"app":"steemit/0.1"}
created2018-03-06 13:21:42
last_update2018-03-06 13:21:42
depth1
children1
last_payout2018-03-13 13:21:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length133
author_reputation8,463,113,556,595
root_title"[EOS] Smart Contract 개발 준비 1 - EOS 노드 설치"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,625,508
net_rshares603,719,028
author_curate_reward""
vote details (1)
@modolee ·
환영해 주셔서 감사합니다.
저도 독학은 많이 어렵더라고요. ㅠㅠ
그래도 스팀잇에 글 연재 시작했으니, 연재 이어 가려면 계속 공부할 수 밖에 없을 것 같아요.
팔로우 감사합니다.^^
properties (22)
authormodolee
permlinkre-creamer7-re-modolee-eos-smart-contract-1-eos-20180306t133254982z
categorykr
json_metadata{"tags":["kr"],"app":"steemit/0.1"}
created2018-03-06 13:32:57
last_update2018-03-06 13:32:57
depth2
children0
last_payout2018-03-13 13:32:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length101
author_reputation285,192,678,959
root_title"[EOS] Smart Contract 개발 준비 1 - EOS 노드 설치"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,627,565
net_rshares0
@happyberrysboy ·
와우 좋은 내용이네요~~ 저도 한번 해봐야겠네요~
이오스 스마트컨트랙이라니~~ ㅎㅎ
가입 글에도 남겼지만~ 글은 50:50으로 쓰세요~ 무조건 이득입니다.
개발자이신 만큼.. 스팀에도 한번 관심가져보세요. 짱 좋습니다 ㅎㅎ
👍  
properties (23)
authorhappyberrysboy
permlinkre-modolee-eos-smart-contract-1-eos-20180305t175942429z
categorykr
json_metadata{"tags":["kr"],"community":"busy","app":"busy/2.4.0"}
created2018-03-05 17:59:45
last_update2018-03-05 17:59:45
depth1
children1
last_payout2018-03-12 17:59:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length124
author_reputation314,484,142,656,697
root_title"[EOS] Smart Contract 개발 준비 1 - EOS 노드 설치"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,432,974
net_rshares603,719,028
author_curate_reward""
vote details (1)
@modolee ·
관심있게 봐 주셔서 감사합니다. 도움이 되는 내용 올리도록 노력하겠습니다. 스팀도 차근차근 알아가 보려고요 ㅋ
properties (22)
authormodolee
permlinkre-happyberrysboy-re-modolee-eos-smart-contract-1-eos-20180305t222511548z
categorykr
json_metadata{"tags":["kr"],"app":"steemit/0.1"}
created2018-03-05 22:25:15
last_update2018-03-05 22:25:15
depth2
children0
last_payout2018-03-12 22:25:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length61
author_reputation285,192,678,959
root_title"[EOS] Smart Contract 개발 준비 1 - EOS 노드 설치"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,476,395
net_rshares0
@xiian ·
개발자분들 응원합니다.
👍  
properties (23)
authorxiian
permlinkre-modolee-eos-smart-contract-1-eos-20180305t234052601z
categorykr
json_metadata{"tags":["kr"],"app":"steemit/0.1"}
created2018-03-05 23:40:54
last_update2018-03-05 23:40:54
depth1
children1
last_payout2018-03-12 23:40:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length12
author_reputation6,247,053,396,304
root_title"[EOS] Smart Contract 개발 준비 1 - EOS 노드 설치"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,487,253
net_rshares597,589,900
author_curate_reward""
vote details (1)
@modolee ·
응원 감사합니다! ^^
properties (22)
authormodolee
permlinkre-xiian-re-modolee-eos-smart-contract-1-eos-20180305t235250751z
categorykr
json_metadata{"tags":["kr"],"app":"steemit/0.1"}
created2018-03-05 23:52:54
last_update2018-03-05 23:52:54
depth2
children0
last_payout2018-03-12 23:52:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length12
author_reputation285,192,678,959
root_title"[EOS] Smart Contract 개발 준비 1 - EOS 노드 설치"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id42,489,002
net_rshares0