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

以太坊

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

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

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

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三个特征:

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

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏区块链资讯

BCH升级辩论仍在继续:BU提出一项新的硬分叉策略

8月21日Bitcoin Unlimited(比特币无限)首席开发者安德鲁·斯通(Andrew Stone)撰写了一份提案,提出一项11月BCH硬分叉的策略。斯...

653
来自专栏WindCoder

Time-locked Wallets:一个以太坊智能合约的教程

本次推荐的是一篇关于通过以太坊了解区块链的教程,能力有限,本身没接触过,各位尽量看原文吧。

732
来自专栏FreeBuf

由MtGox停止提现白话比特币交易安全

文/pnig0s|小P 由知乎上的一个问题引出:http://www.zhihu.com/question/22787360/answer/22662598 ...

16610
来自专栏申龙斌的程序人生

共读长铗10天笔记之三:区块链进阶

今天是第三章”区块链进阶“的笔记,说实话,这一章技术细节太多太多,确实难,我也读不下去了,就谈些与这三个技术相关的内容。 简单支付验证SPV 学SPV这个概念,...

2736
来自专栏FreeBuf

去中心化应用安全威胁Top10榜单

NCC Group 发起了一个名为 2018 年去中心化应用安全 Top10(Decentralized Application Security Projec...

992
来自专栏区块链大本营

区块链开发实战:如何从零打造一个去中心化应用

5926
来自专栏java工会

如何用JavaScript写一个区块链?

自去年开始,伴随着比特币的火爆,区块链成为比“人工智能”、“共享”还要火的词汇。各大企业,诸如阿里、京东、腾讯、百度等纷纷入局。

510
来自专栏Python中文社区

Python比特币公链技术架构介绍

作者:csunny,具有多年开发经验,有前后端开发经验,熟悉python、go、nodejs等多种语言,目前在国内某一线互联网大厂工作,主要从事devops以及...

1014
来自专栏企鹅号快讯

区块链搬砖的坑及有效鉴别方法

经过上篇文章“区块链搬砖要避免哪些坑”的了解,相信大家对搬砖已经有一个基本的了解。本节课我想在上篇的基础上继续和大家分享下我在搬砖过程中遇到的坑及常用鉴别方法,...

3337
来自专栏企鹅号快讯

比特币的SegWit2X分叉将于12月28日重新启动

比特币备受争议的SegWit2X硬分叉的支持者刚刚宣布拆分将会重新启动。比特币的Segwit2x(又称NYA协议)要求对比特币区块链规则进行具体的修改,该规则将...

1875

扫码关注云+社区