以太坊开发(一)——Truffle和Ganache

Truffle是目前最流行的以太坊开发框架,采用JavaScript编写,支持智能合约的编译、部署和测试。

一、安装Truffle
1. 首先安装Truffle依赖的NodeJS:

 
  1. curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -

  2. sudo apt-get install -y nodejs

  3. sudo apt-get install npm

    配置npm源为国内源(可选,可加快下载速度):

sudo npm config set registry http://registry.npm.taobao.org 

2. 安装Truffle

sudo npm install -g truffle

二、创建工程
如果想创建一个空工程,可以用下面的命令:

truffle init

在早期版本的truffle中,刚刚创建的工程中还会包含metacoin的示例代码。新版本truffle引入了box的概念,所有的示例代码都以box的形式提供。因此我们不需要用truffle init命令,用下面的命令就可以直接下载metacoin的示例代码:

truffle unbox metacoin

代码结构如下图所示:

主要分为3个部分:

●  contracts目录中包含Solidity合约代码,其中Migrations.sol是必须的,其他就是你自己写的合约代码了。

●  migrations目录中包含合约部署脚本,其中1_initial_migration.js就是用来部署Migrations.sol的,其他的脚本会按照顺序依次执行。

●  test目录中就是测试代码了。

 

三、安装以太坊客户端

智能合约必须要部署到链上进行测试。可以选择部署到一些公共的测试链比如Rinkeby或者Ropsten上,缺点是部署和测试时间比较长,而且需要花费一定的时间赚取假代币防止out of gas。

还有一种方式就是部署到私链上,Truffle官方推荐使用以下两种客户端:

●  Ganache

●  truffle develop

 

1. Ganache

Ganache这个名字比较陌生,但是它的前身testRPC却是大名鼎鼎,网上的很多老文章里都是用testRPC。Ganache是奶油巧克力的意思,据说是很久之前有个学徒做巧克力的放多了牛奶,师傅正要骂他,结果一尝发现味道还真不错,于是一种新的巧克力就诞生了~ Truffle是松露巧克力,一般是以Ganache为核,然后上面撒上可可粉,所以这两个产品的名字还是很贴切的。
Ganache现在有两个版本,一个是带图形界面的版本,下载地址:
https://github.com/trufflesuite/ganache/releases

这些可执行文件的后缀都比较奇葩,参见下面的对应关系:

●  Windows: Ganache-*.appx

●  Mac: Ganache-*.dmg

●  Linux: Ganache-*.AppImage


还有一个就是命令行版本了,下载方法:

sudo npm install -g ganache-cli

具体的命令行参数配置参见github:
https://github.com/trufflesuite/ganache-cli

本文采用带图形界面的Ganache版本。

2. truffle develop
这个是truffle内置的客户端,跟命令行版本的Ganache基本类似。唯一要注意的是在truffle develop里执行truffle命令的时候需要省略前面的“truffle”,比如“truffle compile”只需要敲“compile”就可以了。

四、编译和部署合约
Ganache默认运行在7545端口,可以在界面右上方的“设置”里进行更改。运行后默认创建10个账号,每个账号里有100ETH的余额。
要部署到链上,需要把IP、端口、网络ID告诉truffle。修改truffle.js:

 
  1. module.exports = {

  2. networks: {

  3. development: {

  4. host: 'localhost',

  5. port: '7545',

  6. network_id: '*' // Match any network id

  7. }

  8. }

  9. };

然用下面两条命令编译和部署:

 
  1. truffle compile

  2. truffle migrate

五、测试合约
metacoin的示例代码里已经把测试代码写好了,直接用下面的命令运行就可以了:

truffle test

去Ganache上看一下运行结果:

●  Accounts标签:第一个账户里ETH略有减少,因为交易消耗了gas

●  Blocks标签:Ganache是自动挖矿,生成了6个新区块,每个区块里有一个交易

●  Transactions标签:有6笔新交易,可以点开看交易详情

●  Logs标签:显示交易和挖矿日志

下一篇分析一下这个最简单例子里的合约代码和部署、测试脚本。

原文:https://blog.csdn.net/TurkeyCock/article/details/79165602

 

分享一些区块链教程:

php比特币开发教程:http://xc.hubwiz.com/course/5b9e779ac02e6b6a59171def,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。

java和web3j以太坊开发:http://xc.hubwiz.com/course/5b2b6e82c02e6b6a59171de2,主要是针对java和android程序员围绕web3j库进行区块链以太坊开发的讲解。

php以太坊:http://xc.hubwiz.com/course/5b36629bc02e6b6a59171de3,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。

EOS智能合约与DApp开发入门教程:http://xc.hubwiz.com/course/5b52c0a2c02e6b6a59171ded,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。

python以太坊:http://xc.hubwiz.com/course/5b40462cc02e6b6a59171de4,主要是针对python围绕web3.py进行区块链以太坊应用开发的讲解。

C#以太坊:http://xc.hubwiz.com/course/5b6048c3c02e6b6a59171dee,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和事件等。

以太坊开发:http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。

以太坊教程:http://xc.hubwiz.com/course/5a952991adb3847553d205d1,主要介绍智能合约与dapp应用开发,适合入门。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值