使用Truffle 和 Ganache编译、发布智能合约

Truffle开发框架

Truffle是针对基于以太坊的Solidity语言的一套开发框架。本身基于Javascript。本身基于Java。Truffle为以太坊提供了开发环境、测试框架和资产管道(pipeline),旨在使以太坊开发更容易,使用Truffle你会得到:内置智能合约编译、链接、部署和二进制字节码管理

步骤

具体安装细节可查看Truffle的使用文档 https://learnblockchain.cn/docs/truffle/index.html

1、安装Truffle
npm install -g truffle
2、查看安装是否成功
truffle -v

在这里插入图片描述

3、创建没有合约的空工程,可以使用 truffle init

在操作完成之后,就有这样的一个项目目录结构:

  • contracts/: Solidity合约目录
  • migrations/: 部署脚本文件目录
  • test/: 测试脚本目录,参考 如何测试合约于应用?
  • truffle-config.js: Truffle 配置文件
4、编译Truffle项目的合约

(首次运行时,将编译所有合约。 在后续运行中,Truffle将仅编译自上次编译以来有更改的合约。 如果我们想覆盖此行为,可以使用 --all 选项运行上面的命令)

truffle compile
truffle compile编译问题

Truffle和智能合约sol文件的版本不一致导致:sol的版本过低。sol文件的版本在其第一行指定。
在这里插入图片描述
解决方法:

  • 修改sol文件第一行,pragma solidity ^0.6.2;,提高版本。
  • 修改sol文件的上一级目录下的文件truffle-config.js,改为
    在这里插入图片描述
    注意:如果是使用他人开源代码进行修改编译,建议使用第二种方式,第一种方式容易出现solidity内部语法错误
    修改后编译成功:
    在这里插入图片描述
5、构建文件Artifacts

编译的目标文件 Artifacts 将放在 build/contracts/ 目录中,相对于项目根目录(如果该目录不存在,将创建该目录。)

这些 Artifacts 是Truffle内部工作的组成部分,它们在成功部署应用程序中起着重要作用。 我们不应编辑这些文件,因为这些文件将被合约编译和部署覆盖。

6、合约部署
truffle migrate

发现错误Could not connect to your Ethereum client with the following parameters,部署失败:
在这里插入图片描述

官方提醒: 对于本地测试,确保在执行 migrate 之前安装并运行了 Ganache等 测试区块链。https://learnblockchain.cn/docs/truffle/getting-started/running-migrations.html

本地搭建以太坊私有网络-基于Ganache和MetaMask

安装成功后,安装每一步提示启动MetaMask (注意保存秘钥,以免忘记)
在这里插入图片描述
设置MetaMask连接到本地的以太坊私有网络

注意: Ganache和MetaMask连接是保证端口一致,否则连接不上

  • 用MetaMask测试私有网络

从Ganache创建的账户中选择一个导入到MetaMask中

1、在Ganache账户页面选定一个账户,点击最右边的小钥匙图标,复制其私钥(private key)

2、在MetaMask中导入私钥

合约代码中如何设定端口?

修改 truffle-config.js在这里插入图片描述

重新执行 truffle migrate,部署成功 :
在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值