关于很多区块链DAPP的逻辑方案讲解,但具体什么是DAPP呢?
DAPP的全称是Decentralized Application,也就是说,(刘森-180-2857-8624)分散的应用在业内被称为分散的应用,是基于区块链底层技术的新应用模式。DAPP类似于区块链技术APP与安卓系统的关系是基于底层系统开发的衍生产品。
DAPP智能合约开发流程是怎样
1基本流程
Asch有三种网络类型,分别是localnet,testnet,mainnet,后两种是发布到线上的,可以通过公网访问。第一种localnet是运行在本地的,只有一个节点的私链,主要是为了方便本地测试和开发。Dapp的开发同样要涉及到这三种网络,即
第一步,在localnet的开发,本地测试
第二步,在testnet测试
第三步,正式发布到mainnet
DAPP is the abbreviation of decentralized application, and it is also decentralized application.
从某种程度上来说,比特币可以说是第一个出现的DAPP,因为它是完全开源的,为贡献者提供奖励,不受一个中央机构的控制,使用区块链作为支撑技术。
As an infrastructure, blockchain provides a distributed and decentralized trusted database. Based on this, people can develop various applications for different scenarios.
Simply put,DApp和普通App的原理是一样的,只不过它们是完全去中心化的。DAPP像以太坊网络本身一样由自己的节点运营,不依赖于任何集中式服务器。DAPP是去中心化的,可以完全自动运行。
目前,DApp通常是指在以太坊或EOS上基于智能合约开发的相关应用。
DApp操作原理
DAPP的底层区块链开发平台就像手机的iOS和Android系统一样,是各种DAPP的底层生态环境。DApp是从底层区块链平台生态衍生出来的各种分布式应用,也是区块链世界的基础服务提供商。Dapp在区块链,就像app在iOS和Android一样。
dapps/0599a6100280df0d296653e89177b9011304d971fb98aba3edcc5b937c4183fb/
├──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//默认前端页面
什么是智能合约
如果将区块链视为数据库、数据源,
智能合同基本上是一个数据库操作脚本,
它决定了如何在区块链上存储和修改数据。
智能合约开发
实现你的业务逻辑
I once wrote our development concept in this blog
在asch dapp中实现一个业务逻辑,大概思路如下
1定义你的数据模型
在这个环节,你需要考虑的是在区块链中保存什么数据或状态,你的账单内容是什么哪些字段需要建立索引,以提高客户端查询速度
2实现合约逻辑
这个环节,你需要考虑的是一个事务或一个调用会修改哪些状态,比如资产余额,账户属性等我们在sdk中提供了丰富的接口可供调用,具体可参考sdk接口文档
3实现查询接口
在这个环节,你需要考虑的是如何给前端返回数据,比如区块,交易,各种合约业务状态的查询等也可以可用这个通道将一些非全局状态保存到本地节点,我们会在后续章节介绍这些高级用法。