什么是以太坊的二层网络(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测试网。
连接小狐狸钱包在以太坊Goerli测试网水龙头领取测试网ETH和LINK代币:faucets.chain.link/
添加Goerli测试网Link代币到小狐狸钱包 docs.chain.link/docs/link-t…
之后需要将Goerli测试网的ETH和LINK代币转入Arbitrum Goerli测试网,因为Goerli测试网和Arbitrum Goerli测试网是两个独立的,平行的网络,所以之间资产的转移需要跨链,这里就用到了Arbitrum Bridge跨链桥。网址:bridge.arbitrum.io/ 使用小狐狸钱包登录,将一定量的ETH和LINK代币转入Arbitrum Goerli测试网。
查找添加Goerli测试网Link代币,Goerli测试网代币地址:0x326C977E6efc84E512bB9C30f76E30c160eD06FB,可以在钱包中的代币详情中查找到。
需要等待15分钟左右才能到账。
之后添加Arbitrum Goerli 测试网并切换到Arbitrum Goerli 测试网和LINK代币到小狐狸钱包
官方文档地址:docs.chain.link/docs/link-t…
之后打开ChainLink文档查看获取价格代码:docs.chain.link/docs/data-f…
打开线上Remix编辑器,新建PriceConsumerV3.sol合约文件,将示例代码粘贴到文件。
示例代码给的获取代币的价格地址是Goerli测试网的以太价格地址,因为我们要把合约部署到Arbitrum Goerli 测试网,所以我们替换成Arbitrum Goerli 测试网上的BTC地址,我们可以去下面网址查看。
将 BTC/USD交易对地址:0x6550bc2301936011c1334555e62A87705A81C12C替换到合约代码中。
之后我们编译,部署一下合约,在部署之前确认一下我们的小狐狸钱包当前网络是否是Arbitrum Goerli测试网。
运行getLatestPrice获取价格方法,返回的结果就是比特币的当前价格,默认为小数点后8位,也可以根据自己合约需求设置。
这就是Arbitrum,一个在基于Optimistic rollup解决方案设计的Layer2项目,可以低成本的,快速的处理大量交易,也可以让开发者能够低成本开发和部署高度可扩展的智能合约。
以上操作都是基于测试网上的,部署到主网方法也是一样的,只是不同网络和地址参数需要相应的替换成主网的地址,以免造成不必要的损失