Solidity是什么

• Solidity 是一门面向合约的、为实现智能合约而创建的高级编
程语言。这门语言受到了 C++,Python 和 Javascript 语言的
影响,设计的目的是能在以太坊虚拟机(EVM)上运行。

• Solidity 是静态类型语言,支持继承、库和复杂的用户定义类
型等特性。

• 内含的类型除了常见编程语言中的标准类型,还包括 address
等以太坊独有的类型,Solidity 源码文件通常以 .sol 作为扩展

• 目前尝试 Solidity 编程的最好的方式是使用 Remix。Remix
是一个基于 Web 浏览器的 IDE,它可以让你编写 Solidity 智
能合约,然后部署并运行该智能合约。

Solidity语言特性

Solidity的语法接近于JavaScript,是一种面向对象的语言。但作为一
种真正意义上运行在网络上的去中心合约,它又有很多的不同:
• 以太坊底层基于帐户,而不是 UTXO,所以增加了一个特殊的
address 的数据类型用于定位用户和合约账户。

• 语言内嵌框架支持支付。提供了 payable 等关键字,可以在语言层面
直接支持支付。

• 使用区块链进行数据存储。数据的每一个状态都可以永久存储,所以
在使用时需要确定变量使用内存,还是区块链存储。

• 运行环境是在去中心化的网络上,所以需要强调合约或函数执行的调
用的方式。

• 不同的异常机制。一旦出现异常,所有的执行都将会被回撤,这主要
是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。

Solidity源码和智能合约

• Solidity 源代码要成为可以运行在以太坊上的智能合约需要经历如下的
步骤:

  1. 用 Solidity 编写的智能合约源代码需要先使用编译器编译为字节码
    (Bytecode),编译过程中会同时产生智能合约的二进制接口规范
    (Application Binary Interface,简称为ABI);
  2. 通过交易(Transaction)的方式将字节码部署到以太坊网络,每次
    成功部署都会产生一个新的智能合约账户;
  3. 使用 Javascript 编写的 DApp 通常通过 web3.js + ABI去调用智能合
    约中的函数来实现数据的读取和修改。

Solidity基本介绍相关推荐

  1. 智能合约语言Solidity 类型介绍

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 智能合约语言Solidity 类型介绍11 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合 ...

  2. solidity语言介绍以及开发环境准备

    Solidity 是一门面向合约的.为实现智能合约而创建的高级编程语言.这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行. So ...

  3. 对于以太坊的Solidity语言介绍

    Solidity是什么 Solidity是一门面向合约的.为实现智能合约而创建的高级编程语言,主要目的是为了在以太坊虚拟机(EVM)上运行 Solidity是静态语言,支持继承.库和复杂的用户定义等特 ...

  4. 【译】Jumping into Solidity —The ERC721 Standard (Part 1)

    本文不是Solidity的介绍,所以我会假设你知道什么是区块链,以太坊是什么,以及Solidity的基础知识. *(如果你是初学者,请参阅脚注). 在接下来的几篇文章中,我将探索ERC721标准,它是 ...

  5. Solidity 从入门到实战(一)

    solidity 从入门到实战(一) 注意:本专栏主要来自于https://www.bilibili.com/video/BV1St411a7Pk?p=11&spm_id_from=pageD ...

  6. 区块链技术进阶-深入详解以太坊智能合约语言 solidity(含源码)-熊丽兵-专题视频课程...

    区块链技术进阶-深入详解以太坊智能合约语言 solidity(含源码)-103人已学习 课程介绍         区块链开发技术进阶-深入详解以太坊智能合约语言 solidity视频培训教程:本课程是 ...

  7. Solidity——Create2

    Solidity--Create2 介绍 君士坦丁堡硬升级中引入了一个新操作码 CREATE2 ,它使用新的方式来计算常见的合约地址,让生成的合约地址更具有可控性. 具体内容 在 CREATE2 以前 ...

  8. 以太坊智能合约 solidity 的常用的数据结构介绍

    Solidity 简介 Solidity 是一种静态语言类型,在编译前都要指定每个变量的类型.Solidity 提供了几种基本类型,通过几种基本类型的组合,可以组合成复杂类型. 此外更加官方的文章介绍 ...

  9. 第四章 以太坊智能合约solidity介绍

    Solidity是一门面向合约的.为实现智能合约而创建的高级编程语言,设计的目的是能在以太坊虚拟机上运行. 本章大概介绍合约的基本信息,合约的组成,语法方面不做过多的介绍,个人建议多阅读官方文档效果更 ...

最新文章

  1. Javascript中的对象和原型(一)(转载)
  2. Python 使用控制台运行带有相对路径的指令时,是以运行文件为基准,还是以控制台当前路径为基准
  3. restful 接口 安全性设计
  4. 使用Spring的缓存管理器缓存Web内容
  5. 如何用 ARKit 将太阳系装进 iPhone(一)
  6. 用Dalvik指令集写个java类
  7. xxx is not in the sudoers file. This incident will be reported.
  8. 是时候了,我们需要前端架构师
  9. Pytorch-OpCounter: Pytorch平台计算模型#Parameters和FLOPS的工具包
  10. CentOS7 yum方式安装MySQL5.7
  11. 【转载】企业安全建设之数据库安全(中)
  12. 计算机主机前耳机没声音,win7系统电脑前面耳机没声音怎么办
  13. 电子书PDF网站大全
  14. 魔兽世界模型文件.m2 在D3D下的渲染
  15. 用python做生日礼物_地产大佬潘石屹把学习Python当作生日礼物送给自己
  16. 帮谷歌推广Webp图片格式之:Webp的格式转换
  17. 秋冬季健康生活小常识
  18. 杜甫ndows 10怎么安排五笔,燕字五笔怎么打|燕子|杜甫|出处_诗词_综合试卷网_中国教育考试门户网站...
  19. 什么是一对一电脑无人直播?
  20. 查询薪金比“SMITH”或者“ALLEN”多的所有员工的编号、姓名、部门名称、领导姓名、部门人数、平均工资、最高及最低工资

热门文章

  1. 创建PDB的两种操作
  2. 大数据运维实战第十九课 Kafka 应用场景、集群容量规划、架构设计应用案例
  3. 永磁同步电机的SPWM控制
  4. 第22课 初略理解SCM
  5. ESP8266配网并将IP显示至oled液晶屏 ESP8266远程连接服务器控制灯或继电器
  6. 酷!新款 iPad 可能将会取消 Home 键
  7. 判断一个字符串是否是对称字符串(一)
  8. 计算机主机数的计算,根据子网掩码算可以连接的主机数
  9. jQuery入门基础-附案例
  10. 高级编程技术作业(七、八)