如何基于币安智能链(BSC)开发 Dapp

如何在币安智能链(BSC)上部署合约已经如何与用户交互。

> * 原文: [How to use Binance Smart Chain in your Dapp ](https://soliditydeveloper.com/deploy-to-binance-smart-chain) > * 译文出自:[登链翻译计划](https://github.com/lbc-team/Pioneer) > * 译者:[翻译小组](https://learnblockchain.cn/people/412) > * 校对:[Tiny 熊](https://learnblockchain.cn/people/15) > * 本文永久链接:[learnblockchain.cn/article…](https://learnblockchain.cn/article/2626) Defi一直是币安智能链最近起飞的主要贡献力量。伴随着以太坊主网的Gas成本不断增加(当然在写这篇文章时,以太坊手续费实际上已经处于很长时间以来的最低水平之一,但不排除在下一次ETH价格暴涨是,手续费再次水涨船高。 那么,如何对其进行部署,币安智能链([BSC](https://learnblockchain.cn/tags/bsc))究竟是什么? ## 什么是币安智能链(BSC)? 币安链是由币安在2018年推出的。这是一个基于tendermint的链,其主要功能是转移资产。这使得币安生态系统内的价值转移有了更去中心化的形式。 2020年9月,币安生态系统中加入了币安智能链(BSC)。这是一个独立链,但却是双链设计的一部分,与原来的币安链同步状态。BSC本身只是一个geth分叉,所以它依靠的是与ETH 1.0相同的技术。但由于非常有限的验证者实现了更高的产出,因此Gas成本要低得多。 ## BSC是去中心化的吗? 首先我们要明白,去中心化是一个范围上概念。虽然有些项目努力追求完美主义,在技术上尽可能地分散(有人说[Injective protocol](https://injectiveprotocol.com/)吗?),但这并不意味着其他方法都是完全中心的。那么,是什么因素使BSC更集中或更分散? **去中心化部分**: BSC运行在权益证明([PoS](https://learnblockchain.cn/tags/pos)与授权证明(PoA)相结合的基础上,他们称之为质押授权证明(PoSA),也可参见白皮书[这里](https://github.com/binance-chain/whitepaper/blob/master/WHITEPAPER.md)。在其双链设计中,原始币安链运行在PoS上,而币安智能链本身是一个纯PoA共识。然而,PoA共识中的验证者是通过币安链 staking管理的,因此不是完全集中的。这当然比普通的中心化交易所或纯PoA系统更好。 **中心化部分**:不得不说,POA是去中心化的反面。你基本上是在信任少数几个选定的验证者。在这种情况下,这些机构是通过币安链的治理来管理的。那么,币安链中的PoS是如何集中的呢?验证者的总数被限制在21个,币安本身可能控制着最大的验证者。 总而言之,你可以看到BSC更倾向于中心化的一面,但它仍然比简单地使用币安明显更加去中心。 ## 如何部署到币安智能链上 部署到币安智能链是[非常简单](https://learnblockchain.cn/docs/truffle/getting-started/running-migrations.html)。如果你使用Truffle,只需像这样添加BSC的网络配置: ```javascript bsc: { provider: () => new HDWalletProvider(mnemonic, 'https://bsc-dataseed.binance.org'), network_id: 56, }, }, bsc-testnet: { provider: () => new HDWalletProvider(mnemonic, 'https://data-seed-prebsc-1-s1.binance.org:8545'), network_id: 97, } ``` 当然,你还需要资金。对于测试网,你可以使用[这里](https://testnet.binance.org/faucet-smart)的水龙头。关于如何从公共主链上转移资金,请继续阅读。 ## 如何让用户加入你的币安智能链Dapp ### 钱包的选择 现在,你有很多不只是MetaMask作为可能的钱包可供支持。以[Yearn Finance](https://yearn.finance/)为例。在写这篇文章的时候,他们仅支持11个不同的钱包。 - [MetaMask](https://metamask.io/) - [WalletConnect](https://walletconnect.org/) - [Trezor](https://trezor.io/) - [Ledger](https://www.ledger.com/) - [Lattice](https://lattice.exchange/) - [Coinbase Wallet](https://wallet.coinbase.com/) - [Portis](https://www.portis.io/) - [Fortmatic](https://fortmatic.com/) - [Torus](https://toruswallet.io/) - [Authereum](https://authereum.com/) - [Opera](https://www.opera.com/crypto) ![Wallet Options](https://img.learnblockchain.cn/pics/20210618093645.png) ### 以MetaMask为例 我们以MetaMask为例,因为它是最大的钱包,功能最多。在MetaMask上,你现在可以请求它直接连接到一个自定义网络上。 如果你想看案例,请查看[PancakeSwap](https://pancakeswap.finance/)。除非你已经添加了币安 Smart Chain,否则它将要求添加这个网络。或者直接点击[币安桥](https://www.binance.org/en/bridge)中的'Add network'。 ![img](https://img.learnblockchain.cn/pics/20210618093640.png) 如果用户确认,网络被添加并自动切换到。 ### 如何为用户自动添加BSC网络 自动添加网络并切换,这都要归功于 [EIP-3085](https://eips.ethereum.org/EIPS/eip-3085)的新RPC方法`wallet_addEthereumChain` 。MetaMask的文档在[这里](https://docs.metamask.io/guide/rpc-api.html#wallet-addethereumchain)。 下面看到如何为用户自动添加BSC到钱包,这将显示你上面看到的弹出窗口: ``` javascript const params = [{ "chainId": "0x38", // 56 in decimal "chainName": "Smart Chain", "rpcUrls": [ "https://bsc-dataseed.binance.org" ], "nativeCurrency": { "name": "Binance Coin", "symbol": "BNB", "decimals": 18 }, "blockExplorerUrls": [ "https://bscscan.com" ] }] try { await ethereum.request({ method: 'wallet_addEthereumChain', params, }) } catch (error) { // something failed, e.g., user denied request } ``` ## 使用币安桥 你可以使用[币安桥](https://www.binance.org/en/bridge),在以太坊网络和币安智能链之前转移资金。它是通过在桥接合约上锁定代币来实现转移的。该桥的工作原理与[PoA网络桥](https://github.com/poanetwork/poa-bridge)非常相似。它甚至可能是它的一个分叉,但我在任何地方都找不到币安桥的源代码。如果你知道这个问题的答案,请让我知道。 ![币安 Bridge](https://img.learnblockchain.cn/pics/20210618094240.png) 在开始的时候,币安桥只支持单向桥接,但现在它是双向的。这意味着你可以从以太坊转移到BSC,也可以从BSC转移到以太坊。 ## 在 BSC 上的 Defi BSC的优势之一可能是其庞大的生态系统,特别是Defi项目。只要看看下面这张由[BNB Swap](https://twitter.com/BNBSwap)提供的图片。 ![BSC Defi](https://img.learnblockchain.cn/pics/20210618095237.jpeg) 要了解不仅仅是Defi的概况,请查看生态系统的Github[这里](https://github.com/binance-chain/bsc-ecosystem)。最受欢迎的项目是什么? - [PancakeSwap](https://pancakeswap.finance/):BSC的Uniswap v2分叉。与SushiSwap类似,该叉子增加了一些额外的功能,如质押、彩票和NFT支持,见[指南](https://academy.binance.com/en/articles/a-guide-to-pancakeswap),如果你不了解AMM,你可能想看看我的Uniswap[v2](https://soliditydeveloper.com/uniswap2)、[v3](https://soliditydeveloper.com/uniswap3)和[SushiSwap](https://soliditydeveloper.com/sushi-swap)的指南。 - [Venus](https://app.venus.io/):BSC的MakerDao和Compound分叉是一个货币市场,你可以借用和借出BEP-20(BSC上的ERC-20)代币。 - [Autofarm](https://autofarm.network/):这本质上是BSC的Yearn Finance。你可以加入一个金库,它自动尝试为你找到最理想的方式来赚取你的存款收益。 - [BurgerSwap](https://burgerswap.org/):BurgerSwap也是BSC上一个流行的AMM。你可以做BEP-20代币互换,并提供流动性。它实现了[ERC-2917](https://eips.ethereum.org/EIPS/eip-2917),而且它这一次不是Uniswap的分叉。他们想改进Uniswap的激励和治理模式。 - [Spartan Protocol](https://spartanprotocol.org/):这是一个基于AMM的流动性池、合成资产(代币化的衍生品)和借贷协议的组合。 - [Cream](https://app.cream.finance/):Cream是另一个流行的借贷协议,存在于以太坊上,也被部署在BSC上。 --- 本翻译由 [Cell Network](https://www.cellnetwork.io/?utm_souce=learnblockchain) 赞助支持。

  • 原文: How to use Binance Smart Chain in your Dapp
  • 译文出自:登链翻译计划
  • 译者:翻译小组
  • 校对:Tiny 熊
  • 本文永久链接:learnblockchain.cn/article…

Defi一直是币安智能链最近起飞的主要贡献力量。伴随着以太坊主网的Gas成本不断增加(当然在写这篇文章时,以太坊手续费实际上已经处于很长时间以来的最低水平之一,但不排除在下一次ETH价格暴涨是,手续费再次水涨船高。

那么,如何对其进行部署,币安智能链(BSC)究竟是什么?

什么是币安智能链(BSC)?

币安链是由币安在2018年推出的。这是一个基于tendermint的链,其主要功能是转移资产。这使得币安生态系统内的价值转移有了更去中心化的形式。

2020年9月,币安生态系统中加入了币安智能链(BSC)。这是一个独立链,但却是双链设计的一部分,与原来的币安链同步状态。BSC本身只是一个geth分叉,所以它依靠的是与ETH 1.0相同的技术。但由于非常有限的验证者实现了更高的产出,因此Gas成本要低得多。

BSC是去中心化的吗?

首先我们要明白,去中心化是一个范围上概念。虽然有些项目努力追求完美主义,在技术上尽可能地分散(有人说Injective protocol吗?),但这并不意味着其他方法都是完全中心的。那么,是什么因素使BSC更集中或更分散?

去中心化部分: BSC运行在权益证明(PoS与授权证明(PoA)相结合的基础上,他们称之为质押授权证明(PoSA),也可参见白皮书这里。在其双链设计中,原始币安链运行在PoS上,而币安智能链本身是一个纯PoA共识。然而,PoA共识中的验证者是通过币安链 staking管理的,因此不是完全集中的。这当然比普通的中心化交易所或纯PoA系统更好。

中心化部分:不得不说,POA是去中心化的反面。你基本上是在信任少数几个选定的验证者。在这种情况下,这些机构是通过币安链的治理来管理的。那么,币安链中的PoS是如何集中的呢?验证者的总数被限制在21个,币安本身可能控制着最大的验证者。

总而言之,你可以看到BSC更倾向于中心化的一面,但它仍然比简单地使用币安明显更加去中心。

如何部署到币安智能链上

部署到币安智能链是非常简单。如果你使用Truffle,只需像这样添加BSC的网络配置:

bsc: {
      provider: () => new HDWalletProvider(mnemonic, 'https://bsc-dataseed.binance.org'),
      network_id: 56,
    },
},
bsc-testnet: {
      provider: () => new HDWalletProvider(mnemonic, 'https://data-seed-prebsc-1-s1.binance.org:8545'),
      network_id: 97,
}

当然,你还需要资金。对于测试网,你可以使用这里的水龙头。关于如何从公共主链上转移资金,请继续阅读。

如何让用户加入你的币安智能链Dapp

钱包的选择

现在,你有很多不只是MetaMask作为可能的钱包可供支持。以Yearn Finance为例。在写这篇文章的时候,他们仅支持11个不同的钱包。

  • MetaMask
  • WalletConnect
  • Trezor
  • Ledger
  • Lattice
  • Coinbase Wallet
  • Portis
  • Fortmatic
  • Torus
  • Authereum
  • Opera

以MetaMask为例

我们以MetaMask为例,因为它是最大的钱包,功能最多。在MetaMask上,你现在可以请求它直接连接到一个自定义网络上。

如果你想看案例,请查看PancakeSwap。除非你已经添加了币安 Smart Chain,否则它将要求添加这个网络。或者直接点击币安桥中的'Add network'。

如果用户确认,网络被添加并自动切换到。

如何为用户自动添加BSC网络

自动添加网络并切换,这都要归功于 EIP-3085的新RPC方法wallet_addEthereumChain 。MetaMask的文档在这里。

下面看到如何为用户自动添加BSC到钱包,这将显示你上面看到的弹出窗口:

javascript
const params = [{
    "chainId": "0x38", // 56 in decimal
    "chainName": "Smart Chain",
    "rpcUrls": [
        "https://bsc-dataseed.binance.org"
    ],
    "nativeCurrency": {
        "name": "Binance Coin",
        "symbol": "BNB",
        "decimals": 18
    },
    "blockExplorerUrls": [
        "https://bscscan.com"
    ]
}]

try {
    await ethereum.request({
        method: 'wallet_addEthereumChain',
        params,
    })
} catch (error) {
    // something failed, e.g., user denied request
}

使用币安桥

你可以使用币安桥,在以太坊网络和币安智能链之前转移资金。它是通过在桥接合约上锁定代币来实现转移的。该桥的工作原理与PoA网络桥非常相似。它甚至可能是它的一个分叉,但我在任何地方都找不到币安桥的源代码。如果你知道这个问题的答案,请让我知道。

在开始的时候,币安桥只支持单向桥接,但现在它是双向的。这意味着你可以从以太坊转移到BSC,也可以从BSC转移到以太坊。

在 BSC 上的 Defi

BSC的优势之一可能是其庞大的生态系统,特别是Defi项目。只要看看下面这张由BNB Swap提供的图片。

要了解不仅仅是Defi的概况,请查看生态系统的Github这里。最受欢迎的项目是什么?

  • PancakeSwap:BSC的Uniswap v2分叉。与SushiSwap类似,该叉子增加了一些额外的功能,如质押、彩票和NFT支持,见指南,如果你不了解AMM,你可能想看看我的Uniswapv2、v3和SushiSwap的指南。
  • Venus:BSC的MakerDao和Compound分叉是一个货币市场,你可以借用和借出BEP-20(BSC上的ERC-20)代币。
  • Autofarm:这本质上是BSC的Yearn Finance。你可以加入一个金库,它自动尝试为你找到最理想的方式来赚取你的存款收益。
  • BurgerSwap:BurgerSwap也是BSC上一个流行的AMM。你可以做BEP-20代币互换,并提供流动性。它实现了ERC-2917,而且它这一次不是Uniswap的分叉。他们想改进Uniswap的激励和治理模式。
  • Spartan Protocol:这是一个基于AMM的流动性池、合成资产(代币化的衍生品)和借贷协议的组合。
  • Cream:Cream是另一个流行的借贷协议,存在于以太坊上,也被部署在BSC上。

本翻译由 Cell Network 赞助支持。

区块链技术网。

  • 发表于 2021-06-18 10:03
  • 阅读 ( 5360 )
  • 学分 ( 514 )
  • 分类:DApp

评论