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

3.调试问题

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

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

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

debug     0xe493340792ab92b95ac40e43dca6bc88fba7fd67191989d59ca30f79320e883f

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

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

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

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

原文地址:https://www.cnblogs.com/yunxintryyoubest/p/10657619.html

时间: 2024-11-14 21:25:38

Truffle框架环境搭建的相关文章

zf框架环境搭建

apache配置: 1.....在#LoadModule vhost_alias_module modules/mod_vhost_alias.so后面加上 LoadModule php5_module C:/php5.3/php5apache2_2.dllPHPIniDir "C:/php5.3/"AddType application/x-httpd-php .php .html .phtml php配置: 1,打开extension=php_mysql.dllextension=

eclipse中SSH三大框架环境搭建&lt;三&gt;

相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的搭建以及简单使用,但是在访问数据库层面使用的是传统的JDBC.在我们项目开发中使用JDBC确实是不太理想的,所以今天我给大家来讲解一下目前行业中比较流行的持久层框架——hibernate. 第1步:我们依旧需要引入hibernate的jar包 找到hibernate解压好的文件目录,在该目录下的lib目录下有

Spring框架环境搭建

环境要求:jdk  1.7 及以上.Spring版本:4.3.2 1.建立普通的java 工程 2.新建lib目录,并将一下5个核心jar包拷贝过来,并加入classpath中 下载地址: http://repo.spring.io/libs-release-local/org/springframework/spring/4.3.2.RELEASE/ 3.spring  配置文件的编写 在src下新建xml文件,并拷贝官网文档提供的模板内容到xml中,配置bean到xml中 4. 验证spri

跨平台开发之阿里Weex框架环境搭建(一)

申明:原创文章,转载请注明出处,谢谢! https://i.cnblogs.com/EditPosts.aspx?postid=5995122 一.介绍 Weex是阿里今年6月份推出的跨平台解决方案,6月底正式开源.官网 https://alibaba.github.io/weex/ 1.官方支持iOS.Android.HTML5. 2.Write Once, Run Everywhere.一次编写可生成三平台代码. 3.DSL模板学习超简单,直接写HTML.CSS.JS.这意味着可以直接用现有

eclipse中SSH三大框架环境搭建&lt;二&gt;

通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用 本例业务需求:将数据库一张表的信息通过JDBC查询出来并显示在页面中 流程:action控制层-->service业务层-->dao数据层-->数据库 第1步:我们还是需要加入spring开发中所需要的jar包 找到下载并解压好的spring文件,然后找到该文件下的libs目录下文件,我们可以将所有jar包复制到我们web项目下的lib目录下 注意:1>**

hibernate框架环境搭建

一.概述:hibernate框架是作用于dao层的,实现对数据的持久化保存.通过面向对象的方式操作数据库. 二.hibernate框架的搭建 1.导包 lib目录下的required文件夹下的所有jar包. mysql驱动包. 2.创建数据库于表. 3.创建实体类. 4.创建实体映射文件(以crm练习Customer类为例) 实体类名.hbm.xml 引入约束文件 <?xml version="1.0" encoding="UTF-8"?> <!D

跨平台开发之阿里Weex框架环境搭建(二)

申明:原创文章,转载请注明出处,谢谢! http://www.cnblogs.com/fozero/p/5995195.html 上篇文章(http://www.cnblogs.com/fozero/p/5995122.html)我们搭建好weex环境,并在浏览器成功渲染页面,这篇文章我们接着建立一个项目 1.新建一文件夹如weexdemo: 2.在文件夹下执行weex init,参数全部默认即可: 3.成功后文件夹下产生了一些文件: weexdemo |-.gitignore |-index.

hibernate框架环境搭建与使用

搭建环境 一.新建一个项目 , 导包   一个是hibernate的jar包,一个是jdbc的jar包 hibernate的jar包 这些jar包全部导入 二.配置Hibernate. 1.建立hibernate.cfg.xml文件, 包所在的文件夹的project里去搜索cfg.xml复制并修改 2.配置hibernate.cfg.xml文件 <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configur

基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建

前言 最近做回后台开发,重新抓起以前学过的SSM(Spring+Spring MVC+Mybatis),但是发现配置实在过于复杂,好多东西配置起来麻烦,虽然最终是配置出来了,但是还是感觉开发速度跟不上,本来打算切换到jfianl,但是后来发现需要用的几个框架不支持jfianl,如Swagger2(根据代码中的注解生成接口文档和测试页面,非常的方便):同时我也不愿意放弃SpringMVC强大的验证参数模块,jfianl中好像只能手动验证(当然我对jfianl只处于简单的开发,并不是特别熟),而Sp