2019年4月,著名加密货币交易所币安推出了币安链,这是一个为了快速交换资产而构建和优化的网络,也是BNB代币诞生的地方。在币安链上你可以发送和接收BNB代币发行新代币发送,接收,销毁/铸造和冻结/解冻代币提议在两个不同的代币之间创建交易对通过链上创建的交易对发送买卖资产的订单币安链非常适合这些寻求加快交易速度的用户。但是,在设计上它并不兼容EVM,也不支持智能合约。为了能够创建智能合约,币安团队还创建了币安智能链,该网络使用权益授权证明共识算法并且与EVM兼容,从而使智能合约开发者能够构建可编程的dApps,且天然能与币安链进行集成。这种双链架构一方面使得在资产交换端能快速交易,另一方面还支持智能合约。币安团队实际上创造了一个术语“CeDeFi”或者称其为“中心化的去中心化金融”来描述这种混合方法,该方法达成了一种权衡,即在使用更少的去中心化架构以实现更大的交易吞吐量,同时仍确保开发者能以无需许可的方式部署应用程序,并且可使用以太坊中的相同的可组合工具,例如Solidity和Chainlink喂价。币安智能链Chainlink喂价可在币安主网上使用,且能用于在币安智能链上构建需要去中心化的,防篡改的数据输入的应用程序。在本技术教程中,我们将阐述如何使用币安智能链,BNB代币和Chainlink预言机,即使你没有以太坊开发经验,也能够学会如何快速开始在币安智能链上构建外部连接的智能合约。使用BSC开发
MUFG宣布Progmat Coin将很快被用于推出与日元挂钩的稳定币:金色财经报道, Megabank Mitsubishi UFJ Financial Group (MUFG) 宣布其稳定币发行平台Progmat Coin将很快被日本银行用于在多个公共区块链上推出与日元挂钩的稳定币,在6月2日的公告中,MUFG概述了Progmat Coin将用于促进在以太坊、Polygon、Avalanche 和 Cosmos 上发行银行支持的稳定币,未来将添加更多网络。
MUFG 还透露,其区块链技术和安全合作伙伴TOKI和Datachain正在搭建一座桥梁,以在支持的区块链列表之间实现跨链交易、借贷和互换。该银行预计跨链基础设施将于2022年第二季度启动。[2023/6/3 11:56:09]
我们将使用的工具
由于BSC与EVM兼容,我们可以使用在Solidity开发环境中会用到的相同的工具集,如Truffle,Hardhat,MetaMask等。在本教程中,我们将使用Python智能合约开发框架Brownie在BSC上开发,因为币安测试网目前不支持Chainlink喂价,而Brownie框架具有可以在本地使用的强大的分叉链特性。如果你对在币安智能链上使用Truffle和Hardhat开发而不是使用Brownie感兴趣,可以查看ganache-cli的分叉链功能,或者跳到我们谈论分叉的地方--我们将介绍如何在ganache上运行。事实上,我们在测试时,Brownie在后端使用的正是ganache-cli分叉。要求
python3nodejsganache-clibrownie
入门指南
现在我们已经完成了所有设置,继续拆箱brownie的chainlink-mix。这是用于使用Chainlink智能合约的样板模板。如果你想了解更多信息,可以在阅读我们的博客中的如何使用python部署任何区块链上的智能合约一文。要使用币安智能链的主网或测试网,通常需要BNB代币,这类似于在以太坊区块链上使用ETH。部署智能合约时,需要使用BNB代币。我们将100%在本地完成所有工作,因此不需要任何测试网ETH,LINK或BNB等代币即可开始。首先,我们需要创建Browniemix项目:browniebakechainlink-mixcdchainlink现在我们进入到项目中。如果运行ls命令,我们可以看到目录中的内容。build:这是项目用来跟踪已部署的智能合约和已编译合约的文件夹contracts:合约的源代码,通常以Solidity或Vyper语言编写interfaces:和已部署合约交互所需要的接口文件夹。每次与合约的交互都需要一个ABI和合约地址。接口是用来获取合约的ABI的好方法scripts:我们创建的用于自动执行合约流程的脚本tests:测试brownie-config.yaml:这个文件为Brownie提供了理解如何对待我们的智能合约所需要的所有信息。我们想部署到什么区块链网络?我们要设置任何特殊参数吗?所有这些内容都在此配置文件中设置。requirements.txt,README.md,LICENSE,以及.gitignore等文件现在可以忽略。你将在练习过程中了解它们的用途。我们将把PriceFeed.sol部署到我们的本地环境中,该环境将从币安主链中分叉得到。添加分叉网络
为了使用币安链,我们需要一个远程过程调用链接或host字段。这是一个进行API调用以连接币安智能链的连接。如果感兴趣,你还可以运行自己的币安智能链节点并连接到该节点。我们可以在他们的文档中找到用于币安链的RPC链接。我们还需要ChainID。现在,我们使用下面这些:host=https://bsc-dataseed.binance.org/chainid=56最后,我们将需要具体的待使用的Chainlink喂价的合约地址。Brownie的chainlink-mix项目预安装了币安ETH/USD喂价,但是如果你想要币安上所有Chainlink喂价列表,可以查看币安或者Chainlink文档以获取更多信息。查看brownie-config.yaml文件,你会在networks字段中看到名为binance-fork的部分。这里有我们需要使用币安分叉链的所有变量。现在,我们要告诉Brownie使连接到币安链,但是我们要分叉这条链。分叉一条链意味着复制该链并在本地运行,这样我们就无需支付任何gas费用,并且可以快速迭代测试。但这也意味着一旦分叉链掉线,一切数据都将被删除!我们可以使用以下命令将币安链的一个分叉链添加到Brownie网络:
这将在本地主机的端口8545上运行本地ganache-cli链。它将在部署时使用https://bsc-dataseed1.binance.org作为分叉源。如果操作正确,你将看到类似下面的内容:
你可以运行brownienetworkslist来检查所有网络。部署合约
现在一切都已设置完毕,我们可以本地ganache分叉链上部署和读取合约了。在scripts文件夹中,有一个名为deploy_price_consumer_v3.py的脚本。我们可以使用以下命令运行它:
你会看到类似下面的输出内容
因此,我们刚刚完成了:分叉币安链并在本地运行向其部署智能合约并从中读取ETH的价格ThecurrentpriceofETHis135462000000恭喜!你距离获取一些币安赏金更进了一步更进一步
现在你已经知道如何使用币安智能链部署智能合约,你还可以更深入地研究BSC,或者使用Matic,xDai等其他侧链以及其他二层网络。如果你更喜欢Hardhat和Truffle框架,看看是否可以在这些框架中执行ganache-cli命令并运行一些本地测试。有许多黑客松即将举办,所以一定参加这些黑客松寻求与这个领域的其他人才合作的机会,赢得一些奖项,并使自己成长为真正的智能约开发者。如果你想继续扩展智能合约的功能,请访问Chainlink开发者文档并加入Discord中的技术讨论。如果你使用币安智能链,Brownie,Truffle,Hardhat或任何其他Chainlink集成构建了不错的项目,请确保使用@chainlink标记我们,以便我们看到你所做的出色的工作!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。