最近正在学习以太坊Solidity智能合约,学习过程遇到很多问题。看了很多的博客,经过多次试错解决。终于让我成功部署和测试了第一个Solidity合约,于是激动的写下来。
apt-get命令安装Node.js
    命令如下,其他安装方式请参考Nodejs
$ sudo apt-get install nodejs 
$ sudo apt-get install npm
  $ npm install -g truffle
  $ npm install -g ethereumjs-testrpc
$ testrpc 
  如果提示找不到上面命令,还需进行软连接的配置(具体nodejs安装目录下):
$ ln -s /app/softwares/nodejs/bin/truffle /urs/local/bin/
$ ln -s /app/softwares/nodejs/bin/testrpc /urs/local/bin/
  1、使用命令创建一个工程项目:
$ mkdir ContractDemo
$ cd ContractDemo/
$ truffle init
       创建完成后可以在相应目录下看到如下内容:
    2、在contracts目录下创建一个HelloWorld.sol 文件 ,写入以下内容:
pragma solidity ^0.4.4;
contract HelloWorld {
    function sayHello() public returns (string) {
        return ("Hello World");
    }
}    
  创建完成后:
       3、打开 truffle.js文件,输入以下内容:
module.exports={
  networks:{
    development:{
      host:"localhost",
      port:8545,
      network_id:"*"//匹配任何netword id
    }
  }
};
      4、在migrations目录下创建一个2_initial_contract.js 文件 ,写入以下内容:
var HelloWorld = artifacts.require("./HelloWorld.sol");
module.exports = function(deployer) {
    deployer.deploy(HelloWorld);
} 
  完成后如下,文件如下:
5、当创建完成,进入工程根目录下,在终端中进行编译:
$ truffle compile 
  有个警告,暂时先不管。编译是成功了的
6、启动安装好的EthereumJS RPC客户端
$ testrpc
      7、重新打开一个终端,部署刚刚写好的合约:
$ truffle migrate
      此时我们发现testrpc终端有变化:
说明合约部署成功!恭喜,那么怎么利用控制台与合约进行交互呢?
8、使用 truflle console功能:
$ truffle console
      9、  接着输入
HelloWorld.deployed().then(instance => contract = instance)    
      10、最后,见证奇迹的时刻:
contract.sayHello.call()
  
这就是调用合约成功,希望你能成功!!!具体还有更多好玩的内容,笔者也在学,后续再写。