【区块链-智能合约工程师】第四篇:Truffle框架安装和介绍(Windows)

这篇具有很好参考价值的文章主要介绍了【区块链-智能合约工程师】第四篇:Truffle框架安装和介绍(Windows)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考文章:

  • 以太坊开发框架——Truffle的基础使用
  • 区块链(2)以太坊开发框架Truffle教程(Windows)(主要参考)

第一次尝试安装(fail)

简单介绍

Truffle 是目前最流行的 以太坊 DApp 开发框架,(按照官网说法)是一个世
界级的开发环境和测试框架,也是所有使用了 EVM 的区块链的资产管理通道,它基于 JavaScript,致力于让以太坊上的开发变得简单。

Truffle 有以下功能:

  • 内置的智能合约编译,链接,部署和二进制文件的管理。
  • 合约自动测试,方便快速开发。
  • 脚本化的、可扩展的部署与发布框架。
  • 可部署到任意数量公网或私网的网络环境管理功能
  • 使用 EthPM 和 NPM 提供的包管理,使用 ERC190 标准。
  • 与合约直接通信的直接交互控制台(写完合约就可以命令行里验证了)。
  • 可配的构建流程,支持紧密集成。
  • 在 Truffle 环境里支持执行外部的脚本。

使用 Truffle需要三个东西,分别如下:

  • Nodejs :是一个基于google浏览器Chrome里面的JavaScript引擎(V8)的一个平台,可以很容易的构建快速而具有扩展性的网络程序。
  • Truffle :以太坊开发框架
  • Ganache CLI:是在本地使用内存模拟的一个以太坊环境,其基于Node.js,以前叫TestRPC,在开发过程中使用。
安装配置

node(JS解析器):本地已安装过,版本 v12.18.3。设置 npm 全局模块目录,避免挤占 C 盘空间:

npm config set prefix D:\npm\prefix

Truffle(Dapp开发框架):全局安装 npm –g install truffle,版本为 truffle@5.7.0:
(后续使用 truffle 遇到报错,此处安装 truffle 时未成功安装相关模块: mocha 、fsevents)

truffle安装,Solidity智能合约开发,区块链,智能合约

Ganache CLI(模拟以太坊环境):全局安装 npm install -g ganache-cli,版本为 ganache-cli@6.12.2:

truffle安装,Solidity智能合约开发,区块链,智能合约

truffle命令报错:‘truffle’ 不是内部或外部命令

参考文章:npm安装的全局包/工具不能使用,不是内部/外部命令

需要把 npm 的全局模块路径添加到系统变量 path 中,添加如下路径:

D:\npm\prefix
truffle命令报错:Cannot find module ‘fs/promises’

参考文章:

  • electron打包后启动应用,提示cannot find module fs/promises的解决(情况不太相同,我是npm下载truffle时发现,平台不支持truffle的相关模块导致模块缺失)
  • windows下node升级到最新版本(亲测有效)

尝试使用最新的 node 版本重新下载:访问 node官网下载地址,发现最新版本是 18.12.1(又尝试了 18.0.0 发现还是无法切换版本)

npm install -g nvmw
nvmw install 18.12.1
nvmw use 18.12.1

truffle安装,Solidity智能合约开发,区块链,智能合约

问题分析:npm下载truffle时发现,平台不支持truffle的相关模块导致模块缺失,其中 fsevents 模块依赖 darwin 操作系统(苹果开发的 unix 操作系统)

第二次尝试安装(fail)

参考文章:Win10 搭建truffle框架

安装和配置npm
本地已有开发环境 版本信息
node v12.18.3
npm 6.14.6

设置安装模块和缓存文件的目录:

npm config set prefix "D:\npm\myNodeglobal"
npm config set cache "D:\npm\myNodecache"

新建系统变量:NODE_PATH / D:\npm\node_modules,PATH 变量中添加值 D:\npm\myNodeglobal

npm换源: 由于node是从国外服务器下载第三方依赖包,下载的速度会非常缓慢而且有发生异常的可能,所以需要把npm的镜像源换成淘宝的镜像源。

npm config set registry https://registry.npm.taobao.org
npm config get registry
安装ganache-cli节点仿真器

参考文章:Ganache CLI - 用于测试和开发的快速以太坊RPC客户端

Ganache CLI是以太坊开发工具Truffle套件的一部分,是以太坊开发私有区块链的Ganache命令行版本。

Ganache CLI使用 ethereumjs 来模拟完整的客户端行为,使开发以太坊应用程序更快,更轻松,更安全。它还包括所有主流的RPC函数和功能(如event),并可以准确地运行以使开发变得容易。

安装和验证命令如下,解析器文件位于 D:\npm\myNodeglobal 目录,系统变量无需再添加。

npm install -g ganache-cli
ganache-cli

truffle安装,Solidity智能合约开发,区块链,智能合约

安装 solc 编译器

安装命令如下,版本:solc@0.8.17

npm install -g solc
solcjs -V
安装 web 库

安装命令如下,版本:web3@1.8.1

npm install -g web3
安装 truffle 开发框架

安装命令:npm install -g truffle

遇到报错如下,还有其他报错提示 node 版本需要大于等于 14.16。

Error: Error while attempting to download and cache solc 0.5.16: Command failed: node ./build/cli.bundled.js obtain --solc=0.5.16
    at postinstallObtain (D:\npm\myNodeglobal\node_modules\truffle\scripts\postinstall.js:13:11)
    at Object.<anonymous> (D:\npm\myNodeglobal\node_modules\truffle\scripts\postinstall.js:20:3)
报错:node 12 版本过低

解决办法:访问 https://nodejs.org/en/download/ 下载最新版本 node。

第三次安装(success)

参考文章:Win10 搭建truffle框架(同第二次尝试,只是node版本变化了)

安装 node 最新版本

访问 https://nodejs.org/en/download/ 下载最新版本 node:

Node.js v18.12.1
查看开发环境 版本信息
node v18.12.1
npm v8.19.2

设置安装模块和缓存文件的目录:

npm config set prefix "D:\nodejs\myNodeglobal"
npm config set cache "D:\nodejs\myNodecache"

新建系统变量:NODE_PATH / D:\nodejs\node_modules,PATH 变量中添加值 D:\nodejs\myNodeglobal

npm换源: 由于node是从国外服务器下载第三方依赖包,下载的速度会非常缓慢而且有发生异常的可能,所以需要把npm的镜像源换成淘宝的镜像源。

npm config set registry https://registry.npm.taobao.org
npm config get registry
安装其他组件

安装ganache-cli节点仿真器:v6.12.2

npm install -g ganache-cli
ganache-cli

安装 solc 编译器:solc@0.8.17

npm install -g solc
solcjs -V

安装 web 库::web3@1.8.1

npm install -g web3

安装 truffle 开发框架:换了版本以后没有报错!

npm install -g truffle

安装 webpack 打包器:文章来源地址https://www.toymoban.com/news/detail-781265.html

npm install -g webpack

到了这里,关于【区块链-智能合约工程师】第四篇:Truffle框架安装和介绍(Windows)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小白到运维工程师自学之路 第四十六集 (mongodb复制集)

           1、 MongoDB复制集(MongoDB Replica Set)是MongoDB提供的一种高可用性和数据冗余的解决方案。它由多个MongoDB实例组成,其中一个作为主节点(Primary),其他节点则扮演从节点(Secondary)的角色。主节点处理所有的写操作和客户端请求,而从节点负责复制主节点的数据并

    2024年02月13日
    浏览(32)
  • 云计算工程师系列 Day04 第四章 进程管理(超详细 持续更新中....)

    简介:Linux系统Centos7中程序的相关概念。进程管理工具pstop的用法。kill控制进程。job控制作业的相关方式。 目标:掌握程序概念 掌握进程管理工具的使用/控制进程的方法 (1)灵魂三问 01.我是谁? 什么是进程 02.我从哪里来?进程从哪来 03.我要上哪去?进程上哪去 (2)进

    2024年01月25日
    浏览(31)
  • 小白到运维工程师自学之路 第四十四集 (mariadb高可用集群故障转移)

            故障转移是指在集群中某个节点发生故障时,自动将服务转移到其他正常节点上的 过程。在MariaDB高可用集群中,通常使用主从复制的方式来实现故障转移。其中一个 节点被指定为主节点,负责处理所有的写操作和部分读操作,其他节点作为从节点,负 责复制主

    2024年02月11日
    浏览(29)
  • 小白到运维工程师自学之路 第四十九集 (正则表达式之grep)

    1、正则表达式(Regular Expression,简称为RegExp或Regex)是一种用于描述、匹配和操作文本的字符串模式的表达式。它提供了一种强大而灵活的方式来进行字符串的搜索、替换、提取和验证操作。 2、正则表达式可以用于各种编程语言和应用程序中,包括文本编辑器、命令行工具

    2024年02月13日
    浏览(34)
  • 【区块链技术开发】 Solidity使用Truffle Box工具实现预构建模板、自动化部署、创建智能合约示例代码

    专栏:区块链技术开发 Truffle Box是一个开发工具,为Truffle生态系统中的开发人员提供了预构建

    2023年04月16日
    浏览(36)
  • 陪伴成长|区块链工程师能力认证项目启动BSV奖励计划

    由可一科技与CSDN联合运营的BSV区块链开发工程师能力认证项目于2022年6月6日发布了首门正式课程《区块链原理初级》,并于6月27日正式启动了区块链工程师能力初级认证。 为鼓励广大区块链爱好者积极学习课程、奖励优秀学员,今天我们正式推出“陪伴成长•BSV奖励计划”

    2024年02月16日
    浏览(45)
  • 机器学习工程师在人工智能时代的角色

    在当今的数字时代,人工智能(AI)已成为许多行业不可或缺的一部分。从流程自动化到增强客户体验,人工智能具有改变企业的巨大潜力。这一变革性技术的核心是机器学习,该领域专注于开发算法,使计算机系统能够在无需明确编程的情况下学习并做出预测或决策。 机器

    2024年01月24日
    浏览(39)
  • AIGC文本生成智能应用(ChatGPT)提示工程师技巧

    我是荔园微风,作为一名在IT界整整25年的老兵,今天来看一下AIGC文本生成智能提示工程师技巧。 当你在使用类似于ChatGPT这样的AIGC文本生成智能应用时,有没有想过,你所问的问题中的每一个词语对AIGC文本生成智能应用给你的回答的好与不好都有着很重要的联系。 我们在使

    2024年02月13日
    浏览(29)
  • 人工智能时代,软件工程师们将会被取代?

    作者 :明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《EffectiveJava》独家解析》专栏作者。 热门文章推荐 : (1)《人工智能时代,软件工程师们将会被取代?》 (2)

    2024年01月25日
    浏览(39)
  • AI全栈大模型工程师(十六)智能体架构:Agent

    5.1 什么是智能体(Agent) 将大语言模型作为一个推理引擎。给定一个任务,智能体自动生成完成任务所需的步骤,执行相应动作(例如选择并调用工具),直到任务完成。 5.2 先定义一些工具:Tools 可以是一个函数或三方 API 也可以把一个 Chain 或者 Agent 的 run()作为一个 Tool

    2024年01月22日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包