luniverse 사용법 교육자료 - amazon s3 · 2019. 3. 18. · - 암호 : 암호는 8자...

123
Luniverse 사용법 교육자료 2019.03 presented by Lambda256

Upload: others

Post on 20-Jan-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Luniverse 사용법 교육자료

2019.03

presented by Lambda256

Page 2: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Luniverse Overview (Key Terms)

How to Use Luniverse

INDEX

2

Page 3: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Luniverse Overview (Key Terms)

How to Use Luniverse

INDEX

3

Page 4: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

▪ Luniverse Blockchain Cloud Service

▪ Luniverse Network(=Luniverse Main Chain)

▪ Side Chain / Side Bridge

▪ Main Token(MT) / Side Token(ST)

▪ Main Admin(MA) / Side Admin(SA)

▪ Validator

▪ PKMS ( Private Key Management System )

▪ EOA (External Owned Account) : REOA(Remote EOA), LEOA(Local EOA)

Luniverse Overview(Key Terms)

4

Page 5: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

5

Luniverse Overview(주요 기능)▪기본 기능

• 루니버스 사이드체인

• 루니버스 토큰 서비스

▪핵심 서비스

• 루니버스 솔리디티 IDE

• 루니버스 보안

• 루니버스 운영 및 모니터링 툴

• 사용자 관리 서비스

• 월렛 브리지

• 어카운트 브리지

• PKMS

Page 6: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Luniverse Overview (Key Terms)

How to Use Luniverse

INDEX

6

Page 7: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

목표 : Luniverse DApp 만들기

7

Page 8: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2018. Lambda256. All rights reserved

유기견보호소 동작구조

서울시(MA)

마포구 보호소(MapoGuAccount)

End User(UserA)

MT : SPT (ST) = 1 : 1 MT : ADT (ST) = 1 : 10

Side Token Transfer(Support Token)

Side Token Transfer(Adopt Token )

Adopt(ADT)

Support(SPT)

Reward(ADT)

8setOwner

Page 9: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

9

Luniverse Transaction API Transaction Server

Luniverse DApp Config

Support Token

Adopt Token

HomelessDogs

Contract

SupportReward

Adopt

getOwner

setOwnerPKMS(REOA Sign)

유기견보호소 아키텍쳐

Local EOASign

Page 10: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 0. 사전 준비

10

Page 11: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

실습을 원활히 진행하기 위해서 다음 환경을 준비해야 합니다.

1. 루니버스 CBT 교육용 파일 받기

2. Node.js 설치

3. curl ( 혹은 Postman / SoapUI ) 설치

4. Metamask 설치

5. Atom 설치

11

사전 환경 준비

Page 12: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Windows 사용자

1. 다운로드 받은 파일의 압축을 풉니다.2. luniverse-cbt 를 %USERPROFILE%\temp 아래로

복사합니다 .

1. 소스 파일을 로컬로 다운로드합니다. ( https://s3.ap-northeast-2.amazonaws.com/luniverse/cbt-demo/luniverse-cbt.zip )

- 윈도우즈 사용자 : %USERPROFILE%\temp- Mac 사용자 : ~/temp

2. 소스 파일의 압축을 풉니다.

12

Luniverse Demo DApp 압축 풀기

Mac 사용자

$ mkdir ~/temp$ cd ~/temp$ tar zxvf ~/Downloads/luniverse-cbt.tar.gz$ ls luniverse-cbtcontracts demo-homeless-dogs luniverse-atom-plugin

Page 13: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

1. node 명령어를 실행해서 node.js 가 설치되어 있는지 확인합니다 . node 가 설치되지 않은 경우 ‘Command not found’ 같은 오류가 발생합니다 .

2. Node 가 설치되지 않은 경우 https://nodejs.org/en/ 에서 10.15.2 LTS 버전을 다운받아 설치합니다 .

3. Node 설치가 완료되면 node.js 가 정상 설치되었는지 확인합니다 .

13

Node 설치하기

$ node -vnode: command not found

$ node -vv10.15.2

Page 14: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

1. Demo App 을 설치한 디렉토리로 이동합니다 .

2. npm 으로 static-server 모듈을 설치합니다 . ( 윈도우즈 / Mac 공통 )

3. static-server 설치 확인하기

14

static-server 모듈 설치하기

Mac 사용자

$ cd ~/temp/luniverse-cbt/demo-homeless-dogs$ pwd

Windows 사용자

cmd> cd %USERPROFILE%\temp\luniverse-cbt\demo-homeless-dogscmd> pwd

$ npm install -g static-server

$ static-server

Page 15: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

1. demo-homeless-dogs 의 src 디렉토리로 이동합니다 .

2. static-server 를 실행합니다 .

3. 브라우저에서 http://localhost:9080 에 접속해서 Luniverse Demo App 이 브라우저에 나타나는지 확인합니다 .

15

Luniverse Demo App 실행하기

Mac 사용자

$ cd ~/temp/luniverse-cbt/demo-homeless-dogs/src

Windows 사용자

cmd> cd %USERPROFILE%\temp\luniverse-cbt\demo-homeless-dogs\src

$ static-server* Static server successfully started.* Serving files at: http://localhost:9080* Press Ctrl+C to shutdown.

Page 16: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

16

var Config = { chainId: '1550810241284903144', // 1. Chain Id mt: { symbol: 'F862', }, // 2. Main Token st: { support: { symbol: 'SPT2', }, // 3. Support Side Token adopt: { symbol: 'ADT',}, // 4. Adopt Side Token }, walletAddress: { pd: '', // 5. Remote EOA for PD user: '', // 6. Remote EOA for User }, dapp: { // 7. API Key apiKey: 'JCJCAZT6Jwg1uptbaFkyKFvJYc855WnMs6S9dVbDFd29KsgnfmFrva4kEowuse5R' }, txActionName: { // 8. Transactions for DApp setOwner: 'setOwner', // 9. Transaction for Custom Smart Contract getOwner: 'getOwner', // 10. Transaction for Custom Smart Contract support: 'Support', // 10. Support Transaction for Support Token adopt: 'Adopt', // 11. Adopt Transaction for Adopt Token reward: 'Reward', // 12. Reward Transaction for Adopt Token }, userName: 'dino',};

루니버스 DApp 설정 파일파일 위치: luniverse-cbt/demo-homeless-dogs/src/js/config.js

Page 17: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

1. https://metamask.io/ 에 접속한다.2. GET CHROME EXTENSION 을 클릭하여 Chrome Extension 설치 화면으로 이동한다.3. Chrome 에 설치를 클릭하여 Metamask Chrome Extension 을 설치한다.4. Chrome 브라우저 우측 상단에 메타마스크 아이콘( )이 표시되는지 확인한다.

17

Metamask 설치하기

Page 18: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

1. https://atom.io/ 에 접속해서 Atom 을 다운받는다 .

2. Atom 을 설치한다.

3. Atom 을 실행한다.

18

Atom 설치하기

Page 19: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

How to Use LuniverseLab01. 루니버스 회원 가입하기

Lab02. 루니버스 DApp 만들기

Lab03. SPT 사이드 토큰 발행하기

Lab04. Support 트랜잭션 만들기

Lab05. ADT 사이드 토큰 발행하기

Lab06. Reward 트랜잭션 만들기

Lab07. Adopt 트랜잭션 만들기

Lab08. DApp 사용하기 - 후원하기

Lab09. 루니버스 Atom 플러그인 설치하기

Lab10. 루니버스 Atom 플러그인 사용

Lab11. 메타마스크 연동하기

19

Page 20: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 01. 루니버스 회원 가입하기

20

Page 21: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

1) 회원가입

1) https://beta.luniverse.io 로 접속한다.

2) 로그인 화면에서 ‘Create Account’ 클릭한다.

21

Page 22: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

1) 회원가입루니버스에 회원가입 한다.

- 이메일 : 이메일로 인증 코드가 발급되기 때문에 자신이 소유한 이메일을 입력한다.

- 사용자 계정 : 사용할 사용자 계정을 입력한다.

- 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야

합니다.

- 정보를 모두 입력한 후에 Next 버튼을 클릭합니다 .

22

Page 23: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

회원가입

입력한 이메일 주소로 전송된 인증번호를

입력한다.

23

Page 24: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

로그인

1) 회원가입시 사용한 이메일과 비밀번호를

이용해 로그인한다.

24

Page 25: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

로그인 - Wallet 발급

루니버스에서 사용할 Wallet Address 를 발급받아야

한다. 아래와 같은 상황에서 발급된 Wallet Address

의 Private Key로 트랜잭션에 서명을 해야 한다.

● 메인 토큰 발행 / 메인토큰 전송

● 사이드 토큰 발행 / 사이드 토큰 전송

● 사용자 정의 컨트랙트 배포

주의) 입력한 Passphrase 를 분실하면 Keystore

파일을 이용할 수 없다. 따라서, Keystore 파일을

이용해서 트랜잭션에 서명하려면 Passphrase 를

분실하지 말아야 한다.

25

Page 26: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

발급받은 Wallet Address 의 Private Key 를

암호화하여 Keystore 파일로 다운받을 수 있다.

트랜잭션에 사인할 때는 발급받은 Wallet Address 의

Private Key 를 직접 이용하거나 , Keystore 파일을

이용할 수 있다.

Keystore 파일을 분실하거나 Passphrase 를 분실한

경우 Keystore 파일을 이용해서 트랜잭션에 서명할

수 없으므로, Keystore 파일과 Passphrase 를

안전하게 보관해야 한다.

로그인 - Wallet 발급

26

Page 27: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

로그인 - Wallet 발급

27

발급받은 Wallet Address 의 Private Key 로

트랜잭션에 직접 서명할 수 있다.

Private Key 를 분실한 경우 Private Key 로

트랜잭션에 서명할 수 없기 때문에 Private Key 를

안전한 곳에 보관해야 한다.

Page 28: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

로그인 - Wallet 발급

28

Print Wallet 을 클릭하면 Wallet Address 와 Private

Key 를 QR코드로 인쇄할 수 있다.

인쇄된 QR 코드가 유출되면 Wallet Address 가

소유한 자산을 분실할 수 있기 때문에 반드시 안전한

곳에 보관해야 한다.

Page 29: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Home 화면

29

Home 화면은 Chain Tab 과 Chain Dashboard 로

구성됩니다 .

- Chain Tab 에는 사용자가 사용할 수 있는 Chain

의 이름이 탭으로 표시됩니다 .

- Chain Dashboard 에는 Chain Tab 에서 선택된

Chain 에 대한 정보가 표시됩니다 .

Chain Tab

Chain Dashboard

Page 30: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Home 화면

30

Chain Dashboard 는 Chain Card, Main Token Card,

DApp Card 목록, Side Token Card 목록으로

구성됩니다 .

Chain Dashboard

Chain Card MainToken Card

DApp Card 목록

Side Token Card 목록

Page 31: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Notification Message 확인하기

31

사용자에게 Notification 이 필요한 경우, 루니버스는

콘솔화면 오른쪽 하단에 Notification Message 창을

표시합니다 .

- Notification Message 에 있는 "Maintoken 수신

확인하기" 링크를 클릭해서 Main Token

Request 화면으로 이동합니다 .

Notification Message

Page 32: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Main Token Request 화면으로 이동하면 Free Trial

Chain 의 메인 토큰이 1000개 지급되었다는 것을

확인할 수 있습니다.

Request Main Token 버튼을 클릭하여 1000 토큰을

추가로 요청한다.

Main Token Request

32

Page 33: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

My Wallet

33

My Wallet 화면에서 Main Token 보유 수량을 확인할

수 있습니다.

1. 오른쪽 상단 사용자 이름을 클릭한다.

2. My Wallet 을 클릭하여 My Wallet 화면으로

이동한다.

Page 34: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Main Token 이 필요한 경우 Request Main Token 버튼을 클릭해서 Main Token

을 추가적으로 요청할 수 있습니다.

Main Token Request

34

Page 35: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 02. Luniverse DApp 만들기

35

Page 36: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

36

Luniverse REST Server

REST API

REST Server

Database

REST API

REST Server

Database

web3.js

SmartContract

Luniverse REST APIweb3.js

SmartContract

Luniverse DApp

Page 37: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

기존 Application(Mobile, Web, Desktop)에 블록체인에 데이터를 기록하고, 블록체인에 기록된 데이터를 조회하는 기능을 추가한 Application 을

DApp(Decentralized App)이라고 합니다. 이더리움의 경우 web3.js 를 이용해야 DApp 을 개발할 수 있습니다.

Luniverse 가 제공하는 Transaction API 서비스만을 이용하면 기존 Application 을 손쉽게 DApp 으로 전환할 수 있습니다. 각 블록체인에서

제공하는 전용 API 를 이용해야 하지만, Luniverse Transaction API 를 이용하면 블록체인별로 API 를 따로 학습하지 않아도 됩니다.

37

Luniverse DApp

Page 38: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step1. Luniverse DApp 만들기

38

Home 화면으로 이동하여 “Create DApp” 을

클릭한다.

Page 39: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

39

Step 1. Luniverse DApp 만들기HomelessDogs DApp 을 생성한다.

- DApp Name : HomelessDogs 앞에 회사이름을

붙인다. DApp Name 은 같은 체인에서는 중복될 수

없다.

- ex) LuniverseHomelessDogs

Create 버튼을 클릭하여 DApp 을 생성한다.

Page 40: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

40

Step 2. DApp API Key 생성하기DApp 에서 사이드체인에 트랜잭션을

요청하려면 API Key 를 생성해야 한다.

API Key 를 생성하는 과정은 다음과

같다.

1. Home 화면에서 정의한 DApp 을

클릭한다.

2. 화면 왼쪽에서 API Key 메뉴를

클릭한다.

3. Generate 를 클릭해서 API Key 를

생성한다.

Page 41: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

41

var Config = { chainId: '1550810241284903144', // 1. Chain Id mt: { symbol: 'F862', }, // 2. Main Token st: { support: { symbol: 'SPT2', }, // 3. Support Side Token adopt: { symbol: 'ADT',}, // 4. Adopt Side Token }, walletAddress: { pd: '', // 5. Remote EOA for PD user: '', // 6. Remote EOA for User }, dapp: { // 7. API Key apiKey: 'JCJCAZT6Jwg1uptbaFkyKFvJYc855WnMs6S9dVbDFd29KsgnfmFrva4kEowuse5R' }, txActionName: { // 8. Transaxctions for DApp setOwner: 'setOwner', // 9. Transaction for Custom Smart Contract getOwner: 'getOwner', // 10. Transaction for Custom Smart Contract support: 'Support', // 10. Support Transaction for Support Token adopt: 'Adopt', // 11. Adopt Transaction for Adopt Token reward: 'Reward', // 12. Reward Transaction for Adopt Token }, userName: 'dino',};

Step 3. DApp 설정 파일 변경하기

생성된 API Key 를 복사해서 apiKey 로 설정한다.

파일 위치: luniverse-cbt/demo-homeless-dogs/src/js/config.js

Page 42: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 03. SPT 사이드 토큰 발행하기

42

Page 43: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Create Side Chain

Node 1

Node 2 Node 3

Node 4

Node 5Node 6

Side Chain

43

Page 44: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Create Side Token

44

Page 45: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

루니버스 콘솔의 홈 화면에서 아래쪽으로

스크롤한다 .

Side Token 옆에 ‘+’ 아이콘을 클릭하면, Create

ERC20 Side Token 버튼이 표시된다.

“Create ERC20 Side Token” 토큰을 클릭해서 Side

Token 발행 화면으로 이동한다.

Step 1. Side Token 발행화면 이동

45

Page 46: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 2. Side Token 발행하기

46

Side Token 정보를 입력합니다 .

- Token Name : Support Token XX

- Token Symbol : SPTXX

- Token Symbol Image : 색 선택

- Conversion Rate : 1MT:10 ST

- Initial Supply : 10000

- Decimals : 18

입력이 완료되면 Create 버튼을 클릭해서 사이드 토큰을 만듭니다.

Page 47: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 3. 트랜잭션 서명

47

Side Token 을 발행하려면 트랜잭션에 서명이 필요합니다 .

- 회원가입시에 발급한 Private Key 나 Keystore 파일을 이용해서

트랜잭션에 서명할 수 있습니다.

트랜잭션에 서명한 후 Confirm 을 클릭하면 사이드 토큰 발행이

시작됩니다 .

Page 48: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 4. Side Token 발행 과정 확인

48

Page 49: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 5. Side Token 발행 정보 확인

49

발행이 완료된 Side Token

카드를 클릭해서 Side Token 이

정상적으로 발행되었는지

확인합니다 .

Page 50: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Main Token → Side Token

50

Page 51: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

51

var Config = { chainId: '1550810241284903144', // 1. Chain Id mt: { symbol: 'F862', }, // 2. Main Token st: { support: { symbol: 'SPTXX', }, // 3. Support Side Token adopt: { symbol: 'ADT',}, // 4. Adopt Side Token }, walletAddress: { pd: '', // 5. Remote EOA for PD user: '', // 6. Remote EOA for User }, dapp: { // 7. API Key apiKey: 'JCJCAZT6Jwg1uptbaFkyKFvJYc855WnMs6S9dVbDFd29KsgnfmFrva4kEowuse5R' }, txActionName: { // 8. Transaxctions for DApp setOwner: 'setOwner', // 9. Transaction for Custom Smart Contract getOwner: 'getOwner', // 10. Transaction for Custom Smart Contract support: 'Support', // 10. Support Transaction for Support Token adopt: 'Adopt', // 11. Adopt Transaction for Adopt Token reward: 'Reward', // 12. Reward Transaction for Adopt Token }, userName: 'dino',};

Step 6. DApp 설정 파일 변경하기

자신이 생성한 SPTXX 토큰 심벌을 설정한다.

Sidechain 의 Maintoken 심벌을 설정한다.

파일 위치: luniverse-cbt/demo-homeless-dogs/src/js/config.js

Page 52: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 04. Support 트랜잭션 만들기

52

Page 53: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2018. Lambda256. All rights reserved

유기견보호소 동작구조

서울시(MA)

마포구 보호소(MapoGuAccount)

End User(UserA)

MT : SPT (ST) = 1 : 1 MT : ADT (ST) = 1 : 10

Side Token Transfer(Support Token)

Side Token Transfer(Adopt Token )

Adopt(ADT)

Support(SPT)

Reward(ADT)

53setOwner

Page 54: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 1. MapoGu Account 생성

54

MapoGu 보호소용 Remote EOA 를

생성한다.

1. DApp 을 클릭해서 DApp 설정

화면으로 이동한다.

2. EOA List 를 클릭한다.

3. New EOA 를 클릭한다.

4. MapoGuAccount 용 Account 를

생성한다.

Page 55: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 2. User Account 생성

55

위와 동일한 과정으로 User A

Account 를 생성한다.

UserA

Page 56: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 3. Support 트랜잭션 정의

56

사용자가 MapoGuAccount 계정으로 토큰을 송금하는 트랜잭션을 정의합니다 .

- 수신 계정은 항상 MapoGuAccount 입니다.

HomelessDog DApp 으로 이동해서 Side Token 을 이용하는 트랜잭션을

정의한다.

1. Token/Contract : 위에서 정의한 Side Token 을 선택한다.

2. Function : Free Simple Transfer

3. Action Name : Support

4. Sender : 지정하지 않는다.

5. Receiver : 방금 생성한 MapoGuAccount 를 선택한다.

Create 버튼을 입력하여 트랜잭션을 정의한다.

Page 57: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 4. 트랜잭션 실행하기

57

DApp 의 Transaction List 에서 Support 트랜잭션의 API 를 확인하고, curl

명령어를 복사해서 실행한다. ( curl 명령어가 없는 경우, PostMan 이나

SoapUI 와 같은 HTTP Request 를 사용할 수 있는 도구를 사용해도 된다. )

1. DApp 에서 Transaction List 를 클릭한다.

2. Support Transaction 의 API 부분을 클릭한다.

3. curl 요청을 텍스트 편집기로 복사한다.

Page 58: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 5. 트랜잭션 실행하기

58

아래와 같이 텍스트 편집기에서 curl 요청을 변경하고, 터미널에서 curl 명령어를 실행한다.

1. transaction name : Support2. apiKey : yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d3. from : REOA List 에서 발급한 UserA 의 REOA4. valueAmount : 1000000000000000000 를 입력한다. ( 0이 18개임 )

$ curl -X POST 'https://cbt-api.luniverse.io/tx/v1.0/transactions/Support' \> --header 'Authorization: Bearer yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d' \> --header 'Content-Type: application/json' \> --data '{> "from": "0xa99fbcf012a5af442da0be3ab81b1bbace0f960d ",> "inputs": {> "valueAmount": "1000000000000000000"> }> }'

{"result":false,"code":"PERMISSION_DENIED","message":"Access denied, make sure remote ip (123.123.123.123) is registered on ip

whitelist."}

Page 59: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 6. IP Whitelist 설정하기

59

트랜잭션을 실행했을 때, Access Denied 가

발생하는 이유는 트랜잭션을 요청한 서버의 IP 가

‘DApp 의 IP Whitelist’ 에 등록되지 않았기 때문이다.

루니버스는 등록된 서버에서만 해당 DApp 의

트랜잭션을 요청할 수 있습니다. DApp 에 등록되지

않은 IP 에서 요청한 트랜잭션은 처리하지 않는다.

트랜잭션 실행시 오류 메시지로 출력된 IP 를 IP

Whitelist 에 등록한다.

Page 60: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 7. 트랜잭션 재실행

60

Step5 에서 오류가 발생했던 트랜잭션을 재실행한다 .

이번에는 트랜잭션 요청 결과값으로 txHash 값이 전달됩니다 . txHash 값이 전달되었다는 것은 블록체인에 트랜잭션이 요청되었다는 것을

뜻한다.

$ curl -X POST 'https://cbt-api.luniverse.io/tx/v1.0/transactions/Support' \> --header 'Authorization: Bearer yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d' \> --header 'Content-Type: application/json' \> --data '{> "from": "0xa99fbcf012a5af442da0be3ab81b1bbace0f960d ",> "inputs": {> "valueAmount": "1000000000000000000"> }> }'

{"result":true,"data":{"txId":"1551658962992906321","txHash":"0xa9b7f0da9bab50492d5f57958a43c76cd946daa9cb78fa02bd04190a7548d41

a","reqTs":1551658962917}}

Page 61: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 8. 트랜잭션 확인

61

DApp 의 Transaction History 로 이동해서 해당 Transaction 의 상태를 확인한다.

- Transaction History 를 확인하면 토큰 전송 트랜잭션이 실패했다는 것을 알 수 있다.

- Transaction 이 실패한 이유는 토큰을 전송하는 UserA 가 SPT 토큰을 가지고 있지 않기 때문이다.

Page 62: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

62

curl --GET 'https://cbt-api.luniverse.io/tx/v1.0/wallets/0xa99fbcf012a5af442da0be3ab81b1bbace0f960d/F053/SPTXX/balance' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d'

Step 9. 잔고 확인하기

{"result":true,"data":{"balance":"0"}}

방금 발행한 REOA 들의 토큰 잔고를 확인해 보자. 잔고를 확인하려면 아래와 같이 요청한다.

- REOA 주소 : UserA 의 REOA ( 0xa99fbcf012a5af442da0be3ab81b1bbace0f960d )

- Main Token Symbol 이름 : F053

- Side Token Symbol 이름 : SPT

- API Key : yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d

Page 63: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

63

var Config = { chainId: '1550810241284903144', // 1. Chain Id mt: { symbol: 'F862', }, // 2. Main Token st: { support: { symbol: 'SPT2', }, // 3. Support Side Token adopt: { symbol: 'ADT',}, // 4. Adopt Side Token }, walletAddress: { pd: '', // 5. Remote EOA for PD user: '0xa99fbcf012a5af442da0be3ab81b1bbace0f960d', // 6. Remote EOA for User }, dapp: { // 7. API Key apiKey: 'JCJCAZT6Jwg1uptbaFkyKFvJYc855WnMs6S9dVbDFd29KsgnfmFrva4kEowuse5R' }, txActionName: { // 8. Transaxctions for DApp setOwner: 'setOwner', // 9. Transaction for Custom Smart Contract getOwner: 'getOwner', // 10. Transaction for Custom Smart Contract support: 'Support', // 10. Support Transaction for Support Token adopt: 'Adopt', // 11. Adopt Transaction for Adopt Token reward: 'Reward', // 12. Reward Transaction for Adopt Token }, userName: 'dino',};

Step 10. User REOA 설정

UserA 의 REOA 설정

파일 위치: luniverse-cbt/demo-homeless-dogs/src/js/config.js

Page 64: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

64

Step 11. DApp 에서 잔고확인하기

서울유기견보호소 Demo App 에서 My Page 를

버튼을 클릭하여 사용자가 보유한 SPT, ADT 잔액을

확인한다.

- 현재는 토큰 보유량이 모두 0이기 때문에

0으로 표시된다.

Page 65: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

65

Step 12. Side Token 전송 후 잔액확인1. UserA 의 REOA 를 복사한다.

2. 발급한 Side Token 으로 이동한다.

3. Side Token Transfer 메뉴를 클릭한다.

4. Side Token Transfer 버튼을 클릭한다.

5. UserA 의 REAO 로 1000 토큰을 전송한다.

6. 토큰 전송 상태가 Transferred 가 될 때까지 기다린다.

7. 유기견 보호소에서 My Page 를 리로드해서 SPT 잔고가 1000인지 확인한다.

( Mac 사용자 : Command + R , 윈도우즈 사용자: Ctrl + R )

Page 66: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 05. ADT 사이드 토큰 발행하기

66

Page 67: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

67

Adopt 용 사이토큰을 발행한다. ADT 사이드 토큰 발행 과정은 SPT 사이드 토큰 발행 과정과 동일하다.

- Token Name : AdoptTokenXX

- Token Symbol: ADTXX

- Conversion Rate: 1MT : 10ST

- Initial Supply: 10000

- Decimals : 18

ADT Side Token 발행

Page 68: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

루니버스 콘솔의 홈 화면에서 아래쪽으로

스크롤한다 .

Side Token 옆에 ‘+’ 아이콘을 클릭하면, Create

ERC20 Side Token 버튼이 표시된다.

“Create ERC20 Side Token” 토큰을 클릭해서 Side

Token 발행 화면으로 이동한다.

Step 1. Side Token 발행화면 이동

68

Page 69: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 2. Side Token 발행하기

69

Side Token 정보를 입력합니다 .

- Token Name : AdoptTokenXX

- Token Symbol: ADTXX

- Conversion Rate: 1MT : 10ST

- Initial Supply: 10000

- Decimals : 18

입력이 완료되면 Create 버튼을 클릭해서 사이드 토큰을 만듭니다.

Page 70: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 3. 트랜잭션 서명

70

Side Token 을 발행하려면 트랜잭션에 서명이 필요합니다 .

- 회원가입시에 발급한 Private Key 나 Keystore 파일을 이용해서

트랜잭션에 서명할 수 있습니다.

트랜잭션에 서명한 후 Confirm 을 클릭하면 사이드 토큰 발행이

시작됩니다 .

Page 71: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

71

var Config = { chainId: '1550810241284903144', // 1. Chain Id mt: { symbol: 'F862', }, // 2. Main Token st: { support: { symbol: 'SPT2', }, // 3. Support Side Token adopt: { symbol: 'ADT',}, // 4. Adopt Side Token }, walletAddress: { pd: '', // 5. Remote EOA for PD user: '', // 6. Remote EOA for User }, dapp: { // 7. API Key apiKey: 'JCJCAZT6Jwg1uptbaFkyKFvJYc855WnMs6S9dVbDFd29KsgnfmFrva4kEowuse5R' }, txActionName: { // 8. Transaxctions for DApp setOwner: 'setOwner', // 9. Transaction for Custom Smart Contract getOwner: 'getOwner', // 10. Transaction for Custom Smart Contract support: 'Support', // 10. Support Transaction for Support Token adopt: 'Adopt', // 11. Adopt Transaction for Adopt Token reward: 'Reward', // 12. Reward Transaction for Adopt Token }, userName: 'dino',};

Step 4. DApp 설정 파일 변경하기

생성한 ADT 토큰 심벌을 설정한다.

파일 위치: luniverse-cbt/demo-homeless-dogs/src/js/config.js

Page 72: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 06. Reward 트랜잭션 만들기

72

Page 73: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2018. Lambda256. All rights reserved

유기견보호소 동작구조

서울시(MA)

마포구 보호소(MapoGuAccount)

End User(UserAccount)

MT : SPT (ST) = 1 : 1 MT : ADT (ST) = 1 : 10

Side Token Transfer(Support Token)

Side Token Transfer(Adopt Token )

Adopt(ADT)

Support(SPT)

Reward(ADT)

73setOwner

Page 74: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 1. Reward 트랜잭션 정의

74

MapoGuAccount 계정이 사용자 계정으로 토큰을 송금하는 트랜잭션을

정의합니다 .

- 송신자 계정은 항상 MapoGuAccount 입니다.

HomelessDog DApp 으로 이동해서 Side Token 을 이용하는 트랜잭션을

정의한다.

1. Token/Contract : ADT 사이드토큰을 선택한다.

2. Function : Free Simple Transfer

3. Action Name : Reward

4. Sender : MapoGuAccount

5. Receiver : 지정하지 않는다.

Create 버튼을 입력하여 트랜잭션을 정의한다.

Page 75: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 2. 트랜잭션 실행하기

75

DApp 의 Transaction List 에서 Reward 트랜잭션의 API 를 확인하고, curl

명령어를 복사해서 실행한다. ( curl 명령어가 없는 경우, PostMan 이나

SoapUI 와 같은 HTTP Request 를 사용할 수 있는 도구를 사용해도 된다. )

1. Reward Transaction 의 API 부분을 클릭한다.

2. curl 요청을 텍스트 편집기로 복사한다.

Page 76: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 3. 트랜잭션 실행하기

76

아래와 같이 텍스트 편집기에서 curl 요청을 변경하고, 터미널에서 curl 명령어를 실행한다.

1. transaction name : Reward2. apiKey : yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d3. receiverAddress : REOA List 에서 발급한 UserA 의 REOA4. valueAmount : 1000000000000000000 를 입력한다. ( 0이 18개임 )

curl -X POST 'https://cbt-api.luniverse.io/tx/v1.0/transactions/Reward' \ --header 'Authorization: Bearer yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d' \ --header 'Content-Type: application/json' \ --data '{ "inputs": { "receiverAddress": "0xa99fbcf012a5af442da0be3ab81b1bbace0f960d", "valueAmount": "1000000000000000000" } }'

{"result":true,"data":{"txId":"1551688927811805781","txHash":"0x79d87c7a7c3dab926b3c5f8d2ab31cfa199c66eaf0a1f9bdf0839fb890f64402","

reqTs":1551688927189}}

Page 77: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 4. 트랜잭션 확인

77

DApp 의 Transaction History 로 이동해서 해당 Transaction 의 상태를 확인한다.

- Transaction History 를 확인하면 토큰 전송 트랜잭션이 실패했다는 것을 알 수 있다.

- Transaction 이 실패한 이유는 토큰을 전송하는 MapoGuAccount 가 ADT 토큰을 가지고 있지 않기 때문이다.

Page 78: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

78

Step 5. Side Token 전송 후 잔액확인1. MapoGuAccount 의 REOA 를 복사한다.

2. ADT Side Token 으로 이동한다.

3. Side Token Transfer 메뉴를 클릭한다.

4. Side Token Transfer 버튼을 클릭한다.

5. MapoGuAccount 의 REOA 로 5000 토큰을 전송한다.

6. 토큰 전송 상태가 Transferred 가 될 때까지 기다린다.

Page 79: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

79

Step 6. ADT 토큰 잔액 확인

curl --GET 'https://cbt-api.luniverse.io/tx/v1.0/wallets/0x8d85196810fd3c2a4d4044e7c1cc49256c00981c/F053/APT/balance' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d'

{"result":true,"data":{"balance":"10000000000000000000000"}}

방금 발행한 REOA 들의 토큰 잔고를 확인해 보자. 잔고를 확인하려면 아래와 같이 요청한다.

- REOA 주소 : MapoGuAccount 의 EROA 주소

- Main Token Symbol 이름 : F053

- Side Token Symbol 이름 : ADT

- API Key : yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d

Page 80: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 7. 트랜잭션 실행하기

80

Step 3 의 트랜잭션을 재실행하고 Transaction History 에서 트랜잭션이 성공되는지 확인한다.

curl -X POST 'https://cbt-api.luniverse.io/tx/v1.0/transactions/Reward' \ --header 'Authorization: Bearer yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d' \ --header 'Content-Type: application/json' \ --data '{ "inputs": { "receiverAddress": "0xa99fbcf012a5af442da0be3ab81b1bbace0f960d", "valueAmount": "1000000000000000000" } }'

{"result":true,"data":{"txId":"1551688927811805781","txHash":"0x79d87c7a7c3dab926b3c5f8d2ab31cfa199c66eaf0a1f9bdf0839fb890f64402","

reqTs":1551688927189}}

Page 81: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

81

Step 8. DApp 에서 잔고확인하기

서울유기견보호소 Demo App 에서 My Page 를 버튼을 클릭하여 사용자가 보유한 ADT 잔액을 확인한다. ( 페이지를 리로드한다 . )

- MapoGuAccount 에서 1 토큰을 전송했기 때문에 화면에 1 토큰이 표시되어야 한다.

Page 82: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 07. Adopt 트랜잭션 만들기

82

Page 83: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 1. Adopt 트랜잭션 정의

83

사용자계정이 MapoGuAccount 로 ADT 토큰을 송금하는 트랜잭션을

정의합니다 .

- 수신자 계정은 항상 MapoGuAccount 입니다.

HomelessDog DApp 으로 이동해서 Side Token 을 이용하는 트랜잭션을

정의한다.

1. Token/Contract : ADT 사이드토큰을 선택한다.

2. Function : Free Simple Transfer

3. Action Name : Adopt

4. Sender : 지정하지 않는다.

5. Receiver : MapoGuAccount

Create 버튼을 입력하여 트랜잭션을 정의한다.

Page 84: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 2. 트랜잭션 실행하기

84

DApp 의 Transaction List 에서 Adopt 트랜잭션의 API 를 확인하고, curl

명령어를 복사해서 실행한다. ( curl 명령어가 없는 경우, PostMan 이나

SoapUI 와 같은 HTTP Request 를 사용할 수 있는 도구를 사용해도 된다. )

1. Adopt Transaction 의 API 부분을 클릭한다.

2. curl 요청을 텍스트 편집기로 복사한다.

Page 85: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 3. 트랜잭션 실행하기

85

아래와 같이 텍스트 편집기에서 curl 요청을 변경하고, 터미널에서 curl 명령어를 실행한다.

1. transaction name : Adopt2. apiKey : yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d3. from : REOA List 에서 발급한 UserA 의 REOA4. valueAmount : 1000000000000000000 를 입력한다. ( 0이 18개임 )

curl -X POST 'https://cbt-api.luniverse.io/tx/v1.0/transactions/Adopt' \ --header 'Authorization: Bearer yenSnEmVRUbmVCLv6hStz3D96n1Y71rU6HSTXftWbZ7Zti421gtgU3KGjrcw5T5d' \ --header 'Content-Type: application/json' \ --data '{ "from": "0xa99fbcf012a5af442da0be3ab81b1bbace0f960d", "inputs": { "valueAmount": "1000000000000000000" } }'

{"result":true,"data":{"txId":"1551688927811805781","txHash":"0x79d87c7a7c3dab926b3c5f8d2ab31cfa199c66eaf0a1f9bdf0839fb890f64402","

reqTs":1551688927189}}

Page 86: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 4. 트랜잭션 확인

86

DApp 의 Transaction History 로 이동해서 해당 Transaction 의 상태를 확인한다.

- Transaction History 를 확인하면 토큰 전송 트랜잭션이 성공한 것을 알 수 있다.

- 서울 유기견 보호소 My Page 를 리로드해서 잔고가 0이 되었는지 확인한다.

Page 87: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 08. DApp 사용하기 - 후원하기

87

Page 88: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2018. Lambda256. All rights reserved

유기견보호소 동작구조

서울시(MA)

마포구 보호소(MapoGuAccount)

End User(UserA)

MT : SPT (ST) = 1 : 1 MT : ADT (ST) = 1 : 10

Side Token Transfer(Support Token)

Side Token Transfer(Adopt Token )

Adopt(ADT)

Support(SPT)

Reward(ADT)

88setOwner

Page 89: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 1. 후원하기

89

서울 유기견보호서 Home Page 로 이동한다.

- 마포구 보호소를 클릭한다.

- 후원하기 버튼을 클릭하여 20SPT 를 마포구 보호소에 후원한다.

Page 90: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 2. 후원 결과 확인하기

90

서울 유기견보호소 My Page 로 이동해서 사용자의 토큰 잔고를 확인한다.

- SPT 잔고가 1000 에서 980 으로 감소했는지 확인한다.

- ADT 잔고가 0에서 200으로 증가했는지 확인한다.

Page 91: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 09. 루니버스 Atom Plugin 설치

91

Page 92: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 1. Atom Shell Command 설치

터미널에서 apm 명령어를 입력한다.

$ apm -v-bash: apm: command not found

Atom 의 Install Shell Command 를 선택해서 Shell Command 를 설치한다.

apm 명령어를 다시 입력하여 apm 이 정상 설치되었는지 확인한다.

$ apm -v apm 1.19.0npm 3.10.10node 6.9.5 x64atom 1.27.2python 2.7.15git 2.19.0

92

Page 93: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

93

전달받은 luniverse-atom-plugin.zip 파일 압축을 풉니다.- 윈도우즈 사용자 : %USERPROFILE%\temp- 맥 사용자 : ~/temp

Luniverse Atom Plugin 디렉토리로 이동한다.- 윈도우즈 사용자 : cd %USERPROFILE%\temp\luniverse-atom-plugin- 맥 사용자 : ~/temp/luniverse-atom-plugin

Step 2. Luniverse Atom Plugin

Page 94: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

npm install 을 실행하여 필요한 node 모듈을 설치한다.

$ npm install

...

94

Step 3. npm Install

Page 95: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

apm link 를 이용해서 Luniverse Atom Plugin 을 Atom 에 설정한다.

$ apm link

...

95

Step 4. apm link

Page 96: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

96

1. Command + Shift + P 를 입력한다.2. 입력 창에서 window: reload 를 입력하고 Enter 를 클릭한다.

Step 5. Plugin Load

Page 97: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

97

1. Atom 환경 설정 창을 연다. ( Command + Comm 를 입력

2. Packages 를 클릭한다.3. Installed Packages 에 Luniverse 를 입력한다.4. luniverse-atom-plugin 이 나타나는지 확인한다.

Step 6. Plugin 설치 확인

Page 98: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

98

1. Luniverse Access Token 아래에 있는 Access Token 발행 링크를 클릭한다.

2. Luniverse 계정으로 로그인한다.3. Access Token 을 복사해서 입력한다.

Step 7. Plugin 설치 확인

Page 99: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

99

Step 8. Access Token 발급1. Luniverse 계정으로 로그인한다.2. Access Token 을 복사한다.

Page 100: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

100

Step 9. Access Token 복사1. 복사한 Access Token 을 Atom Plugin 에 붙여 넣는다.

Page 101: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 10. 루니버스 Atom Plugin 사용

101

Page 102: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

102

Step 1. Solidity 파일 작성1. Solditity 로 스마트 컨트랙트를 작성한다.

Page 103: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

103

Step 2. Security Assessment1. 오른쪽 마우스 버튼을 클릭하여 Context Menu 를 띄운다.

2. Create Audit 메뉴를 클릭한다.3. Audit 을 요청하면 Luniverse Atom Plugin 은

Solidity 코드에 대한 Security Assessment 를 Luniverse 에 요청한다.

4. Security Assessment 가 완료되면 오른쪽에 Security Assessment 결과 요약본이 표시된다.

5. Detail Report 를 클릭하면 Luniverse Console 로 이동하여 상세 보고서를 조회할 수 있다.

Page 104: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

104

Step 3. Smart Contract 배포1. Solidity 파일에서 오른쪽 버튼을 클릭하여 Context

Menu 를 띄운다.2. Compile Contract Code 를 클릭한다.

Compile Contract Code 를 클릭하면 Luniverse Atom Plugin 은 Solidity Code 를 컴파일한 후에 배포할 스마트 컨트랙트를 보여준다.

Page 105: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

105

Step 4. Smart Contract 배포루니버스에서 컴파일에 성공하면, Atom Plugin 은 컨트랙트 배포를 위한 창을 출력한다.

컨트랙트 생성 창에서 컨트랙트 배포 정보를 입력하고 Apply 버튼을 클릭하여 컨트랙트 배포를 요청한다.

1. Name, Description 을 입력한다.2. Chain Select 에서 컨트랙트를 배포할 체인을

선택한다. Atom Plugin 은 계정에서 사용할 수 있는 체인 목록을 보여준다.

3. 배포할 컨트랙트를 선택한다. ( Solidity 파일에 여러 컨트랙트가 있는 경우, 모든 컨트랙트가 목록에 나타난다. )

4. 배포할 컨트랙트의 생성자 패러미터를 입력한다.5. Apply 버튼을 클릭하여 컨트랙트 배포를 요청한다.

Page 106: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

106

Step 5. Smart Contract 배포루니버스에서 솔리디티 코드 컴파일이 완료되면 ‘Contract Deploy 요청이 완료되었습니다 .’ 라는 메시지가 출력된다.

Details 버튼을 클릭하면 Luniverse Console 의 스마트 컨트랙트 배포 창으로 이동한다.

Page 107: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

107

Step 6. Smart Contract 배포루니버스 Atom Plugin 에서 컨트랙트 배포를 요청하면, 블록체인에 배포 되지 않고 배포 준비 상태가 된다. 배포 준비 상태인 컨트랙트들은 컨트랙트 목록에서 확인할 수 있다.

Ready to Deploy 버튼을 클릭해서 컨트랙트 배포 화면으로 이동한다.

Page 108: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

108

Step 7. Smart Contract 배포컨트랙트 배포 트랜잭션에 Private Key 로 사인해서 컨트랙트를 배포한다.

1. 컨트랙트 배포 정보를 확인란다.2. Create 버튼을 클릭한다.3. 트랜잭션 서명창이 뜨면, Private Key 나 Keystore 파일을 이용해서 컨트랙트 배포

트랜잭션에 사인한다.

Page 109: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

109

Step 8. Smart Contract 배포 확인배포 요청이 완료되면, 컨트랙트 목록 화면에서 배포 요청된 컨트랙트의 배포 상황을 확인할 수 있다.

- 배포상태가 Deployed 로 바뀌면 배포된 Contract Address 를 확인할 수 있다.

Page 110: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

110

pragma solidity ^0.4.18;

contract HomelessDogs { string [8] owner; function setOwner(uint _index, string _name) public { owner[_index] = _name; }

function getOwner(uint _index) public view returns (string) { return owner[_index]; }}

Step 9. HomelessDogs 배포Atom PlugIn 에서 HomelssDogs 용 Solidity 를 작성하고 배포한다.

Page 111: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

111

Step 10. getOwner 트랜잭션 정의HomelessDogs 컨트랙트의 함수를 트랜잭션으로 정의한다.

1. Token/Contract 에서 HomelessDogs 컨트랙트를 선택한다.2. Function 에서 getOwner 를 선택한다.3. Action Name 에 getOwner 를 입력한다.4. Create 버튼을 클릭하여 getOwner 트랜잭션을 정의한다.

Page 112: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

112

Step 11. setOwner 트랜잭션 정의HomelessDogs 컨트랙트의 함수를 트랜잭션으로 정의한다.

1. Token/Contract 에서 HomelessDogs 컨트랙트를 선택한다.2. Function 에서 setOwner 를 선택한다.3. Action Name 에 setOwner 를 입력한다.4. Create 버튼을 클릭하여 setOwner 트랜잭션을 정의한다.

Page 113: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 12. 입양하기

113

서울 유기견보호소 Home 에서 마포구 보호소로

이동한다.

- 입양하기를 클릭하여 강아지를 입양한다.

- 페이지를 리로드하여 강아지가 입양되었는지

확인한다.

Page 114: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Lab 11. 메타마스크 연동하기

114

Page 115: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 1. 사이드체인 접속정보 확인

115

1. Chain 탭에서 Free Trial 체인을 클릭한다.

2. Chain Overview 에서 “Validator 1” 을

클릭한다.

3. RPC HTTP Endpoint 를 복사한다.

Page 116: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 2. 메타마스크 오픈

116

1. Chrome 에서 메타마스크 Icon 을 클릭한다.

2. 메타마스크에서 네트워크(왼쪽 빨간색 부분)를 클릭한다.

Page 117: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 3. 사용자 정의 RPC

117

네트워크 목록에서 “사용자 정의 RPC” 를 선택한다.

Net Network 에 복사한 RPC HTTP Endpoint 를 붙이고,

저장을 클릭한다. ( 붙여넣을 때, http 앞쪽에 공백문자를

지워야 저장된다. )

NickName : Luniverse

Page 118: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

var Config = { chainId: '1550810241284903144', // 1. Chain Id mt: { symbol: 'F862', }, // 2. Main Token st: { support: { symbol: 'SPT2', }, // 3. Support Side Token adopt: { symbol: 'ADT',}, // 4. Adopt Side Token }, walletAddress: { pd: '', // 5. Remote EOA for PD user: '0xab9ccabe5075273d0d422236176ffb28a15c470f', // 6. Local EOA for User }, dapp: { // 7. API Key apiKey: 'JCJCAZT6Jwg1uptbaFkyKFvJYc855WnMs6S9dVbDFd29KsgnfmFrva4kEowuse5R' }, txActionName: { // 8. Transaxctions for DApp setOwner: 'setOwner', // 9. Transaction for Custom Smart Contract getOwner: 'getOwner', // 10. Transaction for Custom Smart Contract support: 'Support', // 10. Support Transaction for Support Token adopt: 'Adopt', // 11. Adopt Transaction for Adopt Token reward: 'Reward', // 12. Reward Transaction for Adopt Token }, userName: 'dino',};

Step 4. User 를 LEOA 로 변경

118

메타마스크의 EOA 를 복사한다.

파일 위치: luniverse-cbt/demo-homeless-dogs/src/js/config.js

Page 119: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

119

Step 5. LEOA 잔고 확인하기1. 유기견 보호소 페이지를 Reload 한다.

2. 유기견 보호소 My Page 로 이동하여 잔고를 확인한다.

3. 루니버스 콘솔에서 메타마스크 LEOA 로 1000 SPT 토큰을 전송한다.

4. 유기견 보호소 My Page 에서 잔고를 확인한다. ( SPT : 1000, ADT :

0)

Page 120: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

120

Step 6. Support 실행1. 마포구 보호소 페이지로 이동한다.

2. 후원하기를 클릭한 후 20SPT 후원을 클릭한다.

3. 메타마스크 서명창이 뜨면 트랜잭션을 확인한다.

4. Gas FEE 의 Edit 을 클릭해서 가스 설정 화면을

띄운다.

a. 가스가격을 1(GWei) 로 설정한다.

b. 가스한도를 2,000,000 으로 설정한다.

c. 저장을 클릭하여 서명 확인으로 이동한다.

5. 트랜잭션 서명 창에서 “승인" 버튼을 클릭하여

트랜잭션을 실행한다.

Page 121: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Copyrightⓒ 2019. Lambda256. All rights reserved

Step 7. 트랜잭션 확인하기

121

트랜잭션이 처리되면 루니버스 사이드체인

블록익스플로어러에서 트랜잭션을 확인한다.

1. 메타마스크를 클릭한다.

2. 히스토리에서 트랜잭션을 클릭한다.

3. 세부사항에서 Copy Transaction ID 버튼을 클릭한다.

4. 사이드 체인의 블록 익스플로러로 이동한다.

5. 복사한 트랜잭션을 붙여넣고 검색하여 트랜잭션을

확인한다.

Page 122: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Q&A

122

Page 123: Luniverse 사용법 교육자료 - Amazon S3 · 2019. 3. 18. · - 암호 : 암호는 8자 이상이어야 하며, 영문, 숫자, 특수문자를 하나 이상 포함해야 합니다

Thanks

123