DAPP ネットワーク使用戦略: Zeus と vRAM の使用方法
LiquidApps
2019-08-24 05:13
本文约5942字,阅读全文需要约24分钟
この記事は、DAPP ネットワーク シリーズの解釈の最初の記事であり、Zeus SDK 開発キットを紹介します。この開発キットは、開発者による迅速な dApp 開発、テスト、展開をサポートするため

これを読んでいるなら、おそらく聞いたことがあるでしょうDAPPネットワーク、DAPP ネットワークが提供するvRAM開発者がスケーラブルで使いやすい新世代の dApp を作成するのに役立つその他のタイプのサービス。

この記事から始まる DAPP ネットワーク利用戦略シリーズでは、私たちのガイダンスに従って、dApps で DAPP ネットワークのサービスを使用して、アプリケーションに多くの強力な機能を追加できます。DAPP ネットワークの出現前は、これらの機能は以前は利用できませんでした。分散型で。

開発者は、DAPP ネットワークの自由市場で DAPP サービス プロバイダー (DSP と呼ばれる) が提供するサービス パッケージを選択できます。開発者の便宜のために、LiquidApps も提供しますZeus SDKdApp が DAPP ネットワーク上のサービスを簡単に使用できるようにする開発キット。

DAPP ネットワークは現在 EOS メインネットに展開されており、この記事の執筆時点では 13 の異なる DSP が合計 34 のサービス パッケージを提供しており、そのほとんどが vRAM タイプのサービスです。

DAPP ネットワークでは多数のサービスが提供されていますが、開発者が理解しやすいように、DAPP ネットワークが提供する豊富で多様な機能の使用方法を説明するこの連載記事を作成しました。およびクロスチェーンオラクルサービス(LiquidOracles),CRON ジョブ スケジューリング サービス (LiquidScheduler),乱数生成、バーチャルアカウント(LiquidAccounts)、および vRAM サービス (https://liquidapps.io/vRam) 待って。

これらのサービスをより効果的に使用するには、基本的なツールの使用方法を理解する必要があります。Zeus SDK

Zeus SDKこれは、dApp 開発者が最小限のスマート コントラクト コードを追加するだけで、DAPP ネットワークの製品と機能を使用できるようにする、使いやすく拡張性の高い開発フレームワークです。

副題

NVM のセットアップと使用

すでに NVM を構成している場合は、この部分はスキップできます。

NVM は、Node.js の開発バージョン管理に使用される Node バージョン マネージャーです。まだインストールしていない場合は、最初にソフトウェアをインストールして構成することをお勧めします。NVM を使用すると、ノード バージョンの使用と切り替えが非常に便利になります。

注: Homebrew インストールを使用して NVM を Mac にインストールすることはお勧めできません。

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 testzeus 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 コマンドを実行して、War of the Elements コードの 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

上記を説明すると、次のようになります。

(出力) 新しいフォルダー名を入力します: cd Cardgame 次のコマンド例を試してください: ⭐ コントラクトのデプロイ: zeus Migrate ⭐ フロントエンド関数をローカルで実行: zeus runfrontend main ⭐ フロントエンドの作成: zeus buildfrontend main ⭐ フロントエンドのデプロイ: zeusdeployfrontend main ⭐フロントエンドのデプロイと登録: zeus デプロイ フロントエンド メイン — ipfs — カードゲーム 1111 の登録

副題

$ 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 より前のバージョンおよび元の War of the Elements コードでは、コードの最初の行は#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) すべての指示 (using ステートメントを含む) が完了したら、契約を開始できることを Zeus に伝えます。

CONTRACT_START()

3) 「users」データテーブルの型を変更し、その型定義(typedef)を dapp::multi_index 型に変更しました(元のコードでは、データテーブルの型は eosio::multi_index です)。これを dapp::multi_index に置き換えて、users テーブルの vRAM サービスを有効にしました。これは、一意のテーブル users_table _users への多くの参照のためにコントラクトによって使用されるテーブルです。

注: name("users") の式は、"users"_n と同等です。

typedef dapp::multi_index users_table;

4) クライアント クエリをサポートするために、同じ user_info 構造を使用して新しい「.users」テーブルが追加され、「users」テーブルは shardbucket 構造によって定義されるようになりました。

typedef eosio::multi_index<".users"_n, user_info> users_table_v_abi;

TABLE shardbucket {
 std::vector shard_uri;
 uint64_t shard;
 uint64_t primary_key() const { return shard; }
};

typedef eosio::multi_index<"users"_n, shardbucket> users_table_abi;

注: オリジナルの War of the Elements サンプル プログラムのコードでは、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

詳細については、絶えず改善されているを参照してください。LiquidApps ドキュメント,、ご質問がございましたら、ぜひご参加ください。Telegram 開発者チャネル

次の記事では、Kirin テストネットに vRAM バージョンの dApp を展開する方法、vRAM サービスを使用するために DAPP サービス プロバイダーに DAPP トークンを抵当にする方法、および EOS メインネットにアプリケーションを展開する方法を紹介します。

Twitter で LiquidApps 開発者をフォローしてくださいシリーズの残りの部分に従って、DAPP ネットワークが提供する一連のサービスを効果的に使用する方法を学習してください。

また、記事の最後にある QR コードをスキャンして、コミュニティ マネージャー WeChat を追加し、LiquidApps の中国開発者コミュニティへの参加を招待し、最新情報を入手し、DAPP ネットワーク サービスを使用して新しいサービスを作成する方法を多くの開発者と話し合うこともできます。 dAppsの生成。


LiquidApps コミュニティへようこそ

LiquidApps の使命は、一連の技術ソリューションを導入することでブロックチェーン開発の難しさとコストを軽減し、分散型アプリケーション (dApps) の大規模な開発と実装を促進することです。

分散型アプリケーションの最大の可能性を実現できるかどうかは、コミュニティのコンセンサスと参加にかかっています。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 をグループに追加してください。

LiquidApps
作者文库