关于很多区块链DAPP的逻辑方案讲解,但具体什么是DAPP呢?DAPP的全称是Decentralized Application,也就是说,分散的应用在业内被称为分散的应用,是基于区块链底层技术的新应用模式。DAPP类似于区块链技术APP与安卓系统的关系是基于底层系统开发的衍生产品。
dApp 基本架构
一个dapp包含的基本结构如下:
- dapp client:dapp 客户端是用户与你的Dapp交互的显示界面,网页和移动应用程序是比较常见的dapp 客户端。
- smart contract:智能合约是一串代码的集合,将部署在区块链上的一个永久位置,它定义了一个Dapp的核心逻辑。
- user account:用户账户是区块链上的储存着一个用户所拥有的数字资产的一条记录。
- transaction:交易是提交给区块链的一段代码,它改变了一个或多个用户账户或智能合约的状态。所有交易都源于至少一个用户账户。在大多数情况下,一个交易在一个用户账户和一个智能合约之间传递数据。
- state query:状态查询是向区块链提出的请求,返回有关你的dapp智能合约的信息。
- user wallet:用户钱包是一个软件或者硬件,它能控制一个在区块链上的账户访问权限。应用程序客户端通常连接到用户的钱包,以便将交易发送到区块链上。
- flow client library (FCL):FCL是一个框架,它提供了一个标准接口来连接客户端应用程序和用户钱包。
常用工具
- Flow Playground
一个基于浏览器的交互式IDE,用于运行flow上的Cadence智能合约。它使用Cadence语言服务器进行全面类型检查和错误报告。Playground是推进你Cadence项目的最快方式。
- FCL
Flow 客户端库 (FCL) 使应用程序能够轻松地与所有兼容 FCL 的钱包和其他服务(例如(即将推出的)配置文件、私人信息、通知)集成。这为开发人员让他们的dapp与区块链交互提供了一个强大的基础。FCL目前支持浏览器,并在将来会扩展到其他平台。
- Flow CLI
Flow CLI 是一个命令行界面,为构建 Flow 应用程序提供有用的帮助,包含一些命令去与Flow networks 交互,如:请求账户信息,发送交易等。同时它也包含Flow Emulator。
- Flow Emulator
Flow Emulator 是一种轻量级工具,可模拟真实 的 Flow Blockchain 行为 。模拟器公开了一个实现 Flow Access API 的 gRPC 服务器,该服务器旨在与真实的网络 API 具有近乎相同的功能。
- VSCode Flow
可以将 Flow 面向资源的智能合约编程语言 Cadence 集成到 Visual Studio Code 中。它提供语法高亮、类型检查、代码补全功能。
- Fcl-dev-wallet
FCL 开发钱包是一个模拟的 Flow 钱包,它模拟了FCL使用的协议,模拟用户帐户与 Flow 区块链交互。
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上基于智能合约开发的相关应用。