摘要:基本流程有三種,,,,后兩種是發(fā)布到線上的,可通過公網(wǎng)訪問。第一種是運(yùn)行在本地的只有一個(gè)節(jié)點(diǎn)的私鏈,主要是為了方便本地測試和開發(fā)。
1 基本流程
Asch有三種net,localnet,testnet,mainnet,后兩種是發(fā)布到線上的,可通過公網(wǎng)訪問。 第一種localnet是運(yùn)行在本地的、只有一個(gè)節(jié)點(diǎn)的私鏈,主要是為了方便本地測試和開發(fā)。 Dapp的開發(fā)同樣要涉及到這三種網(wǎng)絡(luò),即
第一步,在localnet開發(fā)、本地測試
第二步,在testnet測試
第三步,正式發(fā)布到mainnet
2 啟動localnet
每個(gè)開發(fā)者都可以在本地啟動自己的localnet,需要先下載asch源碼。
git clone https://github.com/sqfasd/asch
下載后就可以參照該項(xiàng)目的README進(jìn)行后面的安裝、運(yùn)行操作。
3 安裝asch-cli
npm instal -g asch-cli
注意這一步不要用淘寶的cnpm, 有bug
4 在本地創(chuàng)建一個(gè)應(yīng)用
首先要進(jìn)入你的asch源碼目錄,并確保localnet啟動
cd
node app.js
然后使用asch-cli的dapps子命令創(chuàng)建應(yīng)用
asch-cli dapps -a
接下來,我們要回答一系列的問題,以生成應(yīng)用的創(chuàng)世區(qū)塊
? Enter secret of your testnet account *
這里需要輸入一個(gè)創(chuàng)世賬戶,可以是任意一個(gè)普通的asch主密碼(12個(gè)單詞組成的那個(gè))? Enter second secret of your testnet account if you have
創(chuàng)世賬戶是否設(shè)置了二級密碼,默認(rèn)是沒有的,我們直接輸入回車即可? Enter DApp name Hello Dapp
Dapp的名字,我們輸入的是Hello Dapp? Enter DApp description Hello world demo for asch dapp
Dapp的描述,可以為空? Enter DApp tags hello,asch,dapp
Dapp的tags,為了將來更好的檢索,可以為空? Choose DApp category
1) Common
2) Business
3) Social
4) Education
5) Entertainment
6) News
(Move up and down to reveal more choices)
Answer:
? Enter DApp link https://github.com/sqfasd/asc...
輸入Dapp源碼的壓縮包,必須以zip結(jié)尾,安裝的時(shí)候需要通過這個(gè)鏈接進(jìn)行下載? Enter DApp icon url https://www.asch.com/logo.png
Dapp圖標(biāo)的url? Do you want publish a inbuilt asset in this dapp? No
是否需要在dapp中內(nèi)置一個(gè)資產(chǎn),我們暫時(shí)不需要這個(gè)選項(xiàng),輸入No即可? Enter public keys of dapp forgers - hex array, use "," for separator 8065a105c785a08757727fded3a06f8f312e73ad40f1f3502e0232ea42e67efd
輸入dapp的初始受托人公鑰列表,用逗號分隔,以后dapp的受托人是可以動態(tài)添加的,所以我們只需要輸入創(chuàng)世賬戶的一個(gè)密鑰即可Creating DApp genesis block
Fetching Asch Dapps SDK
Saving genesis block
Saving dapp meta information
Registering dapp in localnet
Done (DApp id is 6299140990391157236)
5 目錄結(jié)構(gòu)
我們可以查看dapps下面新增了一個(gè)目錄,目錄名就是新創(chuàng)建的dapp的id
ls -1 dapps/
blockchain.json # dapp數(shù)據(jù)庫描述
config.json # dapp的配置文件,主要是種子節(jié)點(diǎn)的列表,與主鏈配置類似,開發(fā)者也可以添加其他自定義配置
dapp.json # dapp的元信息,包括名稱、描述、源碼包等,這個(gè)文件可以用來在不同的網(wǎng)絡(luò)再次注冊時(shí)使用
genesis.json # 創(chuàng)世塊,命令行自動生成的,你也可以自己寫程序生成,那樣就可以更靈活的分配創(chuàng)世賬戶的資產(chǎn)
index.js # dapp的入口文件
init.js # 各模塊的初始化代碼在此
LICENSE # 源碼許可描述
modules # 主要代碼在這里
modules.full.json # 需要加載的模塊配置,如果需要新增模塊,可以在這里配置
modules.genesis.json # (模塊配置的簡化版,暫時(shí)不需要)
node_modules #
package.json #
public # 前端目錄
routes.json # http路由配置,如果要新增接口,需要修改這個(gè)配置文件
開發(fā)者如果覺得復(fù)雜,不需要詳細(xì)追究,先大概了解即可。 與開發(fā)者最相關(guān)的文件主要在modules/contracts/目錄下 我們看到這個(gè)目錄已經(jīng)存在4個(gè)內(nèi)置的合約類型
ls -1 dapps//modules/contracts/ delegates.js # 受托人注冊合約 insidetransfer.js # 鏈內(nèi)轉(zhuǎn)賬合約 outsidetransfer.js # XAS充值合約 withdrawaltransfer.js # XAS提現(xiàn)合約
開發(fā)者需要做的就是創(chuàng)建新的合約,用來表達(dá)你的業(yè)務(wù)邏輯,僅此而已。其他不相關(guān)的代碼都不需要了解。
6 配置dapp創(chuàng)世密鑰
我們需要在config.json的dapp的字段配置上我們之前在創(chuàng)世塊中使用的主密碼和對應(yīng)的dapp id。
將來發(fā)布到正式網(wǎng)絡(luò)中時(shí),也需要有一臺節(jié)點(diǎn)配置這個(gè)密鑰,僅需一臺
"params": { "6299140990391157236": [ "someone manual strong movie roof episode eight spatial brown soldier soup motor" ] }
7 訪問前端
好,現(xiàn)在我們來放松一下,打開dapp的前端鏈接,體驗(yàn)一下側(cè)鏈的基本功能。 可以在錢包ui的已安裝應(yīng)用列表中找到dapp入口 或者直接訪問dapp的urllocalhost:4096/dapps/
在這個(gè)hello world項(xiàng)目中,我們可以進(jìn)行充值、鏈內(nèi)轉(zhuǎn)賬和提現(xiàn)操作。 目前的充值暫時(shí)只能通過命令進(jìn)行操作(后面會做到主錢包中),其他功能都可以直接在這個(gè)界面上操作
asch-cli dapps -d ? Enter secret ******************************************************************************* ? Enter amount 100 ? DApp Id 6299140990391157236 ? Enter secondary secret (if defined) ? Host and port localhost:4096 null { success: true, transactionId: "10589988261732949004" } 10589988261732949004
充值和提現(xiàn)操作都是30秒刷新一次,我們稍等片刻,就可以看到界面上的余額刷新了。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/81146.html
摘要:前一篇文章介紹了開發(fā)的基本流程,這一次打算創(chuàng)建一個(gè)擁有內(nèi)置資產(chǎn)的,并順便介紹下前后端通訊的協(xié)議和常用接口。我們的程序目前只能創(chuàng)建一種內(nèi)置資產(chǎn),如果有創(chuàng)建多種資產(chǎn)的需求,我們可以考慮開發(fā)。 前一篇文章介紹了asch dapp開發(fā)的基本流程,這一次打算創(chuàng)建一個(gè)擁有內(nèi)置資產(chǎn)的dapp,并順便介紹下前后端通訊的協(xié)議和常用接口。 1 創(chuàng)建一個(gè)帶內(nèi)置資產(chǎn)的dapp 其實(shí)這篇文章有些標(biāo)題黨,因?yàn)閯?chuàng)建...
摘要:安裝和卸載安裝卸載這兩個(gè)命令會提示你輸入個(gè)參數(shù),分別是節(jié)點(diǎn)地址節(jié)點(diǎn)密碼,其中節(jié)點(diǎn)密碼是配置在中的 1 注冊 注冊到testnet asch-cli -H -P registerdapp -e -f path/to/dapp.json 注冊到mainnet asch-cli -H -P -M registerdapp -e -f path/to/dapp.json 其中d...
摘要:安裝和卸載安裝卸載這兩個(gè)命令會提示你輸入個(gè)參數(shù),分別是節(jié)點(diǎn)地址節(jié)點(diǎn)密碼,其中節(jié)點(diǎn)密碼是配置在中的 1 注冊 注冊到testnet asch-cli -H -P registerdapp -e -f path/to/dapp.json 注冊到mainnet asch-cli -H -P -M registerdapp -e -f path/to/dapp.json 其中d...
摘要:但是我覺得在原理上與上一個(gè)項(xiàng)目相比,并沒有什么不同。源碼是最好的老師。 這個(gè)dice game與上一個(gè)mini dao相比,代碼規(guī)模大了許多,功能也復(fù)雜了很多,創(chuàng)建了三個(gè)合約類型,彼此之間有依賴關(guān)系,合約的執(zhí)行還要依賴歷史交易數(shù)據(jù)。 但是我覺得在原理上與上一個(gè)項(xiàng)目相比,并沒有什么不同。 源碼是最好的老師。
摘要:但是我覺得在原理上與上一個(gè)項(xiàng)目相比,并沒有什么不同。源碼是最好的老師。 這個(gè)dice game與上一個(gè)mini dao相比,代碼規(guī)模大了許多,功能也復(fù)雜了很多,創(chuàng)建了三個(gè)合約類型,彼此之間有依賴關(guān)系,合約的執(zhí)行還要依賴歷史交易數(shù)據(jù)。 但是我覺得在原理上與上一個(gè)項(xiàng)目相比,并沒有什么不同。 源碼是最好的老師。
閱讀 4028·2021-11-22 13:53
閱讀 1728·2021-09-23 11:52
閱讀 2445·2021-09-06 15:02
閱讀 953·2019-08-30 15:54
閱讀 910·2019-08-30 14:15
閱讀 2391·2019-08-29 18:39
閱讀 663·2019-08-29 16:07
閱讀 427·2019-08-29 13:13