zoukankan      html  css  js  c++  java
  • Truffle框架环境搭建

    注意:本教程需要Truffle4.0或者是更高的版本

    以太坊的智能合约只是代码,和我们的纸质代码不同,此合同需要非常精确的方式理解

    如果合同编码不正确,我们的交易可能会失败,会导致gas的损失,更不用说浪费时间和精力

    Truffle(从版本4开始)有一个内置的调试器,用于单步执行代码,所以当有错误出现的时候,可以准确的知道它是什么,在哪里发生错误,并且可以及时修复它

    在本教程中,为我们将基本合同迁移到测试区块链中。

    一个基本的智能合约

    1.创建一个新的目录,在本地可以收集合同:

    mkdir  Truffle_pro

    cd   Truffle_pro

    2.创建一个简单的truffle项目

    这将创建诸如contracts/和之类的目录migrations/,并使用我们将合同部署到区块链时使用的文件填充它们。

    3.使用编辑器atom打开当前的文件夹:atom ./

    打开之后的atom的页面如下:

    合同信息:contracts

    配置信息:migrations,可以部署到区块链上面

    4.在contracts/目录中,创建一个Store.sol使用以下内容调用的文件:

    pragma solidity ^0.5.0;
    
    
    //创建一个合同,名字是SimpleStoreage
    contract SimpleStorage {
      uint myVariable;
    
      /* function set(uint x) public {
        myVariable = x;
      } */
    
      function set(uint x) public {
      myVariable = x;
    }
    
      function get() view public returns (uint) {
        return myVariable;
      }
    }

    这是我们将要调试的合同。虽然此文件的完整详细信息超出了本教程的范围,但请注意,有一个名为的合同SimpleStorage包含一个数字变量myVariable和两个函数:set()get()。第一个函数在该变量中存储一个值,第二个函数在该变量中查询该值。

    5.在migrations/目录中,创建一个名为的文件store.js,并使用以下内容填充它:

    var SimpleStorage = artifacts.require("SimpleStorage");
    
    module.exports = function(deployer) {
      deployer.deploy(SimpleStorage);
    };

    该文件是允许我们将SimpleStorage合同部署到区块链的指令。

    6.在终端上面,编译智能合约


    7.打开第二个终端并运行truffle develop以启动直接构建到Truffle的开发区块链,我们可以使用它来测试我们的合同:


    控制台将显示提示truffle(develop)>。从这里开始,除非另有说明,否则将在此提示符下键入所有命令。

    8.随着开发控制台的启动和运行,我们现在可以通过运行迁移将我们的合同部署到区块链:


    好了,这个就是搭建truffle框架环境的流程了
    下面是与基本智能合约的互动

    测试合同:Truffle Develop控制台迁移更新的合同,无需退出并且重新启动控制台,由于migrate命令可以进一步的编译和迁移,我们可以一步充值区块链上面的合同

    1.在truffle Develop控制台上,更新合同

    migrate --reset
    可以看到编译器输出和迁移输出

    2.位了方便错误搜索,我们将打开第二个带日志记录的控制台,例如,这个将允许我们在事务失败的时候查看事务ID,在另一终端窗口中,运行一下命令
    在包含日志的控制台中,将包含以下的信息:

    develop:testrpc Transaction: 0xe493340792ab92b95ac40e43dca6bc88fba7fd67191989d59ca30f79320e883f +2ms
    
    
    

    有了我们失败和我们交易的ID,我们现在可以调试交易,debug  ID

    Truffle包含一个内置调试器。启动它的命令debug <Transaction ID>来自Truffle Develop控制台或truffle debug <Transaction ID>终端。我们现在就开始吧

    在Truffle Develop控制台中,从日志控制台复制事务ID并将其粘贴为debug命令中的参数:

    debug     0xe493340792ab92b95ac40e43dca6bc88fba7fd67191989d59ca30f79320e883f 

    这是一个交互式控制台。您可以使用列出的命令以不同方式与代码交互:

    与代码交互的最常见方式是“下一步”,它一次一步地执行代码。通过按Enter或执行此操作

    请注意,这些步骤最终会重复。实际上,Enter反复按压将永远重复这些交易(或者至少在交易耗尽之前)。这告诉你问题出在哪里。

    4.键入q以退出调试器。

  • 相关阅读:
    java ArrayList存储基本类型
    java ArrayList的几种方法使用
    java ArrayList的基本使用
    java 猜数字
    java Random随机生成一个数
    java Scanner输入数字、字符串
    java 构造方法
    java this的应用
    java pravite关键字的使用
    云计算服务
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/10657619.html
Copyright © 2011-2022 走看看