作为一名熟悉 Node.js 全栈技术栈的开发者,在面试 Web3 岗位时,通常会被问到涵盖 区块链原理、智能合约开发、安全性、前后端集成、常用库/协议等方面的问题。下面是我为你整理的 Web3 开发方向面试题清单,尤其适合有 Node.js 背景的全栈工程师:
🧠 1. 基础知识:区块链与Web3原理
1.1 区块链的基本组成有哪些部分?它们的作用是什么?
1.2 什么是去中心化?和分布式系统有何不同?
1.3 区块链的共识机制有哪些?PoW、PoS、DPoS的区别?
1.4 什么是Gas?为什么交易需要Gas?如何优化Gas成本?
1.5 什么是Layer 1 和 Layer 2?举例说明。
📜 2. 智能合约与 Solidity
2.1 简述 Solidity 的数据类型、作用域、函数修饰符。
2.2 require
、assert
、revert
区别?使用场景?
2.3 什么是重入攻击(Reentrancy)?如何防御?
2.4 如何通过 Node.js 与 Solidity 合约交互?
2.5 写一个简单的ERC-20或ERC-721合约,并用 JavaScript 发起转账交易。
🧩 3. Web3.js / Ethers.js 使用
3.1 Ethers.js 和 Web3.js 的主要区别是什么?
3.2 如何用 Ethers.js 查询钱包余额?
3.3 如何使用私钥签名一笔交易并广播?
3.4 如何监听一个合约事件(Event)?如何处理多个事件?
🏗️ 4. Node.js后端集成 & 服务端设计
4.1 如何在 Node.js 中管理钱包与私钥的安全性?
4.2 如何用 NestJS 或 Express 实现 Web3 登录(签名 + 验证)?
4.3 如何设计一个支持 NFT 铸造和转移的后端服务?
4.4 如何实现一个基于区块链的积分/投票系统?
4.5 如何处理与链上异步数据交互(如确认交易、轮询区块)?
🌐 5. 全栈集成与 DApp 构建
5.1 如何实现一个完整的 Web3 登录流程(前端 + 后端)?
5.2 如何使用 MetaMask 调用合约函数?
5.3 如果你要构建一个 NFT 市场,需要考虑哪些功能与技术选型?
5.4 如何用 Next.js + Web3.js 构建一个链上数据展示页面?
5.5 IPFS 是什么?如何结合 IPFS 上传文件并在合约中引用?
🔐 6. 安全与最佳实践
6.1 如何防范重放攻击、私钥泄露、钓鱼签名?
6.2 什么是“前置运行攻击”(Front-running)?怎么防御?
6.3 如果要做代币空投(Airdrop),你如何设计安全的分发策略?
6.4 合约升级有几种方式?各自的优缺点?
6.5 哪些 Solidity 编码模式容易出安全漏洞?
📊 7. 工具链 & 测试
7.1 Truffle vs Hardhat:各自的优势?
7.2 如何写 Solidity 单元测试?可以用哪些工具?
7.3 怎样在本地模拟区块链?
7.4 Ganache、Foundry、Remix 各自的使用场景?
7.5 如何部署一个合约到测试网(如 Goerli)?
📦 8. 项目实战类问题(偏全栈)
8.1 请描述你做过的 Web3 项目,具体技术栈和你负责的模块?
8.2 你如何处理 Web3 项目中的账户管理和权限控制?
8.3 如果你要开发一个 DAO 系统,会怎么设计?
8.4 如何解决 Web3 DApp 用户体验不佳的问题?
8.5 如何做合约与数据库之间的数据同步?