zoukankan      html  css  js  c++  java
  • 以太坊开发框架Truffle学习笔记

    from http://truffleframework.com/docs/getting_started/project

    1. 安装node.js 8.11.2 LTS

    2. 安装Truffle

    $ npm install -g truffle

    3. 创建项目

    您可以创建项目模板,但对于新手,更好的选择是使用Truffle Boxes—示例应用程序和项目模板。我们将使用MetaCoin box, 该例子创建可在帐户之间转移的token:

    $ mkdir MetaCoin
    $ cd MetaCoin

    下载("unbox") Metacoin box:

    $ truffle unbox metacoin

    4. 测试,运行solidity测试文件

    $ truffle test TestMetacoin.sol

    报错,把warning按提示修改后,还有Error:

    出错原因是没有切换到到test目录中,切换目录再执行测试命令:

    5. 编译智能合约

    $ truffle compile

    6. 部署智能合约

    要部署我们的智能合约,我们需要一个客户端来与区块链进行交互。推荐使用Ganache-cli(Ganache命令行版,原ethereumjs-testrpc), 是一个适用于开发时使用的客户端,是Tuffle套件中的一部分。

    6.1 下载安装

    $ sudo npm install -g ganache-cli

    6.2 修改Tuffle.js文件为以下内容:(port不是7545,在6.3图中看出是8545,估计ganache的默认端口为7545,ganache-cli默认端口为8545)

    module.exports = {
        networks: {
            development: {
                host: "127.0.0.1",
                port: 8545,
                network_id: "*"
            }
        }
    };    

    6.3 启动Ganache-cli,创建区块链

    $ ganache-cli

    创建了与区块链交互时可以使用的10个帐户(及其私钥),默认发送账户为第一个

    6.4 将合约迁移到由Ganache-cli创建的区块链

    $ truffle migrate

    显示了已部署合约的交易ID和地址

    7. 与智能合约进行交互

    可以用Truffle console来与智能合约进行交互

    $ truffle console

    通过以下方式使用Truffle控制台与合同进行交互:

    • 查看部署合约的账户metacoin余额:
      MetaCoin.deployed().then(function(instance){return instance.getBalance(web3.eth.accounts[0]);}).then(function(value){return value.toNumber()});

    • 查看部署合约的账户以太币余额,合约中定义的一个metacoin值2个以太币:
      MetaCoin.deployed().then(function(instance){return instance.getBalanceInEth(web3.eth.accounts[0]);}).then(function(value){return value.toNumber()});
    • metacoin转账:
      MetaCoin.deployed().then(function(instance){return instance.sendCoin(web3.eth.accounts[1], 500);});

    • 查看接收方账户metacoin余额:

      MetaCoin.deployed().then(function(instance){return instance.getBalance(web3.eth.accounts[1]);}).then(function(value){return value.toNumber()});

    •  查看发送发账户metacoin余额:

    以上就是用Truffle框架部署智能合约的基本过程。

  • 相关阅读:
    Jsの练习-将 数组中值为0 的去掉,不为0的存入一个新的数组
    Jsの数组练习-求一组数中的最大值和最小值,以及所在位置
    ES6-解构赋值
    vue初体验-ES6 基础知识补充 let 和const
    2D过渡模块的其他属性
    CSS学习笔记-05 过渡模块的基本用法
    echarts笔记
    不可思议的纯 CSS 滚动进度条效果
    十大排序算法
    关于input上传文件
  • 原文地址:https://www.cnblogs.com/sclczk/p/9085331.html
Copyright © 2011-2022 走看看