Bsc 开发快速上手指南 (2021.8.9 修订)

image

关于币安智能链 BSC

币安智能链 (Binance Smart Chain,简称 BSC 是一条以太坊虚拟机兼容,与币安链并行的区块链,是加密资产行业顶尖项目的测试和前沿探索。通过引入权益权威证明(PoSA)共识机制,BSC 创建了验证一个允许节点、代币持有者、开发者和用户都能够从区块链中获益的生态系统,享受更高的性能和更充裕的创新空间。本文为 BSC 开发快速上手指南,希望为开发者提供指导和帮助。

准备 BSC 数字钱包

在区块链应用中,数字钱包装载的并不是数字货币,而是密钥(私钥和公钥)。数字钱包中包含成对的私钥和公钥,公钥用于交易转账,私钥用于签名和解密。拥有了密钥相当于拥有相应地址上数字货币的支配权。在开发流程中,我们通过钱包来创建随机私钥、公钥、以及一串用于交易的地址信息。这段地址信息可以用于接受他人转账的数字货币,以及把你所拥有的数字货币转账给其他人。因此在我们开发智能合约之前,首先要先准备一个数字钱包。

对于币安智能链来说,我们推荐使用浏览器插件钱包或者 APP 钱包作为管理密钥的工具。

使用浏览器插件钱包

在开发过程当中,最常用的是浏览器插件钱包。浏览器插件钱包配置简单,插件钱包的安装和使用都很便捷。此外,由于目前大多数区块链应用都是网页的,因此通过浏览器钱包可以轻松访问目前主流的所有 Defi 和 NFT 应用。

需要大家注意的是,Binance Chain Walle 同时支持 币安链 (Binance Chain)币安智能链 (Binance Smart Chain) ,这是两条不同的链,需要大家注意区分。

使用 APP 钱包

在智能合约上线以后,大部分用户会选择使用APP钱包来访问并使用。

准备 BSC 的开发环境

使用 BSC Studio 开始一站式开发旅程

BSC Studio 是一套功能强大且简便易用的 BSC 币安智能链图形化 IDE 开发平台。它支持运行于包括 Windows, macOS 以及 Linux 等主流操作系统在内的桌面端,也可以运行于 Web 端。相较于以 Remix 和 Ganache 为代表的传统的以太坊开发工具链,BSC Studio 优化了 BSC 开发环境的检测和安装,并整合了完整开发流程中必需的工具,例如图形化代码编辑器,项目管理器,密钥管理器,区块浏览器,合约调试器以及网络链接管理器。

通过桌面端进行本地开发

桌面端包含完整的开发工具,适合从新手到资深团队等不同阶段的 BSC 开发者。用户可以前往 GitHub - ObsidianLabs/BSC-Studio 下载最新版的 BSC Stduio 桌面端软件,目前支持包括 macOS,Linux 和 Windows 在内的主流操作系统。

安装

  • macOS: 双击打开 BSC-Studio-x.x.x.dmg 并将 BSC Studio 拖动到应用文件夹内

  • Linux: 双击打开 BSC-Studio-x.x.x.AppImageProperties( => Permissions => Execute , 将 Allow executing file as program 选项打勾。关闭属性设置窗口并双击打开应用(不同的 Linux 发行版可能会有不同的安装方式)

  • Windows: 双击打开 BSC-Studio-x.x.x.exe

准备环境依赖

在正确安装 BSC Studio 并初次启动时,你将看到一个欢迎页面,这里有正常运行币安智能链 BSC 开发所需要的依赖,包括了 Docker,BSC Node 以及 Truffle.

  • BSC Studio 使用 Docker 来启动 BSC 节点和进行项目编译。如果你之前没有安装过 Docker,可以点击 Install Docker 按钮访问 Docker 官方网站并进行下载安装;
  • Docker Hub 存储着BSC 节点镜像,BSC Studio 使用这个镜像来运行 BSC 节点;
  • Docker Hub BSC Studio 使用 Truffle 工具包进行项目的创建和编译。

当所有依赖都正确安装并运行后,灰色的 Skip 按钮将会变成绿色的 Get Started 按钮。点击这个按钮进入主界面,就可以开始智能合约开发了!

通过网页端在线体验 BSC 合约开发

BSC Studio 提供了 Web 版供大家在线编译和运行 BSC 合约。Web 版本在集成了 BSC Studio 桌面版本绝大多数功能的同时,省略了开发者在本地准备和调试开发环境的过程,降低了开发者的入门的门槛,适合刚刚加入 BSC 生态的轻度开发者使用。开发者可以前往 http://bsc.ide.black 开始云端开发新体验。

关于 BSC Studio 的更多使用说明,请参见 GitHub - ObsidianLabs/BSC-Studio

接入 BSC 网络

BSC 主要有两个网络,分别为主网 (BSC Mainnet) 和测试网 (BSC Testnet):

  • BSC 测试网,是供开发者进行合约测试使用的,测试网上的 token 是可以免费领取 (通过 Faucet ),测试网 token 没有任何经济价值。

  • BSC 主网,是智能合约正式部署的网络,用户实际是在主网上使用你的智能合约,主网上的代币 (BNB 及 BEP20 标准) 是有实际经济价值的。

BSC Studio 已经在软件中预配置了 BSC 主网和测试网的链接,可以方便的进行切换。为了方便用户在网络上进行开发,我们集成了很多工具,涵盖了浏览器钱包(密钥管理,转账工具) 、BSC 区块浏览器、Faucet 等日常需要的工具。

BSC 区块浏览器

如果需要查询网络信息和链上数据,BSC 提供了测试网区块浏览器https://testnet.bscscan.com/ 主网区块浏览器 https://bscscan.com/ 供开发者和用户查询链上数据。

BSC 数据接口

如果原生节点的扩展性不能满足保持与 BSC 链上数据同步的需求,可以考虑使用 StreamingFast 来提供 BSC 的全历史实时数据流,帮助满足监听合约、获取帐户余额、AMM 价格更新或同步其本地数据库的需求,同步速度是节点 50 倍,可在 https://streamingfast.io 获取账户免费使用。

Faucet

在使用 BSC 测试网开发中,我们需要使用 token 进行合约的部署、调用、转账等操作。通过测试网的 Faucet 服务(Binance Smart Chain: Faucet),可以申请测试 token。同样的,BSC Studio 集成了 Faucet 按钮(GitHub - ObsidianLabs/BSC-Studio) ,方便用户使用 Faucet 服务获取测试代币。

BSC 智能合约开发

BSC 开发中的关键工具

  • Truffle

Truffle 是一套基于 Solidity 语言的开发框架,它简化了去中心化应用 (Dapp)的构建和管理流程。Truffle 本身是采用 Javascript 编写,支持智能合约的编译、部署和测试。

Truffle 开发框架提供了很多功能,简化了我们的开发、编译、部署与调试过程合约开发编辑部署调用。

  • Solc

Solc 是 Solidity 的命令行编译器,Solidity 编写的以太坊智能合约可通过带参数的命令行工具 Solc 进行编译,成为以太坊虚拟机中的代码。最终部署到链上形成我们所见到的各种智能合约。

  • BSC Client (base on Geth)

基于以太坊黄皮书,任何人都能够以他们认为合适的语言创建自己的以太坊节点实现。

迄今为止最受欢迎的客户是 Geth 和 Parity。实现的不同之处主要在于选择的编程语言:Geth 使用 Golang,而 Parity 使用 Rust。而 Geth 是目前最受欢迎的客户端实现。

BSC Client 是基于 Geth 开发的 BSC 节点应用,BSC 主网和 BSC 测试网节点都是通过这个应用来运行的。在本地开发中,我们可以自己安装 BSC Client,在本地机器上运行自己的 BSC 节点和 BSC 本地开发网络。

BSC Studio 已经集成了包括 Truffle, Solc 和 BSC Client 在内的所有关键开发工具。

创建智能合约项目

BSC Studio 中集成了若干智能合约模版,你可以选择对应的模版,创建第一个智能合约项目,并开始智能合约开发。这些模版包括:

合约部署和调用

使用 BSC Studio 可以快速进行:

点击链接可以查看相关教程。

开发完整的 BSC 应用 (dApp)

我们刚刚编写部署的智能合约是一个在 BSC 链上运行的服务,它规定一系列链上的交易以完成我们开发中所设定好的功能任务。它相当于传统互联网开发中的后台服务。为了使用户能够方便的调用这些底层服务,避免不必要的门槛和编程的麻烦,我们也还需要编写一个前端应用作为用户界面,这个前端应用以及我们编写的后端智能合约合体就成为了一个简单易用的区块链应用,也叫去中心化应用或者 dApp。

成功开发一个 Dapp 的关键需要以下几步:

  • 集成前端 SDK:可以使用任何以太坊支持的 SDK,例如 web3.js 或者ethers.js
  • 使用 BSC 的 RPC 接口配置 SDK:BSC 提供的 RPC 接口可以在这里查看:RPC - Binance Chain Docs
  • 集成浏览器插件对应的 SDK:例如 MetaMask 或 Binance Wallet Wallet
  • 如果希望查询一些 RPC 接口不支持的链上数据 (例如交易记录,token 信息),还可以集成区块链浏览器的接口:Binance Developers APIs | BscScan

我们提供了一个完成上述集成的 BSC dApp 示例:GitHub - ObsidianLabs/bsc-dapp-example

在这个例子中:

  • 应用在启动的时候会自动检测浏览器插件钱包,包括 MetaMask 和 Binance Chain Wallet;
  • dApp 也将会自动检测目前正在连接的网络 (BSC 主网或 BSC 测试网);
  • 检测成功后,插件会弹出窗口请求用户授权访问;
  • 完成授权后 dApp 便可以访问到对应地址的信息,如地址和余额信息;
  • dApp 提供转账按钮,填入对应信息后点击调用按钮,dApp 会调用浏览器插件弹窗,用户通过插件进行签名后就可以完成交易了;
  • dApp同时提供了调用合约的方式。

BSC 相关开发问题交流

我们在 Github 上创建了个 Repo 方便开发者反馈问题,其他交流途径包括:

BSC 在线 IDE 开发环境

https://bsc.ide.black

BSC 本地桌面版 IDE 开发环境

关于黑曜石实验室

黑曜石实验室 (Obsidian Labs) 于 2017 年在美国硅谷成立,曾先后入选硅谷孵化器 Y Combinator,奇绩创坛未来之星项目,腾讯云启联盟等,并成为国家信息中心区块链服务网络 BSN 、腾讯和百度指定的 IDE 工具提供商。

作为目前公有链生态中功能最强大、支持公链最多的区块链智能合约开发环境,黑曜石的 IDE 系列产品整合了包括环境配置,编译,调试和部署工具在内的完整开发工具链,并全面支持 Windows, Mac OS, Linux 操作系统及 Web 网页端,覆盖了超过 100 个国家和地区的开发者用户。

黑曜石 IDE 系列代表性的如 Ethereum Studio, EOS Studio, Substrate IDE, CKB Studio, Conflux Studio, Algorand Studio, Alaya Studio, BSC Studio 等产品,已经获得 EOS.IO, Web3 Foundation (Polkadot), Nervos (CKB), Conflux, Algorand, LatticeX (PlatON) 等公链基金会的官方支持,并作为开发者门户工具推荐给用户使用。

联系我们

3 Likes

感谢大牛的分享,顶起来 :grinning: :grinning: :grinning: :grinning: :grinning: :grinning:

1 Like