원문 출처:https://testnet.iohkdev.io/cardano/shelley/about/testnet-introduction/

테스트넷 소개

Cardano Shelley testnet은 우리 커뮤니티의 ada사용자와 개발자가 스테이킹을 실험하고 Cardano의 스테이크 풀 모집을 구축하는 데 도움이 되는 방법을 제공한다. Shelley 개발 단계로 옮겨 가면서 중요한 이정표를 남기고 커뮤니티가 블록체인의 완전한 관리와 책임을 수행하는 날을 준비하는 데 도움이 될 것이다. Staking은 지분 보유자들이 그들의 재산을 결합시켜서 Cardano 플랫폼상에서 하나의 풀 또는 단일 지분을 형성하는 과정이다. 결합된 스테이크 풀을 가짐으로써, 더 많은 주체가 프로토콜에 참여할 수 있으며, 이러한 상시 가동형 적 커뮤니티 실행 네트워크 노드는 모두 장부 관리에 기여한다.

우리는 단계별로 이 스테이크 풀 테스트 넷을 배포하고 있다. 각 단계에서는 탈중앙화 과정을 따라 핵심 구성 요소가 전달되는 것을 보고 각 단계에서 지원을 제공할 것이다. 첫 번째 단계는 Rust 자체 노드 또는 ‘상자 안에 블록체인’을 호스트하는 기능을 제공한다. 우리는 당신이 스테이크 풀이 어떻게 운영되는지를 볼 수 있는 곳에서 당신 자신의 시스템을 운영하고 기본 구성을 확립하는 것을 도울 것이다. 두 번째 단계는 다양한 노드를 연결하고 단일 통합된 testnet을 구축하는 단계이다. 마지막으로, 세 번째 단계에서는 참가자들에게 네트워크를 통한 정직한 참여에 대한 보상을 제공하기 위해 위임 및 인센티브 제도를 추가한다.

우리는 우리의 커뮤니티 회원이 이 testnet에 참여하도록 권장한다. 스테이크 풀 운영자는 다양한 구성과 시나리오를 실험할 수 있다. 이를 통해 우리는 훨씬 광범위한 베타 테스트 결과와 직접적인 피드백을 얻을 수 있으며,이를 통해 우리의 코드 기반을 개선할 수 있다. 이러한 단계적 접근 방식을 통해 우리는 점진적으로 일련의 풀 세트를 구축하고 이를 카르 다노의 탈중앙화에 대한 통제된 이행의 기초로 사용할 수 있다. 스테이크 풀의 특정 임계 값에 도달하고 Cardano 커뮤니티에서 더 많은 노드를 실행하면 스테이킹이 원활하게 메인 넷으로 이행된다. 현재 Cardano는 다른 대형 블록체인 네트워크보다 50-100배 더 탈중앙화 되어있을 것으로 기대한다.

우리는 Cardano에서 공식적으로 발표되기 전에 귀하의 의견을 경청하는 것을 기대한다. 스테이크에 대한 자세한 내용을 보려면 스테이킹 웹 사이트를 방문하십시오.

기술 및 요구 조건

Cardano의 스테이크 풀 운영자는 일반적으로 다음과 같은 기술을 보유하게 된다.

  • Cardano 노드를 24시간/7요일/365일(항상) 연속으로 실행하고 유지 관리하는 방법에 대한 운영 지식
  • 서버의 유지 관리 경험이 바람직함
  • 기본적인 sysop 기술
  • DevOps 실용적인 경험은 매우 유용할 것임
  • 리눅스 시스템 관리 기술
  • 기본적인 닉스 스킬

스테이킹이 어떻게 작동되는 지에 대한 방법에 대해 궁금한 점이 있으시면 스테이크 웹 사이트 및 자세한 FAQ 페이지를 방문하길 바란다. 역자주: 한국어판은 역자가 번역한 https://cardano.ipclub29.com/stake-faq/ 를 참고로 할 것. 

하부 구조

우리는 이 testnet을 위해 Linux, Mac 및 Windows 플랫폼을 지원한다. 다음 버전이 필요하다.

  • 윈도우 10
  • Linux (2.6.18 이상)
  • OSX (10.7 Lion 이상)

우리는 각 플랫폼에 패키지 설치 프로그램을 제공할 것이다 : Windows용 Chocolatey 패키지, Linux용 Snaps 및 Mac용 Homebrew. 우리는 또한 쉬운 설치를 위해 도커 이미지를 배포할 계획이다.

Rust 자체 노드를 실행하려면 다음 인프라를 권장한다.

  • 러스트의 최소 버전 1.35.
  • Linux용 Windows하위 시스템 (WSL). WSL 설치 방법
  • 우분투 버전 18.
  • Linux 또는 Mac의 경우 IOHK 캐시가 활성화된 Nix를 설치해야 함. 그러면 노드 구축 속도가 빨라짐. Nix IOHK 캐시를 설정하는 방법
  • 적절한 디스크 공간 : 블록체인을 확장하려면 충분한 공간이 필요함. 적어도 35GB의 솔리드 스테이트 드라이브 (SSD)가 권장됨.

셀프 노드 셋업하기

첫 번째 단계는 자체 노드를 설치하고 설정하는 것이다. 노드는 Cardano를 실행하는 기본 Ouroboros 프로토콜을 구현하는 소프트웨어이다. 그 역할은 네트워킹, 트랜잭션, 블록 등과 관련된 작업을 수행하는 것이다.

이 노드는 대부분의 플랫폼에서 작동하며 블록체인에 쉽게 연결할 수 있다. Rust 소스 코드에는 두 가지 도구가 포함되어 있다.즉, Jörmungandr, Cardano 노드 및 JCLI(명령줄 인터페이스)

소스에서 설치할 수는 있지만 배포판에서 수행하는 것이 좋다. 설정하는 데 도움이 되는 비디오 안내서가 있다.

Jörmungandr을 배포판에서 설치하는 방법 :

  1. 릴리스 사이트로 이동.
  2. 하드웨어 및 운영 체제와 일치하는 파일을 선택.
  3. 링크를 클릭하여 파일을 다운로드.
  4. 파일의 압축을 해제.
  5. 실행 파일을 시스템의 PATH에 추가.
  6. GitHub 저장소의 Scripts 폴더로 이동.
  7. 부트스트랩 스크립트를 오픈.
  8. Raw 단추를 클릭.
  9. 스크립트(.sh)로 저장 후 실행 권한을 부여.
  10. 파일을 실행

         bootstrap.sh

     11.노드를 시작하려면 다음 명령을 실행.

   jormungandr –genesis-block block-0.bin –config config.yaml –secret poolsecret1.yaml

스크립트를 사용한다면 다음 결과를 기대할 수 있다.

셀프노드 구성에는 자신만의 블록체인을 만들고 매개 변수를 설정할 수 있는 Yaml 파일 (부트 스트랩 스크립트에 로드됨)이 포함되어 있다. 그것은 자신의 기성 블록을 부트스트랩하고 머신이 다중노드 환경을 실행할 수 있게 한다. 여기서 Ouroboros Genesis의 고유 버전을 실험 해보고 수동으로 트랜잭션을 작성하고 암호통화의 작동을 시연할 수 있다.

여러 개의 노드 또는 스테이크 풀을 생성하거나 보다 복잡한 구성을 구현 및 테스트하려는 경우 사용의 편의를 위해 일부 기능을 1단계 프로세스로 래핑하는 Nix 스크립트를 사용할 수 있다. 이 스크립트는 노드 설치를 번들로 제공하며 파일 편집없이 명령 줄에서 구성을 쉽게 변경할 수 있는 방법을 제공한다.

주소 설정

셀프 노드를 실행 한 후에는 지갑과 트랜잭션을 설정해야 한다. 테스트 목적으로 JCLI에서 생성된 주소를 사용할 수 있기 때문에 수동으로 지갑을 만들 필요가 없다. 이 testnet이 공개되는 단계에서는 Daedalus와의 통합이 없으므로 지갑과의 모든 상호 작용은 JCLI를 사용하여 수행해야 한다. 트랜잭션을 만들 수 있도록 여러 개의 UTXO 주소가 필요하다. 이러한 주소를 생성하려면 다음과 같이 한다.

  • 개인 키 생성 (예 : Ed25519)

>jcli key generate –type=Ed25519

다른 옵션을 보려면 jcli key generate -help를 실행한다.

  • 관련 공개 키 추출 :

>echo ed25519_sk1cvac48ddf2rpk9na94nv2zqhj74j0j8a99q33gsqdvalkrz6ar9srnhvmt | jcli key to-public

  • 또는 개인 키를 파일에 저장하고 다음 명령을 실행한다.

>jcli key to-public –input secret.key

  • 공개 키를 기반으로 주소를 만든다.

jcli address single ed25519e_pk1jnlhwdgzv3c9frknyv7twsv82su26qm30yfpdmvkzyjsdgw80mfqduaean –testing

트랜잭션을 만들려면 다음 단계를 수행한다.

  1. 새 트랜잭션의 준비 영역을 만듬.
  2. 트랜잭션에 대한 입력을 추가.
  3. 트랜잭션에 대한 출력을 추가.
  4. 다음으로 요금을 추가하고 주소를 변경해야 함.
  5. 트랜잭션에 서명함으로써 감사를 생성.
  6. 감사를 트랜잭션에 추가.
  7. 나머지 API를 사용하여 트랜잭션을 송출.
  8. 노드 로그를 확인하여 트랜잭션이 성공적으로 승인되었는지 확인. 이 프로세스의 출력은 트랜잭션 해시이고 다음 블록 상태 중 하나이다.

  • InABlock : 트랜잭션이 블록에 추가되었습니다. 거래가 수락된 날짜를 포함합니다.
  • Pending : 트랜잭션이 수신되었지만 아직 블록체인에 추가되지 않았습니다.
  • Rejected : 거래가 승인되지 않았습니다. 거절 이유를 설명하는 메시지가 첨부됩니다.

 

스테이크 분배 설정

스테이크 풀 간의 스테이크 배분에 참여할 수 있기 전에 계정에 스테이크 풀 인증서가 있어야 한다. 인증서는 블록체인의 다른 참여자와 스테이크 풀을 등록하기 위해 블록체인으로 전송되는 것이다. faucet에 인증서를 보내기 위한 스크립트를 사용할 수 있다.

일단 인증서가 등록되면 이 단계를 사용하여 스테이크를 위임할 수 있다.

 

테스트

우리는 발생하는 패턴과 노드가 어떻게 반응하는지를 평가할 수 있도록 다양한 구성과 시나리오를 시험해 보기를 권장한다. 가장 먼저 해야 할 일은 계정 간 송금 방법을 테스트하는 것이다. JCLI를 사용하여 트랜잭션을 만들고, 인코딩하고, 특정 노드로 보낼 수 있다.

트랜잭션을 만들기 전에 다음 정보가 필요하다.

  • 입력 트랜잭션 해시 : 일반적으로 현재 노드에 저장되어 있는 UTXO이다. 초기 자금을 보유한 주소의 개인키 (genesis.yaml에 저장되어 있음)를 저장하는 것이 중요하다. 왜냐하면 트랜잭션을 작성할 때 이를 필요로 하기 때문이다.
  • 이것을 얻으려면 JCLI와 다음 명령을 사용할 수 있다 :

jcli rest v0 utxo get –host http://127.0.0.1:8443/api

  • 수신자 주소 : 이전 단계에서 생성한 유효한 UTXO 주소.
  • 발신자 주소 : 이전 단계에서 생성한 유효한 UTXO 주소.
  • 트랜잭션 감시 개인키 : 가장 간단한 시나리오에서는 트랜잭션 발신자의 개인 키이다.

보다 상세한 설명에 대한 문서는 여기를 참고로 하길 바란다.

트랜잭션의 상태를 확인하고 트랜잭션이 블록에 추가되었는지 또는 거부되었는지 확인하려면 다음 명령을 사용한다.

jcli rest v0 message logs -h http://127.0.0.1:8443/api

테스트의 일환으로 주소 잔액을 확인하고 잔액이 업데이트 되었는지 확인하고 싶을 것이다. 먼저 genesis.yaml 구성 파일의 slot duration 매개 변수에 지정된 최소 슬롯 지속 시간을 기다리고 있음을 확인한 다음이 명령을 사용한다.

jcli rest v0 utxo get –host http://127.0.0.1:8443/api

자세한 내용은 여기를 참조한다.

새로운 블록체인 설정을 시도하거나 테스트 목적으로 깨끗한 블록체인을 다시 시작하고 싶은 경우가 있을 것이다. 그런 경우, 노드 구성에서 지정한 저장 영역 파일을 삭제해야 한다. 그렇지 않으면 블록체인과 저장소의 상태가 올바르지 않게 된다.

링크

아래 웹 자료와 비디오를 유용하게 이용할 수 있다.

Github support page

Cardano Effect podcast: Cardano roadmap and Shelley testnet

Video tutorial on building the self node using a script

Video tutorial playlist for using the testnet

Staking

FAQs

Cardano Community Meetup in London: Ouroboros PoS Research

PoS Delegation

Incentives in Cardano Presentation

How Cardano’s transaction fees work

블로그 포스트

Stake pools in Cardano – By Professor Aggelos Kiayias, chief scientist at IOHK

How Cardano’s transaction fees work – By Lars Brünjes, director of education at IOHK

지원 및 도움말

셀프 노드를 구축하는 동안 어떠한 구성 문제라도 발생한다면 전용 GitHub 지원 페이지를 방문하길 바란다. 여기서 버그 및 문제점을 보고하고, 커밋하고 신속하게 해결할 수 있다. 지원 프로세스 및 피드백 루프는 이 페이지의 readme 파일에 요약되어 있다. 문제에 대한 초기 질문에 답할 수 있다면 문제를 분류하고 효율적으로 처리할 수 있다.