黑马程序员技术交流社区

标题: 【上海校区】【区块链】Truffle 安装和使用 [打印本页]

作者: 不二晨    时间: 2018-9-3 10:02
标题: 【上海校区】【区块链】Truffle 安装和使用
【转载】。        https://blog.csdn.net/loy_184548/article/details/77984366
Truffle开发入门
一、安装truffle 和 testrpcnpm install -g trufflepip install eth-testrpc

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

可以参考:here

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

先启动 testrpc

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

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

module.exports = {  networks: {    development: {      host: "127.0.0.1",      port: 8545,    // 区块链服务端口号      network_id: "*"    }  }};

启动服务

truffle serve

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

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

解决方法:

truffle init  ====>  truffle init webpacktruffle serve ====>  npm run dev

就可以成功显示界面啦。

参考博客:here

4. 命令行调用

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

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

需要注意的是:

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

1、进入 console

truffle console

2、实例化合约

contract = MetaCoin.at(MetaCoin.address)

3、 调用

a. call

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

b. sendTransaction

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

例如:用户缴纳押金

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



作者: 小影姐姐    时间: 2018-9-3 14:10

作者: 不二晨    时间: 2018-9-6 11:41
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2