brunch

You can make anything
by writing

C.S.Lewis

by SKKRYPTO Oct 12. 2019

[Skkrypto X Luniverse] 공부노트

Luniverse GUI와 Atom을 통한 스마트컨트랙 배포

안녕하세요 Skkrypto User guide 팀 입니다.

저희는 User guide와 API document를 처음 개발을 시작하는 입장에서 하나하나 실습을 통해 여러분들께 어떻게 해야하는지 알려드리는 글을 작성할 예정입니다.

이전 현명님이 Intro에서 설명해주신 부분 다음인 Smart contract 배포하기 부터 시작하도록 하겠습니다.

오늘 실습을 위해 준비해야하는것은 다음과 같습니다.   

- Node.js(https://nodejs.org/ko/)

- Atom(https://atom.io/)

 

1. 루니버스 GUI를 통해 스마트 컨트랙 배포하기

 루니버스에서는 GUI(graphical user interface)를 통해 간단한 클릭 몇 번으로 사이드 체인에 스마트 컨트랙트를 배포하여 블록체인 트랜잭션 발생시킬 수 있습니다.

먼저 console 창을 들어가서 Chain을 선택합니다.

 

User contract list를 들어가 상단의 create User contract 버튼을 클릭합니다.

다음과 같이 3-20자 이내의 영문/숫자로 이루어진 이름과 설명 그리고 Contract File을 업로드 할 수 있습니다. 미리 만들어두신 Contract File이 있다면 업로드 하신 다음 Apply버튼을 누르면 완료됩니다!!

 

2. Atom을 통해 스마트 컨트랙 배포하기

순서를 먼저 정리해 드리겠습니다.   

1)아톰 다운로드

2) Install packages창에서 Luniverse-atom-plugin을 설치

3) setting의 링크를 들어가 루니버스 로그인

4)Access Token 발급

이후 스마트 컨트랙 배포를 할 수 있습니다.

 

먼저 오픈소스 IDE (Integrated Development Environment, 통합 개발 환경) 중 하나인 Atom을 오픈해줍니다. Atom을 다운로드 한 뒤

 

Install Packages 창에서 ‘luniverse-atom-plugin'을 검색해줍니다. Install 한 후 setting 창에서 하단의 링크를 클릭해주면 루니버스에 로그인을 한 뒤 Access Token을 받을 수 있게 됩니다.

 

유저 가이드에 나와있는 코드를 작성하여 compile 하면 이제 배포가 완료되는데요. 저의 첫 번째 어려움은 여기서 시작되었습니다. 위 예시에는 simplestorage.sol이라는 파일이 존재하는데 제 atom는 보이지 않아서 새로 만들어야 하는건지 만든다면 어떻게 만들어야 하는지 위 사진처럼 오류가 떠서 꽤 난항을 겪었습니다.

 

이때 현명님이 노드 JS가 다운로드 되어있지 않아 생기는 오류 같다고 말해주었고 노드JS 다운로드 후 시도해보니!

 

 

다음과 같이 성공했습니다!

 

는 실패.. 두 번째 난관에 봉착했습니다.

 

컨트렉트 파일을 다운로드 후 파일 저장 경로를 바탕화면으로 지정한 뒤 다시 시도해았습니다.

 

파일을 확장자를 .sol로 지정하여 바탕화면에 저장한 뒤, 다시 한 번 시도해 본 결과

성공!!!

노드JS는 제가 아톰이라는 에디터를 사용하고 루니버스 서버에 연결하는 과정에서 통신사의 역할을 하는 것이라고 보면 되는데요. 조금 더 정확히 말하자면 자바스크립트로 쓰여진 코드를 서버에서도 사용할 수 있도록 도와주는 언어라고 말할 수 있겠습니다.

원래 자바스크립트는 주로 프론트앤드(사용자가 바라보는 웹페이지 창 개발)에 사용되는 언어인데요. 저희 Skkrypto의 부 학회장님께서 JavaScript를 이용해서 Node.js를 제어해 동적으로 HTML 코드를 생성하는 웹 애플리케이션을 만드는 방법이라고도 말할 수 있겠다고 알려주었습니다.

html이라는 언어를 사용하는데 이 언어는 고정되어 있어 화면 크기 등등이 화면이 바뀌면 오류가 생길 때가 있습니다. 노드 JS를 사용하면 html이 자동적으로 바뀔 수 있게 되어 요소들이 유동적으로 바뀔 수 있게 해준다고 하네요!

오늘의 실습으로 얻은 결론은  IDE등 에디터와  Node.js를 꼭 설치해 저같은 실수를 범하지 않길 바랍니다 ㅜㅜ

다음 시간에는 Remix로 스마트 컨트렉트를 배포하는 법과 Token 발행 및 전송하기를 공부해보도록 하겠습니다!

 

“위 글은 람다 256 루니버스의 Dev Plan을 무료로 제공받아 작성하였습니다”

 

작성자: 박주규/Jake(jukyu1786@gmail.com)


매거진의 이전글 [Skkrypto X Luniverse] Intro
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari