什么是以太坊的二层网络Layer2?使用ChainLink在Arbitrum Goerli测试网上获取BTC的价格

327 阅读5分钟

什么是以太坊的二层网络(Layer2)?

Hello大家好,欢迎来到Sufu_Blockchain的频道,今天我们了解下什么Arbitrum,如何使用ChainLink在 Arbitrum Goerli测试网上构建和部署获取比特币的美元价格的智能合约。

我们都知道以太坊是当今生态最为完善的Layer1公链,但是随着以太坊上应用交易需求的增加,面临着交易拥堵,gas费用过高的问题。针对这个问题,以太坊也在向2.0阶段进行发展,然而全面升级到以太坊2.0还是需要很长一段时间,在不延期的情况下,可能还需要1年多左右。在这期间应运而生了一些Layer2的解决方案。简单来说,Layer2的解决方案其实就是将原来在以太坊主网上处理的交易,把它挪到链下,挪到Layer2上面去。Layer2处理完以后再将结果发回以太坊的主网上面去,用这种方案来减少以太坊上面交易的数量和压力,所以Layer2可以在以太坊上提供更快的速度和更低的成本的交易。

当前Layer2的解决方案

Layer2的扩容方案,主要包括Optimistic rollup,ZK rollup、状态(和支付)通道State Channel 、侧链、Plasma和Validium这几种。状态(和支付)通道State Channel 和Plasma主要原理是将交易运算和交易数据都带到链下。然而Optimistic rollup,ZK rollup技术方案主要原理是将运算带到Layer2,数据还是保留在以太坊的主网上,因此相对来说rollup解决方案继承了以太坊主网(Layer 1)的安全性。State Channel 和Plasma相对更加独立,其安全性更加依赖其自身的运营节点。

什么是Arbitrum?

今天我们所要了解的Arbitrum是一个基于Optimistic rollup解决方案的一个以太坊二层项目,开发者能够以低成本开发和部署高度可扩展的智能合约,开发者本质上可以在以太坊Layer 1之上进行开发。Optimistic是乐观的意思,Optimistic rollup会乐观的认为我们所发起的交易是真实的,并且会把我们的交易拿到layer2中进行运算处理,之后把运算结果数据打包发送给以太坊主网,做数据状态的更新和修改操作。在真正的更新主网数据之前,会有个欺诈验证的等待期,如果7天内没有人对交易发出挑战证明其“有罪”,则证明交易是真实的。比如我们通过Arbitrum发起提现,需要等待七天才能实际到账。

如何使用ChainLink在 Arbitrum Goerli测试网上构建和部署获取BTC的美元价格智能合约?

首先切换metamask到Goerli测试网,如果小狐狸钱包网络列表中没有Goerli测试网,通过  设置--高级--打开显示测试网络,切换当前网络到Goerli测试网。

1.png

连接小狐狸钱包在以太坊Goerli测试网水龙头领取测试网ETH和LINK代币:faucets.chain.link/

2.png

添加Goerli测试网Link代币到小狐狸钱包 docs.chain.link/docs/link-t…

3.png

4.png

之后需要将Goerli测试网的ETH和LINK代币转入Arbitrum Goerli测试网,因为Goerli测试网和Arbitrum Goerli测试网是两个独立的,平行的网络,所以之间资产的转移需要跨链,这里就用到了Arbitrum Bridge跨链桥。网址:bridge.arbitrum.io/ 使用小狐狸钱包登录,将一定量的ETH和LINK代币转入Arbitrum Goerli测试网。

4.png

查找添加Goerli测试网Link代币,Goerli测试网代币地址:0x326C977E6efc84E512bB9C30f76E30c160eD06FB,可以在钱包中的代币详情中查找到。

5.png

6.png

需要等待15分钟左右才能到账。

之后添加Arbitrum Goerli 测试网并切换到Arbitrum Goerli 测试网和LINK代币到小狐狸钱包

官方文档地址:docs.chain.link/docs/link-t…

7.png

8.png

9.png

10.png

之后打开ChainLink文档查看获取价格代码:docs.chain.link/docs/data-f…

11.png

打开线上Remix编辑器,新建PriceConsumerV3.sol合约文件,将示例代码粘贴到文件。

12.png

示例代码给的获取代币的价格地址是Goerli测试网的以太价格地址,因为我们要把合约部署到Arbitrum Goerli 测试网,所以我们替换成Arbitrum Goerli 测试网上的BTC地址,我们可以去下面网址查看。

docs.chain.link/docs/data-f…

14.png

将 BTC/USD交易对地址:0x6550bc2301936011c1334555e62A87705A81C12C替换到合约代码中。

15.png

之后我们编译,部署一下合约,在部署之前确认一下我们的小狐狸钱包当前网络是否是Arbitrum Goerli测试网。

16.png

17.png

18.png

19.png

运行getLatestPrice获取价格方法,返回的结果就是比特币的当前价格,默认为小数点后8位,也可以根据自己合约需求设置。

这就是Arbitrum,一个在基于Optimistic rollup解决方案设计的Layer2项目,可以低成本的,快速的处理大量交易,也可以让开发者能够低成本开发和部署高度可扩展的智能合约。

以上操作都是基于测试网上的,部署到主网方法也是一样的,只是不同网络和地址参数需要相应的替换成主网的地址,以免造成不必要的损失

视频地址:www.bilibili.com/video/BV1vP…