摘要:基本流程有三種,,,,后兩種是發布到線上的,可通過公網訪問。第一種是運行在本地的只有一個節點的私鏈,主要是為了方便本地測試和開發。
1 基本流程
Asch有三種net,localnet,testnet,mainnet,后兩種是發布到線上的,可通過公網訪問。 第一種localnet是運行在本地的、只有一個節點的私鏈,主要是為了方便本地測試和開發。 Dapp的開發同樣要涉及到這三種網絡,即
第一步,在localnet開發、本地測試
第二步,在testnet測試
第三步,正式發布到mainnet
2 啟動localnet
每個開發者都可以在本地啟動自己的localnet,需要先下載asch源碼。
git clone https://github.com/sqfasd/asch
下載后就可以參照該項目的README進行后面的安裝、運行操作。
3 安裝asch-cli
npm instal -g asch-cli
注意這一步不要用淘寶的cnpm, 有bug
4 在本地創建一個應用
首先要進入你的asch源碼目錄,并確保localnet啟動
cd
node app.js
然后使用asch-cli的dapps子命令創建應用
asch-cli dapps -a
接下來,我們要回答一系列的問題,以生成應用的創世區塊
? Enter secret of your testnet account *
這里需要輸入一個創世賬戶,可以是任意一個普通的asch主密碼(12個單詞組成的那個)? Enter second secret of your testnet account if you have
創世賬戶是否設置了二級密碼,默認是沒有的,我們直接輸入回車即可? 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結尾,安裝的時候需要通過這個鏈接進行下載? Enter DApp icon url https://www.asch.com/logo.png
Dapp圖標的url? Do you want publish a inbuilt asset in this dapp? No
是否需要在dapp中內置一個資產,我們暫時不需要這個選項,輸入No即可? Enter public keys of dapp forgers - hex array, use "," for separator 8065a105c785a08757727fded3a06f8f312e73ad40f1f3502e0232ea42e67efd
輸入dapp的初始受托人公鑰列表,用逗號分隔,以后dapp的受托人是可以動態添加的,所以我們只需要輸入創世賬戶的一個密鑰即可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 目錄結構
我們可以查看dapps下面新增了一個目錄,目錄名就是新創建的dapp的id
ls -1 dapps/
blockchain.json # dapp數據庫描述
config.json # dapp的配置文件,主要是種子節點的列表,與主鏈配置類似,開發者也可以添加其他自定義配置
dapp.json # dapp的元信息,包括名稱、描述、源碼包等,這個文件可以用來在不同的網絡再次注冊時使用
genesis.json # 創世塊,命令行自動生成的,你也可以自己寫程序生成,那樣就可以更靈活的分配創世賬戶的資產
index.js # dapp的入口文件
init.js # 各模塊的初始化代碼在此
LICENSE # 源碼許可描述
modules # 主要代碼在這里
modules.full.json # 需要加載的模塊配置,如果需要新增模塊,可以在這里配置
modules.genesis.json # (模塊配置的簡化版,暫時不需要)
node_modules #
package.json #
public # 前端目錄
routes.json # http路由配置,如果要新增接口,需要修改這個配置文件
開發者如果覺得復雜,不需要詳細追究,先大概了解即可。 與開發者最相關的文件主要在modules/contracts/目錄下 我們看到這個目錄已經存在4個內置的合約類型
ls -1 dapps//modules/contracts/ delegates.js # 受托人注冊合約 insidetransfer.js # 鏈內轉賬合約 outsidetransfer.js # XAS充值合約 withdrawaltransfer.js # XAS提現合約
開發者需要做的就是創建新的合約,用來表達你的業務邏輯,僅此而已。其他不相關的代碼都不需要了解。
6 配置dapp創世密鑰
我們需要在config.json的dapp的字段配置上我們之前在創世塊中使用的主密碼和對應的dapp id。
將來發布到正式網絡中時,也需要有一臺節點配置這個密鑰,僅需一臺
"params": { "6299140990391157236": [ "someone manual strong movie roof episode eight spatial brown soldier soup motor" ] }
7 訪問前端
好,現在我們來放松一下,打開dapp的前端鏈接,體驗一下側鏈的基本功能。 可以在錢包ui的已安裝應用列表中找到dapp入口 或者直接訪問dapp的urllocalhost:4096/dapps/
在這個hello world項目中,我們可以進行充值、鏈內轉賬和提現操作。 目前的充值暫時只能通過命令進行操作(后面會做到主錢包中),其他功能都可以直接在這個界面上操作
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
充值和提現操作都是30秒刷新一次,我們稍等片刻,就可以看到界面上的余額刷新了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81146.html
摘要:前一篇文章介紹了開發的基本流程,這一次打算創建一個擁有內置資產的,并順便介紹下前后端通訊的協議和常用接口。我們的程序目前只能創建一種內置資產,如果有創建多種資產的需求,我們可以考慮開發。 前一篇文章介紹了asch dapp開發的基本流程,這一次打算創建一個擁有內置資產的dapp,并順便介紹下前后端通訊的協議和常用接口。 1 創建一個帶內置資產的dapp 其實這篇文章有些標題黨,因為創建...
摘要:安裝和卸載安裝卸載這兩個命令會提示你輸入個參數,分別是節點地址節點密碼,其中節點密碼是配置在中的 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...
摘要:安裝和卸載安裝卸載這兩個命令會提示你輸入個參數,分別是節點地址節點密碼,其中節點密碼是配置在中的 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...
摘要:但是我覺得在原理上與上一個項目相比,并沒有什么不同。源碼是最好的老師。 這個dice game與上一個mini dao相比,代碼規模大了許多,功能也復雜了很多,創建了三個合約類型,彼此之間有依賴關系,合約的執行還要依賴歷史交易數據。 但是我覺得在原理上與上一個項目相比,并沒有什么不同。 源碼是最好的老師。
摘要:但是我覺得在原理上與上一個項目相比,并沒有什么不同。源碼是最好的老師。 這個dice game與上一個mini dao相比,代碼規模大了許多,功能也復雜了很多,創建了三個合約類型,彼此之間有依賴關系,合約的執行還要依賴歷史交易數據。 但是我覺得在原理上與上一個項目相比,并沒有什么不同。 源碼是最好的老師。
閱讀 4024·2021-11-22 13:53
閱讀 1722·2021-09-23 11:52
閱讀 2443·2021-09-06 15:02
閱讀 946·2019-08-30 15:54
閱讀 906·2019-08-30 14:15
閱讀 2390·2019-08-29 18:39
閱讀 662·2019-08-29 16:07
閱讀 426·2019-08-29 13:13