zoukankan      html  css  js  c++  java
  • 以太坊智能合约开发框架Truffle

    前言

      部署智能合约有多种方式,命令行的浏览器的渠道都有,但往往跟我们程序员的风格不太相符,因为我们习惯了在IDE里写了代码然后打包运行看效果。

      虽然现在IDE中已经存在了Solidity插件,可以编写智能合约,但是部署智能合约却要另走他路,没办法进行一个快捷的部署与测试。

      如果团队管理的区块节点多、合约多,那得哭晕在厕所。

      Truffle是一个世界级的智能合约开发框架,专门为智能合约而生。

    安装

    安装truffle

    sudo cnpm install -g truffle

    查看版本

    truffle version

    搭建项目

    创建项目目录

    mkdir dapp
    cd dapp/

    初始化空项目

    truffle init

    你也可以不创建空项目 而是创建一个带有模板的项目  如下

    初始化模板项目

    truffle unbox webpack

    官方模板列表:https://www.trufflesuite.com/boxes

    配置区块节点

    truffle-config.js文件中networks代码段  用来配置区块链节点

    示例中有这么一段

     development: {
          host: "127.0.0.1",     // Localhost (default: none)
          port: 8545,            // Standard Ethereum port (default: none)
          network_id: "*",       // Any network (default: none)
     }

    你可以根据你的实际情况修改,或者如我一样直接注释掉这段,我直接加了下面这段

     line: {
          host: "47.97.26.107",
          network_id: 100,
          port: 8888,
          from:'0xDFeDb94Ab496d6b68795dB890AcbbBdc2557860A'
    },

    不管是development还是line都是随意取的Key,如果你有多个区块链节点,你也可以多配几段即可。

    代码段中的from为部署合约的账户,如果不配,则默认为以太坊客户端的第一个账户。

    部署合约

    编译

    truffle compile

    部署前

    编译后要做的事情是确保部署合约的那个地址里有ETH,因为部署是要花钱的,并且地址必须解锁, 然后才能部署。

    部署

    truffle migrate --network line

    (我自己配置的网络段是line,所以我的--network值是line,如果你只是 truffle migrate 不加任何参数  那么默认会部署development网络)

    部署后

    必须要设置挖矿地址,进行挖矿,否则交易不会广播。

    查看合约

    truffle networks

    操作合约

    进入控制台

    truffle console --network line

    获取合约实例

    let instance = await MetaCoin.deployed()

    调用合约方法

    这里举例获取地址余额

    let balance = await instance.getBalance('0x30f8c37E265FbfC8941c38f861a8d2FC994e4772')
    balance.toNumber()
  • 相关阅读:
    Maven进价:Maven构建系列文章
    mybatis.net insert 返回主键
    IIS限制ip访问
    mybatis学习资源
    MVC4发布到IIS,出现HTTP 错误 404.0
    ElasticSearch 7.4.2 Root mapping definition has unsupported parameters
    钉钉网页版全屏
    sudo go 找不到命令
    ubuntu安装navicat
    golang 自动下载所有依赖包
  • 原文地址:https://www.cnblogs.com/fengyumeng/p/13019214.html
Copyright © 2011-2022 走看看