以太坊以太坊智能合约

接入以太坊(Ethereum)测试网络

2018-03-30  本文已影响202人  AstraLin

什么是测试网络

以太坊为了方便智能合约的开发、学习和测试,开启了一条全新的区块链,与主网络特性相同,但测试网络中的以太币价值更低,也更容易得到。这样不至于在主网络上开发出现 BUG 造成以太币的损失。
当然我们也可以搭建私有的测试网络,不过区块链的去中心化特点,需要更多的节点运行才能达到理想效果,好在以太坊有公开的测试网络,而我们接入也更容易。

以太坊测试网络

Ropsten也是以太坊官方提供的测试网络,是为了解决Morden难度炸弹问题而重新启动的一条区块链,目前仍在运行,共识机制为PoW。测试网络上的以太币并无实际价值,因此Ropsten的挖矿难度很低,目前在755M左右,仅仅只有主网络的0.07%。这样低的难度一方面使一台普通笔记本电脑的CPU也可以挖出区块,获得测试网络上的以太币,方便开发人员测试软件,但是却不能阻止攻击。

PoW共识机制要求有足够强大的算力保证没有人可以随意生成区块,这种共识机制只有在具有实际价值的主网络中才会有效。测试网络上的以太币没有价值,也就不会有强大的算力投入来维护测试网络的安全,这就导致了测试网络的挖矿难度很低,即使几块普通的显卡,也足以进行一次51%攻击,或者用垃圾交易阻塞区块链,攻击的成本及其低廉。

2017年2月,Ropsten便遭到了一次利用测试网络的低难度进行的攻击,攻击者发送了千万级的垃圾交易,并逐渐把区块Gas上限从正常的4,700,000提高到了90,000,000,000,在一段时间内,影响了测试网络的运行。攻击者发动这些攻击,并不能获得利益,仅仅是为了测试、炫耀、或者单纯觉得好玩儿。

Rinkeby也是以太坊官方提供的测试网络,使用PoA共识机制。与Ropsten不同,以太坊团队提供了Rinkeby的PoA共识机制说明文档,理论上任何以太坊钱包都可以根据这个说明文档,支持Rinkeby测试网络,目前Rinkeby已经开始运行。

安装以太钱包

下载地址:https://github.com/ethereum/mist/releases


目前最新的版本是0.10.0,根据操作系统下载相应版本。

MIST其实只是以太坊钱包的一个图形界面,后端还是官方的Geth,只是可以使用图形化的方式操作,减少了出错的几率,降低使用门槛。MIST是使用Electron开发的,具有跨平台的能力,所以在各个系统上的界面和操作应该是基本一致的。

第一次启动



稍等一会会出现 LAUNCH APPLICATION 按钮,点击启动钱包。

启动后点击菜单栏 “开发”>“网络” 选择“Ropsten - Test network”

然后点击菜单栏 “账户”>“新建账户”然后输入密码创建账户

然后可以开启挖矿,用不了多久就可以获得 Ropsten 网络的以太币。


同 Ropsten 选择 “Rinkeby - Test network”



切换完网络后同样需要创建账户。

获取 Rinkeby 网络的以太币

Rinkeby测试网络使用的是PoA共识机制,我们不能通过挖矿来获取以太币。

想获取Rinkeby测试网络中的以太币,需要去申请,这个申请Rinkeby以太币的功能被称为水龙头(Faucet)。还真是挺形象的,水龙头会源源不断的产生以太币,并且受到权威节点控制,以确保不会被滥用。

进入这个水龙头的网站:Rinkeby: GitHub Faucet


为了确保不会出现有人滥用水龙头,无限生成Rinkeby以太币,水龙头需要借助社交账号来确定申请者的身份和配额。目前支持 twitter , Google Plus , Facebook,取消了 Github 账户。不过最先测试了 Facebook 没有成功,可能是打开方式不对,如果有成功的小伙伴记得告诉我啊。然后是 twitter 亲测可用。

打开 twitter,然后把钱包账户的地址粘贴进去,然后点击 “Tweet”。


然后进入 twitter 首页,找到你发的 twitter 点击右上角的小箭头,选择“Copy link to Tweet”。

然后回到水龙头的网站,将拷贝的链接粘贴到输入框,点击 “Give me Ether”有三种选项,前面是获得的以太币数量,后面是冷却时间,在冷却时间过后才能进行下一次以太币申请。


如果一切顺利,你会看到你的钱包地址已经多出了申请数量的以太币,我申请了两次,在钱包中还看不到余额,不过在区块浏览器中可以看到 0x53Ac8771A2f7C8730D94Bea19466F05C19aFbE22

如果申请的人数很多,需要排队等待一会儿,申请的以太币金额越大,一般需要等待越多的时间才能到账。

为什么申请测试网络的以太币如此繁琐呢?

以太币在以太坊平台中的设计功能是用来支付EVM中执行指令消耗的Gas,如果可以被无限制的产生,就会出现有恶意用户出于各种目的,用无限制的以太币换无限制的Gas,在EVM中执行超多的指令,并逐渐抬高区块Gas上限。EVM中的指令要在每一个以太坊节点中执行,这种攻击一旦出现,对网络将会产生很大的影响,所以测试网络中的以太币必须针对每个开发者限量供应。不过这个限量对正常的开发测试来说,几乎不会造成影响。

如果你看到了这里,并且成功的在自己的电脑上运行了钱包、连接测试网络、申请以太币,那么恭喜你,你已经做好了进一步学习和了解以太坊的准备。

参考:玩转以太坊(Ethereum)的测试网络

上一篇下一篇

猜你喜欢

热点阅读