当前位置:   article > 正文

使用solidity编程语言编写智能合约_智能合约 实验报告

智能合约 实验报告



前言

随着区块链技术的不断发展,区块链被越来越多运用到生活中,什么是区块链智能合约嘞?简单说下,智能合约,就是一段写在区块链上的代码,一旦某个事件触发合约中的条款,代码即自动执行。也就是说,满足条件就执行,不需要人为操控。智能合约是区块链上的一段程序,没有智能合约,区块链还是区块链。比较扯的是很多链为了让自己有智能合约,于是移植了兼容以太坊的智能合约功能。而solidity语言的闻名,正是因为使用solidity语言编写的以太坊智能合约的成功,以太坊的巨大成功,使得solidity语言一夜成名。


一、solidity语言是什么?

Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上。Solidity是面向智能合约的编程语言。也即Solidity发明出来的目的就是为了实现智能合约。但是请注意,智能合约的实现手段不止是Solidity,其他的语言比如Go, JS等同样可以用来实现智能合约。只不过Solidity专门用来做这件事情,是不是就比其他的语言更好用,需要慢慢发现。使用solidity语言来进行智能合约的编程。
以下介绍几个有关solidity编程智能合约的网站。
1.在线编译运行智能合约网站 Remix。点击打开Remix网址
2.简单学习区块链智能合约网站 cryptozombies。 点击打开cryptozombies

二、一个简单的solidity智能合约

1.编写智能合约

我们首先打开在线智能合约网站Remix

创建一个新sol文件,如图命名为ZombieFactory.sol
在这里插入图片描述
开始编写合约,有关僵尸工厂合约如下:

代码如下(示例):

pragma solidity ^0.4.19;

contract ZombieFactory {
    event NewZombie(uint zombieId, string name, uint dna);
    uint dnaDigits = 16;
    uint dnaModulus = 10 ** dnaDigits;

    struct Zombie {
        string name;
        uint dna;
    }

    Zombie[] public zombies;

    function _createZombie(string _name, uint _dna) private {
        uint id = zombies.push(Zombie(_name, _dna)) - 1;
        NewZombie(id, _name, _dna);
    }

    function _generateRandomDna(string _str) private view returns (uint) {
        uint rand = uint(keccak256(_str));
        return rand % dnaModulus;
    }

    function createRandomZombie(string _name) public {
        uint randDna = _generateRandomDna(_name);
        _createZombie(_name, randDna);
    }

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

2.编译合约

注意编译合约,应该选择符合智能合约编写版本的版本要求,这里我们选择0.4.19+commit.c4cbbb05.Emscripten.clang编译器版本。在这里插入图片描述
点击开始编译(Ctrl+s)进行编译,编译成功之后,在下方会出现绿色的合约名字,即一下界面
在这里插入图片描述
这就表示智能合约成功编译。

3.部署合约

在智能合约成功编译,之后我们就需要将智能合约部署到区块链上面,因为我们在这里是进行学习测试,因此我们在测试网络上面部署合约。在节点环境选择JS虚拟机。选择之后,他就会给你提供测试网络上面的地址,里面有100ETH的gas费用,足够智能合约部署和使用的gas消费。
在这里插入图片描述
选择好节点环境之后,接下来正式进入部署环节,总共有两种部署方式,我们是编写智能合约进行部署,因此我们之间点击部署按钮就行,下方那个输入合约地址进行部署,现在暂时用不到。
在这里插入图片描述
成功部署之后,在下方就会显示部署成功的合约名字。在这里插入图片描述
在这个ZombieFactory智能合约之中,有一个public方法和一个数组zombies。
可以调用createRandomZombie方法创建自己的Zombie。
注意因为在区块链网络上面进行合约的部署,和调用都需要你花费gas进行使用,就相当于你开高速需要油费一样。在这里插入图片描述
因此进行一系列的部署和调用之后,该账户的ETH余额会减少。

总结

第一次solidity语言来部署合约,我感到一种想要了解区块链智能合约的迫切感。初探智能合约世界,感到自己所拥有知识的不足,各种编程语言皆有所通,骚年,认真学习吧,哈哈
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/369142
推荐阅读
相关标签
  

闽ICP备14008679号