HOPRd Diablerets 출시 튜토리얼

가장 최근에 출시한 Diablerets를 이제 테스트해 볼 수 있습니다! 이 튜토리얼은 여러분이 어떻게 설치하고 노드를 실행하는지 알려주며 몇 가지 기본적인 명령을 시도해볼 수 있게 해줍니다. 질문이 있으시다면 주저하지 말고 당사의 텔레그램 그룹에 문의해 주세요.

면책 조항 : 이것은 얼리 출시로, 참여자 자산의 안전을 장담할 수 없습니다. 현재 노드를 실행하는 것에 대한 보상이 없습니다. 그러므로 테스트를 위한 최소한의 자금만 넣으시기 바랍니다(최대 1xDAI와 10wxHOPR).

무엇을 배우게 될까요?

이 튜토리얼은 다음과 같은 것에 대해 안내합니다:

● 컴퓨터에 HOPRd를 설치하고 사용하는 방법

● xDai와 HOPR로 노드에 자금 넣기

● 노드에서 xDai 인출하고 다른 노드로 보내기

● 익명의 메시지를 전송 및 받으며 피어와 소통하기

● 커뮤니케이션 채널을 열고 자금을 넣고 닫기

● 티켓을 얻고 교환해 HOPR 토큰으로 바꾸기

● 두 개의 노드를 실행하고 그 노드를 이용한 커뮤니케이션

● 채널을 열고 퍼블릭 노드에 메시지 보내기

이전에 노드를 실행한 적이 있더라도 지난번과 다르게 많은 부분들이 상당히 변했을 가능성이 있으므로 다음의 지침을 따르기를 권장합니다.

설치

HOPR 네트워크를 이용하기 위해 여러분은 HOPR 노드를 설치해야 합니다. 이것은 디바이스에 직접 하거나 VPS를 이용해 할 수 있습니다.

여러분의 노드는 HOPR 프로토콜을 도입하는 node.js 프로세스의 형식을 채택합니다. 이것은 hoprd로도 알려져 있습니다.

중요 : HOPR 노드는 현재 MacOS, Linux, 그리고 AVADO 박스에서 구동됩니다. Windows 지원은 추후 릴리스에 추가될 것입니다.

hoprd를 설치할 수 있는 방법은 여러가지가 있습니다. 바이너리 다운로드를 요구했던 이전의 릴리스와는 다르게 HOPR Diablerets에 관한 모든 설치는 당신의 터미널을 통해 일어납니다. 아래에 나오는 여러분의 터미널로의 모든 명령을 입력하고 난 후, 여러분은 각자의 HOPR 노드에 브라우저를 통해 액세스할 수 있습니다.

NPM

우선 여러분은 NVM을 설치해야 합니다. 이를 위해 다음의 단계를 따라주세요. NVM 설치 이후, 명령을 이용해 올바르게 설치되었는지 확인하기 바랍니다.

nvm ls

이제 여러분은 이 명령을 실행해 node.js v14를 설치할 수 있습니다:

nvm install v14

설치 후 이 명령을 실행해 v14를 디폴트로 만듭니다:

nvm use v14

중요 : 지금은 오직 node.js v14만 사용하세요. 다른 버전은 현재 지원되지 않습니다. 만약 당신이 MacOS M1 유저라면, 반드시 다음 nvm 지침을 따라주십시오.

노드를 설치하기 위해 다음 명령을 입력합니다:

mkdir MY_NEW_HOPR_TEST_FOLDER
cd MY_NEW_HOPR_TEST_FOLDER
npm install @hoprnet/hoprd@1.72

이제 여러분의 노드가 설치됩니다. 이 작업은 몇분 정도 소요될 수 있습니다.

설치가 실패하면, 다음의 명령을 입력하고 다시 시도해 보세요:

npm install --unsafe-perm=true @hoprnet/hoprd@1.72

노드가 설치되면, 다음의 명령을 실행합니다:

DEBUG=hopr* npx hoprd --init --admin --host=0.0.0.0:9092 --adminPort=3000 --password=’’ --identity=./alice-identity --data=./alice-db

Docker

Docker를 이용해 노드를 설치하기 위해 우선 당신의 기기에 Docker를 설치해야 합니다. Docker를 설치하기 위해 다음 단계를 따라주세요.

이제 hoprd 이미지를 다운로드하고 다음과 같이 실행합니다:

docker pull gcr.io/hoprassociation/hoprddocker run --pull always -ti -v $HOME/.hoprd-db-alice:/app/db -p 9091:9091 -p 3000:3000 gcr.io/hoprassociation/hoprd:latest-release --identity /app/db/.hopr-identity --password switzerland --init --announce --host “0.0.0.0:9091” --admin --adminHost 0.0.0.0 --adminPort 3000

AVADO

여러분의 AVADO 박스에서 HOPR Diablerets 릴리스를 실행할 수 있습니다.

중요: 새 버전의 HOPR 노드를 설치하기 전, 개인 ERC20 지갑 노드에 있는 모든 자산을 출금해 놓으세요. 그렇지 않으면 자산을 잃을 위험이 있습니다! 자금 인출과 관련한 문제가 있다면 커뮤니티 지원에 연락 바랍니다.

설치 프로세스: AVADO 네트워크에 연결되어 있거나 VPN을 통해 연결되어 있을 때, 이 링크로 이동합니다. 이 링크는 새 패키지 버전을 보여줄 것입니다. 설치 버튼을 클릭하고 성공했다는 메시지가 나타날 때까지 기다립니다. 이 작업은 시간이 소요될 수 있습니다.

노드 테스트하기

여기까지 성공했다면 여러분은 이제 컴퓨터에 HOPR 노드가 실행되고 있습니다. 축하합니다! 이제 테스트를 시작해 보겠습니다.

당신의 브라우저를 통해 노드에 액세스할 수 있습니다. https://localhost:3000/ 에 접속해 확인합니다.

안타깝게도, 당신이 보게 될 메시지는 다음과 같은 에러 메시지입니다:

이 메시지가 나타난 이유는 노드를 사용하기 전에 자금을 넣어야 하기 때문입니다. HOPR 노드는 두 가지의 자산을 필요로 합니다: HOPR 토큰과 HOPR 토큰이 구동되고 있는 체인의 네이티브 토큰. 이 경우 필요한 두 토큰은 wxHOPR와 xDAI입니다.

여러분은 경고 메시지에 노드의 xDAI 어드레스를 확인할 수 있습니다. 이 어드레스는 당신의 노드에 고유한 어드레스이며 자산을 보내야 하는 곳입니다.

보통 우리는 사람들에게 이 단계에 따라 그들의 어드레스에서 xDAI 토큰을 받도록 안내하지만, 이번 릴리스의 경우 우리가 노드에 자산을 지원해 여러분이 당사의 프로토콜을 테스트해 볼 수 있게 합니다.

텔레그램 그룹에 여러분의 노드 어드레스를 보내며 자산을 요청하면 곧 받아볼 수 있게 됩니다.

당신의 노드가 xDAI와 wxHOPR를 받고 난 후 당신은 hoprd를 사용할 수 있게 됩니다. 이제부터는 당신의 브라우저에서 작업을 계속하되, 터미널을 계속 구동해 주십시오.

실행 가능한 모든 명령 리스트를 받기 위해 help를 입력하십시오. 여러분은 자유롭게 실험해 보고 싶은 모든 명령을 테스트할 수 있지만, 보다 구조화된 경험을 위해 우리는 HOPRD 테스트 시트에서 실험해볼 수 있는 명령어 리스트를 제공합니다.

이번 릴리스의 새로운 기능 중 하나는 ID 기능으로, 이것을 이용해 여러분은 서로 다른 노드에 서로 다른 ID를 지정할 수 있습니다 (노드 어드레스 관리를 더 쉽게 만들어주는 ‘별칭’ 기능과 혼동하면 안됩니다 - ID는 완전히 별개의 노드입니다).

여러분은 같은 디바이스에서 두개의 노드를 실행해 상호간에 메시지를 보내 이것을 테스트해 볼 수 있습니다.

고급 작업: 숨바꼭질 하기

앨리스와 밥은 서로에게서 숨은 채 서로 익명의 메시지를 보내기로 합니다. 이 게임을 하기 위해 여러분은 컴퓨터에서 두 개의 로컬 노드를 실행해야 합니다. 첫번째 노드는 앨리스라고 불리고 두번째 노드는 밥이라고 불릴 것입니다.

여러분은 두개의 서로 다른 터미널/cmd 클라이언트를 이용해야 하며 각 노드에 다른 포트를 지정해야 합니다. 아래의 경우 우리는 포트 3000과 3010을 이용하겠습니다. 이것을 시작하기 전 현재 구동중인 노드를 닫습니다.

불행하게도 AVADO 유저들은 그들의 AVADO 박스에서 단독으로 이것을 할 수 없습니다. 만약 당신이 AVADO를 사용하는 경우, 실행중인 노드를 앨리스로 사용하고 앞서 언급한 설치 방법에 따라 두번째 노드를 셋업해 밥으로 사용하면 됩니다.

NPM

만약 당신이 NPM을 통해 설치한 경우:

앨리스의 노드:

DEBUG=hopr* npx hoprd --init --admin --host=0.0.0.0:9092 --adminPort=3000 --password=’’ --identity=./alice-identity --data=./alice-db

밥의 노드:

DEBUG=hopr* npx hoprd --init --admin --host=0.0.0.0:9093 --adminPort=3010 --password=’’ --identity=./bob-identity --data=./bob-db

Docker

만약 당신이 Docker를 통해 설치한 경우, 다음 명령을 이용합니다:

앨리스의 노드:

docker run --pull always -ti -v $HOME/.hoprd-db-alice:/app/db -p 9091:9091 -p 3000:3000 gcr.io/hoprassociation/hoprd:latest-release --identity /app/db/.hopr-identity --password switzerland --init --announce --host “0.0.0.0:9091” --admin --adminHost 0.0.0.0 --adminPort 3000

밥의 노드:

docker run --pull always -ti -v $HOME/.hoprd-db-bob:/app/db -p 9092:9092 -p 3010:3010 gcr.io/hoprassociation/hoprd:latest-release --identity /app/db/.hopr-identity --password switzerland --init --announce --host “0.0.0.0:9092” --admin --adminHost 0.0.0.0 --adminPort 3010

VPS 유저

만약 당신이 VPS에서 노드를 구동하고 있는 경우, 포트 포워딩 기능을 이용해 서버에 로그인 되어있는지 확인합니다. 이렇게 함으로 여러분은 같은 서버 유저로 로그인하며 두 개의 실행 노드를 가질 수 있습니다.

첫번째 터미널/cmd 클라이언트:

ssh -L 3000:127.0.0.1:3000 @<Your_server_ip>

두번째 터미널/cmd 클라이언트:

ssh -L 3010:127.0.0.1:3010 @<Your_server_ip>

이제 두 노드가 모두 실행되고 있으므로 게임을 시작할 수 있습니다. 여러분은 다른 노드를 통해 메시지를 보내는 방법을 배우고 해당 노드가 추후 여러분이 HOPR로 바꿀 수 있는 티켓을 얻는 것을 볼 수 있습니다.

두 노드 모두에 액세스하기 위해 서로 다른 탭에서 https://localhost:3000/ 그리고 https://localhost:3010/ 을 열어줍니다. 앨리스 노드는 여러분이 이전에 설정한 것인 반면 밥 노드는 새로운 어드레스를 가진 노드가 됩니다. 이 노드에도 자금을 지원해야 합니다.

인출 명령을 사용해 첫번째 노드(앨리스)에서 xDAI를 인출해 두번째 노드(밥)에 보내줍니다. 이 방법으로 HOPR를 인출할 수 없을 수도 있지만(이것은 우리가 알고 있는 버그로 해결중에 있습니다) 상관 없습니다. 다음 단계를 위해 오직 앨리스만 HOPR가 필요합니다.

두 노드 모두 자금이 지원되면 이제 여러분은 채널을 열고 닫으며 메시지를 전송할 수 있습니다.

  1. 각 노드에 별칭을 설정하며 시작합니다. 별칭을 설정하면 다른 노드와 소통할 때마다 그들의 전체 HOPR 어드레스를 매번 기입하지 않아도 됩니다.

노드의 HOPR 어드레스를 찾기 위해, address 명령을 각 노드에서 사용해 각자의 xDai와 HOPR 어드레스를 알아봅니다.

앨리스의 명령어

alias [Bob’s HOPR address] Bob

밥의 명령어

alias [Alice’s HOPR address] Alice

  1. 앨리스는 이제 다음과 같이 밥에게 메시지를 전송할 수 있습니다:

send ,Bob hello

쉼표 “,”를 잊지 않는 것이 매우 중요한데, 쉼표를 누락하면 메시지는 전송되지 않으며 당신에게 에러 메시지가 나타납니다.

밥의 노드는 ‘hello’라는 메시지를 받게 되지만 발신인의 ID에 대해서는 전혀 알 수 없습니다. HOPR는 완전한 익명성을 보장하기 때문에 이것은 기능이며 버그가 아닙니다!

그럼에도, 일반적으로 메시지를 주고 받을 때 누구와 소통하고 있는지 아는 것이 유용한 경우가 많습니다. 앨리스는 설정을 변경해 밥에게 그녀의 ID를 알릴 수 있습니다:

settings includeRecipient true

이것을 완료한 후 다시 앨리스에게서 밥에게 메시지를 보내면, 앨리스의 노드로부터 온 메시지라는 것을 식별한다는 것을 확인할 수 있습니다.

  1. 이제, 앨리스의 노드를 이용해 밥과의 채널을 열고 해당 채널에 다음의 명령을 입력해 HOPR를 지원합니다:

open Bob 0.01

채널에 자금을 지원하는데 필요한 최소량은 0.1 HOPR입니다. 이것은 기본적으로 하나의 티켓에 대한 지불입니다. 그러나, 일반적으로 우리는 한 채널에 충분한 HOPR를 지원해 몇 개의 티켓을 다룰 수 있도록 권장합니다.

채널을 여는 것은 블록체인에서 스마트 컨트랙트와 상호작용을 필요로 하기 때문에, 채널이 열리기까지 잠시 기다려야 합니다. 이 작업이 성공적으로 이뤄지면 여러분은 ‘Successfully opened channel’이라는 메시지를 보게 됩니다.

  1. 이제 두 노드에 명령 채널 을 입력해 이 채널 이 존재하고 열려 있는지 확인할 수 있습니다. 채널 명령은 현재 열려있는 모든 채널을 표시합니다.

예:

Channel: 0xa0b92e6d400f556c2139661e799ccc867da28ce079c382388086882806e34dd8
CounterParty: Z35Qj
Status: OPEN
Total Balance: 0.01 HOPR
My Balance: 0.01 HOPR

이 뜻은 앨리스가 노드 Z35Qj로 채널을 오픈했다는 말입니다. 이 채널은 현재 열려있으며 채널 내 잔액은 0.01 HOPR입니다. 앨리스가 이 채널에 자금을 지원한 것이기 때문에 앨리스의 잔액은 동일합니다.

밥쪽에서 당신은 비슷한 메시지가 표시되는 것을 볼 수 있습니다. 그러나 이쪽에서 밥의 잔액은 0일 것이며, 그 이유는 밥이 이 채널에 자금을 지원하지 않았기 때문입니다.

앨리스는 이제 밥을 릴레이 노드로 사용해 앨리스 스스로에게 메시지를 전송할 수 있습니다. 이것으로 밥은 티켓을 받을 수 있으며 이 티켓은 HOPR 토큰으로 바꿀 수 있습니다.

  1. 우선, 밥이 가지고 있는 티켓이 있는지 밥의 노드에서 확인합니다. 다음과 같은 것을 보게 됩니다:

admin > tickets

finding information about tickets…
Tickets:

  • Pending: 0
  • Unredeemed: 0
  • Unredeemed Value: 0 HOPR
  • Redeemed: 0
  • Redeemed Value: 0 HOPR
  • Losing Tickets: 0
  • Win Proportion: 0%
  1. 앨리스의 노드에서 다음의 명령어를 입력해 밥의 노드를 통해 스스로에게 메시지를 보냅니다(앨리스는 디폴트 별칭 “me”로 나타나며 항상 당신의 고유 노드를 알립니다):

send Bob,me what’s up

이제 티켓 명령을 다시 이용하면 상환되지 않은 티켓의 수가 0에서 1 로 바뀌었음을 확인할 수 있습니다.

  1. 이제 여러분은 밥의 노드를 이용해 밥이 받은 티켓을 상환하거나 계속해 릴레이어로 활동하고 더 많은 티켓을 받아 나중에 한꺼번에 상환할 수 있습니다. 여러분은 이 작업을 앨리스가 더 이상 메시지를 위해 지불할 수 있는 HOPR가 남지 않을 때까지 반복해서 할 수 있습니다. 상환하기로 결정하면, 밥의 노드에서 redeemTickets 명령을 이용해 진행하면 됩니다.

  2. 이 채널에서 밥이 얼마의 잔액을 갖고 있었는지 기억하시나요? 0 입니다.

티켓을 상환한 후 채널 명령을 다시 입력하면 여러분은 채널 내 밥의 잔액이 늘어났음을 볼 수 있습니다.

  1. 이제 앨리스에게 작별을 고하고 채널을 닫을 시간입니다. 채널을 닫기 위해 밥의 노드를 이용하고 다음을 입력합니다:

close Alice

몇분을 기다린 후 같은 기능을 다시 호출하면 채널이 완전히 닫힙니다.

이 쿨오프 기간 동안 밥의 노드가 받은 모든 티켓을 상환했는지 확인하기 바랍니다. 채널이 닫힌 후 이 작업은 더 이상 실행할 수 없습니다.

계속해서 즐기고 싶으신가요?

ID를 이용하는 것은 새로운 기능을 이용해보고 단일 디바이스에서 테스트를 실행해보는 좋은 방법입니다. 그러나 여러분은 다른 유저들에게도 메시지를 전송할 수 있습니다! peers 명령을 이용해 여러분은 채널을 열고 소통할 수 있는 공개적으로 열린 피어들에 대한 리스트를 찾을 수 있습니다.

그 중 하나의 피어를 고르고(가급적 quality 1의 피어) ping을 이용해 그들이 온라인인지 확인합니다 [피어의 HOPR 어드레스]

해당 피어가 온라인인것을 확인한 후 여러분은 앨리스와 밥이 했던 것과 마찬가지로 작업을 진행하면 됩니다.

참여해주셔서 감사합니다. 우리는 여러분이 HOPR 프로토콜에 대해 더 많이 배웠으며 즐거운 경험을 했기를 바랍니다. 이제 여러분은 HOPRd의 자랑스러운 유저라고 말할 수 있습니다.