Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
本篇技术教程将教大家如何在Avalanche区块链上开发和部署智能合约,并利用Chainlink Data Feeds将Avalanche上的混合型智能合约连通链下市场数据。
Chainlink Price Feeds现已在Avalanche主网上线,开发者能以Avalanche链完整的原生速度和低成本轻松获得Chainlink网络成熟可靠的喂价。Chainlink Price Feeds会从多个喂价源聚合数据,通过Chainlink去中心化的节点运营商网络将数据聚合至单一数据点,并保障数据的准确性以及市场覆盖。接入此类数据对新兴区块链的发展至关重要,因为许多去中心化应用必须接入喂价或其他外部数据才能正常运行。Avalanche是近期异军突起的区块链生态,在集成Chainlink预言机后,总锁仓量、交易量以及地址数量都呈现爆发式增长。有越来越多开发者希望学习如何开发和部署Avalanche智能合约。
Avalanche不仅集成了Chainlink Price Feeds,近期还发布了Avalanche Rush,这是面向Avalanche生态开发者推出的价值1.8亿美元的激励机制。而这也为开发者提供了绝佳的机会,学习如何在Avalanche上部署去中心化应用。本文将介绍如何开发和部署一个接入Chainlink喂价的Solidity智能合约,Chainlink喂价可以用于决定贷款抵押、通证汇率以及dApp用户的回报率等。Avalanche区块链吞吐量高,交易确定延迟性低,并且拥有可扩展性和去中心化水平极高的验证节点架构,而这一切都要归功于其创新的共识算法。除此之外,由于Avalanche可以兼容EVM,因此开发者可以使用所有标准化的以太坊工具。本文实例中采用了Remix框架,这是一个基于浏览器的Solidity IDE。
各位可以按照本教程,用这个Remix Gist自己部署代码。
// SPDX-License-Identifier: MIT pragma solidity 0.8; import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; contract AvaxLinkFeeds { AggregatorV3Interface internal priceFeed; /** * Network: Fuji * Aggregator: AVAX/USD * Address: 0x5498BB86BC934c8D34FDA08E81D444153d0D06aD * URL: https://docs.chain.link/docs/avalanche-price-feeds/ */ constructor() { priceFeed = AggregatorV3Interface(0x5498BB86BC934c8D34FDA08E81D444153d0D06aD); } /** * Returns the latest price */ function getLatestPrice() public view returns (int) { ( uint80 roundID, int price, uint startedAt, uint timeStamp, uint80 answeredInRound ) = priceFeed.latestRoundData(); return price; } }
编写智能合约
首先,导入所需的Chainlink喂价所需要的合约“AggregatorV3Interface.sol”,其中包含从聚合的去中心化喂价中获取数据的接口。要使用这个接口,就必须知道喂价地址。喂价地址可以在Chainlink Avalanche Feeds 文档中查询。这里我们使用的是AVAX/USD喂价地址,所以只需用这个地址初始化喂价接口即可,因为这是合约创建时唯一的参数,具体如下:“priceFeed = AggregatorV3Interface(0x5498BB86BC934c8D34FDA08E81D444153d0D06aD)”。
初始化以后,就可以通过调用方法latestRoundData(),从聚合器接口获取最新喂价数据,正如getLatestPriceData()中所示。结果会返回多个喂价数据点,而我们只需要价格这一项,所以只需返回价格即可。由于这个方法并没有做任何修改,只是单纯地从聚合器接口读取数据,因此被定义为view function,其优势是不会消耗gas。
编译并部署合约
代码部署非常简单,而且由于Avalanche可以兼容EVM,标准化的以太坊部署路径几乎不需要任何修改。首先在Remix的Compiler tab下点击Compile AvaxLinkFeeds.sol。 然后,到Deploy tab下,将环境设置成Injected Web3 (MetaMask),并针对Avalanche的Fuji测试网配置你的MetaMask。将以上设置作为“Custom RPC”添加到MetaMask网络中。
Network Name: Avalanche FUJI C-Chain
New RPC URL: https://api.avax-test.network/ext/bc/C/rpc
ChainID: 43113
Symbol: AVAX
Explorer: https://cchain.explorer.avax-test.network
然后,登录https://faucet.avax-test.network/,获取免费的测试网AVAX,用于部署合约。更多设置过程详情,可查看关于如何在Avalanche上部署智能合约的文档。
现在,合约编译好了,网络设置成了Fuji,地址中也充值了测试网的AVAX。你可以选择AvaxLinkFeeds合约并点击Deploy键,将合约部署至测试网。这样,你的合约就发布到了Avalanche区块链上,并随时可以通过Chainlink接入外部数据。
调用方法getLatestPrice,就可以获取精度为小数点后八位的AVAX/USD喂价,这里返回的值是$51.54。
大功告成了!首先是导入,然后用构造函数初始化数据,再调用一个方法读取喂价数据(不用支付gas费!)。经过这简单的三步就可以让你的智能合约接入Chainlink优质的喂价数据。
总结
Avalanche为智能合约应用的开发提供了强大的工具,提高速度并降低网络成本,吸引了众多开发者。Avalanche集成了Chainlink去中心化的预言机网络后如虎添翼,为区块链连通至各种链下数据和事件。Chainlink Price Feeds为用户提供了优质的聚合喂价数据,可以用于各种应用场景,包括去中心化的交易所(DEX)、流动性资金池、去中心化的保险解决方案以及自动做市商(AMM)等。
Chainlink为预言机服务的开发、访问和销售建立了行业标准,可服务于任何区块链上的混合型智能合约。Chainlink预言机网络可以将智能合约可靠地连接至任何外部API,并安全地展开链下计算,为应用实现丰富的功能。Chainlink目前为DeFi、保险和游戏等各大行业保障了数百万亿美元资产,并为全球企业和领先的数据提供商提供通用的门户,一站式接入所有区块链。
想要了解关于Chainlink的更多内容,请访问chain.link,或访问docs.chain.link查看Chainlink文档。想要讨论集成相关事宜,请联系Chainlink专家。
The post 如何开发和部署Avalanche智能合约 appeared first on Chainlink Blog.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.