用solidity写Ethereum以太币智能合约(一)

浏览: 1791

image.png

近一个月,因为某种原因接触了虚拟货币,区块链。从完全小白开始学习。很荣幸可以见证比特币突破1枚30000人民币的大关,同时也见证了虚拟币在大陆的交易价格腰斩的盛状。

在讨论以太币时,智能合约(smart contract)是一定会被提起。开发智能合约主要语言有

  • Serpent(类似python)
  • Lisp-Like Language (LLL)
  • Mutan
  • solidity

因为之前有python的基础,所以有先用Serpent,但是从大趋势上看,大家还是倾向用solidity开发,所以我也没有再用Serpent。顺便给大家普及一下serpent也是一种蛇的类型。看过JaveScript的朋友应该看到solidity不会陌生。

学习solidity的过程对我来说是比较辛苦,所以写这个也是另外一种方式回顾自己学习的内容。因为自己也是刚学,有什么问题希望前辈可以指教。

这里放几个必要的链接

solidity官方文档

中文solidity官方文档

Introducing Ethereum and Solidity

在线solidity环境


每个语言的第一步就是hello world!所以我们先来写一个hello world contract

pragma solidity ^0.4.0;

开始先申明编译版本。这样的源文件不能被早于0.4.0编译同时也无法被0.5.0开始的编译器编译。

(1)创建一个contract,命名为 HelloWorld。

contract HelloWorld{

}

(2)创建一个变量 word,类型是string,并且把字符串'Hello World'赋给便利word。在学习solidity的时候,发现和python很大的一个不同点是要说明类型,还有就是很不习惯的分号。

contract HelloWorld{
string word ='Hello World';
}

(3)创建一个function。我印象中js没有把returns放在大括号前面的。因为对js不熟,所以用了印象。在returns中说明会返回的数据类型。

contract HelloWorld{
string word ='Hello World';
function getWord() returns(string) {
return world;
}
}

image.png

这是我在remix中运行的结果。

在run标签下,Environment 变量选择 JavaScript VM,然后点击create。

(4)创建一个setWord function。

contract HelloWorld{
string word ='Hello World';
function getWord() returns(string) {
return word;
}
function setWord(string newWord) returns(string){
word = newWord;
return word;
}
}

image.png

右下角在setWord可以填写参数,我输入"Welcome to EtherTopia"。这里是字符串,所以要用引号,然后点击setWord粉丝按钮,就可以看到旁边的运行结果了。


对solidty有了初识之后,接下来就是要理解solidity涉及的数据类型。

eth adress: 0x007FF286578AF915d06CAEC25BEE570A1C341051

推荐 1
本文由 生活缺乏心跳 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

推荐两个区块链、以太坊开发DApp的实战教程:

1. 适合区块链新手的以太坊DApp开发:
http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180415hellobi

2. 用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台:
http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6/?affid=20180415hellobi

要回复文章请先登录注册