# Flow生态基础设施大起底，想在Flow上开发，这些工具你必须知道

By [0xMarx](https://paragraph.com/@chainide) · 2021-11-24

---

a.jpg

### 剖析 Flow Dapp

Hello, 大家好，又到了学习时间了！想要知道如何在flow上搭建Dapp，就必须先了解在Flow上Dapp是如何构成的。下图概述了建立在Flow区块链上的典型DApp的组成部分。虽然许多dapp的结构不同，但这个架构介绍的基本概念将贯穿整个指导。

Dapp Client （Dapp 客户端）:  dapp 客户端是用户与你的Dapp交互的显示界面，网页和移动应用程序是比较常见的dapp 客户端。

Smart Contract （智能合约）: 智能合约是一串代码的集合，将部署在区块链上的一个永久位置，它定义了一个Dapp的核心逻辑。

User Account （用户账户）: 用户账户是区块链上的储存着一个用户所拥有的数字资产的一条记录。

Transaction （交易）: 交易是提交给区块链的一段代码，它改变了一个或多个用户账户或智能合约的状态。所有交易都源于至少一个用户账户。在大多数情况下，一个交易在一个用户账户和一个智能合约之间传递数据。

State Query（状态查询）: 状态查询是向区块链提出的请求，返回有关你的dapp智能合约的信息。

User Wallet （用户钱包）: 用户钱包是一个软件或者硬件，它能控制一个在区块链上的账户访问权限。应用程序客户端通常连接到用户的钱包，以便将交易发送到区块链上。

Flow Client Library (FCL): FCL是一个框架，它提供了一个标准接口来连接客户端应用程序和用户钱包。

b.jpg

**Flow Playground**

c.jpg

一个基于浏览器的交互式IDE，用于运行flow上的Cadence智能合约。它使用Cadence语言服务器进行全面类型检查和错误报告。Playground是推进你Cadence项目的最快方式。

直达链接：[https://zh.onflow.org/play](https://zh.onflow.org/play)

### FCL

npm i -S @onflow/fcl @onflow/types

Flow 客户端库 (FCL) 使应用程序能够轻松地与所有兼容 FCL 的钱包和其他服务（例如（即将推出的）配置文件、私人信息、通知）集成。这为开发人员让他们的dapp与区块链交互提供了一个强大的基础。FCL目前支持浏览器，并在将来会扩展到其他平台。

使用 FCL，您可以：

*   集成所有兼容的钱包，无需任何其他自定义代码或代码注入
    
*   验证用户
    
*   查询flow区块链
    
*   发送交易（例如初始化资源、发送资产、购买等）
    
*   通过钱包集成签署交易功能，避免密钥管理
    

使用 FCL，您最终将能够：

*   通过 FCL 兼容钱包对数据进行个人签名
    
*   请求其他用户信息，如电子邮件
    

当然FCL是Flow上基于js实现的一种SDK，除了js以外还有其他语言的sdk哦。

直达链接：[https://docs.onflow.org/sdks/](https://docs.onflow.org/sdks/)

### Flow CLI

Flow CLI 是一个命令行界面，为构建 Flow 应用程序提供有用的帮助，包含一些命令去与Flow networks 交互，如： 请求账户信息，发送交易等。同时它也包含Flow Emulator。

直达链接：[https://docs.onflow.org/flow-cli/](https://docs.onflow.org/flow-cli/)

### Flow Emulator

一个外观、行为和说话都像 Flow 的开发工具，Flow Emulator 是一种轻量级工具，可模拟真实 的 Flow Blockchain 行为 。模拟器公开了一个实现 Flow Access API 的 gRPC 服务器，该服务器旨在与真实的网络 API 具有近乎相同的功能。

直达链接：[https://docs.onflow.org/emulator/](https://docs.onflow.org/emulator/)

### VSCode Flow

有的小伙伴比较喜欢使用vs code开发，那么flow这里也是准备了vscode的扩展插件哦。可以将 Flow 面向资源的智能合约编程语言 Cadence 集成到 Visual Studio Code 中。它提供语法高亮、类型检查、代码是否完成等功能。

直达链接： [https://docs.onflow.org/vscode-extension/](https://docs.onflow.org/vscode-extension/)

### Fcl-dev-wallet

FCL 开发钱包是一个模拟的 Flow 钱包，它模拟了FCL使用的协议，模拟用户帐户与 Flow 区块链交互。该项目实现了与 FCL 兼容的接口，但不应该用作构建生产级钱包的参考。

直达链接：[https://github.com/onflow/fcl-dev-wallet](https://github.com/onflow/fcl-dev-wallet)

**总结**

好了，今天的基础设施介绍就到这里了，希望能给各位开发者带来一些帮助哦！

\*\*

\*\*

---

*Originally published on [0xMarx](https://paragraph.com/@chainide/flow-flow)*
