主页 > imtoken钱包最新下载 > 如何在POA网络和稳定币链xDai网络上部署应用

如何在POA网络和稳定币链xDai网络上部署应用

imtoken钱包最新下载 2023-03-07 07:31:45

由于以太坊的 POW 共识缓慢且昂贵(尽管以太坊仍然是最流行的 DApp 平台),各种以太坊侧链解决方案被催生出来以减少以太坊主网的拥堵。 我们之前介绍过 Loom。 SDK,本篇博客介绍POA Network和xDai。 如果你想用稳定的数字货币做一些智能合约的应用,或许你可以在 Libra[1] 上线之前尝试 xDai。

什么是POA网络

POA网络定位于以太坊侧链(兼容以太坊协议),采用POA新共识机制。

备注:POA项目官方现在更倾向于使用POA作为Proof of Autonomy的缩写,而不是Proof of Authority

POA共识是一种更直接有效的POS共识形式。 它的验证者必须经过身份验证(并且似乎签署了法律文件)。 在 POS 上,通常需要获得足够多的选票(代币)来增加作恶成本,而 POA 则靠验证者的信誉来保证。 作为一个两层网络,通常只有小额交易。 为了追求性能牺牲一些网络安全是可以理解的。 这也是二层网络的惯用做法。

POA 网络启动时,有 12 个验证者(现在有 20 多个)。 这些验证者由智能合约管理,智能合约也加入了治理模型。 验证者可以投票添加或删除验证者甚至更新治理合约。 Verifier 出块的概率是相等的,每出一个块,可以花费一个 POA 币(侧链的原始代币)和所有的手续费。

PoA网络平均每5秒出一个块,区块大小为800万Gas,Gas价格固定为1GWei(1POA=1,000,000,000Gwei),因此可以估算出PoA网络的速度大约是3倍以太坊,以及运行 DApp 的 gas 成本大大降低。 目前一个POA的价格不到0.2元,历史最高也不过6元,不像一个以太币动辄上万的价格。

PoA网络区块生成信息可以在blockscout浏览器中查看[2]。 值得一提的是,BlockScout 是 POA Network 的另一项贡献。 这是一款功能强大的开源区块浏览器,支持所有以太坊协议网络。 Github 库 [3]

POA网络的主网叫做POA Core,它还有一个测试网叫做POA Sokol。 事实上,以太坊主网还有一个名为 Kovan 的 POA 共识测试网。

POA桥接技术(TokenBridge)

POA最大的价值在于它的桥接技术。 TokenBridge 是一种互操作性协议,可实现以太坊网络和 POA 网络之间的通信(交互)。

备注:TokenBridge之前是POA Bridge,所以很多文档没有及时跟进改动,TokenBridge代码库[4]。

目前桥接技术完成了以下功能:

1. 允许用户将自己在POA网络上的原生代币POA转移到以太坊网络,并在以太坊网络上生成对应的POA20代币。 POA20 是以太坊网络的 ERC 20 代币。

2. 允许将以太坊网络的ERC 20代币转移到POA网络(或其他链)。 这些转账不会重复产生新的硬币。 它将在接收链中创建相应的硬币并销毁原始链中的相应硬币。

3.不同网络之间的ERC20代币相互转移。 通过这项技术,我们可以将昂贵的链上交易转移到廉价的侧链上,让区块链成为可能。

事实上,POA桥接技术不仅可以用于以太坊网络与POA网络之间的通信,还可以用于其他使用TokenBridge进行代币转移的项目,如:Sentinel Chain和Virtue Poker。

稳定币链 xDai Chain

最近,天秤座受到了太多的关注。 很多朋友都知道是Facebook发行的稳定币链。 如果稳定币链有资历的话,Libra应该叫xDai。

DAI是在以太坊上抵押数字资产发行的稳定币,一个Dai=1美元,不熟悉的同学可以看我的文章了解去中心化稳定币DAI[5],xDai Chain是DAI MakerDAO和A背后的团队POA Network联合推出的基于稳定币的POA共识链以太坊poa,xDai Chain也是POA共识机制与TokenBridge相结合的最佳范例。

xDai 链与 POA Core 一样,是以太坊网络上的一条侧链。 XDAI是侧链原生代币(用于支付链上Gas交易),DAI是以太坊对应的ERC20代币。 注意 xDai 链是不支持挖矿的以太坊poa,必须通过 TokenBridge 将 Dai 转移到 xDai 链来生成 XDAI 币。 其他特性与 POA Core 相同,如出块时间为 5 秒,每笔交易的 gas 成本为 1Gwei,因此 xDai 链上的交易成本非常低。

xDai 解决了阻碍数字货币在日常交易中使用的两个主要因素:价格波动大和手续费高。 在 xDai 链上部署一些应用程序会是一个不错的选择。 我们稍后会介绍文章。

您可以在 blockscout 浏览器中查看 xDai 网络区块信息的详细信息[6]。

在 POA 网络上部署应用程序

之前用一个教程在以太坊网络上开发一个记事本应用[7]。 这个应用每增加一条记录都会消耗大量的gas费用。 现在我们将这个记事本应用程序部署到 POA 网络。

使用水管获得POA币

在 POA 网络上部署应用程序需要一点 POA 硬币。 我们必须首先想办法获得一些 POA。 这里我们使用POA测试网POA Sokol提供的水管(如果要使用POA主网需要去交易所购买POA),进入页面后可以看到如下界面:

注意:Sokol水管加入了谷歌人机认证,防止被程序打耳光,所以这个页面需要大家翻墙访问,输入自己的以太坊账户,点击“REQUEST 0.5 SPOA”,即可获得POA Sokol测试 0.5 个 SPOA 令牌。

###Metamask 连接到 POA 网络

接下来,查看 Metamask 中账户的 SPOA 余额,看是否入账。 由于Metamask默认网络中没有POA网络,我们通过“CUSTOM RPC”添加一个网络,并在“New RPC URL”中输入,如下图:

除了使用 Metamask 钱包插件外,还可以使用 POA 基于 MetaMask [8] 定制的 Nifty 钱包。 Nifty 默认支持 POA 的每个网络。 Nifty钱包如下:

备注:您也可以在sokol的blockscout浏览器[9]中查看账号。 Metamask 连接到 POA 网络,为后面的 DApp 使用做准备。

使用 Truffle 将合约部署到 POA 网络

Truffle的基本使用,以及本笔记本DApp的开发,本文不再重复介绍,参考上一篇文章:Truffle教程[10],使用Truffle开发链笔记本[11],这里主要介绍如何如果 Truffle 连接到 POA 网络。

首先将DApp代码clone到本地,可以订阅跨链技术小专栏[12]获取源码。

加入 POA 网络的松露配置

然后打开truffle-config.js文件,添加一个sokol网络,方法如下:

模块.exports = {

网络:{

. ..

索科尔:{

供应商:功能(){

return new HDWalletProvider(助记符, "")

},

network_id:77,

天然气价格:1000000000

},

. ..

上面的助记词,大家用自己的助记词代替。

部署合约

然后使用命令 truffle migrate --network sokol 进行部署:

》truffle migrate --network sokol

. ..

2_deploy_contract.js

=====================

部署“NoteContract”

----------------------

》交易哈希:0x48dbba680f3f227b0e6aba42ecf467bf4xlb1324e0d765dcd

> 块:2 秒:9

》合约地址:0xb89ccfF5c3D4A15F69xLB9D0a9C3ce4a87047a6a

》区块号:9867109

》 区块时间戳:1563892140

“帐户:0x1a197940bd151xlb53aF8eD04996A880a251D454

> 余额:0.999159377

“使用的气体:537207

》gas价格:1 gwei

》发送价值:0 ETH

》总费用:0.000537207 ETH

》保存迁移到链。

》保存神器

--------------------------------------

》总费用:0.000537207 ETH

概括

=======

》部署总数:2

》最终费用:0.0007986 ETH

####启动DAPP应用

npm run dev 启动DAPP服务,在浏览器开头输入address: :3000运行DApp,因为MetaMask刚刚接入POA的测试网Sokoa,现在可以直接和DApp一起交付。

在稳定币链 xDai 网络上部署应用

在xDai网络上部署和之前的POA测试网步骤完全一样,只是把上面的RPC URL改成下面是每个网络对应的RPC URL和网络ID的表格: