Solidity学习第一节

引言:为什么要写这篇文章,在我看来,既是对其他人员的帮助,又是对自己能力的提升。相互学习,互帮互助。

目录顺序

1.Solidity是什么

2.智能合约是什么

3.以太坊虚拟机是什么

4.solidity和其他语言的比较

  • 一:Solidity的定义

Solidity 是一种智能合约高级语言,其语法类似于JavaScript,并且是静态类型的编程语言,编译期间会检查其数据类型。支持继承、类和复杂的用户定义类型,运行在Ethereum虚拟机(EVM)之上

  • 二:智能合约的定义

智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于1995年由Nick Szabo首次提出。
智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。

  • 三:以太坊虚拟机

以太坊虚拟机(EVM)使用了256比特长度的机器码,是一种基于堆栈的虚拟机,用于执行以太坊智能合约。由于EVM是针对以太坊体系设计的,因此使用了以太坊账户模型(Account Model)进行价值传输。

  • 四:solidity和其他语言的比较
  1. 以太坊底层是基于帐户,而非UTXO的,所以有一个特殊的Address的类型。用于定位用户,定位合约,定位合约的代码(合约本身也是一个帐户)。
  2. 由于语言内嵌框架是支持支付的,所以提供了一些关键字,如payable,可以在语言层面直接支持支付,而且超级简单。
  3. 存储是使用网络上的区块链,数据的每一个状态都可以永久存储,所以需要确定变量使用内存,还是区块链。
  4. 运行环境是在去中心化的网络上,会比较强调合约或函数执行的调用的方式。因为原来一个简单的函数调用变为了一个网络上的节点中的代码执行,分布式的感觉。
  5. 最后一个非常大的不同则是它的异常机制,一旦出现异常,所有的执行都将会被回撤,这主要是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。
  • 五:参考文档
  1. Solidity中文文档
  2. 区块链技术博客
  3. 金色财经

你可能感兴趣的:(Solidity学习第一节)