赞
踩
随着区块链技术的不断发展,区块链被越来越多运用到生活中,什么是区块链智能合约嘞?简单说下,智能合约,就是一段写在区块链上的代码,一旦某个事件触发合约中的条款,代码即自动执行。也就是说,满足条件就执行,不需要人为操控。智能合约是区块链上的一段程序,没有智能合约,区块链还是区块链。比较扯的是很多链为了让自己有智能合约,于是移植了兼容以太坊的智能合约功能。而solidity语言的闻名,正是因为使用solidity语言编写的以太坊智能合约的成功,以太坊的巨大成功,使得solidity语言一夜成名。
Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上。Solidity是面向智能合约的编程语言。也即Solidity发明出来的目的就是为了实现智能合约。但是请注意,智能合约的实现手段不止是Solidity,其他的语言比如Go, JS等同样可以用来实现智能合约。只不过Solidity专门用来做这件事情,是不是就比其他的语言更好用,需要慢慢发现。使用solidity语言来进行智能合约的编程。
以下介绍几个有关solidity编程智能合约的网站。
1.在线编译运行智能合约网站 Remix。点击打开Remix网址
2.简单学习区块链智能合约网站 cryptozombies。 点击打开cryptozombies
我们首先打开在线智能合约网站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); } }
注意编译合约,应该选择符合智能合约编写版本的版本要求,这里我们选择0.4.19+commit.c4cbbb05.Emscripten.clang编译器版本。
点击开始编译(Ctrl+s)进行编译,编译成功之后,在下方会出现绿色的合约名字,即一下界面
这就表示智能合约成功编译。
在智能合约成功编译,之后我们就需要将智能合约部署到区块链上面,因为我们在这里是进行学习测试,因此我们在测试网络上面部署合约。在节点环境选择JS虚拟机。选择之后,他就会给你提供测试网络上面的地址,里面有100ETH的gas费用,足够智能合约部署和使用的gas消费。
选择好节点环境之后,接下来正式进入部署环节,总共有两种部署方式,我们是编写智能合约进行部署,因此我们之间点击部署按钮就行,下方那个输入合约地址进行部署,现在暂时用不到。
成功部署之后,在下方就会显示部署成功的合约名字。
在这个ZombieFactory智能合约之中,有一个public方法和一个数组zombies。
可以调用createRandomZombie方法创建自己的Zombie。
注意因为在区块链网络上面进行合约的部署,和调用都需要你花费gas进行使用,就相当于你开高速需要油费一样。
因此进行一系列的部署和调用之后,该账户的ETH余额会减少。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。