
이 글을 읽는다면 아마 들어봤을 것이다.DAPP 네트워크, DAPP 네트워크가 제공하는vRAM개발자가 확장 가능하고 사용하기 쉬운 차세대 dApp을 만드는 데 도움이 되는 기타 유형의 서비스.
이 기사에서 시작하는 DAPP 네트워크 사용 전략 시리즈에서 우리의 지침에 따라 dApps에서 DAPP 네트워크의 서비스를 사용하여 애플리케이션에 많은 강력한 기능을 추가할 수 있습니다.DAPP 네트워크가 등장하기 전에 이러한 기능은 이전에 사용할 수 없었습니다. 탈중앙화 방식으로.
개발자는 DAPP 네트워크의 자유 시장에서 DAPP 서비스 공급자(이하 DSP)가 제공하는 서비스 패키지를 선택할 수 있습니다.Zeus SDKdApp이 DAPP 네트워크에서 서비스를 더 쉽게 사용할 수 있도록 하는 개발 키트입니다.
DAPP 네트워크는 현재 EOS 메인넷에 배치되어 있으며 작성 당시에는 총 34개의 서비스 패키지를 제공하는 13개의 서로 다른 DSP가 있으며 대부분 vRAM 유형 서비스입니다.
DAPP 네트워크에는 많은 서비스가 제공되고 있으며, 개발자가 쉽게 이해할 수 있도록 DAPP 네트워크에서 제공하는 풍부하고 다양한 기능(예: 네트워크)을 사용하는 방법을 설명하는 일련의 기사를 작성했습니다. 및 크로스체인 오라클 서비스(LiquidOracles),CRON 작업 스케줄링 서비스(LiquidScheduler),난수생성, 가상계좌(LiquidAccounts) 및 vRAM 서비스(https://liquidapps.io/vRam) 기다리다.
이러한 서비스를 더 잘 사용하려면 기본 도구 사용 방법을 이해해야 합니다.Zeus SDK 。
Zeus SDKdApp 개발자가 최소한의 스마트 계약 코드를 추가하여 DAPP 네트워크의 제품과 기능을 사용할 수 있도록 하는 사용하기 쉽고 확장성이 뛰어난 개발 프레임워크입니다.
보조 제목
NVM 설정 및 사용
이미 NVM을 구성했다면 이 부분은 건너뛸 수 있습니다.
NVM은 Node.js의 개발 버전 관리에 사용되는 Node 버전 관리자입니다. 아직 설치하지 않으셨다면 소프트웨어를 먼저 설치 및 설정하시는 것을 추천드립니다.
참고: Homebrew 설치를 사용하여 Mac에 NVM을 설치하는 것은 권장되지 않습니다.
MacOS에서 개발하는 경우 다음 단계에서 Xcode 명령줄 도구를 설치하라는 메시지가 표시될 수 있습니다.
보조 제목
$ nvm install 10.x $ nvm use 10.x $ nvm install-latest-npm
Linux에 Zeus 종속성 설치
Linux에서는 몇 가지 종속 항목을 설치해야 할 수 있습니다.
Ubuntu/Debian:
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test$ sudo apt update $ sudo apt upgrade -y libstdc++6 $ sudo apt install -y make cmake build-essential python
Centos/Fedora/AWS Linux:
$ sudo yum install -y make cmake3 python git gcc-c++ wget $ export CMAKE_PREFIX_PATH=/usr/opt/eosio.cdt/1.6.1/lib/cmake/eosio.cdt
보조 제목
$ wget https://github.com/Kitware/CMake/releases/download/v3.14.3/cmake-3.14.3.tar.gz $ tar xvfx cmake-3.14.3.tar.gz$ cd cmake-3.14.3 $ ./bootstrap $ gmake $ sudo make install $ cd ..
Zeus 설치 및 배포
Zeus를 설치할 때 -g 플래그를 사용하면 전체적으로 설치됩니다.
$ npm install -g @liquidapps/zeus-cmd
단, Zeus를 전역적으로 설치하더라도zeus unbox
명령은 전역적으로 사용할 수 있습니다.
~와 같은zeus test
, zeus migrate
그리고zeus compile
클래스의 명령은 확장 유형에 속하며zeus unbox
이 명령은 해당 명령으로 얻은 압축을 푼 폴더에만 적용됩니다.
Zeus가 설치된 후 모든 것이 작동하는지 테스트하기 위해 Helloworld 계약의 압축을 풀 수 있습니다.
압축을 푼 후 저장할 폴더를 생성하거나 선택한 후 다음 명령을 실행합니다.
**$** zeus unbox helloworld **$** cd helloworld **$** zeus test
구현하다zeus unbox
이 작업은 helloworld 폴더에 많은 파일과 폴더를 생성하고zeus-box.json
문서.
Zeus SDK는 다음 명령으로 볼 수 있는 다른 많은 예제와 함께 제공됩니다.
zeus list-boxes
예를 들어 vRAM의 "coldtoken"을 사용하는 방법과deepfreeze, vgrab, cardgame,그리고registry잠깐, 그것도 포함소액 경매, eos-detective-reports(EOS 탐정 보고서),token(표준 eosio.token 계약을 배포하기 위해 생성됨) 및 더 많은 예제.
디스플레이용서비스 유형 추가보조 제목
스마트 계약에 vRAM 추가
이제 Zeus SDK가 설정되었으므로 EOSIO 개발 작업에 사용할 수 있습니다.
먼저 추가하는 방법을 알아보겠습니다.vRAM。
참고로 BlockOne에서 제공하는 이 버전에는 vRAM이 포함되지 않은 완전한 요소 전쟁 튜토리얼의 전체 코드를 얻을 수 있습니다.https://github.com/EOSIO/eosio-card-game-repo/tree/lesson-8。
zeus unbox cardgame 명령을 실행하여 원소 전쟁 코드의 vRAM 버전을 가져옵니다.
참고: 네트워크상의 이유로 중국 사용자가 관련 코드를 얻기 위해 zeus unbox 명령을 사용하는 데 시간이 오래 걸릴 수 있습니다. 잠시만 기다려 주십시오.
당신이 아직 있다고 가정helloworld
폴더에서:
cd ../ $ zeus unbox cardgame $ cd cardgame
zeus unbox
출력의 마지막 부분은 다음에 수행할 작업에 대한 몇 가지 유용한 지침을 제공합니다.
(OUTPUT) Enter new directory: cd cardgame Please try these sample commands: ⭐Deploy contract: zeus migrate ⭐Run frontend locally: zeus run frontend main ⭐Build frontend: zeus build frontend main ⭐Deploy frontend: zeus deploy frontend main ⭐Deploy and register frontend: zeus deploy frontend main — ipfs — register cardgame1111
위의 내용을 설명하려면 다음을 수행하십시오.
(OUTPUT) 새 폴더 이름 입력: cd cardgame 다음 예제 명령을 시도하십시오. 프런트엔드 배포 및 등록: zeus deploy frontend main — ipfs — register cardgame1111
보조 제목
$ zeus migrate && zeus run frontend main
계약에 대해 vRAM을 활성화하는 방법
이 계약을 vRAM 지원 계약으로 변환하는 방법을 이해하려면 먼저 다음을 살펴보십시오.cardgame.hpp
이 문서.
또는cardgame.cpp
또는gameplay.cpp
파일을 변경할 필요도 없고,cardgame.hpp
파일의 코드가 수행합니다.
참고: 압축 해제 후 카드 게임 계약에는 다음이 포함될 수 있습니다.몇 가지 추가 기능, 이 튜토리얼에서는 언급하지 않았습니다. 걱정하지 마세요. 다음 전략에서 소개될 것입니다.
$ cd cardgame/contracts/eos/cardgame $ nano cardgame.hpp
파일에서 vRAM 추가가 여러 간단한 단계를 따른다는 것을 알 수 있습니다. EOS CDT의 최근 변경 사항 중 일부를 알지 못하는 경우 참고할 사항이 있습니다.
1) 먼저 표준을 사용하십시오.#include
EOSIO 헤더 파일을 가져오는 방법을 살펴보면 vRAM DAPP 서비스를 가져오는 데 필요한 라이브러리와 여러 가지 새로운 전처리기 지시문을 볼 수 있습니다.
참고: CDT 1.7 이전 버전과 원래 원소 전쟁 코드에서 코드의 첫 번째 줄은
#include
하지만#include
,하지만,#include
이 방법은 더 이상 사용되지 않습니다.
#include "../dappservices/multi_index.hpp" #define DAPPSERVICES_ACTIONS() \ XSIGNAL_DAPPSERVICE_ACTION \ IPFS_DAPPSERVICE_ACTIONS #define DAPPSERVICE_ACTIONS_COMMANDS() \ IPFS_SVC_COMMANDS() #define CONTRACT_NAME() cardgame
다른 서비스가 필요한 경우 여기에서 가져올 수 있습니다. 예를 들어, 이 계약도 요구하는 경우오라클 오라클 서비스:
·/* ORACLES EXAMPLE ONLY NOT FOR VRAM */ #include "../dappservices/multi_index.hpp" #include "../dappservices/oracle.hpp" #define DAPPSERVICES_ACTIONS() \ XSIGNAL_DAPPSERVICE_ACTION \ IPFS_DAPPSERVICE_ACTIONS \ ORACLE_DAPPSERVICE_ACTIONS #define DAPPSERVICE_ACTIONS_COMMANDS() \ IPFS_SVC_COMMANDS() \ ORACLE_SVC_COMMANDS() #define CONTRACT_NAME() cardgame
후속 기사에서 vRAM 이외의 서비스를 사용하는 방법을 다룰 것입니다.
2) 모든 지침(문장 사용 포함) 후 Zeus에게 계약을 시작할 수 있다고 알립니다.
CONTRACT_START()
3) "users" 데이터 테이블의 유형을 수정하고 유형 정의(typedef)를 dapp::multi_index 유형으로 변경했습니다. 원래 코드에서 데이터 테이블의 유형은 eosio::multi_index입니다. 사용자 테이블에 대한 vRAM 서비스를 활성화하기 위해 dapp::multi_index로 교체했습니다. 이것은 고유한 테이블 users_table _users에 대한 많은 참조를 위해 계약에서 사용하는 테이블입니다.
참고: name("users")의 표현은 "users"_n과 동일합니다.
typedef dapp::multi_indexusers_table;
4) 클라이언트 쿼리를 지원하기 위해 동일한 user_info 구조를 사용하는 새로운 ".users" 테이블과 이제 shardbucket 구조로 정의된 "users" 테이블이 추가되었습니다.
typedef eosio::multi_index<".users"_n, user_info> users_table_v_abi; TABLE shardbucket { std::vectorshard_uri; uint64_t shard; uint64_t primary_key() const { return shard; } }; typedef eosio::multi_index<"users"_n, shardbucket> users_table_abi;
참고: 원래 원소 전쟁 샘플 프로그램의 코드에서
struct[[eosio::table]]
바꾸다TABLE
. 이러한 표현은 동일합니다.TABLE
컴파일러에서 다음으로 변환할 수 있는 매크로입니다.struct[[eosio::table]]
。
5) 마지막으로 파일 끝에EOSIO_DISPATCH
매크로가 약간 수정되었습니다.
여기에서 CONTRACT_END()는 파일 시작 부분에서 이전에 작성한 CONTRACT_START()에 해당하는 계약의 종료를 나타내는 데 사용됩니다.
CONTRACT_END((login)(startgame)(playcard)(nextround)(endgame))
Zeus는 이제 스마트 계약을 vRAM 지원 dApp으로 컴파일할 수 있습니다. vRAM에서 사용하기 위한 보조 인덱스는 현재 지원되지 않습니다.
이전과 마찬가지로 이제 계약을 로컬 테스트 네트워크에 배포하고 로컬 DSP를 사용하여 테스트용 서비스를 제공할 수 있습니다.
zeus migrate && zeus run frontend main
자세한 내용은 지속적으로 개선되는리퀴댑스 문서,, 질문이 있으시면 저희와 함께하십시오텔레그램 개발자 채널。
다음 글에서는 기린 테스트넷에 dApp의 vRAM 버전을 배포하는 방법, vRAM 서비스를 사용하기 위해 DAPP 토큰을 DAPP 서비스 공급자에게 담보로 제공하는 방법, EOS 메인넷에 애플리케이션을 배포하는 방법을 소개합니다.
Twitter에서 LiquidApps 개발자 팔로우나머지 시리즈를 따라 DAPP 네트워크에서 제공하는 전체 서비스 제품군을 효과적으로 사용하는 방법을 알아보세요.
또한 기사 끝에 있는 QR 코드를 스캔하고, 커뮤니티 관리자 WeChat을 추가하고, LiquidApps 중국 개발자 커뮤니티에 가입하도록 초대하고, 최신 정보를 얻고, 많은 개발자와 DAPP 네트워크 서비스를 사용하여 새 프로젝트를 만드는 방법에 대해 논의할 수 있습니다. dApp 세대.
리퀴댑스 커뮤니티에 오신 것을 환영합니다
리퀴댑스의 임무는 분산형 애플리케이션(dApp)의 대규모 개발 및 구현을 촉진하기 위해 일련의 기술 솔루션을 도입하여 블록체인 개발의 어려움과 비용을 줄이는 것입니다.
분산 응용 프로그램의 가장 큰 잠재력 실현은 커뮤니티의 합의와 참여에 달려 있습니다.LiquidApps는 미래의 열린 커뮤니티이며 가치 창출 과정을 즐깁니다.
공식 웹 사이트:https://www.liquidapps.io/
비후:https://bihu.com/people/1528429636
Twitter:https://twitter.com/liquid_dapps
영어 전보 그룹:https://t.me/LiquidAppsOfficial
중국 전보 그룹:https://t.me/LiquidApps_community_China
웨이보:https://www.weibo.com/7126862764/profile?topnav=1&wvr=6&is_all=1
WeChat 그룹의 경우 QR 코드를 스캔하여 LiquidApps China Community Manager를 그룹에 추가하세요.