经过一晚上结合各个教程,终于
1. 打开终端,输入testrpc,会显示10个账户和私钥,监听端口8545
2.新开终端,新建文件夹并打开
$ mkdir test
$ cd test
3.下载完整的demo(旧教程里的truffle init命令已经不能下载完整的)
$ truffle unbox tutorialtoken
$ truffle unbox metacoin
4.修改truffle.js文件
module.exports = {
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*" // 匹配任何network id
}
这里编写一个简单的智能合约SimpleStorage,保存为.sol后缀,然后放入contracts文件夹中。
(这里已经把合约作了修改以适应0.5版本)
pragma solidity ^0.5.0;
contract SimpleStorage {
uint storedData;
function set(uint x) public{
storedData = x;
}
function get() view public returns (uint) {
return storedData;
}
}
编译合约:
$ truffle compile
在编译以后,目录下会多出一个build文件夹。
5.进入migrations文件夹,编辑2_deploy_contracts文件,在最后一行插入"deployer.deploy(合约名)",如下所示:
const ConvertLib = artifacts.require("ConvertLib");
const MetaCoin = artifacts.require("MetaCoin");
module.exports = function(deployer) {
deployer.deploy(ConvertLib);
deployer.link(ConvertLib, MetaCoin);
deployer.deploy(MetaCoin);
deployer.deploy(SimpleStorage);
};
这一行是增加的
deployer.deploy(SimpleStorage);
部署合约:
$ truffle migrate
6.查看效果
$ npm run dev
-------------------------------------
Local: http://localhost:3000
External: http://192.168.1.13:3000
-------------------------------------
UI: http://localhost:3001
UI External: http://localhost:3001
--------------------------------------------------------------
此时,localhost3000和3001均有所显示
============================================================================================
第一步:安装nodejs 和 npm,有两种比较常见的方法.
在nodejs官网下载nodejs-v6.10.x编译好的压缩包(tar.gz), 里面自带了npm
解压到/usr/local/
ln -s /usr/local/node-v10.15.3-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/node-v10.15.3-linux-x64/bin/npm /usr/local/bin/npm
第二步:安装truffle
npm install -g truffle
第三步:安装testrpc
npm install -g ethereumjs-testrpc
sudo ln -s /usr/local/node-v10.15.3-linux-x64/bin/testrpc /usr/local/bin/testrpc
第一步骤的nodejs和npm以前就安装过了,这里等于只是执行了truffle和testrpc的安装,灰色的命令我都失败了,不过目前看来建立软连接好像也不是必要的?先不管了希望不会被打脸。。。
truffle testrpc使用方法
在testrpc以太坊测试环境部署智能合约
以太坊开发--truffle和testrpc使用介绍
==========================================================================================
在用truffle编译智能合约时,报错 TypeError: Data location must be "memory" for return parameter in function, but none was given.这是由于solidity 0.5.0版本的更新导致的。解决方案如下:
原来: function say() public pure returns (string) {
修改后: function say() public pure returns (string memory) {
2018最新Truffle 错误解决方法
因为truffle的更新,教程有点过时了,一直找不到一些文件,发现是命令改了。
Metacoin合约不存在
解决方法:按照网上的教程输入truffle init后并不会生成metacoin合约,在contract文件夹下仅有migrate合约。这是由于最新版本的truffle已经将init命令做了更改,想要生成metacoin合约需要输入turffle unbox metacoin。所有tuffle提供的demo都可以通过unbox方式解压下载。