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 jq或yum 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
相关推荐
小码哥_常11 小时前
一套自己部署的 IM,客户端是同一份 Flutter
前端·后端
蜗牛攻城狮13 小时前
微前端四大方案选型对比与最佳实践:qiankun、micro-app、wujie、Module Federation
前端·微前端·qiankun·前端架构·micro-app·wujie
她说可以呀15 小时前
Vue插槽
前端·javascript·vue.js
qq_4480111615 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js
aixingpan15 小时前
aixingpan.cn API开发文档:前端查询夏令时和时区接口指南
前端·php
2601_9583529016 小时前
23.5×19mm 换掉一整条音频链?|A-68 集成了什么:ADC / DAC / 24.576MHz 时钟 / AEC / 波束降噪,主控仅需 6 根线
前端·音视频·ai降噪·回声消除·语音模块
志尊宝16 小时前
AI原生前端开发(039):AI辅助的Nuxt 4全栈开发
前端·vue.js·ai-native
FRing0317 小时前
JavaScript入门到精通三十二(深拷贝、浅拷贝、递归函数)
开发语言·前端·javascript
excel17 小时前
双 Token 与前端使用 Crypto 公私钥鉴权换 Token,哪种方案更好?
前端·后端
外收内放17 小时前
Python基础语法练习题(73)
java·前端·python