리퀴댑스 워크스루 #2: DSP 스테이킹 및 vRAM 디앱 구축

kylin 테스트넷에서 확장가능한 스토리지가 있는 디앱 구축 방법 배워보기.

CREAM ER
리퀴댑스(Liquidapps) Kor
14 min readSep 10, 2019

--

워크스루 #1에서 스마트 탈중앙화된 확장가능한 스토리지 솔루션인 vRAM을 스마트 컨트랙트에서 활성화 하는 데 필요한 사항을 살펴보았습니다.

그러나 퍼블릭 네트워크에 있는 vRAM과 다른 많은 리퀴드 서비스를 사용하기 위해서는 DSP(DAPP 서비스 공급자)에 적절한 양의 DAPP 토큰을 스테이킹 함으로써 DSP가 제공하는 패키지에 가입해야합니다.

vRAM의 경우, 패키지는 ipfsservice1 입니다. 9월 7일 현재, 메인넷에서 이용 가능한 70개의 DSP 패키지 중 49개가 ipfsservice1 입니다.

dsphq.io

이용가능한 커뮤니티 DSP 포털에서 정보들을 볼 수 있습니다.

이 워크스루는 메인넷에 배포되지는 않았습니다. 그러나 테스트넷 배포는 메인넷 배포와 거의 동일한 프로세스를 따릅니다.

Kylin 테스트넷에 vRAM 기반 디앱을 배포하기 위해서는 계정 세팅을 하고 컨트랙트를 배포하기 위해 약간의 테스트넷 EOS로 필요한 리소스를 확보해야합니다.

컨트랙트는 RAM에 보관되고 vRAM에 보관할 수 없기 때문에 배포를 위해서는 계정은 여전히 약간의 RAM이 여전히 필요합니다. vRAM은 일반적으로 어플리케이션의 RAM 필요사항을 감소시키지만 없애지는 않습니다.

Kylin 테스트넷 계정을 설정해봅시다.

https://www.cryptokylin.io 에서 더 많은 정보를 찾을 수 있습니다. 그러나 계정 생성은 쉽습니다. 이 튜토리얼에서 계정을 만들기 위해서는 아래 URL에 접속하세요.

http://faucet.cryptokylin.io/create_account?1111dsptutor (여러분의 계정 이름은 1111dspturo 대신 자신의 계정 이름을 선택해야합니다.)

받은 정보를 저장하세요! 페이지는 새로운 Kylin 계정의 오너 및 액티브 권한을 가진 2개의 서로 다른 키 쌍을 제공 할 것입니다.

참고 : faucet.cryptokylin.io 접속시 404 에러는 일시적인 현상입니다. 잠시 후 다시 시도하거나 크립토 Kylin 영문 텔레그램 채널Kylin 계정 생성에 대한 도움을 요청하십시오.

Getting some EOS for our testnet account is just as easy:

테스트넷 계정에서 EOS를 얻는 것은 매우 쉽습니다 :

http://faucet.cryptokylin.io/get_token?1111dsptutor

이제 우리의 Kylin 계정은 100EOS를 가지고 있습니다.

(선택 사항) 스캐터에 신규 Kylin 계정을 추가해봅시다.

스캐터 창의 오른쪽 상단의 작은 톱니바퀴를 클릭하세요.

이제 세팅 메뉴에서 “네트워크"를 선택합니다. “danger zone”에 패스워드를 입력하세요.

1) “Your Networks” 밑에 다음의 정보를 입력하세요. (또는 https://github.com/cryptokylin/CryptoKylin-Testnet 에서 다른 Kylin 엔드포인트를 찾아보세요.)

Name: Kylin testnet
Host: 178.62.36.41
Port: 8888
Protocol: http
Chain ID: 5fff1dae8dc8e2fc4d5b23b2c7665c97f9e9d8edf2b6485a86ba311c25639191

“Add”를 클릭하면 테스트 네트워크 추가가 완료됩니다.

2) 이제 스캐터에 방금 전 생성한 프라이빗키를 임포트 합니다.

3) Kylin은 기본적으로 스캐터에 포함되지 않은 네트워크이므로 수동으로 계정을 연결해야 할 것입니다(예시의 경우 1111dsptor@active 및 1111dsptor@owner 입력).

이제 Kylin 블록 익스플로러(https://kylin.eosx.io)에서 계정을 확인 할 수 있습니다.

좋습니다! 이제 우리는 FED(연방 준비 제도)처럼 돈을 찍어 낼 수 있습니다. (테스트넷 EOS가 가치가 없는 이유가 있습니다:)

또한 9.5kb의 RAM을 가지고 있다는 것을 알수 있습니다. 컨트랙트를 배포하고 테스트하기 위해 더 많은 RAM이 필요합니다. https://kylin.bloks.io 에서 새로운 스캐터 설정으로 가능합니다. 아직 얼마만큼의 RAM이 필요할지 모르기 때문에 일단 RAM 구입을 연기하겠습니다.

(선택 사항) 아직 하지 않으셨다면 cleos 설정 할 시간입니다.

RAM을 구매하고 패키지를 등록하고 컨트랙트를 배 할 때 포 cleos 옵션을 사용하기 위해서는 키를 cleos 월렛 임포트를 사용하여 키를 cleos 월렛으로 임포트해야한다는 걸 기억하세요. cleos 월렛을 로컬에 설치 하지 않은 경우, EOSIO 개발자 포털 스텝 1~3를 따라 설정하세요.

이제 Kylin DPS들의 이용 가능한 vRAM 패키지를 확인해보십다.

DSP 포탈에서 Kylin 테스트넷 DSP도 볼 수 있습니다.예를 들어, 앞서 보여준 DSP HQ는 오른쪽 상단에서 Kylin 테스트넷 포털(dsphq.io/?network=kylin)로 전환 할 수 있습니다.

또 다른 DSP 포탈인 bloks.io의 Kylin 테스트넷 포털은 kylin.bloks.io/dsp 입니다.

오직 vRAM 패키지만 보면 됩니다. 리퀴드오라클(oracleservic), 리퀴드 스케쥴러(cronservices) 등의 다른 서비스 패키지들도 제공됩니다.

이용 가능한 vRAM 패키지는 스테이크 양, 최소 언스테이킹 기간(기본적으로 1시간), 패키지 할당량, 패키지 기간 등이 다양한 조건이 포함됩니다.

min_stake_quantity(최소 스테이크 양)에 지정된 10 DAPP 토큰을 스테이킹하고 그것이 어떻게 작동하는지 봅시다.

Kylin 테스트넷에서 DAPP 토큰을 얻으려면 kylin-dapp-faucet.liquidapps.io 에 접속하세요.

Kylin 테스트넷 계정을 입력하면 1000 Kylin DAPP 토큰을 받을 수 있습니다.
https://kylin.eosx.io 에서 트랜잭션 내역을 확인 할 수 있습니다.

이제 패키지를 선택하고 DAPP 토큰을 스테이크 해봅시다.

선택한 Kylin 엔드 포인트 (다른 경우), DSP 및 DSP 패키지 및 계정 이름을 필요에 따라 대체합니다.

워크스루 # 1에서 cardgame 컨트랙트를 언박스한 폴더에 있어야합니다.

cleos를 사용하는 경우

1. 먼저, 프로세스를보다 쉽게하기 위해 일부 변수를 설정해 봅시다.

참고 : faucet.cryptokylin.io 접속시 404 에러는 일시적인 현상입니다. 잠시 후 다시 시도하거나 크립토 Kylin 영문 텔레그램 채널Kylin 계정 생성에 대한 도움을 요청하십시오.

1111dsptutor를 여러분의 계정 이름으로 대체하십시오.

$ export KYLIN_TEST_ACCOUNT=1111dsptutor$ export KYLIN_TEST_PUBLIC_KEY=EOS52EvB8SfrxFGmq3cSeMHiAXpjyaBQkgX28A5pxtr8ETXkJT2Ss$ export $EOS_ENDPOINT=https://kylin-dsp-2.liquidapps.io

참고: 추후에는 다음과 같이 터미널의 브라우저에서 수행 한 이전 단계를 간소화 할 수 있습니다.

$ export EOS_ENDPOINT=https://kylin-dsp-2.liquidapps.io// create account on Kylin, replace 1111dsptutor with your account name, save keys$ export KYLIN_TEST_ACCOUNT=curl http://faucet.cryptokylin.io/create_account?1111dsptutor// get active public key$ export KYLIN_TEST_PUBLIC_KEY=curl http://faucet.cryptokylin.io/get_token?$KYLIN_TEST_ACCOUNT// get some more tokens$ curl http://faucet.cryptokylin.io/get_token?$KYLIN_TEST_ACCOUNT$ curl http://faucet.cryptokylin.io/get_token?$KYLIN_TEST_ACCOUNT// get some more CPU and Net resources$ cleos -u $EOS_ENDPOINT system delegatebw 
$KYLIN_TEST_ACCOUNT $KYLIN_TEST_ACCOUNT "50.0000 EOS" "100.0000 EOS" -p $KYLIN_TEST_ACCOUNT@active

마지막 2개의 커맨드를 다시 사용하여 더 많은 Kylin EOS를 얻고 필요한 경우 현재 테스트 계정의 CPU 및 Net 리소스를 늘릴 수 있습니다. https://kylin-dapp-faucet.liquidapps.io 에 방문하여 더 많은 Kyiln DAPP 토큰을 얻을 수도 있습니다.

2. 패키지 선택

$ cleos -u $EOS_ENDPOINT push action dappservices selectpkg "{\"owner\":\"$KYLIN_TEST_ACCOUNT\",\"provider\":\"heliosselene\",\"service\":\"ipfsservice1\",\"package\":\"package1\"}" -p $KYLIN_TEST_ACCOUNT@active

참고 사항: $KYLIN_TEST_ACCOUNT에 변수를 사용하지 않을 경우 다음과 같이 데이터를 전송할 수 있습니다.
'['1111dsptutor','heliosselene','ipfsservice1','package1']' 그러나 $KYLIN_TEST_ACCOUNT로 이 작업을 수행하면 리터럴 문자가 데이터로 전송되므로 데이터에 큰 따옴표를 사용해야합니다. 이것은 각각의 키와 각 값에 대한 내부 인용 부호로 \ “의 복잡한 이스케이프 표기법을 사용해야 함을 의미합니다.

3. DAPP 토큰 스테이크 하기.

$ cleos -u $EOS_ENDPOINT push action dappservices stake "{\"from\":\"$KYLIN_TEST_ACCOUNT\",\"provider\":\"heliosselene\",\"service\":\"ipfsservice1\",\"quantity\":\"10.0000 DAPP\"}" -p $KYLIN_TEST_ACCOUNT@active

이를 통해 heloisselene에서 제공하는 IPFS(vRAM) 서비스의 대역폭을 확보할 수 있습니다.

디앱 컨트랙트에 배포하기

배포에 얼만큼의 RAM이 필요한지 알아봅시다.

글의 나머지 부분에 대해 cleos 사용 예정입니다. 그러나 스캐터와 bloks.io 같은 웹 툴을 사용하기로 선택한 경우도 이러한 작업을 모두 수행할 수도 있습니다.

1) 코드를 스마트 컨트랙트 코드로 설정하기 위해서는 다음과 같은 설정 컨트랙트를 실행해야합니다.

$ cleos -u $EOS_ENDPOINT set contract $KYLIN_TEST_ACCOUNT ./contracts/eos/cardgame -p $KYLIN_TEST_ACCOUNT@active

결과는 배포 대신 필요한 RAM의 양을 알려줍니다.

그럼 충분한 RAM을 구입해 봅시다.

$ cleos -u $EOS_ENDPOINT system buyram 
$KYLIN_TEST_ACCOUNT $KYLIN_TEST_ACCOUNT "50.0000 EOS" -p $KYLIN_TEST_ACCOUNT@active

2) 이제 설정된 컨트랙트 액션을 다시 실행하고 vRAM 지원 컨트랙트를 배포합니다.

$ cleos -u $EOS_ENDPOINT set contract $KYLIN_TEST_ACCOUNT ./contracts/eos/cardgame -p $KYLIN_TEST_ACCOUNT@active

결과 :

3) 마지막으로 이 단계를 완료하기 위해 계약 eosio.code 사용 권한을 설정합니다.

$ cleos -u $EOS_ENDPOINT set account permission 
$KYLIN_TEST_ACCOUNT active "{\"threshold\":1,\"keys\":[{\"weight\":1,\"key\":\"$KYLIN_TEST_PUBLIC_KEY\"}],\"accounts\":[{\"permission\":{\"actor\":\"$KYLIN_TEST_ACCOUNT\",\"permission\":\"eosio.code\"},\"weight\":1}]}" owner -p $KYLIN_TEST_ACCOUNT@active

결과

이제 테스트넷 컨트랙트를 테스트 할 수 있습니다!

리소스 에러가 발생한다면, 리소르를 위해 더 많은 Kylin 테스트넷 EOS를 스테이킹하십시오. 예시 :

cleos -u $EOS_ENDPOINT system delegatebw 
$KYLIN_TEST_ACCOUNT $KYLIN_TEST_ACCOUNT "250.0 EOS" "200.0 EOS" -p $KYLIN_TEST_ACCOUNT@active

여기서는 포괄적인 테스트를 작성하지는 않겠지만, 최소한 간단한 cleos push action으로 login할 수 있습니다.

1111dsptutor를 여러분의 사용자 이름으로 바꿉니다. 원한다면 컨트랙트를 배포한 것 외에 다른 카이린 계정이 될 수도 있습니다.

$ cleos -u $EOS_ENDPOINT push action 1111dsptutor login '['1111dsptutor']' -p 1111dsptutor@active

다른 cardgame 액션을 시도하려는 경우 다음 몇 가지 예가 있습니다.

cleos -u $EOS_ENDPOINT push action $KYLIN_TEST_ACCOUNT startgame '['1111dsptutor']' -p 1111dsptutor@activecleos -u $EOS_ENDPOINT push action $KYLIN_TEST_ACCOUNT playcard '['1111dsptutor','2']' -p 1111dsptutor@active

다음 워크스루 시리즈는 강력한 리퀴드 오라클(LiquidOracles) 서비스를 살펴보고 리퀴드 오라클을 스마트 컨트랙트에 추가하는 방법입니다.

더 많은 정보는 리퀴댑스 문서 페이지를 방문하세요. 질문이 있으면 개발자 텔레그램 채널에서 문의해주시기 바랍니다.

Follow LiquidApps

Website | Twitter | Telegram | LinkedIn | Github

리퀴댑스 KOR

미디엄 | 텔레그램 |

중요한 고지사항을 읽으려면 여기를 클릭하십시오.

--

--