A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【转载】。        https://blog.csdn.net/loy_184548/article/details/77984366
Truffle开发入门
一、安装truffle 和 testrpcnpm install -g trufflepip install eth-testrpc
  • 1
  • 2
  • 3
  • 4

安装过程中,会遇到很多问题,例如版本太旧。

可以参考:here

二、使用1. 新建mkdir hello    //新建文件夹cd hello       //进入该文件夹truffle init   //默认会生成一个MetaCoin的demo,可以从这个demo中学习truffle的架构
  • 1
  • 2
  • 3
  • 4
2. 编译truffle compile
  • 1
  • 2
3. 部署

先启动 testrpc

testrpctruffle migrate
  • 1
  • 2
  • 3
如果这里遇到错误:No network specified. Cannot determine current network.

解决方案:修改truffle.js文件

module.exports = {  networks: {    development: {      host: "127.0.0.1",      port: 8545,    // 区块链服务端口号      network_id: "*"    }  }};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

启动服务

truffle serve
  • 1
  • 2

启动项目后可以在浏览器访问 http://localhost:8080/

如果是3.x版本的,实际上你会发现,显示的是Cannot GET /

解决方法:

truffle init  ====>  truffle init webpacktruffle serve ====>  npm run dev
  • 1
  • 2
  • 3
  • 4

就可以成功显示界面啦。

参考博客:here

4. 命令行调用

实际上跟geth的命令行调用操作差不多。

可以参考之前的一篇博客关于geth命令行的操作:here

需要注意的是:

    例如:eth.accounts ==> web3.eth.accounts (修改:在前面加web3)
  • 1
  • 2

1、进入 console

truffle console
  • 1
  • 2

2、实例化合约

contract = MetaCoin.at(MetaCoin.address)
  • 1
  • 2

3、 调用

a. call

使用这个方法调用合约只会在本地上运行; ===>如果你只想得知运算的结果,那么使用该方法
  • 1
  • 2
  • 3

b. sendTransaction

使用这个方法调用合约将会使调用的结果成为全局共识的一部分===>如果想要改变合约的状态,那么就使用该方法
  • 1
  • 2
  • 3

例如:用户缴纳押金

function Deposit() payable returns (bool success) {     users[msg.sender].depositValue = msg.value;     return true; }//调用contract.Deposit.sendTransaction({from: user1, value: web3.toWei(.05, 'ether')})


2 个回复

倒序浏览
回复 使用道具 举报
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马