我在web3bridge的第三周以及我目前所学到的——第一部分

本文是作者参加Web3bridge训练营的总结,主要介绍了DApp开发的基础知识,包括开发环境搭建、常用工具(如Remix IDE、Hardhat、Foundry)以及npm包管理器的使用。作者分享了自己对区块链和Web3生态的理解,并介绍了以太坊的Solidity编程语言,为后续深入学习Solidity打下基础。

欢迎来到 web3bridge

作为 web3 生态系统的爱好者,我有幸加入了

Web3bridge

Bootcamp CohortXIII Onsite,我的第一周感觉很复杂,不知道自己做的是否正确,但我最终找到了立足点。

第一周 去中心化应用程序 (DApps) 开发介绍

第二周深入介绍了以太坊区块链、ERC 和 EIP 的含义以及它们对整个 web3 生态系统的重要性。

此外,在我的第三周,我们被介绍了去中心化应用程序 (dApps) 开发和 Solidity,这让我们对未来的发展方向有了一个大致的了解。

去中心化应用程序 (DApps) 开发简介

去中心化应用程序 (DApp) 开发涉及创建在去中心化网络(通常是区块链)上运行的软件,而不是依赖于中央服务器。与传统应用程序相比,这种方法具有增强的安全性、透明度和抗审查性等优势。DApp 利用区块链技术,通常利用智能合约来自动化流程和执行协议。

开发环境设置选项

这是最常见的设置,所有开发工具和资源都直接安装在开发人员的本地机器上。

组件

  • 操作系统:Windows、macOS 或 Linux 等操作系统在开发时非常重要,作为开发人员,你需要确定自己熟悉的操作系统,并确保它支持无缝开发所需的软件。
  • 代码编辑器/IDE:Visual Studio Code、Sublime text 或 Cursor 是编写代码的工具,你需要仔细选择它们,因为它们将成为你开发过程的一部分。
  • 版本控制系统:Git,通常与 GitHub 或 GitLab 等平台一起使用,是一种确保你的进度被保存而没有问题或担忧的方式,它们也可以作为潜在雇主的投资组合。
  • 包管理器:npm 或 yarn 以及其他工具,可帮助将所有依赖项集中在一个位置,以便于访问,从而轻松地在另一个操作系统上复制完全相同的工作文件系统。
  • 终端/Shell:Windows Terminal、Zsh 或 Bash 是硬件设备,或模拟硬件设备的软件应用程序,用于与计算机系统交互,虽然使用 GUI(图形用户界面)更容易,但能够浏览终端是一个额外的优势。

关键开发者工具

在进行开发时,有必要确定对快速代码交付和简洁性至关重要的工具。关于哪个工具是最好的,一直存在争论,虽然我还没有使用过各种工具,但重要的是对别人的意见持保留态度,因为人们有时可能会有偏见。

我的工具包括

  • Windows 操作系统
  • VsCode + WSL 2

连接到测试网

要连接到测试网,通常需要使用特定的网络详细信息配置你的钱包(如 MetaMask),包括网络名称、RPC URL、链 ID,以及可选的区块浏览器 URL。你可能还需要从 faucet 获取测试网代币(例如,LINK 或 ETH)。我使用 fauceth.dev,一个社区驱动的 faucet dapp 来获取 faucets。

开发环境/工具

用于开发和测试的 Remix IDE

Remix IDE 是一个开源的、基于浏览器的集成开发环境 (IDE),专门设计用于智能合约的开发和测试,主要是在以太坊区块链上使用 Solidity 编程语言进行开发。

Remix IDE

Remix IDE 的功能包括但不限于

  • 内置编译器:直接在 IDE 中编译 Solidity 代码,简化编译过程。
  • Solidity 编辑器:提供了一个用户友好的界面,用于编写 Solidity 代码,具有语法高亮显示、自动完成和代码分析等功能。
  • 部署选项:允许将智能合约部署到各种环境,包括 Remix VM(用于快速测试的模拟区块链环境)、公共测试网(如 Sepolia 或 Holesky)以及以太坊主网。

Hardhat 开发环境

Hardha t IDE

Hardhat 是一种综合开发环境,专为在以太坊区块链和其他 EVM 兼容网络上构建、测试和部署智能合约而设计。它通过提供一套工具和功能来简化整个智能合约开发工作流程。

Hardhat 文件结构,作者: Rodrigo Herrera Itie

一个典型的 Hardhat 项目被组织成几个关键的目录和文件:/contracts、/scripts、/test 和 hardhat.config.js。/contracts 目录保存着 Solidity 智能合约文件。部署脚本存储在 /scripts 中,单元测试放在 /test 中。hardhat.config.js 文件是主配置文件,允许自定义开发环境。

Hardhat 的主要功能包括:

  • 编译:Hardhat 允许开发人员将 Solidity 智能合约编译成字节码和 ABIs,这对于部署和与合约交互是必需的。
  • 部署:它有助于将已编译的智能合约部署到各种区块链网络,包括本地开发网络(如 Hardhat Network)、测试网和主网。
  • 测试:Hardhat 为智能合约提供了一个强大的测试框架。它与流行的测试库(如 Chai)集成,并提供 Solidity 堆栈跟踪和自动错误消息等功能,以实现有效的调试。
  • 调试:Hardhat 通过在 Solidity 代码中提供 console.log() 功能来增强调试体验,类似于 JavaScript,允许开发人员在执行期间打印变量值和记录消息。
  • Hardhat Network:一个内置的原生以太坊网络,提供快速的交易处理和诸如主网分叉之类的功能,使开发人员能够在真实的环境中测试他们的合约,而无需部署到公共网络。

Foundry 作为替代开发环境

Foundry IDE

Foundry 是一个智能合约开发工具链,提供了一套用于在以太坊区块链上构建和部署去中心化应用程序 (dApps) 的工具。它旨在简化开发过程,提供智能合约编译、测试、部署以及与区块链交互等功能,所有这些都通过命令行界面进行。

主要组件和功能

  • forge:用于编译、测试和部署智能合约的核心工具。
  • cast:通过 RPC 实现与区块链的交互,允许合约调用、交易发送和数据检索。
  • anvil:为开发和测试目的提供本地区块链节点。
  • chisel:一个 Solidity REPL (Read-Eval-Print Loop),用于直接编写和测试 Solidity 代码。
  • 快速高效:Foundry 以其速度和效率而闻名,使开发人员能够快速地从想法到部署。
  • 安全性至上:Foundry 包含用于确保智能合约安全性的工具和框架,包括漏洞扫描。
  • Solidity 测试:Foundry 允许开发人员使用 Solidity 编写单元测试,从而简化了测试过程。
  • 模块化和可移植性:Foundry 使用 Rust 构建,并提供模块化设计,使其在不同的环境中具有高度的可移植性。
  • 赋能开发者:Foundry 旨在通过提供用户友好的环境和强大的工具来普及区块链开发。

节点包管理器

npm 是 JavaScript 编程语言的包管理器,由 GitHub 的子公司 npm, Inc. 维护。npm 是 JavaScript 运行时环境 Node.js 的默认包管理器,并作为推荐功能包含在 Node.js 安装程序中。

它由一个命令行客户端(也称为 npm)和一个公共和付费私有包的在线数据库(称为 npm 注册表)组成。通过客户端访问注册表,并且可以通过 npm 网站浏览和搜索可用的包。包管理器和注册表由 npm, Inc. 管理。

结论

本周的第一部分向我介绍了关于区块链和 web3 生态系统的概念,这些概念是我以前没有想过的,它还有助于通过巩固我的基础知识来消除许多误解。我将介绍本文的第二部分,该部分将深入探讨 Solidity 作为以太坊的编程语言。

  • 原文链接: blog.blockmagnates.com/i...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
blockmagnates
blockmagnates
The New Crypto Publication on The Block