win7下以太坊基于truffle+ganache开发环境搭建以及智能合约的部署调用

Posted shall1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了win7下以太坊基于truffle+ganache开发环境搭建以及智能合约的部署调用相关的知识,希望对你有一定的参考价值。

上一篇介绍的是以太坊下基于geth+remix-ide智能合约环境的搭建和部署运行,本篇介绍的是基于truffle+ganache。

ganache相当于是geth的图形化操作界面,相对于纯指令操作的geth较为简单易上手,并且运行交易和生成区块的过程一目了然。

【前期准备】

1.Node.js安装(这一点在上一篇文章中提到过,所以此处不做展示)

2.指令输入:

npm install -g solc(安装智能合约)

npm install -g ganache-cli (安装ganache开发端)

npm install -g truffle (安装truffle框架)

3.vscode运行环境

 

【智能合约】

1.新建智能合约

①新建一个文件夹eg:helloworld,并进入该文件夹下进行指令操作:

cd helloworld

②创建一个truffle项目:

truffle init

技术图片

 

 ③将新建的文件夹helloworldzheng整体搬进vscode中:

技术图片

 

 ④在helloworld下的contracts文件夹中创建新合约,起名helloworld.sol,并输入如下代码:

pragma solidity ^0.5.2;

contract helloworld
    function say() public pure returns(string memory)
        return "hello world";
    

⑤在helloworld下的migrations文件夹中点开1_initial_migrations.js文件,并将其中的"Migrations"参数一律改成helloworld:

const helloworld = artifacts.require("./helloworld.sol");

module.exports = function(deployer) 
  deployer.deploy(helloworld);
;

⑥回到truffle操作环境里,对上述文件进行编译:

注意,一定要进入到contracts文件夹下进行编译操作,否则会报错找不到对应合约。

技术图片

 

 编译成功。

2.连接ganache

①运行ganache

技术图片

 

 ②智能合约与ganache连接:

回到vscode,打开truffle-config.js文件:

在module-exports模块中输入如下内容:

技术图片

 

 之后我们回到ganache,打开设置,点击server,看到如下操作面,其中上图中的host,port,network_id参数都是根据ganache中对应的参数填写的:

技术图片

 

③准备好之后,可以部署合约:

回到truffle操作,指令输入:

truffle migrate

如果按照上述操作一步步来,那么部署成功我们可以看到ganache下的区块增加了:

技术图片

 

 ④接下来可以开始尝试调用合约:

回到truffle操作指令,输入如下指令进入操作台:

truffle console

技术图片

 

 如果顺利进入操作台即可以进行合约函数的调用:

输入指令:

helloworld.deployed().then(instance=>contract=instance)

console中预载了truffle-contract函数库,所以可以直接对合约的函数进行操作。

上述指令含义是获取helloworld合约,存为instance,并将其存储到contract变量中以便后期使用。

接下来可以调用helloworld合约中我们定义好的say()函数了:

输入指令:

contract.say()

技术图片

 

 合约部署成功,调用成功。

 

以上是关于win7下以太坊基于truffle+ganache开发环境搭建以及智能合约的部署调用的主要内容,如果未能解决你的问题,请参考以下文章

选择以太坊客户端

windows 以太坊开发框架Truffle环境搭建

从零开始以太坊

Solidity 智能合约迁移错误的 Truffle 和 Ganache 教程

以太坊——运用truffle框架部署第一个DAPP ---- Pet-Shop

Mac中使用truffle开发基于以太坊的去中心化应用