Luniverse User Guide

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

Welcome to Luniverse!
This page provides a guide to using the Luniverse service.
Try to create various DApps by utilizing Luniverse.

Get Started

루니버스 콘솔에서 스마트 컨트랙트 배포하기

솔리디티(Solidity)로 작성한 스마트 컨트랙트를 루니버스 콘솔에서 GUI를 통해 체인에 배포합니다.

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

  • 사이드체인의 Chain Owner는 직접 사이드 체인에 스마트 컨트랙트를 배포할 수 있습니다.
  • 사이드체인의 Member는 Chain Owner의 승인을 거쳐 사이드 체인에 스마트 컨트랙트를 배포할 수 있습니다.

Console에서 스마트 컨트랙트 배포 요청하기

  1. [Console]에서 스마트 컨트랙트를 배포하고자 하는 사이드 체인을 선택하여 [Chain Overview] 페이지로 이동합니다.
  1. 왼쪽 메뉴에서 [User Contract List] 버튼을 클릭하여 [User Contract List] 페이지로 이동합니다.
  2. [User Contract List] 페이지에서는 현재 체인에 배포되어 있거나 배포 요청을 받은 스마트 컨트랙트의 리스트를 확인할 수 있습니다.
  3. [+Create User Contract] 버튼을 클릭하여 [Create User Contract] 페이지로 이동합니다.

배포하고자 하는 컨트렉트의 정보를 입력합니다.

  1. 이름(Name) : 배포할 컨트렉트의 이름을 입력합니다. 3-20자 이내의 영문/숫자와 특수문자 중 언더바(_)와 대쉬(-)를 입력할 수 있습니다. 단, 특수문자의 경우 첫번째자리와 마지막자리에는 입력이 불가합니다.

    ex. _1contract (X) 1contract- (X) 1-contract (O)

  2. 설명(Description) : 배포하고자 하는 컨트렉트의 상세 정보를 입력합니다.
  3. 컨트렉트 파일(Contract file) : .sol 형식의 컨트렉트 파일을 업로드 합니다.
  1. 컨트랙트 파일 업로드가 완료되면 [Contract Select] 기능이 활성화됩니다. 업로드한 파일 중 배포하고자 하는 컨트렉트를 선택합니다.
  2. 컨트랙트를 선택하면 최초 컨트랙트 생성에 필요한 컨트렉트 변수(Contract Parameter)에 대한 입력창이 활성화됩니다. 해당 컨트랙트 변수의 값 타입(Value Type)에 맞게 값을 입력합니다.

배포자가 Chain Owner 혹은 Chain Review권한을 가진 Member인 경우

  1. [Apply] 버튼을 클릭 하면 팝업에 “Do you want to register a contract?”메시지가 출력 됩니다.

    [OK] 버튼을 클릭하면 컨트랙트 배포 트랜잭션의 실행을 위한 개인키(Private Key) 입력 창이 팝업됩니다. 개인키(Private Key)를 입력하거나 키스토어 파일 (Keystore file)을 업로드하면 트랜잭션 사인이 진행되며 “ 컨트랙트 배포가 요청되었습니다.(Contract deploying requested)” 팝업창이 출력 됩니다. 팝업창의 [OK]버튼을 클릭하면 [User Contract List] 페이지로 이동합니다.

  1. [User Contract List] 페이지에서 배포한 컨트랙트의 상태값(Status)이 배포중(Deploying)에서 배포완료(Deployed)로 변경됩니다.

배포자가 Member인 경우

  1. [Apply] 버튼을 클릭 하면 팝업에 “Do you want to register a contract?”메시지가 출력 됩니다.

    [OK]버튼을 클릭하면 팝업에 “Registered”메시지가 출력됩니다. 팝업창의 [OK]버튼을 클릭하면 [User Contract List]페이지로 이동합니다.

  2. [User Contract List] 페이지에서 배포 요청한 컨트랙트의 상태값(Status)이 검토 요청중(Review Requested)로 변경되며, Chain Owner에게 컨트렉트 검토 및 배포의 요청이 완료됩니다.

(Chain Owner) Member가 요청한 스마트 컨트랙트 검토하기

  1. Member가 컨트랙트 리뷰 요청을 하게되면 Chain Owner의 Console 화면의 우측 하단 알림창에 “ 컨트랙트 배포 승인 요청(Contract Deploy Approve Requested)” 메시지가 나타납니다.
  2. 알림 메세지를 클릭하여 [User Contract List] 페이지로 이동합니다.
  1. [Review Required] 버튼을 클릭 하여 신청이 들어온 컨트랙트의 읽기버전(Readonly) 페이지로 이동합니다.
  1. 요청된 컨트랙트를 검토합니다. 소스코드 단에서의 검토가 필요한 경우 컨트랙트 파일(Contract File)을 다운로드하여 검토할 수 있습니다.
    5-1. 컨트랙트 승인

    (1) 검토 결과 체인 배포가 가능하다고 판단될 시, [Approve] 버튼을 클릭합니다.
    (2) 팝업창에 "본 컨트랙트의 배포를 승인하시겠습니까?(Do you want to approve deploying this contract?)" 메세지가 노출되고 [OK]버튼을 클릭하면 "요청한 컨트랙트의 배포가 승인되었습니다.(The specified contract deploy request has been approved.)"라는 메세지가 출력됩니다. 팝업창의 [OK]버튼을 클릭하면 [User Contract List]로 이동합니다.
    (3) [User Contract List]에서 승인한 컨트랙트의 상태값(Status)이 [배포 준비 완료(Ready to Deploy)]로 변경됩니다.

5-2. 컨트랙트 거절

(1) 검토 결과 체인 배포가 불가하다고 판단될 시, [Reject] 버튼을 클릭합니다.
(2) 팝업창에 "본 컨트랙트의 배포를 거절하시겠습니까?(Do you want to reject deploying this contract?)" 메세지가 노출되고 [OK]버튼을 클릭하면 "요청한 컨트랙트의 배포가 거절되었습니다.(The specified contract deploy request has been rejected.)"라는 메시지가 출력됩니다. 팝업창의 [OK]버튼을 클릭하면 [User Contract List]로 이동합니다.
(3) [User Contract List]에서 승인한 컨트랙트의 상태값(Status)이 [읽기버전(Readonly)]으로 변경됩니다.

(Member) 검토 완료된 스마트 컨트랙트 배포하기

  1. 컨트랙트 배포 요청을 한 사이드체인의 [User Contract List] 페이지로 이동합니다.
  2. [User Contract list]페이지에서 상태값(Status)이 [배포 준비 완료(Ready to deploy)]인 컨트랙트를 클릭하여 승인된 컨트랙트의 상세 페이지로 이동합니다.
  1. [배포하기(Deploy)] 컨트랙트 배포 트랜잭션의 서명를 위해 개인키(Private Key) 입력 창이 팝업됩니다. 개인키(Private Key)를 입력하거나 키스토어(Keystore) 파일을 업로드하면 트랜잭션 사인이 진행되며 “ 컨트랙트 배포가 요청되었습니다.(Contract deploying requested)” 팝업창이 출력 됩니다. 팝업창의 [OK]버튼을 클릭하면 [User Contract List] 페이지로 이동합니다.
  2. [User Contract List] 페이지에서 배포한 컨트렉트의 상태값(Status)이 배포중(Deploying)에서 배포완료(Deployed)로 변경됩니다.

루니버스 콘솔에서 스마트 컨트랙트 배포하기


솔리디티(Solidity)로 작성한 스마트 컨트랙트를 루니버스 콘솔에서 GUI를 통해 체인에 배포합니다.

Suggested Edits are limited on API Reference Pages

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