以太坊智能合约语言Solidity - 前言

前言

在学习Solidity这门语言之前,我们先来介绍一下以太坊的层级架构。整个太坊的技术栈从上到下可以分为应用层、网络层、合约层、共识层、激励层和数据层

应用层:主要是基于以太坊公链衍生出的应用,例如各种Dapp应用、Geth控制台、Web3.js接口库以及Remix合约编写软件和Mist钱包如那件等

网络层:主要是以太坊的点对点通信和“RPC”接口服务

合约层:主要是基于智能合约虚拟机“EVM”的智能合约模块,有些公链没有合约层,比如比特币

共识层:主要是节点使用的共识机制

激励层:主要体现在节点的挖矿奖励。挖出胜出区块的节点或打包了叔块的区块所对应的节点,矿工会获得规则所设定的ETH奖励

数据层:用于整体的数据管理,包含但不限于区块数据、交易数据、事件数据以及“levelDB”存储技术模块

如下是以太坊的技术架构图
在这里插入图片描述
再回到语言上,尽管任何语言都能够编写智能合约,但是为什么我们要学习Solidity语言呢?这主要是因为构建在以太坊网络中的智能合约是运行在虚拟机(EVM)上的,而这个虚拟机运行的是字节码这种特殊形式机器码,虽然可以直接使用字节码来编写智能合约,但是它过于难懂和晦涩,所以使用高级语言可以让工程师们更容易去编写代码(高级语言通错编译器生成可供EVM执行的字节码)。另外,大多数常见的用户界面、操作系统接口和硬件接口在EVM环境中都不存在,还有跟EVM相关的一系列系统参数和函数也需要在编程语言中有所体现和支持,所以Solidity这种语言就应用而生了。当然以太坊还有其他若干智能合约编程语言和对应的编译器

反思:从上述内容我们也可以获知以太坊在智能合约编写层面的一些小小的局限性,但是总体而言以太坊的出现仍然将区块链的技术往前推动了一大步,关于以太坊的各个方面都是学习区块链思想和技术的重要材料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值