⑴ 以太坊获取测试链代币
发起以太坊交易时需要消耗以太币,开发智能合约做测试时如果在主网做测试成本会很高,并且主网的速度也比较慢,以太坊官方考虑到大家的这个需求提供了几条测试链供大家使用,比较知名的有以下这几个
以太坊的主测试网,环境最接近主网环境,有实际的雷锋矿工在挖矿,只不过难度会比主网低很多,不过由于 Ropsten 采用与主网完全一样的 PoW 共识,有时也就会和主网一样拥堵,在这条链上做测试更容易测试出智能合约或者dapp里潜在的问题
用的是 PoA 机制,无需挖矿,所以出块很快而且很稳定
和Rinkeby同样使用的是 PoA 机制
打开这个网址 https://faucet.metamask.io/
点击 request 1 ether from faucet 按钮会通过web3连接钱包,获取到钱包当前账户的以太坊地址,这个我使用的钱包是MetaMask,如果你没有装支持web3访问的钱包,可以参考这篇文章安装
https://www.jianshu.com/p/a84fe16f1af7
点击连接
连接成功后底部会生成一笔交易,hash值
等交易确认后一个以太坊就到账了
Rinkeby获取测试币相对麻烦些,需要注册twitter账号(需要翻墙)
打开这个网址 https://twitter.com/intent/tweet?text=Requesting%20faucet%20funds%20into%%20on%20the%20%23Rinkeby%20%23Ethereum%20test%20network
把推文中替换成你的地址点击TWEET,发送成功后点击分享图标选择Copy link to Tweet,把推文的链接复制下来
然后打开Rinkeby测试币水龙头网页 https://www.rinkeby.io/#faucet
把刚才那个推文链接复制进输入框,点击Give me Ether
根据你的需要选择要多少个代币,要的越多到账越慢😓,到账时间相对其它的测试链很慢,如果着急就用别的链做测试
打开这个网址 https://faucet.kovan.network/ ,需要使用github账号登陆
登陆成功后输入以太坊地址,点击发送就好了,转账交易就提交到链上了
同样的等待交易确认就能收到一个以太币了
⑵ 【Discover ETH】什么是权益证明PoS
本篇作为Discover系列文章的开篇,结合ETH2.0的目标,来谈谈权益证明PoS是什么。
在谈PoS之前,我们先来了解一下共识。共识,即达成了普遍协议。区块链实质上是一个全球性的状态机,达成共识意味着网络上至少有超过一半(51%)的节点同意网络的下一个全球状态。
共识机制 (也称为共识协议或共识算法)允许分布式系统(计算机网络)协同工作并保持安全。当前主流的共识机制有两种,分别是 工作量证明 (Proof of Work,PoW)和 权益证明 (Proof of Stake,PoS)。以太坊在设计之初就希望最终以太坊的共识机制能转变为PoS,而PoW只作为一个过渡阶段。但无论是PoW还是PoS,最终的目的都是相同的,即实现分布式计算机的共识机制。下面先简单了解工作量证明(PoW)的工作机制。
工作量证明通过矿工们完成,矿工们需要竞争创建最新区块以处理和完成交易。 获胜者将与网络中的其他节点分享最新区块,并且获得最新的特定代币区块奖励(如以太坊的以太币)。由于用户需要拥有超过网络中 51% 的算力才能够欺骗整条链,因此网络安全得以保证。 这将需要巨大的设备和能源投入,所需的开支甚至可能超过收益。
工作量证明是08年在中本聪所创造的比特币中提出的,至今已经经过了充分的考验和测试,但随着越来越多的矿工和矿池的加入,挖掘新的区块的难度指数爆发式上升,也面临的如下的问题:
PoS作为ETH2.0关键的建设目标,其作用不仅仅只是因为PoW带来的环境不友好的能源消耗,还有PoS的建设能更有力支持 分片链 (以太坊网络扩展的关键升级),更强的去中心化特性等等。下面从几个方面来简单谈谈权益证明PoS的工作过程。
在以太坊中,工作量证明的过程参与的角色是矿工/矿池。其目的是通过算力试错来反复计算,以此生成一个低于目标随机数的混合哈希。这个计算难度依赖于区块所声明的 难度 ,难度越小,有效的哈希值的集合就越小。而在权益证明中,则没有矿工这一角色,与之对应的是称之为 验证者 的角色。
在ETH2.0中,用户需要质押 32ETH 来获得作为验证者的资格。验证者被 信标链 随机选择去创建区块,并且负责检查和确认那些不是由他们创造的区块。他们不需要开采区块,他们只需要在被选中的时候创建区块并且在没有被选中的时候验证他人提交的区块。此验证被称为证明。
验证者因提出新区块和证明他们已经看到的区块而获得奖励,对于一些恶意验证者节点,也会有相应的惩罚机制使之失去质押。验证者质押的ETH越多,获得的奖励也越多。可以这样说,权益证明是一种用于激励验证者接受更多质押的机制。
前面提到了 分片链 这个名词, 分片 就是将区块链分成多条链。验证者将会在不同的分片上处理它们的分片数据,以此来提高区块链的工作效率。ETH2.0预计会有64个分片链。
验证者会被随机洗牌到不同的分片中,以防止验证者恶意操纵节点并提高链的安全性。处理不同分片之间的数据的关键角色就是 信标链 (Beacon Chain)。
信标链 是协调分片信息、管理验证者的连接不同分片的桥梁。
当用户在分片上提交交易时, 验证者 将负责将用户的交易添加到分片区块中。 信标链 通过算法选择验证器以提出新的块。如果一个验证者没有被选中提出一个新的分块,它们将会证明另一个验证者的提议,并确认一切都正常。
至少需要 128 个被称为 委员会 ( committee )的验证者来证明每个分片块。委员会有一个提出和验证分片区块的时限,这个时限被称为 插槽 ( Slot ),大约为12秒。 每个插槽只能创建一个有效区块,一个 周期 ( Epoch ,大约6.4分钟)有 32 个插槽。
每个周期过后,委员会都由不同的、随机的参与者解散与重组,重组过程由一个半随机算法 RANDAO 来选择,以此避免恶意节点的操纵。
ETH2.0使用 Cassper 终局协议来确认一个新的区块是否得到足够的证明,即只要2/3的插槽同意(即当前参与计算的2/3的验证者节点),该区块就会被最终确定。而推荐此区块的验证者将获得奖励。因此,在权益证明的机制下,每过6.4分钟就会创建一个新的区块。关于Cassper协议的详细说明后续再进行探索。
权益证明的建设以太坊在15年就已经提出,截止至今也才完成了Phase 0信标链的建设。而下一阶段的与主网合并,再下一阶段的分片链建设也一再推迟。虽然PoS的建设非常缓慢,但无论如何,权益证明作为主流的共识机制算法之一,也是值得我们探讨其设计原理。
后续将会针对信标链的详细设计、分片等ETH2.0内容进行探索。