Dapp开发教程一 Asch Dapp Hello World

Asch网友2017-11-03 13:48:03  阅读 -评论 0
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 <asch source code dir>

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:

# Dapp的类型,可以任意选择你的dapp所属的业务范围或领域,输入列表中的数字即可

? Enter DApp link https://github.com/sqfasd/asch-hello/archive/master.zip

# 输入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)

# 接下来程序就会自动在localnet上注册这个应用了,在这个示例中,我们的应用id为6299140990391157236

5 目录结构

我们可以查看dapps下面新增了一个目录,目录名就是新创建的dapp的id

ls -1 dapps/<dapp id>

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/<dapp id>/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/<dapp id>

在这个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秒刷新一次,我们稍等片刻,就可以看到界面上的余额刷新了。

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们100@7234.cn

    参与讨论 (0 人参与讨论)

    相关推荐

    比特币有什么缺点?

    1.交易平台的脆弱性。比特币网络很健壮,但比特币交易平台很脆弱。交易平台通常是一个网站,而网站会遭到黑客攻击,或者遭到主管部门的关闭。2.交易确认时间长。比特币钱包初次安装时,会消耗大量时间下载历史交易数据块。而比特币交易时,为了确认数据准确性,会消耗一些时间,与p2p网络进行交互,得到全网确认后,交易才算完成。3.价格波动极大。由于大量炒家介入,导致比特币兑换现金的价格如过山车一般起伏。使得比

    业务中使用区块链的四种方式

    业务中使用区块链的四种方式

    暴走时评:区块链是一种支持像比特币这样的数字货币的公共分类帐本,并且正改变着我们的业务方式。一旦那些对匿名交易,甚至是秘密交易感兴趣的人接纳了这样一种鲜为人知的工具,加密货币就会日趋成为主流。 区块链是一种支持像比特币这样的数字货币的公共分类帐本,并且正改变着我们的业务方式。一旦那些对匿名交易,甚至是秘密交易感兴趣的人接纳了这样一种鲜为人知的工具,加密货币就会日趋成为主流。越来越多的个人和企

    区块链:法定数字货币技术路线的必然选择

    区块链:法定数字货币技术路线的必然选择

    在人类发展史上,货币的进化从未停止。从物物交换,到金属铸币,再到纸质货币,以及当前正在发展的数字货币正在向着越来越便捷的方向进化。 比特币的出世起初并未带来轰动,但是最近几年其价格惊人的爬高创造出了一个个造富神话,引起各国政府及监管机构的关注。虽然金融专家普遍认为它只是一种资产,而非货币,但是,其背后的区块链(Blockchain)技术引起了包括各大金融机构、政府、企业及学术界的浓厚兴趣,未

    用区块链记录证书,证明真伪,墨尔本大学迈出了第一步

    用区块链记录证书,证明真伪,墨尔本大学迈出了第一步

    墨尔本大学宣布发起区块链认证和审核计划,允许通过一种隐私、安全且持久的方式验证学生的证书。 墨尔本大学正在试验一个区块链记录维护项目,允许接收者(即学生)存储他们的证书,出于核验目的,第三方也能访问这个系统。Learning Machine是这个发布系统的开发者,他们采用的是麻省理工媒体实验室(MIT Media Lab)在2016年提交的Blockcerts开源代码。 墨尔本大学副校长格雷

    日本IT巨头富士通联合日本“三大行”开发区块链p2p资金转移系统

    日本IT巨头富士通(Fujitsu)与三家大型银行已经宣布计划试点一项基于区块链创建的点对点资金转移系统。 通过与日本三大行——瑞穗金融集团,三井住友金融集团和三菱UFJ金融集团——的合作,富士通将现场试验一种基于云的区块链平台,用于在个体之间发送资金,并开发一款智能手机APP来提高这个系统的可用性。 从理论上讲,这个平台将把三大行的客户法定货币账户与这个区块链系统相连接。客户然后将能够使用这

    动画科普:什么是比特币?

    动画科普:什么是比特币?

    比特币(Bitcoin,简写BTC)概念由中本聪(化名)提出,是一种点对点、去中心化的数字资产;2009年,中本聪打包了第一个区块,并获得50枚比特币的挖矿奖励,挖矿奖励每4年减半一次,按此计算,比特币预计2140年发行完毕,总量为2100万枚。 随着比特币的发展,比特币逐渐受到认可:德国为全球首个接受比特币支付的国家;微软、戴尔等知名企业也纷纷接受比特币支付。 举个栗子,你能直接用比特币买到

    3分钟理解什么是公有链、私有链、联盟链、许可链

    不同的区块链有着不同的内涵和功能,在区块链领域经常出现的公有链、私有链、联盟链、许可链,这些又都代表什么意思呢? 公有链 公有链是指全世界任何人都可以随时进入系统中读取数据、发送可确认交易、竞争记账的区块链。公有链通常被认为是完全去中心化的,因为没有任何人或机构可以控制或篡改其中数据的读写。公有链一般会通过代币机制鼓励参与者竞争记账,来确保数据的安全性。比特币、以太坊都是典型的公有链。 私

    区块链是比特币的底层技术,但似乎两者已走上不同的道路

    区块链是比特币的底层技术,但似乎两者已走上不同的道路

    比特币的出现带来了一项新的技术——区块链,不过区块链和比特币似乎已走上了两条不一样道路,作为技术的区块链被越来越多的人所看好,而性质偏向于投资的比特币似乎被更多人看衰。 成也萧何败也萧何 比特币火爆的原因是其拥有去中心化、全世界流通、专属所有权、低交易费用、无隐藏成本、跨平台挖掘的特性,这些特性促使比特币成为了很多人关注的焦点。之后众多庄家的入局让比特币一瞬间成为了热门投资产业,但这几大特

    麦妖榜
    更新日期 2019-04-17
    排名用户贡献值
    1BitettFan23830
    2等待的宿命23696
    3六叶树20309
    4区块大康16529
    5天下无双16192
    6lizhen00214933
    7让时间淡忘14286
    8linjm122713565
    9冷风大q11188
    10momo11174
    返回顶部 ↑