最近开始学习智能合约了,真叫人害怕

经过一晚上结合各个教程,终于

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方式解压下载。

你可能感兴趣的:(论文,项目学习)