什么是DApp系统开发?
1基本流程
Asch有三种网络类型,分别是localnet,testnet,mainnet,后两种是发布到线上的,(180-2857-8624)可以通过公网访问。第一种localnet是运行在本地的,只有一个节点的私链,主要是为了方便本地测试和开发。Dapp的开发同样要涉及到这三种网络,即
第一步,在localnet的开发,本地测试
第二步,在testnet测试
第三步,正式发布到mainnet
什么是DApp?
DApp是去中心化应用的缩写,也是去中心化应用。
从某种程度上来说,比特币可以说是第一个出现的DAPP,因为它是完全开源的,为贡献者提供奖励,不受一个中央机构的控制,使用区块链作为支撑技术。
区块链作为一个基础设施,提供了一个分布式去中心化的可信数据库。基于此,人们可以针对不同的场景开发各种应用。
简单来说,DApp和普通App的原理是一样的,只不过它们是完全去中心化的。DAPP像以太坊网络本身一样由自己的节点运营,不依赖于任何集中式服务器。DAPP是去中心化的,可以完全自动运行。
目前,DApp通常是指在以太坊或EOS上基于智能合约开发的相关应用。
DApp操作原理
DAPP的底层区块链开发平台就像手机的iOS和Android系统一样,是各种DAPP的底层生态环境。DApp是从底层区块链平台生态衍生出来的各种分布式应用,也是区块链世界的基础服务提供商。Dapp在区块链,就像app在iOS和Android一样。
├──blockchain.db//dapp数据库文件,与主链的数据是分开存放的
├──config.json//应用的节点配置文件,目前主要用于配置受托人秘钥
├──contract//合约目录
│└──domain.js//域名合约的实现代码
├──dapp.json//注册dapp时用到的元文件
├──genesis.json//创世区块
├──init.js//应用初始化代码,可以在该文件进行一些设置、事件注册等
├──interface//查询接口的实现目录
│├──domain.js//域名查询接口实现
│└──helloworld.js
├──logs//日志目录
│└──debug.20170928.log
├──model
│└──domain.js//域名业务数据模型定义
└──public
└──index.html//默认前端页面
什么是智能合同?
如果将区块链视为数据库、数据源,
智能合同基本上是一个数据库操作脚本,
它决定了如何在区块链上存储和修改数据。
智能合同开发
实现你的业务逻辑
曾经我在这个博客里写过我们的开发理念
在asch dapp中实现一个业务逻辑,大概思路如下
6.1定义你的数据模型
在这个环节,你需要考虑的是在区块链中保存什么数据或状态,你的账单内容是什么哪些字段需要建立索引,以提高客户端查询速度
6.2实现合约逻辑
这个环节,你需要考虑的是一个事务或一个调用会修改哪些状态,比如资产余额,账户属性等我们在sdk中提供了丰富的接口可供调用,具体可参考sdk接口文档
6.3实现查询接口
在这个环节,你需要考虑的是如何给前端返回数据,比如区块,交易,各种合约业务状态的查询等也可以可用这个通道将一些非全局状态保存到本地节点,我们会在后续章节介绍这些高级用法。