摘要:基本流程有三种,,,,后两种是发布到线上的,可通过公网访问。第一种是运行在本地的只有一个节点的私链,主要是为了方便本地测试和开发。
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秒刷新一次,我们稍等片刻,就可以看到界面上的余额刷新了。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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相比,代码规模大了许多,功能也复杂了很多,创建了三个合约类型,彼此之间有依赖关系,合约的执行还要依赖历史交易数据。 但是我觉得在原理上与上一个项目相比,并没有什么不同。 源码是最好的老师。
阅读 4001·2021-11-22 13:53
阅读 1628·2021-09-23 11:52
阅读 2419·2021-09-06 15:02
阅读 878·2019-08-30 15:54
阅读 844·2019-08-30 14:15
阅读 2365·2019-08-29 18:39
阅读 599·2019-08-29 16:07
阅读 399·2019-08-29 13:13