区块链实验八 : Solidity初步

实验目的及要求

了解以太坊的基本逻辑,理解以太坊的运行机理。能正确使用solidity进行智能合约设计。能完成链上数据存取。

实验基本原理

了解solidity语法,使用solidity进行简单智能合约设计。

实验实施环境

Firefox & Metamask插件扩展
Remix网页:remix.ethereum.org

实验概述

在remix中编写智能合约,并进行合约的测试。

实验内容

1.学习 《Solidity介绍》视频,了解智能合约语法
  • Solidity
    Solidity是以太坊智能合约编程语言,是一种静态类型语言,意味着每个变量(本地或状态变量)需要在编译时指定变量的类型(或至少可以推倒出类型)。Solidity提供了一些基本类型可以用来组合成复杂类型。Solidity可以分为值类型(Value Type)和引用类型(Reference Types)。
  • 智能合约
    一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议。一个合约由一组代码(合约的函数)和数据(合约的状态)组成,并且运行在以太坊虚拟机上。合约具有读取交易数据、读取或写入合约自己的存储空间、读取环境变量(块高,哈希值,gas)和向另一个合约发送一个“内部交易”的能力。
    1
2.在remix网页中,编译部署水龙头faucet合约

水龙头faucet合约学习网址

运行截图如下。
1
选择“DEPLOY & RUN TRANSACTIONS”菜单栏进行合约部署,左侧的“ENVIRONMENT”标签选择“Injected Web3”选项,会出现remix链接以太坊的弹出框,点击“CONNECT”按钮,链接成功后点击左侧的“Deploy”按钮,点击确认。
2
切换到以太坊界面可查看到智能合约部署的队列,等待一会之后再次刷新页面,发现合约部署成功,具体操作截图如下。

(合约部署队列)
1
(合约部署成功)
3
附Faucet.sol代码:

pragma solidity ^0.4.17;

contract Faucet{
    function withdraw(uint amount) public {
        require(amount <= 100000000000);
        msg.sender.transfer(amount);
    }
}
3.(选作)在remix网页中,编译部署简单存储合约

简单存储合约学习网址

运行截图如下。

5
附SimpleStorage.sol代码:

pragma solidity >0.4.22 <0.5.0

contract SimpleStorage{
    uint myData;
    function setData(uint newData) public{
        myData = newData;
    }
    function getData() public view returns(uint){
        return myData;
    }
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值