
これを読んでいるなら、おそらく聞いたことがあるでしょう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 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 コマンドを実行して、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_indexusers_table;
4) クライアント クエリをサポートするために、同じ user_info 構造を使用して新しい「.users」テーブルが追加され、「users」テーブルは shardbucket 構造によって定義されるようになりました。
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;
注: オリジナルの 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 をグループに追加してください。