時(shí)間:2023-07-09|瀏覽:234
小編:記得
來源:Zilliqa中國
--- dApp開發(fā)入門
本節(jié)旨在讓開發(fā)人員了解如何開始在Zilliqa上進(jìn)行開發(fā)。
我們試圖使本指南簡潔,從而使其對于沒有區(qū)塊鏈開發(fā)經(jīng)驗(yàn)的開發(fā)人員來說足夠簡單。由于許多應(yīng)用程序開發(fā)人員都是javascript開發(fā)人員,所以我們將在代碼片段示例中使用javascript。Zilliqa研究院目前在zilliqa-js中積極維護(hù)官方JavascriptSDK,我們將在示例中使用它。
什么是dApp?
去中心化應(yīng)用程序(“dApps”)是與區(qū)塊鏈上的智能合約交互的應(yīng)用程序。由于Zilliqa區(qū)塊鏈?zhǔn)且粋€(gè)不由單個(gè)實(shí)體托管的分散網(wǎng)絡(luò),因此位于區(qū)塊鏈上的應(yīng)用程序是去中心化的。
應(yīng)用程序可以具有面向用戶的組件(“客戶端”),可以是Web應(yīng)用程序或移動應(yīng)用程序。這些應(yīng)用程序可以與Zilliqa區(qū)塊鏈上的智能合約進(jìn)行交互。
Zilliqa區(qū)塊鏈的入口在于RPC接口。SDK不是你與區(qū)塊鏈交互的強(qiáng)制性要求,但它們確實(shí)讓你的開發(fā)更加輕松。
看到區(qū)塊鏈實(shí)體上的0x1、0x2了嗎?這些是地址。
地址是區(qū)塊鏈上實(shí)體的標(biāo)識符。區(qū)塊鏈上的實(shí)體可以是用戶或合約。
地址
Zilliqa目前支持兩種地址格式。
ByStr20:20字節(jié)的十六進(jìn)制字符串(例如0x573EC96638C8bB1c386394602E1460634F02aDdA)
bech32:一個(gè)bech32帶有一個(gè)可讀性更強(qiáng)的zil前綴(例如zil12ulvje3ceza3cwrrj3szu9rqvd8s9tw69c978p)
這種設(shè)計(jì)背后的原因是為了防止與以太坊地址混淆。更詳細(xì)的地址解釋請參考本帖
const{ toBech32Address, toChecksumAddress }=require("@zilliqa-js/crypto");
//notchecksummedaddress(willnotbeacceptedbyblockchain) constaddress="573EC96638C8BB1C386394602E1460634F02ADDA";
//checksummedByStr20 constchecksummedAddresses=toChecksumAddress(address);//returns"0x573EC96638C8bB1c386394602E1460634F02aDdA"
constbech32_address=toBech32Address(address);//returnszil12ulvje3ceza3cwrrj3szu9rqvd8s9tw69c978p
我們強(qiáng)烈建議開發(fā)人員使用bech32格式的地址進(jìn)行代幣傳輸。這可以防止用戶將Zilliqa地址誤認(rèn)為以太坊地址。出于安全目的,所有處理代幣轉(zhuǎn)移的錢包和交易所目前都使用bech32標(biāo)準(zhǔn)。
RPC、SDK和scilla合約均支持ByStr20地址校驗(yàn)。
怎么知道一個(gè)地址是智能合約還是賬戶?一種方法是發(fā)送GetSmartContractInitPOST請求進(jìn)行檢查。
在Javascript中,你可以執(zhí)行以下操作:
const{ Zilliqa }=require("@zilliqa-js/zilliqa");
(async()=>{ constzilliqa=newZilliqa("https://dev-api.zilliqa.com"); constaddress="573EC96638C8BB1C386394602E1460634F02ADDA";
constres=awaitzilliqa.blockchain.getSmartContractInit(address); constisContract=!!res.result;//returnsfalse });
熱點(diǎn):app開發(fā)