brunch

매거진 개발실습

You can make anything
by writing

C.S.Lewis

by SKKRYPTO Feb 24. 2019

[TezosXSkkrypto] 테조스 실습노트 #1-1

개발환경 구축(Windows -> Vm ware)

안녕하세요 성균관대학교 블록체인 네트워크 Skkrypto의 개발팀입니다.개발팀에서는 직접 tezos 를 쉽게 사용하고, tezos를 이용하여 스마트 컨트랙트를 작성하여 배포하고, 테스트넷에 deploy 하여 정상작동을 확인하는 과정을 다루게 되었습니다. 이번 시간에는 우선 테조스를 사용하기 위한 개발환경을 구축해보겠습니다!

본 글에서는 우리에게 익숙한 운영체제인 windows10 에서 가상머신인 vm ware를 이용하여 개발환경을 구축하도록 하고, 다음 글에서 새로 떠오르는 Docker를 사용하여 개발환경을 구축해보도록 하겠습니다.

1. VMware란?

한대의 컴퓨터에서 여러 개의 운영체제를 사용하기 위한 소프트웨어입니다. 기존의 컴퓨터는 한 대 당 하나의 운영체제만 사용할 수 있어서, 다른 운영체제가 필요할 때에는 새로운 컴퓨터를 구하는 수 밖에 없었습니다. 이 때, 한 컴퓨터로 여러 대의 컴퓨터를 사용 하듯이 가상의 공간을 만들어주는 virtual machine이 등장하게 되었고, 현재는 virtual box 와 vmware이 virtual machine 의 선두를 차지하고 있습니다. 저는 virtual box를 쓰다가 vmware로 갈아타게 되었는데, 기존에 존재하던 잔렉이 전부 사라지고, 훨씬 빠른 속도를 느낄 수 있었습니다. Tezos 는 Linux나 MacOS환경에서 돌아가기에 Windows를 사용하시는 분들께서는 가상환경 구축을 먼저 해주셔야 하겠습니다!

2. Ubuntu Linux

우분투는 데비안(Debian) GNU/리눅스를 기반으로 제작되었으며, 고유한 데스크탑 환경을 사용하는 리눅스 배포판입니다. 리눅스는 오픈소스로 공개되었기에 커스터마이징이 가능하여 여러 배포판이 존재하는데 여러 장점으로 인해 많은 사용자를 확보하고 있습니다.

우분투의 특징 : 

  1. 개인용 환경에 최적화

      대부분의 리눅스 배포판들이 서버용으로 사용되고 있다는 것에 반해, 우분투는 개인 사용자와 데스크탑            환경에 최적화 되도록 사용자 편의를 중점으로 개발이 되었기에, 많은 개발자가 사용하고 있습니다.

  2. 오픈소스 소프트웨어 기반

      기존 리눅스의 특징을 그대로 물려 받으며 오픈 소스에 기반하기 때문에 누구나 무료로 다운 받아서 사용          할 수 있습니다.


3.     Ubuntu Linux Download

우분투 리눅스의 설치 파일은 공식 홈페이지(https://www.ubuntu.com/) 에서 무료로 다운로드할 수 있습니다. 우분투 리눅스 홈페이지에서 [Download] – [Desktop] 메뉴를 선택합니다.

자동으로 다운로드 매니저가 실행되고, 다운받을 경로를 설정하고 저장을 누르면 다운로드가 시작됩니다.


위에서 말한 바와 같이, 우분투 리눅스는 무료로 배포되기에 다운로드 화면에서 기부금을 받고 있습니다. 기부를 희망하신다면 PayPal 을 통해 기부를 진행해주시면 되겠습니다.


4.     VMware Download

vmware 홈페이지(https://www.vmware.com/kr.html)에서 다운로드 메뉴를 선택합니다.

다운로드 메뉴에서 Workstation Player 을 클릭합니다.

windows에 맞는 설치 파일을 다운로드 합니다.




다운로드가 완료되면 설치 파일을 실행합니다.

[Next] 를 클릭합니다.

라이선스에 동의하고 [Next] 를 클릭합니다.

[Change]를 통해 자신이 설치할 경로를 선택 하고 [Next] 를 클릭합니다.

두 박스 모두 체크를 하지 않아도 되지만, 업데이트 항목과 프로그램 개선을 위해 박스에 체크를 하고 [Next]를 클릭합니다.

바로가기를 바탕화면과 시작메뉴에 생성하도록 박스를 체크하고 [Next]를 클릭합니다.

모든 항목을 제대로 선택하였다면 [Install]을 클릭하여 설치를 시작합니다.

설치가 완료되기를 기다립니다..

설치가 완료되면 [Finish]를 눌러 설치를 마칩니다.


바탕화면에 생성된 VMware 아이콘을 클릭하여 실행합니다.

라이선스 키가 없다면 비상업적 용도에 체크하고 [Continue]를 클릭합니다.

[Finish]를 눌러 사용자 등록을 마칩니다.

드디어 VMware가 실행되었습니다.


5.     Ubuntu Virtual Machine Making


[Create a New Virtual Machine] 을 클릭하여 새로운 가상머신 생성을 시작합니다.




[Broswe] 를 클릭하여 다운로드 받았던 Ubuntu Linux 의 iso 파일을 선택합니다.


파일이 올바르게 선택되었다면 [Next]를 클릭하여 다음 과정으로 넘어갑니다.

Linux 환경에 대한 사용자의 이름과 비밀번호를 설정해줍니다.

User name과 Password는 까먹지 않도록 익숙한 것으로 설정해주어야 합니다!

가상머신을 설치할 경로를 선택해 주고 [Next]를 클릭하여 다음 과정으로 넘어갑니다.




가상머신의 disk 크기를 설정해줍니다. 저는 여러가지 작업을 리눅스에서 돌리기 위하여 권장사항인 20GB 보다 큰 80GB로 크기를 설정해주었습니다. 자신이 사용하고자 하는 크기에 맞추어 설정을 해주시면 되겠습니다.

[Customize Hardware] 에서 가상머신의 설정을 조금 변경해주고 가도록 하겠습니다.


메모리의 크기가 적당히 할당되어 있어야 좋은 성능을 유지할 수 있기에, 기존에 있던 2GB에서 4GB 로 메모리 크기를 설정해주었습니다.

프로세서의 개수 또한 성능에 영향을 미치기 때문에 2개로 설정해주었습니다.


네트워크는 기존 운영체제의 네트워크를 그대로 사용하기 위해 bridged로 설정해주었습니다. 리눅스 설치 후에 인터넷이 되지 않는다면 해당 화면에서 NAT를 클릭하여 인터넷 연결을 다시 확인해주면 되겠습니다. 설정을 마쳤다면 [Close]를 클릭하여 원래 화면으로 돌아갑니다.

자신이 설정한 것들이 잘 적용 되었는지를 확인하고 [Finish]를 클릭해 생성 과정을 마칩니다.

6. Ubuntu Linux Install using Virtual Machine

가상 머신 생성 후에 자동으로 실행이 됩니다. VMware를 처음 사용하신다면 Software Updates 사항이 뜨는데, [Download and Install]을 클릭하여 VMware Tools 설치를 바로 진행해줍니다. 설치를 하여야 클립보드 공유, 공유 폴더 설정 등의 편리한 사용이 가능합니다.

우분투 리눅스의 설치와 VMware Tools 가 동시에 설치되고 있는 모습입니다. 이전에 iso파일을 정상적으로 설정해주었다면 설치는 모든 것이 자동으로 진행되며 끝날 때 까지 기다려줍니다.

설치가 완료되면 재부팅 되며 다음과 같은 사용자 선택화면이 등장합니다. 클릭하여 로그인 화면으로 넘어가줍니다.


설정하였던 비밀번호를 입력하고 로그인을 해줍니다.

다음과 같이 정상적인 우분투 리눅스의 바탕화면이 실행되었다면 설치가 완료된 것입니다. 수고하셨습니다!

7. install tezos

이제 본격적으로 tezos의 설치를 진행해보도록 하겠습니다. 테조스 측에서 제공하는 공식 튜토리얼을 보고 설치를 진행하였습니다. (https://tezos.gitlab.io/master/introduction/howtoget.html#docker-images)

자세한 설명 없이 스스로 설치를 진행하고 싶으시다면 아래의 명령문을 하나씩 순서대로 사용해주시면 됩니다.

sudo apt-get update

sudo apt-get upgrade

sudo reboot

sudo apt install -y rsync git m4 build-essential patch unzip bubblewrap wget

wget https://github.com/ocaml/opam/releases/download/2.0.1/opam-2.0.1-x86_64-linux

sudo cp opam-2.0.1-x86_64-linux /usr/local/bin/opam

sudo chmod a+x /usr/local/bin/opam

git clone https://gitlab.com/tezos/tezos.git

cd tezos

git checkout alphanet

opam init --bare

sudo apt install -y libev-dev libhidapi-dev libgmp-dev pkg-config

make build-deps

eval $(opam env)

make

export PATH=~/tezos:$PATH

source ./src/bin_client/bash-completion.sh

export TEZOS_CLIENT_UNSAFE_DISABLE_DISCLAIMER=Y


이제 코드를 하나하나 자세히 같이 실행해보겠습니다.

먼저, 설치한 우분투에서 터미널을 실행해줍니다.



sudo apt-get update 

를 입력하여 사용 가능한 패키지들과 그 버전들의 리스트를 업데이트 해줍니다. 실제 패키지 버전을 업그레이드하는 것이 아니라, 최신 버전 패키지가 있는지 확인하고 우분투 사용자에게 알려주는 용도입니다.

 update가 완료되면 sudo apt-get upgrade 를 통해 우분투에 있는 패키지들을 실제 최신 버전으로 업그레이드 해줍니다. 

update와 upgrade 의 차이를 아시겠나요? update는 최신 버전 패키지를 확인, upgrade는 update로 확인한 패키지들을 실제 최신 버전으로 설치해주는 차이가 있습니다.

다음과 같은 질문이 나타나면 y를 입력하고 계속 진행해주면 됩니다. 추가적인 디스크 공간을 사용할 것인지를 물어보고 있습니다.


업그레이드가 완료될 때 까지 많은 시간이 걸리니 잠시 다른 일을 하며 설치가 완료되기를 기다립니다.


업그레이드가 완료되면 sudo reboot 를 통해 재부팅하여 변경된 사항들을 적용시켜줍니다. 무엇인가를 설치하였을 때 재부팅을 하여야 완전히 적용이 되기 때문입니다.

재부팅이 완료되면 터미널을 다시 실행해줍니다!

sudo apt install -y rsync git m4 build-essential patch unzip bubblewrap wget

를 통해 테조스 설치에 필요한 패키지들을 먼저 받아줍니다.


wget https://github.com/ocaml/opam/releases/download/2.0.1/opam-2.0.1-x86_64-linux

를 통해 깃허브 서버로 부터 opam 설치파일을 받아주고

sudo cp opam-2.0.1-x86_64-linux /usr/local/bin/opam

를 통해 bin/opam 디렉터리에 설치한 파일을 옮겨주면 됩니다.

sudo chmod a+x /usr/local/bin/opam 

를 통해 모든 사용자(a)의 실행(x) 권한을 추가(+)하여 줍니다.


git clone https://gitlab.com/tezos/tezos.git

을 통해 테조스의 깃허브 저장소에서 파일들을 가져와줍니다.


cd tezos 를 통해 테조스 폴더로 이동한 후에

git checkout alphanet 를 통해 alphanet이라는 브랜치를 사용하겠다고 지정해줍니다.. 깃을 사용해보셨다면 이해가 쉬우시겠지만, 처음 사용하신다면 새로운 방향(alphanet)으로 나아가겠다고 명령을 해준다고 이해해주시면 되겠습니다!


opam init –bare 를 통해 opam state를 실행해줍니다. –bare 옵션은 컴파일러 스위치는 아직 실행하지 않겠다는 것을 의미합니다.

중간에 묻는 것이 나온다면 우선은 n 을 입력하고 넘어가 주세요. 나중에 따로 수정이 가능합니다. 처음 질문은 opam에게 profile의 수정 가능 권한을 줄 지를, 두번째 질문은 opam의 초기 스크립트에 hook 이라는 것을 설정할 지를 묻는 것입니다. hook은 shell이 opam 환경과 동기화가 이뤄져 있는지를 확실히 해주는 것입니다.



sudo apt install -y libev-dev libhidapi-dev libgmp-dev pkg-config

를 통해 빌드 과정에 필요한 패키지들을 받아줍니다.

패키지들이 설치되었다면

make build-deps 를 통해 패키지의 빌드를 진행해줍니다.


다음과 같은 에러가 뜨는 것은, 현재 tezos에 대한 저장소가 존재하지 않기에 걱정하지 않으셔도 됩니다. 

make world 과정에서 시간이 좀 소요될 수 있습니다.


eval $(opam env)를 통해

opam 의 shell command 들을 사용할 수 있도록 해줍니다.

make를 입력하여 남은 설치 과정을 진행해줍니다.

설치가 완료되면 export PATH=~/tezos:$PATH  를 통해

편리하게 이용할 수 있도록 tezos 를 환경변수에 등록해줍니다.

source ./src/bin_client/bash-completion.sh 와 

를 통해 bash-completion.sh 을 등록하고

export TEZOS_CLIENT_UNSAFE_DISABLE_DISCLAIMER=Y

를 통해 shell 변수를 환경 변수에 등록해줍니다.


ocaml 을 실행하여 설치가 제대로 되었는지를 확인해줍니다. OCaml 버전과 함께 스크립트가 실행된다면 설치가 정상적으로 완료된 것입니다.

OCaml에 관한 자세한 문법은 다음에 알아보도록 하겠습니다.

#quit;; 를 통해 OCaml을 종료할 수 있습니다. 이렇게 해서 기나긴 설치가 완료되었으며, Tezos를 사용할 개발 환경이 구축되었습니다! 다음 시간에는 도커를 이용하여 환경을 구축하는 법을 알아보겠습니다. 수고하셨습니다!


작성자 : 김형준

개발팀 : 김승태, 김예서, 김형준

매거진의 이전글 Bitcoin #부록
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari