以太坊入门

浏览: 2098

本文将简单介绍以太坊这个区块链平台以及在这个平台的分布式应用(DApp),后者是一个运行于以太坊网络上的一个或多个智能合约。

以太坊其官方定义是:以太坊是一个去中心化的,可以执行智能合约的平台(详见以太坊白皮书)。 通俗来说,以太坊是一个基于区块链技术的平台,不同于一般网站这样的服务器,这个平台是去中心化的,运行在各个节点上。在这个平台上,可以自动的部署和执行任务(智能合约)。

以太坊的优势在于基于区块链技术,区块链去信任等特点使得以太坊网络具有高度的可靠性。另外,去中心化的特点意味着不需要中心服务器,个别节点的失败也不影响整个网络的运行。用来分享文件的BitTorrent就是一个去中心化应用的例子。没有中心服务器也使得网络的维护成本效益较好。

下面简单介绍下以太坊中几个重要的基本概念

智能合约

智能合约本质上就是一段程序,运行在以太坊网络上,类似于一系列if-then语句。当某个条件被满足时,就会执行相应的逻辑。

EVM(以太坊虚拟机)

EVM, 全称Ethereum Virtual Machine(以太坊虚拟机),它是以太坊中智能合约的运行环境。类似于Java虚拟机(JVM)是用来执行Java,而EVM用来执行智能合约。

以太币

以太坊,也叫eth,是以太坊的一种数字代币,类似于比特币,在以太坊上的应用执行需要支付以太币。

Gas

由于以太坊的价格变动较大,为了保证执行费用相对稳定,以太坊上使用了另一个计量单位,叫做Gas。

DApp

DApp是Decentralized App的简称,直译叫做分布式应用,本质上,DApp = 智能合约 + UI, 智能合约只是以太坊上用来执行的一段程序,为了方便使用,需要加上交互的UI,而DApp就是一个完整的应用。

账号

以太坊账号是用来存放和交易以太币。一个以太坊帐户就是一个私钥和公钥地址对。

钱包

顾名思义,就是用来存放Money的,只是这里的Money特指以太币,或者说虚拟货币。除此之外,以太坊钱包还有部署智能合约的作用。

了解了上述基本概念后,让我们本地运行运行一个以太坊节点并学习如何在以太坊上进行开发。

以太坊有很多客户端版本,基本上每个主流编程语言都有一个实现版本,这是为了面向不同的开发者。比如Go语言版本geth,,Python版本pyethereum, javascript版本ethereumjs等。运行上述客户端后,需要花一点时间来下载整个区块链,并与网络同步。值得注意的是,在以太坊网络上执行应用是需要耗以太坊(或者说Gas)。

为了方便开发调试,这里推荐运行一个本地的测试网络环境,使用Ganache(之前这个叫testRPC)。需要系统中安装了Nodejs环境,Ganache安装命令如下:

$sudo npm install -g ganache-cli

安装完成使用ganache-cli命令运行,效果如下:

ganache-cli.png

由上图可以看到Ganache自动会创建10个测试账号,并监听在9545端口。 为了方便后的开发调试,这里再安装一个以太坊钱包MetaMask,它是一个chrome插件, 可以在Chrome的应用商店中找到安装。由于这里使用的是本地测试环境,需要设置MetaMask连接到本地8545端口。

metamask.png

然后将试着导入一个测试账号,比如上面的第一个账号私钥259ee40ff6f29126479f1e9997a4e079580889cbc67e3238ab887c00bd898dca。

metamask_import1.png

metamask_import2.png

metamask_import3.png

可以看到导入的测试账号默认已经拥有了100个以太币。下面可以进行智能合约的开发调试了。

推荐 0
本文由 101python 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

谢谢楼主分享!推荐一个以太坊开发的入门教程给大家:
http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180412hellobi

要回复文章请先登录注册