区块链原理与应用 课件 第9章 以太坊智能合约开发_第1页
区块链原理与应用 课件 第9章 以太坊智能合约开发_第2页
区块链原理与应用 课件 第9章 以太坊智能合约开发_第3页
区块链原理与应用 课件 第9章 以太坊智能合约开发_第4页
区块链原理与应用 课件 第9章 以太坊智能合约开发_第5页
已阅读5页,还剩11页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

以太坊智能合约开发以太坊节点架构以太坊的客户端软件分为共识客户端和执行客户端两部分,共识客户端完成交易数据的共识,执行客户端则负责交易数据及智能合约的执行

以太坊客户端的部署方式接入主网参与以太坊的区块链共识协议需要质押真正的以太币,如果要部署或者运行智能合约则需要使用以太币支付燃料费用接入测试网可以通过申请获得免费的测试网代币,以方便智能合约的开发测试本地私有部署省去了申请测试网代币的麻烦,同时测试也不需要依赖外部的网络连接

基于Remix环境的智能合约开发通过Remix平台可以实现Solidty智能合约的开发、编译与部署等全

部功能https:///

Remix在线IDERemix有完整的代码浏览与编辑IDERemix代码编译与合约部署Remix可以完成代码编译、合约执行与合约调用功能合约执行支持本地虚拟机、在线部署等多种方式Solidity智能合约开发语言Solidity是专门用于以太坊智能合约开发的一种高级语言。Solidity语言开发的智能合约代码编译后所得到的字节码通过交易部署到以太坊区块链中,以太坊虚拟机(EVM)可以加载执行编译后的字节码。Solidity是一种面向对象的程序设计语言,在Solidity中与类对应的概念称为合约(Contract)。一个合约内可以包含若干变量以及若干函数,用于实现一个具有特定功能的对象,同时合约也支持继承等特性。Solidity语言支持区块链访问、账户地址访问、转账操作等专用操作。

Solidity基本语法Solidity代码文件通常以.sol作为扩展名,一个完整的智能合约项目可能包含一个或者多个.sol文件。

Solidity中的变量类型Solidity使用变量存储数据,Solidity针对智能合约的特点,对于变量的类型以及变量的存储方式做了特有的定义Solidity支持多种简单变量类型,如布尔型、整数、合约与地址等,需要注意Solidity不支持浮点数类型Solidity也支持多种复杂变量类型,如枚举类型、结构体、固定长度数组与动态数组、映射等,Solidity还支持使用区块类型访问链上信息Solidity支持常量与常数,包括数值常量以及字符串常量等

Solidity变量存储变量作用范围全局变量:不支持传统意义全局变量,但是可以定义整个文件都可使用的结构体类型、枚举类型以及常量合约变量:整个合约范围可用的变量局部变量:某个函数内部可用的变量变量可见模式共有变量:用public修饰的合约变量,这种合约变量可以从合约外部直接访问内部变量:内部变量是以internal修饰的合约变量,只能通过接口函数访问私有变量:私有变量的使用与内部变量是类似的,唯一的不同是在继承于当前合约的子合约中也不能访问当前合约的私有变量Solidity变量存储变量存储空间持久存储变量:持久存储变量是指保存在外部存储区,其存储空间与内容是持久有效的变量。持久变量是用关键字storage修饰的,对于默认情况下是持久存储类型的变量无需使用storage关键字。持久存储的变量经常也被称为状态变量。内存变量:内存变量是指保存在内存中,其存储空间与内容在使用完后马上释放的变量。内存变量是用关键字memory修饰的。调用变量:调用变量是用关键字calldata所修饰的一类特殊的内存变量,调用变量限定内存的数据是不能修改的。

Solidity中的函数函数的参数与返回值函数可以使用各种变量作为输入的参数,参数的定义与函数的局部变量定义是相同的即变量类型加变量名的形式。Solidity支持多返回值的函数定义。通过returns关键字可以定义函数的返回变量,如果有多个返回变量则使用逗号分割。函数的可见模式外部函数:用关键字external修饰,是合约对外部访问开放的接口函数,不能

直接被本合约的其他函数调用公开函数:用关键字public修饰,可以被外部使用者调用内部函数:用关键字internal修饰,仅能合约内部或者子合约调用私有函数:用关键字private修饰,仅能合约内部调用

Solidity中的函数函数状态变化修饰符视图函数:使用view关键字定义,不修改合约的状态变量纯函数:使用关键字pure定义,不修改合约的状态,也不访问合约的状态数据可支付函数:使用关键字payable来修饰,这个函数可以接受调用时转入的以太币函数的高级特性函数重载:使用不同的参数类型实现对函数的重载函数修饰器:通过声明的方式对于函数的语法进行修正,从而实现对于函数执行条件的检查等功能

合约的构造构造函数:

用于合约初始化的函数,构造函数仅在合约部署时执行一次,在当前版本中构造函数由关键字constructor定义。析构函数:析构函数在Solidity中一般也称为自毁函数,用于中止合约的运行和部署,当一个合约调用析构函数后将从以太坊区块链的部署中释放掉。析构函数使用关键字selfdestruct命名。接收函数:接收函数是合约中用来接收转账的专用函数,每个合约最多有一个接收函数,接收函数应该定义为外部函数且可接收支付。备用函数:每

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论