Solidity基本介绍
Solidity是什么
• Solidity 是一门面向合约的、为实现智能合约而创建的高级编
程语言。这门语言受到了 C++,Python 和 Javascript 语言的
影响,设计的目的是能在以太坊虚拟机(EVM)上运行。
• Solidity 是静态类型语言,支持继承、库和复杂的用户定义类
型等特性。
• 内含的类型除了常见编程语言中的标准类型,还包括 address
等以太坊独有的类型,Solidity 源码文件通常以 .sol 作为扩展
名
• 目前尝试 Solidity 编程的最好的方式是使用 Remix。Remix
是一个基于 Web 浏览器的 IDE,它可以让你编写 Solidity 智
能合约,然后部署并运行该智能合约。
Solidity语言特性
Solidity的语法接近于JavaScript,是一种面向对象的语言。但作为一
种真正意义上运行在网络上的去中心合约,它又有很多的不同:
• 以太坊底层基于帐户,而不是 UTXO,所以增加了一个特殊的
address 的数据类型用于定位用户和合约账户。
• 语言内嵌框架支持支付。提供了 payable 等关键字,可以在语言层面
直接支持支付。
• 使用区块链进行数据存储。数据的每一个状态都可以永久存储,所以
在使用时需要确定变量使用内存,还是区块链存储。
• 运行环境是在去中心化的网络上,所以需要强调合约或函数执行的调
用的方式。
• 不同的异常机制。一旦出现异常,所有的执行都将会被回撤,这主要
是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。
Solidity源码和智能合约
• Solidity 源代码要成为可以运行在以太坊上的智能合约需要经历如下的
步骤:
- 用 Solidity 编写的智能合约源代码需要先使用编译器编译为字节码
(Bytecode),编译过程中会同时产生智能合约的二进制接口规范
(Application Binary Interface,简称为ABI); - 通过交易(Transaction)的方式将字节码部署到以太坊网络,每次
成功部署都会产生一个新的智能合约账户; - 使用 Javascript 编写的 DApp 通常通过 web3.js + ABI去调用智能合
约中的函数来实现数据的读取和修改。
Solidity基本介绍相关推荐
- 智能合约语言Solidity 类型介绍
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 智能合约语言Solidity 类型介绍11 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合 ...
- solidity语言介绍以及开发环境准备
Solidity 是一门面向合约的.为实现智能合约而创建的高级编程语言.这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行. So ...
- 对于以太坊的Solidity语言介绍
Solidity是什么 Solidity是一门面向合约的.为实现智能合约而创建的高级编程语言,主要目的是为了在以太坊虚拟机(EVM)上运行 Solidity是静态语言,支持继承.库和复杂的用户定义等特 ...
- 【译】Jumping into Solidity —The ERC721 Standard (Part 1)
本文不是Solidity的介绍,所以我会假设你知道什么是区块链,以太坊是什么,以及Solidity的基础知识. *(如果你是初学者,请参阅脚注). 在接下来的几篇文章中,我将探索ERC721标准,它是 ...
- Solidity 从入门到实战(一)
solidity 从入门到实战(一) 注意:本专栏主要来自于https://www.bilibili.com/video/BV1St411a7Pk?p=11&spm_id_from=pageD ...
- 区块链技术进阶-深入详解以太坊智能合约语言 solidity(含源码)-熊丽兵-专题视频课程...
区块链技术进阶-深入详解以太坊智能合约语言 solidity(含源码)-103人已学习 课程介绍 区块链开发技术进阶-深入详解以太坊智能合约语言 solidity视频培训教程:本课程是 ...
- Solidity——Create2
Solidity--Create2 介绍 君士坦丁堡硬升级中引入了一个新操作码 CREATE2 ,它使用新的方式来计算常见的合约地址,让生成的合约地址更具有可控性. 具体内容 在 CREATE2 以前 ...
- 以太坊智能合约 solidity 的常用的数据结构介绍
Solidity 简介 Solidity 是一种静态语言类型,在编译前都要指定每个变量的类型.Solidity 提供了几种基本类型,通过几种基本类型的组合,可以组合成复杂类型. 此外更加官方的文章介绍 ...
- 第四章 以太坊智能合约solidity介绍
Solidity是一门面向合约的.为实现智能合约而创建的高级编程语言,设计的目的是能在以太坊虚拟机上运行. 本章大概介绍合约的基本信息,合约的组成,语法方面不做过多的介绍,个人建议多阅读官方文档效果更 ...
最新文章
- Javascript中的对象和原型(一)(转载)
- Python 使用控制台运行带有相对路径的指令时,是以运行文件为基准,还是以控制台当前路径为基准
- restful 接口 安全性设计
- 使用Spring的缓存管理器缓存Web内容
- 如何用 ARKit 将太阳系装进 iPhone(一)
- 用Dalvik指令集写个java类
- xxx is not in the sudoers file. This incident will be reported.
- 是时候了,我们需要前端架构师
- Pytorch-OpCounter: Pytorch平台计算模型#Parameters和FLOPS的工具包
- CentOS7 yum方式安装MySQL5.7
- 【转载】企业安全建设之数据库安全(中)
- 计算机主机前耳机没声音,win7系统电脑前面耳机没声音怎么办
- 电子书PDF网站大全
- 魔兽世界模型文件.m2 在D3D下的渲染
- 用python做生日礼物_地产大佬潘石屹把学习Python当作生日礼物送给自己
- 帮谷歌推广Webp图片格式之:Webp的格式转换
- 秋冬季健康生活小常识
- 杜甫ndows 10怎么安排五笔,燕字五笔怎么打|燕子|杜甫|出处_诗词_综合试卷网_中国教育考试门户网站...
- 什么是一对一电脑无人直播?
- 查询薪金比“SMITH”或者“ALLEN”多的所有员工的编号、姓名、部门名称、领导姓名、部门人数、平均工资、最高及最低工资