首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链学堂——以太坊实战第一步

掌握了区块链的原理、发展趋势及现状,现在到了真枪实弹演习的时刻了。由于区块链技术还处在慢慢被人们理解和接受的初级阶段,学习资料的匮乏和不完善,加上爱好者们翻译文档的水平良莠不齐,给区块链技术的初学者,带来不小的障碍。

为了入门,我也研究过很多资料,看过很多教程,通俗易懂的不多,部分书籍甚至东拼西凑(比如某开发指南),严重打击初学者的积极性,但无论条件多么困难,都阻止不了一颗热切的心,随着开发者们不断的分享与交流,相信总有一些经验和知识与别人有关、对别人有用,这也是我写博的原因之一。

言归正传,本文将探讨以下几个问题:

1、以太坊与区块链的关系?

2、为什么要学习以太坊?

3、什么是智能合同?

4、在开发实战之前要做哪些准备?

以太坊(Ethereum)与区块链的关系

如果把区块链比作传统互联网里的TCP/IP协议,那以太坊就是HTTP;如果把以太坊比作Android,那区块链就是Android Framework;还没明白? 如果把区块链比作手机,以太坊就是智能手机,这些比喻深究起来未必绝对准确,但对初学者而言,理解概念才是最重要。

要更加透彻地理解区块链和以太坊之间的关系,先回顾一下《小白秒懂区块链》里的一张图

区块链发展的三个阶段:1.0数字货币(比特币)——2.0智能合同(以太坊)——3.0高级智能合同、智慧资产。以太坊是目前最稳定、最成熟、并被广大开发者所追捧的,一个基于区块链架构设计,可以运行智能合同的系统级应用。

为什么是系统级应用?

早期开发者们开发区块链应用大多复制比特币源码进行修改,扩展,开发成本高和局限性大,直到以太坊的横空出世,将区块链开发者们的三轮车换成了小摩托,以太坊不仅提供了灵活、稳定、成熟、多样化的开发语言,和完善的工具包,还有一整套从开发到编译、到部署发布的完整流程,以至于,一夜之间(在很短的时间内),众多基于太坊的应用,代币如雨后春笋般涌现。用众星捧月形容以太坊,实不为过,它的出现,也标志着区块链技术真正进入了2.0时代。

为什么要学习以太坊?

在当下区块链2.0时代,学习区块链技术就要学习智能合约,而以太坊是智能合约的先祖和标杆,毫不客气地说,目前学习区块链,就要学习以太坊。(这当然只是为了表达学习以太坊的重要性)

什么是智能合约?

智能合约,就是把现实中的合同,程序化,数字化,在陌生的网络环境中,在毫无信任基础的情况下,通过编程,把交易双方的协议、约束变成可执行代码,嵌入到数字货币中,从而实现价值的转移和流通,这也是区块链被称为价值互联网的根本原因。

智能合约,是区块链技术去信任,实现可编程货币的关键技术。

在开发实战之前要做哪些准备?

1、开发语言

Solidity 是以太坊默认的开发语言,因为和Javascript语言类似。也是目前最受欢迎的和功能丰富的智能合约脚本语言。

Serpent 和Python语言类似,在以太坊历史的早期受欢迎。

LLL(Lisp Like Language) 和Lisp类似,也只有在早期使用。它大概是最难用的。

2、开发环境

【运行环境】: EVM(Ethereum Virtual Machine)以太坊虚拟机,是以太坊中智能合约的运行环境,和JVM类似。

【编译(智能合约)】:初学者推荐使用web编译器Browser-Solidity Web IDE,当然也可以自己安装solc编译器。

【部署(智能合约)】:把编译好的合约(字节码)通过节点以发送交易的形式部署到以太坊区块链上,以太坊官方提供了以太坊钱包(Ethereum Wallet),其实就是一个客户端,它集成了账户管理、挖矿、转账、智能合约的部署和执行等等功能,几乎就是一个强大完善的IDE(开发者工具),当然钱包也集成了EVM,不需要开发者单独安装。

【运行(智能合约)】:合约部署之后,当需要调用这个智能合约的方法时只需要向这个合约账户发送消息(交易)即可,通过消息触发后智能合约的代码就会在EVM中执行了。

【测试(智能合约)】:在以太坊的公共网络上,进行测试需要账户里有以太币余额,开发者可以通过以下四种方式来进行开发测试,在测试成功之后,再部署到公共以太坊区块链上。

选择以太坊官网测试网络Testnet

之所以选择测试网络,是为了更容易获得免费的以太币,以便测试,美中不足的是需要发很长时间进行节点初始化。

使用私有链

我们可以搭建属于自己的以太坊,甚至取名叫太太坊也无所谓,专门用来开发、调试和测试智能合约,

使用开发者网络(模式)

在开发者网络(模式)下,系统会自动分配一个有大量余额的开发者账号给我们使用。

使用模拟环境

使用testrpc来创建测试网络,testrpc是在本地使用内存模拟的一个以太坊环境,对于开发调试来说,更方便快捷。testrpc在启动时可以帮我们创建10个存有一定余额的测试账户。

3、开发工具

如果你使用的是Mac,除了以太坊钱包这一必不可少的开发工具之外,在我们搭建、配置开发环境的过程中,对于初学者而言还有一件利器——Homebrew,它可以一键帮你安装好所有缺失的软件包。

注意:以太坊钱包 Ethereum Wallet 在安装的过程中,可以选择以太坊官网测试网络Testnet的选项。

最后,科普一下Dapp(去中心化的应用程序或分布式应用程序)

Dapp是什么?

一、运行在分布式网络上;

二、参与者信息被安全存储,隐私得到很好的保护;

三、通过网络节点去中心化操作。符合这3个条件的应用可以认为是一个去中心化应用。

Dapp三个特征:

一、程序开源,数据加密保存在公开且去中心化的区块链上。

二、应用必须通过标准算法来生产代币,代币根据应用需要使用,提供贡献的用户都应该获得代币奖励。

三、根据市场反馈改进,必须由多数用户一致同意。

在太坊社区里,把基于智能合约的应用称为去中心化的应用程序或分布式应用程序。

好了,知己知彼,百战不殆,掌握了这些基础知识,以太坊实战演习将要开始了。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180103G0XXOF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券