dapp 智能合约系统开发技术流程分析
什么是 DApp 系统开发?开发询 134-1633-5319
1 基本流程
Asch 有三种网络类型,分别是 localnet,testnet,mainnet,后两种是发布到线上的,可以通过公网访问。一种 localnet 是运行在本地的,只有一个节点的私链,主要是为了方便本地测试和开发。Dapp 的开发同样要涉及到这三种网络,即
一,在 localnet 的开发,本地测试
二,在 testnet 测试
三,正式发布到 mainnet
什么是 DApp?
DApp 是去中心化应用的缩写,也是去中心化应用。
从某种程度上来说,比特币可以说是 D 一个出现的 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 实现查询接口
在这个环节,你需要考虑的是如何给前端返回数据,比如区块,交易,各种合约业务状态的查询等也可以可用这个通道将一些非全局状态保存到本地节点,我们会在后续章节介绍这些高级用法。
评论