| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 如何在Arbitrum上开发和部署智能合约 -> 正文阅读 |
|
[区块链]如何在Arbitrum上开发和部署智能合约 |
Arbitrum是一个以太坊的的二层网络,开发者能够以低成本开发和部署高度可扩展的智能合约。通过Arbitrum上的Chainlink Data Feed,开发者可以快速、轻松地将他们的智能合约与链外数据连接起来,包括用于构建大量DeFi应用的高度可靠的资产价格。 在本篇技术教程中,我们将解释什么是Arbitrum,了解如何在Arbitrum Rinkeby测试网上开发,并给出如何在Arbitrum智能合约中使用Chainlink Price Feed的步骤说明。虽然在这篇文章中我们将在测试网环境中开发和部署,但对于Arbitrum One主网来说,步骤是一样的。 什么是Arbitrum?Arbitrum是一个基于 Optimistic rollup 的以太坊二层解决方案。为了在以太坊上提供更快的速度和更低的成本,涌现了一些扩容方案,包括Layer 2 rollup、状态(和支付)通道、侧链、Plasma和Validium等。这些解决方案之间最重要的区别是,rollup和状态通道继承以太坊区块链(Layer 1)的安全性,开发者本质上可以在以太坊Layer 1之上进行开发。Layer 2 rollup包括Optimistic rollup和ZK-rollup两种。两者都是 “真正的Layer 2解决方案”,这意味着它们能够高速、低成本地执行大量交易,然后在Layer 1验证打包的交易。对于Optimistic rollup,我们会“乐观地相信”这些交易真的发生在Layer 2。这些rollup是“乐观的”,因为这些打包交易被认为是“无罪的”,直到通过欺诈证明来证明其“有罪”;也即我们会乐观地认为交易在发布到Layer 1时是正确的,除非在7天的挑战期内提交了挑战。 开始使用Arbitrum在本教程中,我们将在Arbitrum Rinkeby测试网上开发和部署一个智能合约,这是Rinkeby测试网的二层。同样的步骤也适用于Arbitrum One,它是以太坊主网的二层。为了使用Arbitrum Rinkeby测试网,我们需要一些Rinkeby测试网的ETH。可以通过 Chainlink Faucets 获得你的Rinkeby测试LINK--只需粘贴你的钱包地址,选择Rinkeby Ethereum,并领取测试ETH。然后,我们需要从Rinkeby存入测试ETH,以便在 Arbitrum Rinkeby测试网上支付费用。导航到Arbitrum桥,连接钱包,输入Rinkeby ETH数量,然后点击“存款”。大约需要10分钟才能看到余额记入二层网络——可以喝杯咖啡休息一下。 在二层上收到ETH后,就可以在Metamask钱包中配置Arbitrum Rinkeby测试网。导航到Chainlist并找到 Arbitrum Rinkeby Network的详细信息,或导航到Etherscan浏览器并在网站页脚中找到Add Arbitrum Network 或选择Settings -> Networks -> Add Network in Metamask,然后手动输入详细信息。 Network Name: Arbitrum Rinkeby Testnet Network URL: https://rinkeby.arbitrum.io/rpc Chain ID: 421611 Currency Symbol: ETH Block Explorer URL: https://testnet.arbiscan.io/ 最后,回到Chainlink Faucets,选择Arbitrum Rinkeby,领取10个测试网LINK。 准确可靠的价格数据在智能合约中的重要性为了拓展二层上智能合约的可能性,开发者需要安全连接到链下资源。 借助来自 Chainlink 预言机的高度准确和可靠的价格数据,开发者可以开始在 Arbitrum 上开发和测试各种可扩展的 DeFi 应用程序,这些应用程序依赖于ETH 和其他通证的价格,例如借贷协议、去中心化交易所、预测市场等。虽然这些 DeFi 用例需要外部数据,但区块链和二层解决方案无法本地访问自身外部的数据。当向区块链提供数据以服务高级DeFi用例时,必须保证数据的安全性和高质量,以防止价格预言机攻击。 Chainlink Price Feeds提供来自各种高质量数据提供商的聚合数据,并由去中心化的预言机通过 Chainlink 网络在链上提供数据,从而降低了这些攻击的风险。Chainlink的去中心化预言机机制确保最终价格反映广泛的市场覆盖范围,这意味着最终价格是在汇总整个市场的一组不同价格后确定的,而不仅仅是一小部分,还考虑了交易量和流动性等其他方面。借助 Chainlink Price Feed,开发者能够开发不影响安全性的高级 DeFi 应用程序。 现在我们了解了Solidity智能合约中准确可靠的价格数据的需求以及Chainlink价格预言机所扮演的重要角色,我们将通过在Arbitrum上的Solidity智能合约使用Chainlink Price Feed获取ETH最新价格的示例。 在Arbitrum上使用Chainlink Price Feed首先在你最喜欢的代码编辑器中创建一个新的 Solidity 项目。使用Hardhat与Typescript的完整例子可在 Github 上找到。我们将使用Solidity和Chainlink的最新版本。
现在我们要写一个函数来检索Chainlink网络中的Price Feed数据。导航到Chainlink官方文档中的Data Feeds部分。我们将以"getPrice"函数为例,并稍作修改。
你可以看到我们把 "PriceFeedAddress"作为一个参数来传递,使这个智能合约更具可扩展性。你可以在这里看到Arbitrum Rinkeby测试网上的所有Price Feed地址的完整列表。 例如,如果我们想知道BTC的美元价格,我们可以将 “0x0c9973e7a27d00e656B9f153348dA46CaD70d03d"作为”_priceFeedAddress"参数传递给我们的函数。 几乎完成了! 认识L2定序器的健康标志Arbitrum中的交易是高速确认的。这是因为有所谓的定序器。定序器是一个链外的组件,能够高速为用户交易排序并给用户提供收据。然而,如果定序器不可用,用户必须通过以太坊提交他们的交易,以便让它们在Arbitrum中处理。这对用户体验是不利的,许多dApps仍然没有能力处理需要同时与Ethereum和Arbitrum交互的情况。如果你不想在你的应用程序中担心这个问题,可以使用Chainlink预言机来确保定序器对用户可用。下面是这样做的步骤。 首先,我们需要在我们的 Solidity 代码中添加下面的导入语句:
根据Chainlink的文档,L2定序器器健康标志由三个角色组成:
"0x491B1dDA0A8fa069bbC1125133A975BF4e85a91b"是 Arbitrum Rinkeby Flags合约的地址。要检查其他的地址,请到Chainlink文档中查看。 一个升起的标志表明,feed在 "T"时间内没有更新,其数据可以被认为是过时的。换句话说,定序器下线了,你的合约不应该执行任何关键操作。当定序器再次恢复,二层上Chainlink Data Feed更新后,你可以继续像往常一样使用你的合约。我们增加这个额外的检查。
部署和测试智能合约现在我们准备部署和测试我们的合约。在 Remix 中编译合约,然后在部署标签中,将环境改为 "Injected Web3"。确保钱包连接到Arbitrum Rinkeby测试网,并且下面的钱包地址是MetaMask钱包的地址,包含之前获得的ETH。然后,按下部署按钮,按照步骤进行。最终的结果是交易成功,智能合约部署到Arbitrum Rinkeby测试网。 为了测试这个合约,我们只需要调用我们的 “getThePrice"函数,并将Arbitrum Rinkeby测试网上的一个Chainlink Price Feed地址作为”_priceFeedAddress"参数进行传递。记住,你可以在Chainlink文档中看到所有可用的Price Feed合约地址。 总结Chainlink中流行的ETH/USD价格数据,以及LINK/USD、AAVE/USD和BTC/USD的价格数据都可以在Arbitrum上使用。这些Chainlink Price Feed建立在去中心化的预言机基础设施上,由众多经过安全审查的节点运营商和优质数据源组成,成就了高度准确、可用和防篡改的Data Feed,这些Data Feed本身就可以抵御像闪电贷引起的价格操纵攻击这样的漏洞。这个技术教程已经展示了在Arbitrum上编写和部署混合智能合约是多么容易。有了这些知识,你就可以利用Arbitrum的低成本和高速度以及Chainlink Price Feed所解锁的进阶应用场景,开始开发你自己的智能合约,。 获取更多关于Chainlink的信息,请访问chain.link或在docs.chain.link阅读文档。要讨论集成问题,请联系专家。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 19:26:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |