前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ethereum的理解

Ethereum的理解

作者头像
rectinajh
发布2018-05-17 16:26:36
8680
发布2018-05-17 16:26:36
举报

根据以太坊白皮书的阐述,以太坊是看到了比特币的一些缺点,比如脚本功能缺失,缺乏图灵完备性,UTXO脚本不能实现精细的取现额度的控制,脚本状态单一,看不到区块链的数据等待。再此基础上提出了基于脚本,竞争币和链上元协议的分布式应用平台,是可编程的区块链。

以太坊(Ethereum)的目标是打造一个运行在智能合约的去中心化平台(Platform for smart contract),平台的应用按程序设定运行。不存在停机、审查、欺诈,第三方人为干预的可能。为了打造这个平台,以太坊提供了一条公开的区块链(公链),并制定面向对象的合约的一套编程语言。智能合约开发者可以在其上使用官方提供的工具来开发支持以太坊区块链协议的应用,即所谓的 DAPP。

核心概念 EVM:以太坊虚拟机,轻量级虚拟机环境,是以太坊中智能合约的运行环境。 Account:账户,分两类:合约账户存储执行的合约代码;外部账户为以太币拥有者账户,对应到某公钥。 Transaction:交易,从一个账户到另一个账户的消息,包括以太币或者合约执行参数。 Gas:燃料,每执行一条合约指令会消耗一定的燃料,当某个交易还未执行结束,而燃料消耗完时,合约执行终止并回滚状态。

以太坊的基本单元是账号而非交易,任何的资产的转移都是通过账号来激活的,账号分为:合约账号(由合约代码控制)和外部账号(由私钥控制的)。通过外部账号发送包含签名的交易的消息给合约账户,合约账号收到后,合约内部的代码就会被激活,由此引出了所谓智能合约。

智能合约的本质是一些可以访问区块链的数据的代码,这些代码被部署在区块链上(在EVM运行)。可以在一个分布式环境下正确执行。智能合约在安装部署和运行的时候,需要消耗gas,用Ether(以太币)购买。而Ether是将Gas交给打包这个区块的矿机获得的。

Ethereum环境搭建

brewMacOS包管理器

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装 Go 环境

brew update && brew upgrade brew install git brew install mercurial brew install go

这样安装之后通过命令行输入,输入go env:

屏幕快照 2018-01-16 下午6.04.36.png

这样go的环境,便安装好了。

geth运行以太坊节点

下载Source code (tar.gz)

localhost:go-ethereum-1.5.9 a212$ pwd /Users/a212/Desktop/ethereum/go-ethereum-1.5.9 localhost:go-ethereum-1.5.9 a212$ make geth

Solidity以太坊智能合约语言

brew update brew upgrade brew tap ethereum/ethereum brew install solidity brew linkapps solidity

提示:安装时间可能有点长,请耐心等待

建立私链

在以太坊的共有链上部署智能合约、发起交易需要花费以太币。而通过修改配置,可以在本机搭建一套以太坊私有链,因为与公有链没关系,既不用同步公有链庞大的数据,也不用花钱购买以太币,很好地满足了智能合约开发和测试的要求,开发好的智能合约也可以很容易地切换接口部署到以太坊公有链上。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.01.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Ethereum环境搭建
    • brewMacOS包管理器
      • 安装 Go 环境
        • geth运行以太坊节点
          • Solidity以太坊智能合约语言
            • 建立私链
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档