Contract Deployment

루니버스에서는 GUI를 통해 사이드 체인 (Side Chain)에 스마트 컨트랙트 (Smart Contract)를 배포하여 블록체인 트랜잭션 (Blockchain Transaction)을 발생시킬 수 있습니다.

Smart Contract 배포하기

  1. Home 좌측 메뉴에서 Contract > Smart Contract를 선택합니다.

  1. [Deploy Management] 탭을 선택합니다.

  1. [Deploy & Import]를 클릭하여 스마트 컨트랙트 (Smart Contract) 배포 과정으로 이동합니다.

  1. 루니버스에서는 다음과 같이 두 가지 방법을 통해 배포할 스마트 컨트랙트 (Smart Contract) 정보를 불러올 수 있습니다.
  • 등록된 Contract Resource 를 불러오는 방법
  • 외부에서 배포한 스마트 컨트랙트 (Smart Contract) 를 불러오는 방법

등록된 Contract Resource 를 불러오는 방법

  1. [Retrieve stored contract resource] 라디오 버튼을 선택합니다.
  2. Select Environment 메뉴에서 스마트 컨트랙트 (Smart Contract)를 배포할 Environment를 선택합니다.
  3. 선택한 Environment에 Environment Account (루니버스 지갑 계정)이 없는 경우에는 [+Create Environment Account]를 클릭하여 Environment Account를 생성합니다. Environment Account는 Account(Wallet)페이지를 참고하여 생성할 수 있습니다.
  4. Select Contract Resource 메뉴에서 배포할 Contract Resource를 선택합니다.
    • 등록된 Contract Resource가 없는 경우에는 [+Create New Contract Resource]를 클릭하여 Contract Resource를 생성하고 업로드합니다.
  5. 선택한 Contract Resource 등록 시, Name과 Description 정보를 입력할 수 있는 Box가 나타납니다. 이 정보들은 수정이 가능합니다. Name은 특수문자를 제외한 3~32 자리의 문자로 구성되어야 하며, Description Box를 이용해 해당 Contract Resources에 대한 설명을 입력할 수 있습니다.(선택 사항) 입력된 Name은 다수의 Contract Resource가 등록/배포된 경우 컨트랙트 구분 및 검색을 위한 검색어 용도로 사용됩니다.
  6. 배포할 스마트 컨트랙트 (Smart Contract)를 선택합니다.
  7. 선택한 스마트 컨트랙트 (Smart Contract)가 파라미터 (Parameter)를 필요로 하는 경우에는 하단에 파라미터(Parameter)에 대한 입력 필드가 추가됩니다. Name, Type 내용에 맞춰 Value에 값을 입력합니다.
  8. [Deploy]를 클릭하면 Private Authentication 팝업이 나타납니다.
  9. Private Authentication에 대한 내용은 본 문서 하단의 Private Authentication 처리에서 다루도록 하겠습니다.

외부에서 배포한 스마트 컨트랙트 (Smart Contract) 를 불러오는 방법

  1. [Import contract address & bytecode] 버튼을 선택합니다.
  2. 스마트 컨트랙트 (Smart Contract)를 배포할 Environment를 선택합니다.
  3. 선택한 Environment에 Environment Account가 없는 경우에는 [+Create Environment Account]를 클릭하여 Environment Account를 생성합니다.
  4. 불러올 스마트 컨트랙트 (Smart Contract)의 이름을 입력합니다. 불러올 스마트 컨트랙트의 Name은 특수문자를 제외한 3~32 자리의 문자로 구성되어야 합니다. 입력된 Name은 다수의 Smart Contract 가 등록/배포된 경우 컨트랙트 구분 및 검색을 위한 검색어 용도로 사용됩니다.
  5. 스마트 컨트랙트 (Smart Contract)에 대한 설명을 입력합니다. (선택 사항)
  6. 외부에서 배포한 스마트 컨트랙트의 주소 (Smart Contract Address)를 입력합니다.
  7. 외부에서 배포한 스마트 컨트랙트 (Smart Contract)의 ABI 를 입력합니다.
  8. 외부에서 배포한 스마트 컨트랙트 (Smart Contract)의 Bytecode 를 입력합니다.
  9. [Deploy] 를 클릭하면 Private Authentication 팝업이 나타납니다.
  • EOA 타입의 Environment Account를 사용하는 경우 아래 Authentication 옵션 중 하나를 선택하여 수행합니다.
    • Download Keystore File (VALUT Service) + Passphrase
      1. Environment Account 생성 시 설정했던 Passphrase 값을 입력합니다.
      2. [Confirm]을 클릭하면 스마트 컨트랙트 (Smart Contract) 배포가 진행됩니다.

    • Upload Keystore File + Passphrase
      1. [Upload File (json)]을 클릭합니다.
      2. Environment Account 생성 시 다운로드받았던 Keystore File을 선택합니다.
      3. Environment Account 생성 시 설정했던 Passphrase 값을 입력합니다.
      4. [Confirm]을 클릭하면 스마트 컨트랙트 (Smart Contract) 배포가 진행됩니다.

    • Enter Private Key
      1. Environment Account 생성 시 발급받았던 Private Key 값을 입력합니다.
      2. [Confirm]을 클릭하면 스마트 컨트랙트 (Smart Contract) 배포가 진행됩니다.

  • DEOA 타입의 Environment Account를 사용하는 경우 [Confirm]버튼을 클릭하면 배포가 진행됩니다.

📘

Import를 통한 Contract Resource 등록

Import contract address & bytecode 기능을 통해 외부에서 배포한 스마트 컨트랙트를 불러와 Import하게 되면, 해당 스마트 컨트랙트 (Smart Contract)의 정보는 Contract Resource로 생성되고 자동으로 Luniverse Console에 업로드 됩니다.


Smart Contract 관리하기

루니버스에서는 배포한 스마트 컨트랙트 (Smart Contract)의 목록 및 현재 상태 정보를 확인할 수 있습니다. 배포가 완료된 스마트 컨트랙트 (Smart Contract)의 탭을 클릭하여 상세 정보를 확인할 수 있고, 원하는 스마트 컨트랙트 (Smart Contract)를 삭제할 수 있습니다.

  1. Home 좌측 메뉴에서 [Contract] → [Smart Contract]를 선택합니다.
  2. [Deploy Management] 탭을 선택합니다.
  3. STATUS 항목을 통해 스마트 컨트랙트 (Smart Contract)의 배포 상태를 확인할 수 있습니다. 상태 정보의 종류는 아래와 같습니다.
    • Deploying : 배포 진행 중
    • Deployed : 배포 완료
    • Denied : 배포가 권한 문제로 거절됨
    • Failed : 배포 실패

  4. STATUS 항목 값이 배포 완료 (Deployed)인 항목의 경우, 클릭하면 다음과 같은 상세 정보를 확인할 수 있습니다.
    • Smart Contract Name : 스마트 컨트랙트 (Smart Contract)의 이름
    • Description : 스마트 컨트랙트 (Smart Contract)에 대한 설명
    • Selected Contract : 스마트 컨트랙트 (Smart Contract) 배포시 사용된 Contract Resource의 이름
    • Contract Address : 스마트 컨트랙트 (Smart Contract)의 주소
    • Environment : 스마트 컨트랙트 (Smart Contract) 가 배포된 Environment에 대한 ID
    • Deployed by : 스마트 컨트랙트 (Smart Contract) 를 배포한 사용자 정보
    • Creation Time : 스마트 컨트랙트 (Smart Contract) 가 배포된 일자
    • Constructor Parameters : 스마트 컨트랙트 (Smart Contract) 배포시 입력한 파라미터 (Parameter) 정보
    • Contract Resource : 사용된 Contract Resource 의 Type 정보 (Solidity 또는 ABI + Bytecode)
    • SOURCECODE : 사용된 Contract Resource의 Type 이 Solidity인 경우, 솔리디티 파일 (Solidity File (.sol))의 내용
    • ABI : 사용된 Contract Resource의 Type이 ABI + Bytecode인 경우, ABI의 내용
    • BYTECODE : 사용된 Contract Resource의 Type 이 ABI + Bytecode인 경우, Bytecode의 내용

  5. 우측에 위치한 휴지통 모양의 삭제 버튼을 통해 해당 스마트 컨트랙트 (Smart Contract)를 삭제할 수 있습니다. 삭제된 데이터는 복구되지 않으니 주의하시기 바랍니다. (스마트 컨트랙트 (Smart Contract)가 삭제되더라도 거래 내역은 그대로 남습니다.)