×
  • 澳门新莆京娱乐网站
  • 问卷调查
  • 问卷调查系统
  • 区块链
  • 大数据
  • 数据中心
  • 创建问卷
问卷调查系统工具软件推荐
区块链

以太坊区块链架构

上一节我们带大家核心地认识了区块链架构的全貌,相信大家都更加了解区块链运作的机制和原理。本篇文章我们将接续上篇来介绍区块链2.0 以太坊- Vitalik如何在中本聪设计的比特币架构上进行升级与改动,透过首度揭晓的「以太坊区块链架构图」带大家完整认识以太坊的运作原理!

Vitalik Buterin 领衔设计的区块链2.0 -以太坊Ethereum

How Ethereum Blockchain Work

以太坊虚拟机(EVM — Ethereum Virtual Machine )

介绍以太坊区块链架构前必须要介绍一下「EVM 」,EVM是以太坊为了让人人都能成为节点而创造的计算引擎。由于每个节点的软硬体环境可能都不一样,为了确保每个节能都能进行一样的运算,于是各个节点都透过EVM 来执行Ethereum 交易的状态转移与智能合约,以确保每一个节点都有相同的执行环境。

前言完毕,紧接着我们便来一探究竟:

以太坊交易的一生

有别于比特币的UTXO,以太坊是采用Account 的架构。

由于以太坊多了智慧合约的设定,将会分成AB C 三个part 来做说明,

我们先从最单纯的Ether 转帐交易开始看起:

A. 单纯的Ether 转帐交易

「 单纯的Ether 转帐交易」示意图

随机推荐:Arweave:永恒的互联网需求

1. 一个使用者(EOA)欲发起一笔交易。


2. 透过钱包(管理私钥的工具)输入交易资讯


To:对方接收地址;


Amount:欲转移的Ether数量;


Gas Price:单位Gas给的手续费;(参阅第5节)


Gas Limit:普通的Ether转移交易都是21,000 Gas,不用动;


Input Data:视是否要在交易中留下文字讯息。


3. 以私钥签署交易。


4. 广播「加上签名的交易封包」至邻近的以太坊节点们。


5. 节点接收到新交易时,会先至State Database 检查交易发起地址是否具有足额Ether(Balance)可做转移,若无则该交易会即刻被丢弃。


6. 若检查后确认有足额,则该交易会被放入到Tx Pool中。


(按照Gas Price设的多寡由高至低排序)


7. 等待出块的同时,各节点会


A.广播接收到的交易


B.接收未在Tx Pool内的交易


8. 矿工节点们(有在用电脑算力找nonce值,拼出块奖励的节点)会捞取手续费较高的交易们,进到EVM运算并更改状态值后,将已完成运算的交易们来打包成新区块(运算中出现错误的交易会被丢弃),随后用电脑算力来计算nonce值。


*注:这边的nonce值跟前面介绍过的以太坊地址的nonce值不同(以太坊有两个nonce:一个是挖矿的;一个是地址的交易序次。)


*注2:运算的同时便会消耗Gas。


9. 成功找到nonce值,出块的矿工会获得出块奖励及该区块所有打包交易给的手续费。


10. 该矿工节点将新的区块广播至全世界的其他节点们。


11. 其他节点同步 <8660586区块高度(最新的区块)>、


<State Database>、<Tx Pool>资料,继续广播与接收新交易。


12. 矿工节点再从Tx Pool 中捞取未出块的交易们运算并打包成新的区块。

以上,便是一笔以太坊交易从发送到出块会经历的流程。紧接着我们来一探究竟智慧合约是如何部署的:

B. 部署智慧合约(Smart Contract)

我们在第2节其实有概略性的介绍过一次,此刻我们搭配示意图更完整地来介绍一遍吧!

「 部署智慧合约」流程示意图

1. 以Remix或其它开发工具撰写完成智慧合约。


2. 将原始码编译为Bytecode。


3. 使用者(EOA)透过钱包(管理私钥的工具)输入交易资讯


To: 0x0


Amount:视是否要将Ether打入合约中


Gas Limit:按照合约繁复程度决定要设多少


Gas Price:视交易状况及欲出块的时间急迫性


Input Data:放入合约Bytecode


4. 以私钥签署交易,广播「加上签名的交易封包」至邻近的以太坊节点们。


5. 节点接收到新交易时,一样会先至State Database 检查交易发起地址是否具有足额Ether(Balance)可做转移(有些情况会把Ether打入合约) ,若无足额则该交易会即刻被丢弃。


6. 若检查后确认有足额,则该交易会被放入到Tx Pool中。


(按照Gas Price设的多寡由高至低排序)


7.等待出块的同时,各节点依旧会


A.广播接收到的交易


B.接收未在Tx Pool内的交易


8. 矿工节点们捞取起本笔合约部署交易,进到EVM运算。


9. 将合约程式码部署至Program Code ROM,是个部署后便不能进行更动的Read-Only Memory(唯独记忆体)。


10.同时,智慧合约亦可以另外使用记忆体(Memory)来储存合约所需要纪录的资讯。例如:一个发行ERC-20 Token的智慧合约,便可以使用记忆体来纪录各个以太坊地址所「持有Token数量」,追踪各个地址的ERC-20 Token Balance。


11. 上方步骤完成后,便会将运算后的结果(合约地址、Gas Used)写回到该笔交易中。


12. 矿工节点们将运算完的交易们打包成新区块(运算中出现错误或Gas给不够的交易会被丢弃),随后用电脑算力来计算nonce值。


13.成功找到nonce值,出块的矿工会获得出块奖励及该区块所有打包交易给的手续费。


14.该矿工节点将新的区块广播至全世界的其他节点们。


15. 其他节点同步 <8660586区块高度(最新的区块)>、


<State Database>、<Tx Pool>、<Contract Code ROM>、


<ERC-20 Token Balance>资料,继续广播与接收新交易。


16. 矿工节点再从Tx Pool 中捞取未出块的交易们运算并打包成新的区块。

以上,便是一笔智慧合约部署的交易从发送到出块会经历的流程。

最后,我们来解析呼叫智慧合约进行操作与互动:

C. 呼叫合约进行互动

这部分我们在第2节与第4节其实也有概略性的介绍过,

此刻我们搭配示意图,更着重在节点的部分,较完整地来介绍一遍吧!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

随机推荐:PBC(祈福币)基于实体资产运营产生价值的智能

人已赞赏
区块链

如果量子计算时代到来,我们的比特币安全吗?

2019-10-28 14:34:34

区块链

Arweave:永恒的互联网需求

2019-10-28 14:34:47

问卷调查系统工具软件推荐
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索
XML 地图 | Sitemap 地图