文章目录
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
-
下载ganache https://www.trufflesuite.com/ganache#(速度有点慢,建议开启代理)
-
点击QUICKSTART 创建以太坊工作区 (参考:https://www.trufflesuite.com/docs/ganache/quickstart)
-
设置绑定IP和端口
-
下载MetaMaskhttps://www.metamask.io
安装成功后,安装每一步提示启动MetaMask (注意保存秘钥,以免忘记)
设置MetaMask连接到本地的以太坊私有网络
注意: Ganache和MetaMask连接是保证端口一致,否则连接不上
- 用MetaMask测试私有网络
从Ganache创建的账户中选择一个导入到MetaMask中
1、在Ganache账户页面选定一个账户,点击最右边的小钥匙图标,复制其私钥(private key)
2、在MetaMask中导入私钥
合约代码中如何设定端口?
修改 truffle-config.js
重新执行 truffle migrate
,部署成功 :