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

솔리디티(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)로 변경됩니다.

콘솔에 배포한 스마트 컨트랙트 삭제하기

다수의 컨트랙트를 등록하고 더이상 사용하지 않는 컨트랙트가 있는 경우, 유저 컨트랙트 리스트(User Contract List)에서 해당 컨트랙트를 삭제하고 관리할 수 있습니다.
Side Chain에 Deploy된 컨트랙트가 삭제되지는 않습니다. 콘솔에서 노출되는 리스트에서만 삭제됩니다.

  1. 컨트랙트를 삭제/관리할 사이드체인의 [User Contract List] 페이지로 이동합니다.
  2. 컨트랙트 리스트에서 삭제할 컨트랙트 항목의 [휴지통] 버튼을 클릭합니다.
  1. 컨트랙트 삭제 팝업 내용을 확인하고 [OK] 를 클릭합니다.

❗️

컨트랙트를 삭제하기 전에 다시 한 번 확인해주세요!

컨트랙트를 리스트에서 삭제하면 다시 되돌릴 수 없습니다!
Side Chain에 Deploy된 컨트랙트가 삭제되지는 않습니다. 콘솔에서 노출되는 리스트에서만 삭제됩니다.

  1. 컨트랙트가 정상적으로 삭제되었습니다. 확인 팝업의 [OK]를 클릭합니다.
  1. 유저 컨트랙트 리스트(User Contract List)에서 기본적으로 삭제된 컨트랙트를 포함한 모든 컨트랙트를 확인할 수 있습니다. [View All] 토글버튼을 클릭하여 삭제된 컨트랙트를 제외한 리스트를 확인할 수 있습니다.