我的智能合约笔记(一):如何编写智能合约

unitimes.media

全球视角,独到见解

引言

文本将使用目前市面上最活跃的智能合约开发框架truffle(truffle是最受欢迎的以太坊开发框架,其使命是让您的生活变得更轻松)来进行开发。

学习目标

1. 了解智能合约

2. 简单环境搭建

3. 能够使用Solidity编写Hello World合约

4. 合约部署

5. 合约互动

什么是智能合约?

合约是以太坊区块链上特定地址代码和数据的集合,合约账户能够在它们之间传递信息以及实际计算.合约以以太坊特定的二进制格式-称为以太坊虚拟机(EVM)字节码存在区块链上。

合约通常使用一些高级语言如solidity编写,然后编译成字节码上传到区块链上。

环境搭建

1.首先确保已经安装了Node.js,并且版本在5.0以上

2.安装truffle

3.选择一个以太坊客户端

推荐使用GANACHE(一个用于以太坊开发的个人区块链),使用GANACHE,您可以快速了解您的应用程序如何影响区块链,并反应您的帐户,余额,合同创建和gas花费等细节

编写智能合约

1.创建项目

新开一个终端,输入如下命令:

项目结构:

contract:存放智能合约的目录

migrations:存放发布智能合约脚本的目录

test:存放测试应用和合约文件的目录

truffle.js:truffle配置文件

truffle-config.js:truffle配置文件(用来解决WINDOWS下命名空间冲突问题)

2. 创建HelloWorld合约

创建合约有多种方式,这里我们使用truffle create命令创建(您也可以在contracts目录下新建)

编写HelloWorld.sol内容如下:

3. 编译合约

我们使用truffle compile命令进行编译:

4. 部署合约

在部署之前我们首先启动GANACHE,启动之后的GANACHE如图:

系统默认初始化了10个账户,每个账户有100eth

启动好GANACHE之后,我们通过truffle create migration命令创建migration文件:

图中1524738208_helloworld_migration.js是我们通过truffle命令生成的migration文件(您也可以在migrations文件下手动创建)

接着我们修改1524738208_helloworld_migration.js的内容,如下:

artifacts.require("HelloWorld")这里返回了后续部署脚本与之交互的合约抽象,另外注意这里的HelloWorld是合约名,不是合约文件名

由于truffle默认的配置端口是8454,我们使用的GANACHE的端口是7545,所以我们修改truffle.js,使其内容如下:

最后我们使用truffle migrate命令进行部署:

部署完成后可以看到我们GANACHE上已经有所变化了

到这里合约部署就完成了

合约交互

truffle提供了两种交互方式truffle console和truffle develop,这里我们使用truffle console

当看到上图所示,说明这时我们已经成功运行开发模式的truffle console了,接下来我们获取合约实例:

最后我们通过实例调用sayHello方法

来源:区块链兄弟

http://www.blockchainbrother.com/article/1994

本文转载于网络,版权归原作者所有,其内容与观点不代表unitimes立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,欢迎与我们联系,我们将核实后修改或删除。

国际金融科技新媒体和社区平台

UNITIMES

网址 : unitimes.media

新浪微博:@Unitimes

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180602B1FWLW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券