Luniverse User Guide

루니버스 사용을 환영합니다!
이 페이지에서는 루니버스 서비스 사용 가이드를 제공합니다.
루니버스를 사용하여 다양한 디앱(DApp)을 제작해보세요.

Get Started

데모 DApp 체험하기

앞에서 학습한 루니버스의 기능을 종합하여 데모 DApp을 생성해봅니다.

CBT 교육자료 및 설문조사 링크

[루니버스 CBT 교육 만족도 설문조사]
Luniverse CBT 교육에 참여해 주신 모든 분들께 감사 드립니다.
더욱 나은 서비스로 거듭나기 위하여 설문조사를 요청드리니 참여 부탁 드립니다.
https://goo.gl/forms/EShAjbbiLj4EW2zU2

[실습자료]
https://s3.ap-northeast-2.amazonaws.com/luniverse/cbt-demo/tutorial.pdf

https://s3.ap-northeast-2.amazonaws.com/luniverse/cbt-demo/luniverse-cbt.zip

데모 DApp 체험하기

루니버스를 이용하여 DApp을 개발하는 과정을 Homeless Dog Demo Dapp을 만들며 복습해 봅니다.
클라이언트(Front-end)는 HTML과 AJAX로 개발되어 있으며 서버(Back-end)는 루니버스를 사용하여 DApp과 Transaction을 정의합니다.
클라이언트와 서버간의 통신은 루니버스에서 제공하는 REST API를 사용하여 진행합니다.

클라이언트 세팅하기

DApp 소스 내려 받기

1.Git 서버에서 HomelessDog Demo App의 소스파일을 다운받습니다.
https://s3.ap-northeast-2.amazonaws.com/luniverse/cbt-demo/luniverse-cbt.zip

2.demo-homeless-dogs/src/js 디렉토리로 이동합니다.

  • $ cd demo-homeless-dogs/src/js

3.config.js 파일을 열어서 설정을 확인합니다.
4.본 파일에 있는 내용을 루니버스 콘솔에서 설정한 후, 각자의 설정 내용을 config.js 파일에 반영합니다.

var Config = {
  chainId: '1549700365125574752',
  mt: { 
    symbol: 'FTT',  // 1. Sidechain 의 Main Token 의 Symbol 을 설정한다.
  },
  st: {
    support: {
      symbol: 'SPT', // 2. FTT Main Token 과 연결된 Side Token symbol 을 설정한다.
    },
    adopt: {
      symbol: 'ADT', // 3. FTT Main Token 과 연결된 Side Token Symbol 을 설정한다.
    },
  },
  walletAddress: {
    // 4. PKMS 에서 PDAccount 를 만들어서 설정한다.
    pd: '0xee496921e4702d70714a2d77792471456cb1c9ed', 
    // 5. PKMS 에서 사용자  Account 를 만들어서 설정한다.
    user: '0x7fde41d1afdfd20674bc20294500850cb9efedc1'
  },
  dapp: {
    apiKey: // 5. HomelessDog 의 API Key 를 설정한다. 'CFnQFfTKgaUakhrmdWsSSn5w1aE1pZxK8HUx3mUb3DnVfhHZZGihzrNo24naQC1o
    
      },
  txActionName: {
    // 6. HomelessDogs.sol 컨트랙트의 함수를 트랜잭션으로 설정한다.
    setOwner: 'setOwner',
    getOwner: 'getOwner',

    // 7. SPT Token 의 Free Payed Transfer 를 트랜잭션으로 설정한다.
    support: 'Support',

    // 7. ADT Token 의 Free Payed Transfer 를 트랜잭션으로 설정한다.
    adopt: 'Adopt',
    reward: 'Reward',
  },
  userName: 'dino',
};

DApp 실행하기

웹서버 실행하기 : Homeless Dog Application 을 브라우저에서 접속하기 위해서는 웹 서버를 실행해야 합니다. 이 예제에서는 node.js 의 static-server 를 이용해서 웹 서비스를 제공합니다. Homeless Dog 에 Static-server 를 적용하려면 다음과 같은 순서로 진행합니다.

  1. Homeless Dog 소스 디렉토리로 이동합니다.
    • $ cd demo-homeless-dogs/src
  2. Static-server npm 모듈을 설치합니다.
    • $ npm install static-server
  3. Homeless-dog Application 을 서비스하기 위한 웹 서버를 실행합니다.
./node_modules/.bin/static-server
options.index is now deprecated please use options.templates.index instead.
* Static server successfully started.
* Serving files at: http://localhost:9080
* Press Ctrl+C to shutdown.
  1. Homeless Dog Demo는 아직 블록체인과 연결되지 않은 web-application입니다.
  2. 브라우저에서 http://localhost:9080 로 접속합니다.
  1. 위와 같이 Homeless Dog 페이지가 노출되면 클라이언트 세팅이 완료되었습니다.

서버 세팅하기

루니버스 콘솔에서 아래와 같이 서버를 세팅합니다.

사이드체인 환경 구축 및 MT 생성은 유료로 체인 플랜을 구매하여야 진행이 가능한 부분으로 배제하고 무료인 Free Trial 버전에서 적용할 수 있도록 ST를 생성하여 Demo DApp의 서버를 세팅합니다.

Side Token 생성하기

  • guide: 사이드 토큰(ST) 발행하기

  • [Console]상에서 Homeless Dog 에서 사용할 2가지 토큰을 생성합니다 - SupportToken(SPT), AdoptToken(ADT) . 각 토큰의 명세는 다음과 같습니다.

(1) SupportToken(SPT)

-TokenName: SupportToken
-TokenSymbol: SPT
-1MT: 100.00 PT
-Initial Supply: 10000
-Decimal: 18

(2) AdoptToken(ADT)

-TokenName: AdoptToken
-TokenSymbol: ADT
-1MT: 100.00 PT
-Initial Supply : 10000
-Decimal: 18

HomelessDog용 루니버스 DApp 및 API Key 생성하기

-DApp Name: HomelessDog
-DApp Description: Homeless Dog

Homeless Dog용 스마트 컨트랙트 배포 하기

  1. 콘솔에서 User Contract List로 배포하기
  2. guide: Console에서 스마트 컨트랙트 배포하기

  3. Atom IDE로 배포하기

  4. guide: Atom IDE로 스마트 컨트랙트 배포하기

-Contract Name: Homeless Dog
-Description: Homeless Dog
-Contract File : HomelessDog.sol
-Contract Select : HomelessDogs ( contract file 첨부 후 선택 )

/*HomelessDog.sol*/

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];
 }
}

루니버스 Dapp에서 Homeless Dog용 트랜잭션 정의하기

Homeless Dog에서는 getOwner와 setOwner 라는 유기견의 소유주를 블록체인상에 쓰고 읽는 2개의 트랜잭션을 필요로 합니다. 이를 위해 다음과 같이 2개의 트랜잭션을 정의합니다.

(1) getOwner Function 정의

-Token/Contract: [User Contract] HomelessDapp
-Function: getOwner(uint256)
-Action Name: getOwner
-Description: getOwner

(2) setOwner Function 정의

-Token/Contract: [User Contract] HomelessDapp
-Function: setOwner(uint256, string)
-Action Name: setOwner
-Description: setOwner

Homeless Dog용 Dapp의 EOA List 정의하기

Homeless Dog에서는 PDAccount와 UserAccount라는 2개의 EOA를 필요로 합니다. 이를 위해 아래 2개의 EOA를 생성하되 개인키를 서버에서 관리하기 위해 REOA(Remore EOA)형태로 계정을 생성합니다.

PDAccount 생성

-Name: PDAccount
-Description: PDAccount

User Account 생성

-Name: UserAccount
-Description: UserAccount

Homeless Dog용 Side Token(SPT,ADT)의 트랜잭션 정의하기

(1)Support Transaction 생성하기

-Token/Contract: [Side Token] SPT (SupportToken)
-Function: Free Simple Transfer
-Action Name: Support
-Description: Support

(2)Reward Transaction 생성하기

-Token/Contract: [Side Token] ADT (AdoptToken)
-Function: Free Simple Transfer
-Action Name: Reward
-Description: Reward

(3)Adopt Transaction 생성하기

-Token/Contract: [Side Token] ADT (AdoptToken)
-Function: Free Simple Transfer
-Action Name: Adopt
-Description: Adopt

PDAccount와 UserAccount에 Side Token전송하기

(1) 생성된 ADT Token을 PDAccount에게 전송

-Recipient: PDAccount EOA Address 입력
-Amount Sent : 10000

(2) 생성된 SDT Token을 User Account에게 전송

-Recipient: 2-5의 UserAccount EOA Address 입력
-Amount Sent: 10000

Luniverse Transaction API에 IP Whitelist 등록하기

-Add Whitelist IP클릭 후, demo-homeless-dogs가 적용된 머신의 outbound ip주소를 등록합니다.

클라이언트와 서버 연결하기

DApp 연결하기

  1. demo-homeless-dogs 디렉토리로 이동합니다.
    $> cd demo-homeless-dogs
  2. src/js/config.js 파일을 변경합니다.
  3. 변경된 파일은 다음과 같습니다.
    **로 표시된 부분은 Luniverse Console에서 사이드 체인 ID, MT symbol, ST symbol, PD 및 User의 EOA Address, DApp API Key를 확인하여 입력해야 합니다.


var Config = {
  chainId: '**1549700365125574752**',
  mt: {
    symbol: '**F1879**',
  },
  st: {
    support: {
      symbol: '**SPT**',
    },
    adopt: {
      symbol: '**ADT**',
    },
  },
  walletAddress: {
    pd: '**0x2757619b095881be255f9880ae7e81e2118ba84c**',
    user: '**0x4dd643ff0eb9798792e3d28a36a668be15cd8c62**'
  },
  dapp: {
    apiKey: '**KcUSCE7iCZoJfud8iLdmBLdZBrRyVai4e5o6x8d9c4ZpYu2h5mwtmhEPm6285f23**'
  },
  txActionName: {
    setOwner: 'setOwner',
    getOwner: 'getOwner',
    support: 'Support',
    adopt: 'Adopt',
    reward: 'Reward',
  },
  userName: 'tester',
};

DApp 실행하기

  1. demo-homeless-dogs/src 디렉토리로 이동합니다.
    $> cd demo-homeless-dogs/src
  2. 만약 웹 서버가 설치되어 있지 않다면 다음 명령어를 이용하여 Static-server npm 모듈을 설치합니다
    $> npm install static-server
  3. Homeless-dog Application 을 서비스하기 위한 웹 서버를 실행합니다.
    $> ./node_modules/.bin/static-server
./node_modules/.bin/static-server
options.index is now deprecated please use options.templates.index instead.
* Static server successfully started.
* Serving files at: http://localhost:9080
* Press Ctrl+C to shutdown.
  1. 브라우저에서 http://localhost:9080 로 접속합니다.

데모 DApp 체험하기


앞에서 학습한 루니버스의 기능을 종합하여 데모 DApp을 생성해봅니다.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.