Luniverse
Luniverse2.0-kor
Search…
⌃K
Links

Smart Contract 배포하기

루니버스에서는 GUI 를 통해 사이드 체인 (Side Chain) 에 스마트 컨트랙트 (Smart Contract) 를 배포하여 블록체인 트랜잭션 (Blockchain Transaction) 을 발생시킬 수 있습니다.
  • 루니버스에서는 솔리디티 (Solidity) 기반으로 작성된 스마트 컨트랙트 (Smart Contract) 를 Luniverse PoA 와 Hyperledger Besu 에 배포하여 사용할 수 있습니다.

Smart Contract 배포하기

1. Home 좌측 메뉴에서 [Contract] → [Smart Contract] 를 선택합니다.
2. [Deploy Management] 탭을 선택합니다.
3. [Deploy & Import] 를 클릭하여 스마트 컨트랙트 (Smart Contract) 배포 과정으로 이동합니다.
4. 루니버스에서는 다음과 같이 두 가지 방법을 통해 배포할 스마트 컨트랙트 (Smart Contract) 정보를 불러올 수 있습니다.
  • 등록된 Contract Resource 를 불러오는 방법
  • 외부에서 배포한 스마트 컨트랙트 (Smart Contract) 를 불러오는 방법

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

5. [Retrieve stored contract resource] 라디오 버튼을 선택합니다.
6. Select Environment 메뉴에서 스마트 컨트랙트 (Smart Contract) 를 배포할 Environment 를 선택합니다.
Environment 관련 가이드는 아래 링크를 확인하세요.
👇
7. 선택한 Environment 에 Environment Account (루니버스 지갑 계정) 이 없는 경우에는 [+Create Environment Account] 를 클릭하여 Environment Account 를 생성합니다.
상세한 Environment Account 발급 가이드는 아래 링크를 확인하세요.
👇
8. Select Contract Resource 메뉴에서 배포할 Contract Resource 를 선택합니다.
9. 등록된 Contract Resource 가 없는 경우에는 [+Create New Contract Resource] 를 클릭하여 Contract Resource 를 생성하고 업로드합니다.
10. 선택한 Contract Resource 등록시 입력한 Name 과 Description 정보가 나타납니다. 이 정보들은 수정이 가능합니다. 이때 입력한 Name 은 특수문자를 제외한 3~32 자리의 문자로 구성되어야 합니다. 입력된 Name 은 다수의 Contract Resource 가 등록/배포된 경우 컨트랙트 구분 및 검색을 위한 검색어 용도로 사용됩니다.
상세한 Contract Resource 업로드 가이드는 아래 링크를 확인하세요.
👇
10. 선택한 Contract Resource 등록시 입력한 Name 과 Description 정보가 나타납니다. 이 정보들은 수정이 가능합니다.
11. 배포할 스마트 컨트랙트 (Smart Contract) 를 선택합니다.
12. 선택한 스마트 컨트랙트 (Smart Contract) 가 파라미터 (Parameter) 를 필요로 하는 경우에는 하단에 파라미터(Parameter) 에 대한 입력 필드가 추가됩니다. Name, Type 내용에 맞춰 Value 에 값을 입력합니다.
13. [Deploy] 를 클릭하면 Private Authentication 팝업이 나타납니다.
14. Private Authentication 에 대한 내용은 본 문서의 아래 Private Authentication 처리 에서 다루도록 하겠습니다.

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

5. [Import contract address & bytecode] 버튼을 선택합니다.
6. 스마트 컨트랙트 (Smart Contract) 를 배포할 Environment 를 선택합니다.
상세한 Environment 가이드는 아래 링크를 확인하세요.
👇
7. 선택한 Environment 에 Environment Account 가 없는 경우에는 [+Create Environment Account] 를 클릭하여 Environment Account 를 생성합니다.
8. 불러올 스마트 컨트랙트 (Smart Contract) 의 이름을 입력합니다. 불러올 스마트 컨트랙트의 Name 은 특수문자를 제외한 3~32 자리의 문자로 구성되어야 합니다. 입력된 Name 은 다수의 Smart Contract 가 등록/배포된 경우 컨트랙트 구분 및 검색을 위한 검색어 용도로 사용됩니다.
상세한 Environment Account 발급 가이드는 아래 링크를 확인하세요.
👇
8. 배포할 스마트 컨트랙트 (Smart Contract) 의 이름을 입력합니다. 이름은 3~32 자리의 문자로 구성되어야 합니다.
9. 스마트 컨트랙트 (Smart Contract) 에 대한 설명을 입력합니다. (옵션)
10. 외부에서 배포한 스마트 컨트랙트의 주소 (Smart Contract Address) 를 입력합니다.
11. 외부에서 배포한 스마트 컨트랙트 (Smart Contract) 의 ABI 를 입력합니다.
12. 외부에서 배포한 스마트 컨트랙트 (Smart Contract) 의 Bytecode 를 입력합니다.
13. [Deploy] 를 클릭하면 Private Authentication 팝업이 나타납니다.
14. Private Authentication 에 대한 내용은 본 문서의 아래 Private Authentication 처리 에서 다루도록 하겠습니다.
Import contract address & bytecode 기능을 통해 외부에서 배포한 스마트 컨트랙트를 불러와 배포하게 되면, 해당 스마트 컨트랙트 (Smart Contract) 의 정보는 Contract Resource 로 생성되고 자동으로 업로드됩니다.

Private Authentication 처리

1. 위에서 선택한 스마트 컨트랙트 (Smart Contract) 를 배포할 Environment 에 있는 Environment Account 중에서 하나를 선택합니다.

Environment Account 가 EOA (Externally Owned Account) 타입인 경우

2. Authentication 종류를 선택합니다.
  • Download Keystore File (VALUT Service) + Passphrase
    3. Environment Account 생성시 설정했던 Passphrase 값을 입력합니다.
    4. [Confirm] 을 클릭하면 스마트 컨트랙트 (Smart Contract) 배포가 진행됩니다.
  • Upload Keystore File + Passphrase
    3. [Upload File (json)] 을 클릭합니다.
    4. Environment Account 생성시 다운로드받았던 Keystore File 을 선택합니다.
    5. Environment Account 생성시 설정했던 Passphrase 값을 입력합니다.
    6. [Confirm] 을 클릭하면 스마트 컨트랙트 (Smart Contract) 배포가 진행됩니다.
  • Enter Private Key
    3. Environment Account 생성시 발급받았던 Private Key 값을 입력합니다.
    4. [Confirm] 을 클릭하면 스마트 컨트랙트 (Smart Contract) 배포가 진행됩니다.

Environment Account 가 DEOA (Delegated EOA) 타입인 경우

2. [Confirm] 을 클릭하면 배포가 진행됩니다.

Authenticate by DEOA

DEOA (Delegated EOA) 는 개인키 (Private Key) 를 루니버가 대신 관리합니다. DEOA 를 선택하는 경우, 서명이 자동으로 진행됩니다.

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 정보
  • Contract Address : 스마트 컨트랙트 (Smart Contract) 주소
  • Environment : 스마트 컨트랙트 (Smart Contract) 가 배포된 Environment 정보
  • Developed 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) 가 삭제되더라도 거래 내역은 그대로 남습니다.