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

虾说区块链-66-以太坊二

一直在说区块链是一系列技术结合后的新的技术架构,那么这里分别介绍下这些相关技术,也涉及到一些扩展开去的相关内容。

区块链-以太坊二:

以太坊:

整理些以太坊相关概念。

EIPs:以太坊改进协议,对应bitcoin中的BIPs。

以太坊是作为一个平台,就像一张白纸,开发者可以根据以太坊普遍化的协议,配合核心机制定制各种解决方案。

智能合约:在区块链平台上,配合智能合约,建立一种去信任化价值传递平台。在以往的中心化网络平台上,以购物交易为例,一般通过第三方平台来进行资金的担保,那么在区块链平台上通过智能合约,code来制定各种条款的约定,合约中各项条款置于区块链中,一个去信任低成本环境进行价值传递。

以太坊客户端版本:

在github上以太坊的主页:https://github.com/ethereum各种以太坊的程序代码都可看到,各种语言版本可选择。

go-ethereum:语言:go。地址:https://github.com/ethereum/go-ethereum

cpp-ethereum:语言:c++。地址:https://github.com/ethereum/cpp-ethereum

个人电脑上安装以太坊测试环境,之前的文章有具体实施步骤,一般go-ethereum称为geth,在安装完成后进入geth命令行模式:(以下一些操作都在geth下)

geth –datadir“./” –nodiscover console 2>>geth.log

进入命令行模式,datadir为文件夹位置、nodiscover表示链隐藏、console>>geth.log输出日志。

账户:以太坊账户区别于之前bitcoin,分为外部账户和合约账户。

外部账户:一般情况下就称为账户,账户中有余额,账户理解为以太坊网络中的一个状态,区块链区块更新,达成共识后,每个节点更新自身副本。简而言之,在以太坊中账户更新即为以太坊中状态的一个更新。故账户的概念尤为重要。和其他区块链系统一样,账户都会有一对密钥,即自己个人保存的私钥和公开的公钥,同时公钥衍生地址(公钥的最后20个字节)。私钥和地址都会编码在一个JSON文本文件,这个在申请以太坊系钱包中,会提示保存,保存下来的一个文本文件中即可看到具体内容。

合约账户:功能和数据的集合,存在于以太坊的发布智能合约的地址上。一般包括,账户以太币的余额、关联代码、通过交易或者消息调用的方式出发并到EVM执行。在运行时候,运行具备图灵完备性,只操作特定的存储,可以结合其他合约。简单理解在以太坊上,合约代码都被EVM在每个参与网络的节点行运行,来验证新区块的产生。

eth.accounts:查看账户信息。

账户信息主要包括:

随机数,用于确定每次交易只能处理一次的计数器。

账户余额,当前余额。

账户合约代码。

账户的存储,默认为空。

新建账户:personal.nerwAccount(“账户名”)

查看信息:eth.accounts显示账户公钥地址。

解锁账户:账户新建后是锁定的,需要解锁,personal.unlockAccount(username)。

转移以太:eth.sendTransaction()

挖矿:miner.start().

交易理解为一个账户向另一个账户发送一笔被签名的消息数据包。区块链通过共识机制生成区块,并存储数据。

交易大致包括:

发送者、接收者(一笔交易收发双方)

签名信息,用作证明发送者想接收者发送消息。

转移数量(一般交易的以太币的数量)

用于存储智能合约和调用智能合约的代码的数据域。

Gas上限和gas价格。

一个消息即一笔交易,由合约账户产生,合约在执行代码过程中运行了call或者delegatecall即生成消息,消息引导接收账户运行其代码,使得账户之间产生联系。

在交易中必须要有个gas。即交易费用。以太坊的运行环境是EVM,参与的节点都运行EVM作为区块验证协议的一部分,合约在每个节点重复多次执行,这个也就称为一个漏洞,恶意的无限制的执行。那么设置gas作为代码运行步骤收取的费用,称为交易费,俗称燃料,用于控制这种恶意行为或无意的有缺陷代码。

交易中gas limit和gas price用于设置gas,这个gas一般都是一个预估值。交易费用主要包括:

gasused:交易消耗总的gas数量。每一个EVM中的命令设置相应的gas消耗值,即所有被执行的命令的gas的总和。

gasPrice:交易中单位gas的价格。由于网络关系这个价格浮动,根据区块打包时间预估。

交易费公式=gasUsed*gasPrice。

本文由币乎社区(bihu.com)内容支持计划赞助。

之前写了点东西,随着对区块链的理解,发现有些理解的并不透彻,重新整理。如有理解不正确的地方,请及时指正,同时有兴趣一块交流的可以加笔者微信:

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com