กลยุทธ์การใช้เครือข่าย DAPP: วิธีใช้ Zeus และ vRAM

หากคุณกำลังอ่านข้อความนี้อยู่ คุณคงเคยได้ยินเครือข่าย อปพรที่เครือข่าย DAPP มอบให้vRAMและบริการประเภทอื่นๆ เพื่อช่วยนักพัฒนาสร้าง dApps รุ่นใหม่ที่ปรับขนาดได้และใช้งานง่าย
ในชุดกลยุทธ์การใช้เครือข่าย DAPP เริ่มจากบทความนี้ ภายใต้คำแนะนำของเรา คุณสามารถใช้บริการของเครือข่าย DAPP ใน dApps เพื่อเพิ่มฟังก์ชันที่มีประสิทธิภาพมากมายให้กับแอปพลิเคชันของคุณ ก่อนการเกิดขึ้นของเครือข่าย DAPP ฟังก์ชันเหล่านี้ไม่สามารถใช้งานได้ก่อนหน้านี้ ในลักษณะกระจายอำนาจ
นักพัฒนาสามารถเลือกแพ็คเกจบริการที่ให้บริการโดยผู้ให้บริการ DAPP (เรียกว่า DSP) ในตลาดเสรีของเครือข่าย DAPP เพื่อความสะดวกของนักพัฒนา LiquidApps ยังให้บริการZeus SDKชุดพัฒนาที่ช่วยให้ dApp ของคุณใช้บริการบนเครือข่าย DAPP ได้ง่ายขึ้น
ปัจจุบัน เครือข่าย DAPP ใช้งานบน EOS mainnet และในขณะที่เขียน มี DSP ที่แตกต่างกัน 13 รายการที่เสนอแพ็คเกจบริการทั้งหมด 34 แพ็คเกจ ซึ่งส่วนใหญ่เป็นบริการประเภท vRAM
มีบริการจำนวนมากในเครือข่าย DAPP เพื่อให้นักพัฒนาเข้าใจได้ง่ายขึ้นเราได้เขียนบทความชุดนี้เพื่ออธิบายวิธีใช้ฟังก์ชันที่หลากหลายและหลากหลายจากเครือข่าย DAPP ตัวอย่างเช่น เครือข่าย และบริการออราเคิลข้ามสายโซ่ (LiquidOracles),บริการจัดตารางงาน CRON (LiquidScheduler),การสร้างตัวเลขสุ่ม บัญชีเสมือน (LiquidAccounts) และบริการ vRAM (https://liquidapps.io/vRam) รอ.
เพื่อให้ใช้บริการเหล่านี้ได้ดียิ่งขึ้น เราจำเป็นต้องเข้าใจวิธีใช้เครื่องมือพื้นฐาน: วิธีใช้Zeus SDK 。
Zeus SDKเป็นเฟรมเวิร์กการพัฒนาที่ใช้งานง่ายและขยายได้สูงซึ่งช่วยให้นักพัฒนา dApp สามารถใช้ผลิตภัณฑ์และฟังก์ชันของเครือข่าย DAPP ได้โดยเพิ่มรหัสสัญญาอัจฉริยะในจำนวนขั้นต่ำ
ชื่อเรื่องรอง
การตั้งค่าและใช้งาน NVM
หากคุณกำหนดค่า NVM ไว้แล้ว คุณสามารถข้ามส่วนนี้ได้
NVM เป็นตัวจัดการเวอร์ชันโหนดที่ใช้สำหรับการจัดการเวอร์ชันการพัฒนาของ Node.js ขอแนะนำให้คุณติดตั้งและกำหนดค่าซอฟต์แวร์ก่อน NVM สามารถช่วยให้คุณใช้และสลับเวอร์ชันของโหนดได้อย่างสะดวกมาก
หมายเหตุ: ไม่แนะนำให้ใช้การติดตั้ง Homebrew เพื่อติดตั้ง NVM บน Mac
หากคุณกำลังพัฒนาบน MacOS คุณอาจได้รับแจ้งให้ติดตั้งเครื่องมือบรรทัดคำสั่ง Xcode ในขั้นตอนต่อไปนี้
ชื่อเรื่องรอง
$ nvm install 10.x $ nvm use 10.x $ nvm install-latest-npm
ติดตั้งการอ้างอิง Zeus บน Linux
บน 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
และdeepfreeze, vgrab, cardgame,และregistryรอ มันรวมถึงการประมูลขนาดเล็ก, eos-detective-reports(รายงานนักสืบ EOS),token(สร้างขึ้นเพื่อปรับใช้สัญญา eosio.token มาตรฐาน) และตัวอย่างอื่นๆ อีกมากมาย
สำหรับการแสดงผลเพิ่มประเภทบริการชื่อเรื่องรอง

เพิ่ม vRAM ให้กับสัญญาอัจฉริยะ
เมื่อตั้งค่า Zeus SDK แล้ว สามารถใช้สำหรับงานพัฒนา EOSIO ของเราได้
อันดับแรก มาดูวิธีการเพิ่มvRAM。
สำหรับการอ้างอิง คุณยังสามารถรับรหัสแบบเต็มของบทช่วยสอน War of the Elements ฉบับสมบูรณ์ เวอร์ชันนี้จัดทำโดย 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 ลองใช้คำสั่งตัวอย่างต่อไปนี้: ⭐Deploy contract: zeus migrate ⭐Run frontend function locally: zeus run frontend main ⭐Create frontend: zeus build frontend main ⭐Deploy frontend: zeus deploy frontend main ⭐ ปรับใช้และลงทะเบียนส่วนหน้า: zeus ปรับใช้ส่วนหน้าหลัก — ipfs — ลงทะเบียน cardgame1111
ชื่อเรื่องรอง
$ zeus migrate && zeus run frontend main
วิธีเปิดใช้งาน vRAM สำหรับสัญญา
หากต้องการทำความเข้าใจวิธีแปลงสัญญานี้เป็นสัญญาที่เปิดใช้งาน vRAM ให้ดูที่cardgame.hppเอกสารนี้.
หรือcardgame.cppหรือgameplay.cppไฟล์ไม่จำเป็นต้องเปลี่ยนเพียงแค่ไฟล์cardgame.hppรหัสในไฟล์จะทำ
โปรดทราบ: สัญญา cardgame หลังจากคลายการบีบอัดอาจมีคุณสมบัติพิเศษบางอย่างเราไม่ได้กล่าวถึงในบทช่วยสอนนี้ ไม่ต้องกังวล เราจะแนะนำในกลยุทธ์ต่อไปนี้
$ 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) หลังจากคำแนะนำทั้งหมดของเรา (รวมถึงการใช้คำสั่ง) เราบอก Zeus ว่าสัญญาของเราสามารถเริ่มต้นได้:
CONTRACT_START()
3) เราแก้ไขประเภทของตารางข้อมูล "ผู้ใช้" และเปลี่ยนการกำหนดประเภท (typedef) เป็นประเภท dapp::multi_index ในโค้ดเดิม ประเภทของตารางข้อมูลคือ eosio::multi_index เราแทนที่ด้วย dapp::multi_index เพื่อเปิดใช้งานบริการ vRAM สำหรับตารางผู้ใช้ นี่คือตารางที่ใช้โดยสัญญาสำหรับการอ้างอิงจำนวนมากถึงตาราง users_table _users ที่ไม่ซ้ำกัน
หมายเหตุ: การแสดงออกของชื่อ ("ผู้ใช้") เทียบเท่ากับ "ผู้ใช้" _n
typedef dapp::multi_indexusers_table;
4) เพื่อรองรับการสืบค้นไคลเอนต์ ตาราง ".users" ใหม่ถูกเพิ่มโดยใช้โครงสร้าง user_info เดียวกัน และตาราง "ผู้ใช้" ที่กำหนดโดยโครงสร้าง 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 สามารถรวบรวมสัญญาอัจฉริยะของเราเป็น dApp ที่เปิดใช้งาน vRAM โปรดทราบว่าขณะนี้ยังไม่รองรับดัชนีรองสำหรับใช้งานบน vRAM
ก่อนหน้านี้ เราสามารถใช้สัญญาของเรากับเครือข่ายทดสอบในพื้นที่และใช้ DSP ภายในเพื่อให้บริการสำหรับการทดสอบ:
zeus migrate && zeus run frontend main
สำหรับข้อมูลเพิ่มเติม โปรดดูการปรับปรุงอย่างต่อเนื่องเอกสารประกอบของ LiquidApps,หากคุณมีคำถามใด ๆ โปรดเข้าร่วมกับเราช่องนักพัฒนาโทรเลข。
ในบทความถัดไป เราจะแนะนำวิธีปรับใช้ dApp เวอร์ชัน vRAM บน Kirin testnet วิธีจำนองโทเค็น DAPP กับผู้ให้บริการ DAPP เพื่อใช้บริการ vRAM และวิธีการปรับใช้แอปพลิเคชันบน EOS mainnet
ติดตามนักพัฒนา 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 เพื่อเข้าร่วมกลุ่ม




