关闭

以太坊开发--truffle和testrpc使用介绍

标签: 以太坊区块链truffle
10445人阅读 评论(10) 收藏 举报
分类:

       truffle是本地的用来编译、部署智能合约的工具,而testrpc不同于geth,geth是真正的以太坊环境,testrpc是在本地使用内存模拟的一个以太坊环境,对于开发调试来说,更为方便快捷,当你的合约在testrpc中测试通过后,再可以部署到geth中去。所以可以说truffle和testrpc就是两大杀器。这篇博客就来介绍它们的使用。对于环境的配置和truffle、testrpc的安装,请参考我的上一篇博客《区块链-以太坊开发环境搭建介绍》。

(1)首先在终端中打开testrpc,直接输入testrpc命令即可。


testrpc会默认给你十个测试账号用来调试。可以看到testrpc监听的端口为8545,当在truffle操作时,在当前终端中会打印日志信息。


(2)新建一个文件夹,作为truffle的开发目录,我这里取名为hello。另开一个终端,命令行进入hello文件夹,执行truffle init命令。此时会自动生成如下文件:

.


(3)这里我编写一个简单的智能合约SimpleStorage,保存为.sol后缀,然后放入contracts文件夹中。

pragma solidity ^0.4.0;
contract SimpleStorage {

   uint storedData;

   function set(uint x) { 
    storedData = x;
   }

   function get() constant returns (uint) { 
      return storedData;
   } 
}

我们可以看到在原先的contracts中已经MetaCoin等几个合约了,如果你不想要这些合约,也可以删除,不会对后面的开发产生影响。我这里先不删除,下面还会有MetaCoin这个合约的演示。

(4)执行"truffle compile"编译智能合约:


在编译以后,目录下会多出一个build文件夹。



(5)编译如果没有出错的话我们就可以部署合约了。首先进入migrations文件夹,编辑2_deploy_contracts文件,在最后一行插入"deployer.deploy(合约名)",如下所示:



然后执行"truffle migrate"命令部署合约到testrpc中。(注意在此步骤之前一定要在另一个终端中打开testrpc,否则会部署失败)



(6)在上面的合约部署成功后,我们就可以在服务器中查看效果了。执行“truffle sever”,


可以看到占用的是8080端口,我们在浏览器中敲入“localhost:8080”,出现如下界面:


这个例子就是truffle init后默认产生的MetaCoin合约,并生成了一个简单的界面。在这里你可以向任何地址发送MetaCoin.


(7)我们也可以使用“truffle console”命令使用truffle的命令行功能,在这里可以实现对合约方法的调用,


获得当前部署的SimpleStorage合约。


获得当前合约的地址。


调用set函数设置值,调用get函数返回值。


(8)此时我们回到开启testrpc的那个终端,发现testrpc打印出了很多的日志,


打印的内容包括交易(方法执行)的地址、花费的gas、区块号、时间、调用以太坊的方法等信息。


(9)在truffle目录下,其实还有一个test目录,里面是用来写测试代码的,我会在之后的博客中介绍如何使用js写测试代码。

(10)当增加或者删除了某个合约后,可以执行“truffle migrate --reset”命令重新部署合约。


       当我们掌握以上步骤后,就可以开发简单的智能合约了。我们会在以后的使用中,会发现越来越多testrpc和truffle的功能。


3
0
查看评论

区块链开发(六)truffle使用入门和testrpc安装

在上篇博文中我们已经成功安装了truffle及所需相关环境,此篇就简单介绍一些truffle的使用及目录结构等。项目初始化创建一个目录,并在目录下面新建项目:$ mkdir truffleProject $ cd truffleProject/ $ truffle init执行以上命令之后,truf...
  • wo541075754
  • wo541075754
  • 2016-11-14 08:36
  • 8181

ubuntu下 solidity框架truffle 以及testrpc的安装

1.nodejs的安装 本人的另外一篇文章有详细介绍http://blog.csdn.net/lp18036194881/article/details/72851178 2、更新apt源 sudo apt-get update 3、安装truffle npm instal...
  • lp18036194881
  • lp18036194881
  • 2017-06-04 08:32
  • 556

Truffle 3.0部署智能合约至Ethereum节点(区别truffle部署智能合约到testrpc)

Truffle 3.0部署智能合约至Ethereum节点 原文  https://juejin.im/post/58f97521b123db41195481f3 转载  http://www.tuicool.com/articles/RFbQvyq ...
  • u013096666
  • u013096666
  • 2017-05-26 12:52
  • 2292

web3通过testrpc访问以太坊数据入门

本文旨在记录作者在使用web3通过testrpc访问以太坊数据的工作整理。
  • Lian_Dao
  • Lian_Dao
  • 2017-07-10 09:39
  • 2822

python通过testrpc访问以太坊数据入门

搭建基于python的以太坊客户端和testrpc的开发环境 系统:Ubuntu 16.04 1.安装nodejs testrpc的安装需要使用nodejs中的npm命令。所以要先安装nodejs。 下载: nodejs官网:http://www.nodejs.org/ 从官网上找到...
  • Lian_Dao
  • Lian_Dao
  • 2017-07-10 14:38
  • 2093

Ubuntu16.04下安装Truffle和TestRPC

前言 以太坊是区块链开发领域最好的编程平台,而Truffle是以太坊(Ethereum)最受欢迎的一个开发框架。truffle是本地的用来编译、部署智能合约的工具。testrpc不同于geth,geth是真正的以太坊环境,testrpc是在本地使用内存模拟的一个以太坊环境,对于开发调试来说,更为方便...
  • Vinsuan1993
  • Vinsuan1993
  • 2017-08-20 11:59
  • 746

Ubuntu系统搭建以太坊开发平台过程

安装git,node,npm如果已经安装了最新版本的git,node,和npm,就跳过这一步。如果没有安装,请输入以下命令安装:sudo apt-get install git sudo apt-get install nodejs-legacy sudo apt-get install npm安装...
  • u013137970
  • u013137970
  • 2016-08-19 23:52
  • 12724

建立以太坊开发环境

Window 安装 https://github.com/ethereum/mist/releases 下载Ethereum-Wallet-xxx,或者下载Mist 下载后解压,运行Ethereum-Wallet.exe(或者Mist.exe)即可。启动Ethereum-Wallet后,他会立即...
  • fd_mas
  • fd_mas
  • 2016-07-14 17:27
  • 6382

以太坊开发--阿里云ECS(centOS 6.8)安装Ethereum TestRPC

笔者在前面博客中《以太坊开发--truffle和testrpc使用介绍》《区块链-以太坊开发环境搭建介绍》两篇博客中讲解了TestRPC的安装与使用。作为入门区块链开发的重要工具,TestRPC是极好的。前两篇博客中是在Mac下进行操作。如果你有特殊需求,比如要把TestRPC安装到阿里云ECS(c...
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2017-03-05 15:53