truffle安装

一、环境准备

  1. 安装Node.js

    • 需安装Node.js 14及以上版本(推荐16或18 LTS)6

    • 验证安装:

      css 复制代码
      bashCopy Code
      node -v
      npm -v
  2. 更新npm

    css 复制代码
    bashCopy Code
    npm install -g npm

二、Truffle安装

  1. 全局安装Truffle

    css 复制代码
    bashCopy Code
    npm install -g truffle
    • 验证安装:truffle version56
  2. 可选工具Ganache

    • 桌面版:从Ganache官网下载

    • CLI版:

      css 复制代码
      bashCopy Code
      npm install -g ganache-cli

三、项目创建

  1. 初始化空项目

    bash 复制代码
    bashCopy Code
    mkdir my_project && cd my_project
    truffle init
    • 生成目录结构:

      ini 复制代码
      textCopy Code
      contracts/    # Solidity合约目录
      migrations/   # 部署脚本目录
      test/         # 测试文件目录
      truffle-config.js  # 配置文件
      ```:ml-citation{ref="3,4" data="citationList"}
  2. 使用模板项目(推荐)

    bash 复制代码
    bashCopy Code
    truffle unbox metacoin  # 官方MetaCoin示例

    或Webpack模板:

    ini 复制代码
    bashCopy Code
    truffle unbox webpack
      ```:ml-citation{ref="2,7" data="citationList"}

四、开发流程

  1. 编写合约

    • contracts/目录下创建.sol文件(如MyContract.sol

    • 示例代码结构:

      ini 复制代码
      solidityCopy Code
      pragma solidity .8.0;
      contract MyContract {
          // 合约逻辑
      }
      ```:ml-citation{ref="3" data="citationList"}
  2. 编译合约

    css 复制代码
    bashCopy Code
    truffle compile
    • 生成ABI和字节码到build/contracts/5
  3. 部署合约

    • 配置truffle-config.js中的网络设置(如Ganache)

    • 运行部署:

      ini 复制代码
      bashCopy Code
      truffle migrate
      ```:ml-citation{ref="4,5" data="citationList"}

truffle migrate --reset 覆盖部署第二个 Truffle exec .\scripts\test Truffle exec E:\workspace\truffle\test\test.js

五、测试与调试

  1. 运行测试

    bash 复制代码
    bashCopy Code
    truffle test
    • 支持JavaScript和Solidity测试脚本7
  2. 控制台交互

    css 复制代码
    bashCopy Code
    truffle console
    • 可直接调用合约方法3

jq 下载地址 github.com/stedolan/jq... Git Bash 用户注意 ‌:需将 jq.exe 放入 Git 安装目录的 mingw64\bin 下4。

scss 复制代码
npm install -g solc

生成abi 文件
jq ".abi" build/contracts/StudentStorage.json > build/StudentStorage.abi
//生成go
abigen --combined-json build/contracts/StudentStorage.json --pkg=store --out=StudentStorage.go
  1. 安装jq工具
    jq是轻量级JSON处理命令行工具,支持数据提取和格式转换。在Linux系统中可通过sudo apt-get install jqyum install jq安装,MacOS使用brew install jq56。
  2. 全局安装Solidity编译器
    npm install -g solc通过Node.js包管理器全局安装Solidity编译器,使开发者能在任何目录使用solc命令编译智能合约28。安装后可通过solc --version验证版本2。
  3. 提取ABI文件
    jq ".abi" build/contracts/StudentStorage.json > build/StudentStorage.abi
    使用jq从合约编译产物中提取ABI(应用二进制接口)并保存为独立文件。ABI定义了合约方法与参数结构,是调用合约的必要描述文件34。
  4. 生成Go语言绑定
    abigen --combined-json build/contracts/StudentStorage.json --pkg=store --out=StudentStorage.go
相关推荐
chxii12 分钟前
2.9 插槽
前端·javascript·vue.js
姑苏洛言1 小时前
扫码点餐小程序产品需求分析与功能梳理
前端·javascript·后端
Freedom风间1 小时前
前端必学-完美组件封装原则
前端·javascript·设计模式
江城开朗的豌豆1 小时前
React表单控制秘籍:受控组件这样玩就对了!
前端·javascript·react.js
一枚前端小能手1 小时前
📋 代码片段管理大师 - 5个让你的代码复用率翻倍的管理技巧
前端·javascript
国家不保护废物1 小时前
Web Worker 多线程魔法:告别卡顿,轻松实现图片压缩!😎
前端·javascript·面试
接着奏乐接着舞。2 小时前
如何在Vue中使用拓扑图功能
前端·javascript·vue.js
阳先森2 小时前
Vue3 Proxy 为何不直接返回target[key],选用Reflect
前端·vue.js
ONE_Gua2 小时前
魔改chromium源码——解除 iframe 的同源策略
前端·后端·浏览器
用户1512905452202 小时前
mysql8的collate问题和修改
前端