web3开发DApp项目技术入门教程(2022年最新)

开发 dApp 的三个步骤 去中心化应用,或者叫dApp,是一种不依赖于中心化服务器的应用。在这个技术教程中,你会学习到怎样开发一个end-to-end的dApp 阅读详情

作者:米都督
微信:Meng_Xiang987 (想加入web3社群,请在添加时注明“web3”)
邮箱:miduduur@gmail.com

web3.0时代正悄悄来临。如果你想开发一个web3项目,或者想要未来从事web3工作,充实自己的web3简历,本文就是一篇很好的DApp开发技术入门教程。

这篇文章的主要内容包括:

  • 智能合约创建和部署
  • Solidity语言入门
  • hardhat框架使用及本地环境搭建

本文较长,包括 20 余张图片、1 个 Hello-World 版本的 web3项目示例,以及完整的项目代码及注释。如果现在你正在使用手机阅读,建议先收藏本文;之后打开电脑,沿着本文的思路,仔细阅读。

一、Hardhat 是什么?

Hardhat框架,是一个以太坊DApp开发的本地集成开发套件。经常与之对比的是 Hardhat vs Truffle。相比其它作为web3基础设施的开发工具,Hardhat 更加轻量,采用插件化的思想,非常适合作为新手dapp开发入门的工具。
Hardhat框架,一个轻量级DApp开发套件

二、环境准备 —— 安装 Node.js

在使用 Hardhat 进行开发以前,首先需要在本地安装 Node 环境。
nodejs下载
这里是nodejs官网的下载地址,根据自己操作系统的配置,选择合适的版本下载。

这里要注意,如果电脑上已经安装过,记得升级到 node v14 及以上的版本,更早的版本不支持 Hardhat。

看一下是否安装成功,分别输入:

node -v 
npm -v 
npx -v 

nodejs安装是否成功
我这里是 Windows 系统,用 PowerShell 执行一下上面几条命令,可以看到已经安装成功了。

三、开始第一个web3项目

1. 初始化

首先创建一个目录 hardhat-demo,进到这个目录里,执行 npx hardhat init 命令:

mkdir hardhat-demo 
cd hardhat-demo 
npx hardhat init 

这时会问你几个问题,一路回车即可。
使用Hardhat初始化web3项目
npx hardhat init 的作用是:按照模板创建了一个示例项目。当出现 “Project created” 字样时,代表项目创建成功。

可以看到,在上面的截图里,提示了我们要安装依赖。为了能让这个示例项目跑起来,还需要安装几个依赖模块:

npm install --save-dev "hardhat@^2.9.1" "@nomiclabs/hardhat-waffle@^2.0.0" "ethereum-waffle@^3.0.0" "chai@^4.2.0" "@nomiclabs/hardhat-ethers@^2.0.0" "ethers@^5.0.0" 

安装完以后,这个目录下的文件应该有这些:
Hardhat初始化DApp项目的目录结构
这样,你就成功完成了第一个步骤。

2. 项目中的文件作用

创建好这个示例项目以后,这里来分析一下这些文件的作用。这一部分略微有一些枯燥,你也可以先阅读“3. 智能合约的编译、部署和测试”这一部分,之后再来看这些文件的作用。

① node_modules/、package-lock.json 和 package.json

这些是 node 项目的必须组成部分,包括了项目的配置信息、安装的依赖模块等,这里可以先无视。

② contracts/Greeter.sol

这个文件是项目中的重点,叫智能合约文件。什么是智能合约呢?你可以把智能合约,同样理解为一种可以运行的程序。只不过这个程序比较特殊,它是运行在以太坊的 EVM 虚拟机 环境上。并且,程序本身、程序的输入输出、运行结果等,对所有人可见。

Solidity语言,是智能合约开发的主流语言之一。Solidity语言的入门教程,不是本文涉及的重点,这里只是简单提一下。

简单用 Java 类比一下:

原来你写了一段 Java 代码,放进一个源文件叫作 HelloWorld.java,用 javac 执行编译,最终在自己的电脑或者服务器上,被 JVM 虚拟机执行;现在写了一段 Greeter.sol 代码,它也可以被编译,被执行,只不过运行环境变成了以太坊的 EVM 虚拟机。

<
传统Java开发 web3开发
语言 Java Solidity
2024 Web3开发学习路线全指南 如果你想在区块链开发上更进一步,此时你需要考虑的就会更多了,例如你可能发现链上交易的Gas费用越来越高,此时你需要考虑优化你的智能合约来降低每笔交易的Gas费用。 阅读详情

相关推荐

打造属于你的DApp:从零开始的开发指南

打造属于你的DApp:从零开始的开发指南

Juyi789的博客 616

区块链 | DAPPDapp应该怎么开发?分享一篇Dapp开发的逻辑(分享) 更新中~

写在前面 本篇文章将带领你从零学会一个Dapp开发,笔者从最初的不了解区块链概念到如今精通Dapp智能合约开发,中间踩过无数的坑,经历过无数困难! 一、什么是Dapp? 去中心化应用(decentralized application),或简称DApp,通常与区块链平台例如以太坊相联系,是一个在分布式点对点网络上运行的应用程序,而不是在一台中央计算机上。这样做的主要好处是,网络的用户不依赖于中央计算机来发送和接收信息。 为了充分理解去中心化应用程序与中心化应用程序之间的区别,我们可以看一下中心.

1万+

11. 建立你的第一个Web3项目

通过本章节的实践,你已经了解了如何搭建Web3开发环境,编写和部署智能合约,以及开发一个与智能合约交互的dApp。这是Web3开发的基础技能,未来你可以在此基础上开发更复杂的去中心化应用。

sise_2022的博客 3708

Web3 开发者入门手册:技能、工具和职业前景

每个人的学习速度不同,所以你的时间线可能与他人不同。:智能合约Web3 中被广泛使用,因为它们是自执行的、硬编码的、防篡改的,并且无需第三方批准。例如,如果你想成为 Solana 和以太坊上的智能合约 Web3 开发者,可以首先学习 Solidity 然后再学习 Rust 和其他语言。开发者社区大多是在线的,但也有线下/实体网络,开发者在其中互动、分享想法、学习和构建。:Web3 开发者还与围绕产品和服务建立的社区互动,接收产品反馈,并与其他开发者和参与 Web3 项目的专业人士分享想法或合作。

TinTinCommunity的博客 8864

Web3 开发教程

本文将引导你完成一个简单的 Web3 应用程序的开发过程,包括环境搭建、智能合约编写、前端应用开发等步骤。Truffle 是一个流行的开发框架,用于智能合约开发、测试和部署。Ganache 则是一个本地的以太坊区块链模拟器,用于测试你的智能合约。MetaMask 是一个流行的以太坊钱包插件,可以让你与以太坊网络上的 dApps 交互。文件中配置 Ganache 作为开发环境,并部署智能合约。使用 Vue.js 创建一个简单的前端应用来与智能合约交互。创建一个简单的智能合约,用于存储和检索一条消息。

qq_42072014的博客 3131

区块链技术应用开发Web3 时代 DApp 构建的技术全景与实战指南

本文聚焦Web3时代DApp开发,解析其与Web2应用的核心差异:数据链上存储、逻辑通过智能合约执行、用户自主掌控身份。拆解开发技术栈,包括底层公链选型(以太坊/Layer2/联盟链)、智能合约开发Solidity/Rust)、前端Web3交互及链下存储方案,结合DeFi/NFT等场景案例,提供安全审计、Gas优化等实战指南,助力开发者快速上手链上链下协同开发模式。

kuyxerp的博客 1115

什么是DAppDApp开发指南

DApp(Decentralized Application),即去中心化应用,是一种基于区块链技术开发的应用程序,与传统的中心化应用不同,DApp不依赖单一服务器或管理主体,而是利用去中心化的区块链网络运行。DApp通过智能合约来执行操作,所有的数据、交易都记录在区块链上,确保公开透明、不可篡改。

Lovely_xwys的博客 3614

什么是dapp?如何在web开发dapp

web3Web3.0”是对“Web2.0”的改进,在此环境下,用户不必在不同中心化的平台创建多种身份,而是能打造一个去中心化的通用数字身份体系,通行各个平台。更像是一种概念吧。区块链区块链()是由节点参与的分布式数据库系统, 它的特点是不可更改,不可伪造,也可以将其理解为账簿系统()。它是比特币的一个重要概念,完整比特币区块链的副本,记录了其代币()的每一笔交易。通过这些信息,我们可以找到每一个地址,在历史上任何一点所拥有的价值。 Dapp是的缩写,中文直译为去中心化应用,也可以理解为分布式应用。去中心

paranoid_7988的博客 2146

从零开始构建你的第一个DAppWeb3开发者的入门指南

本文详细介绍了如何从零开始构建你的第一个DApp,涵盖Web3基础概念、开发环境搭建、智能合约编写、前端界面构建及测试部署全流程。通过以太坊平台和Solidity语言,开发者可以快速掌握去中心化应用开发的核心技术,实现透明、安全的区块链应用。

weixin_29015483的博客 1035

2022第一季度的十个Web3项目

2022第一季度的十个Web3项目 Web3是互联网的未来,这里列出了10个最大的项目Web1、Web2和Web3。甚至一些项目也开始自称Web4。 特别是3G技术和社交媒体项目开启了Web2的潮流,用户添加了自己的信息、照片、视频、评论。 多亏了Web3项目,我们可以创建自己的个人网站,可以感受去中心化的互联网体验。因此,在正确使用该技术时,我们需要一些工具和项目,如预言机、存储、流平台、支付系统等。 Chainlink (LINK) 当然,预言机是Web3最重要的参数之一,以便在Web3平台上

chinadefi的博客 2431

Web3 全栈开发指南

使用Next.js、Polygon、Solidity、The Graph、IPFS和Hardhat构建全栈Web3应用。

smartContractXH的博客 4591

开发者新手指南:一文汇总 Web3 开发工具

TinTinLand 希望聚集、培育、输送开发者到各开放网络,持续汇总 Web3 开发工具、资源、求职等必要信息,通过提供全面的开发者新手入门指南,为新人开发者的 Web3 之旅保驾护航。在这个系列中,我们汇总了全面的 Web3 技术栈定义以及Web3 行业薪资数据——《开发者新手指南:Web3 技术堆栈 & 平均薪资盘点》;我们也从技能学习和求职的角度出发,为大家汇总了区块链开发者需要掌握的技能和挑选常用的求职应聘渠道——《开发者新手指南:进入 Web3 前,你需要掌握哪些必备技能?》。

TinTinCommunity的博客 3562

Web3项目开发

Web3 项目开发涵盖了构建基于去中心化、区块链和其他新兴技术的应用程序和服务。与传统的 Web2 开发相比,Web3 开发引入了许多新的概念和工具。以下是 Web3 项目开发的主要流程和关键步骤。开发一个成功的 Web3 项目需要技术团队在区块链技术智能合约开发、前端开发、后端开发以及社区运营等方面具备扎实的知识和经验。同时,也需要对 Web3 生态系统的发展保持关注。

zhaoyin0335的博客 1503

前端零基础学习web3开发

这一节,我们不说让人神往的比特币,不说自己会不会利用这个虚拟的货币来发财,也不说那些模模糊糊的知识,什么去中心化啦,什么奇妙的加密啦,我们就说一说,如果你是一名前端开发人员,某一天来了一个web3项目,你需要利用web3js和链上交互了的时候,会带来的一些。如果你没有做过web3项目,没有和链上进行过交互,那么很可能会产生交流断层,他们说的啥,根本听不懂。甚至感觉自己做了那么多前端,像是知识积累都喂了狗。明明是一次普通的数据交互,却被他们说成是多么高大上,让人受不了。

xingyu_qie的专栏 1949

【前端开发Web3新手必备

Web3入门指南:开启去中心化互联网之旅 本文是一份全面的Web3新手教程,详细介绍了从基础概念到实际操作的全流程。Web3作为第三代互联网,其核心特征是去中心化和用户数据自主权,与Web1、Web2有着本质区别。文章首先讲解了必要的硬件准备和基础知识,包括区块链和加密货币的基本概念。接着分步骤指导读者获取Web3钱包、连接区块链网络、购买加密货币,并访问各类去中心化应用(dApp)。

大雨淅淅的博客 3008

Dapp开发流程以及应用

Dapp是一种运行在区块链网络上的应用程序,具有去中心化、透明、安全、自治等特点,能够为人们提供更加便捷、高效、安全的应用体验。在编写智能合约时,需要遵循区块链平台支持的合约语言和编写规范,同时需要进行充分的测试和验证,确保合约的正确性和安全性。例如,通过Dapp技术可以实现智能家居、智能交通等领域中的设备之间的安全通信和数据共享,提高设备的智能化和安全性。在完成智能合约和前端界面的开发后,需要进行充分的测试和验证,确保Dapp的稳定性和安全性。这包括了对Dapp的功能、用户群体、市场前景等方面的考虑。

xianliankukeji的博客 419

Web3 新手教程:从入门到精通

Web3专栏作者:文心-挖掘解读最真实的Web3世界Web3教程 专题|Web3新手教程-第 8期如果你也喜欢Web3,希望在这做些有趣的、有意义的事情,那么我希望这篇文章可以帮助到你。其实在很早之前,我就计划写一篇《Web3 新手教程》,送给想要进入 Web3 或者刚刚进入 Web3 的小伙伴,但是考虑到两点原因,我还是打算把这件事推迟一些时日。一是在各大媒体都鼓吹 All In W...

shadowcz007的博客 2万+

Web 3.0入门教程

Web3.0入门教程课程英文名此视频教程共5.5小时,中英双语字幕,画质清晰无水印,源码附件全。

duoshehuan6005的博客 5648
上一篇: 4_Dockerfile语法
captxb
博客等级 码龄11年 59粉丝 392原创
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值