Web3学习笔记分享:Day1-Web3概览与开发环境搭建

按照我的学习计划,今天完成了Day1的学习任务,学习过程还是颇费波折,主要是实操部分领取测试币和转账遇到问题。不过,这些问题都被我解决了,现将学习笔记整理如下,只要按照我的学习笔记操作,百分之百能够体验成功。

首先,提前祝大家学习愉快,有什么不清楚的都可以在评论区留言并讨论,我们一起学习进步。

📋 学习目标

  • • 理解 Web3 的核心概念和演进历史
  • • 掌握区块链的基本工作原理
  • • 成功安装和配置 MetaMask 钱包
  • • 获取测试代币并完成第一笔转账
  • • 熟悉区块浏览器的使用

📚 理论部分 (45分钟)

1.1 Web 演进史

从 Web1 到 Web3

阶段

时代特征

典型代表

数据归属

交互方式

Web1

只读

静态网页、门户网站

平台所有

被动浏览

Web2

读写

社交媒体、电商平台

平台所有,用户授权使用

双向互动

Web3

读写拥有

DeFi、NFT、DAO

用户拥有,平台托管

价值交换

Web1 时代 (1990-2004)

  • • 静态网页为主
  • • 用户只能浏览,无法创建内容
  • • 典型代表:Yahoo、新浪门户
  • • 数据完全由平台控制

Web2 时代 (2004-2020)

  • • 用户可以创建和分享内容
  • • 社交网络兴起(Facebook、微博)
  • • 电商普及(淘宝、亚马逊)
  • • 问题:数据被大公司垄断,用户失去控制权

Web3 时代 (2020-至今)

  • • 用户真正拥有自己的数据
  • • 去中心化应用(DApp)
  • • 代币经济和激励机制
  • • 核心特征:可组合性、无需许可、去中心化治理

1.2 区块链核心概念

什么是区块链?

区块链是一个去中心化的分布式账本,通过密码学保证数据不可篡改。

传统中心化架构 vs 区块链架构

传统架构:用户 → 中心服务器 → 数据库       ↓    单点故障风险区块链架构:用户 → 节点A → 节点B → 节点C → ...       ↓       ↓       ↓    分布式存储,共识机制
核心组件解析

概念

解释

类比

区块 (Block)

存储交易数据的容器

数据库的一行记录

链 (Chain)

区块通过哈希值链接

链表的节点连接

节点 (Node)

运行区块链软件的计算机

服务器集群中的每台机器

共识机制

节点达成一致的规则

选举制度

Gas Fee

执行操作的计算费用

云服务的按量计费

哈希

数据的唯一指纹

指纹识别

区块链的工作流程
1. 用户发起交易   ↓2. 交易广播到网络   ↓3. 矿工/验证者打包交易   ↓4. 共识机制验证区块   ↓5. 区块添加到链上   ↓6. 所有节点更新账本

1.3 账户体系

从助记词到地址的转换过程
┌─────────────────────────────────────────────────────┐│                    账户体系                          │├─────────────────────────────────────────────────────┤│  助记词 (12-24个英文单词)                             ││  例如: "apple banana cherry dog elephant..."        ││           ↓                                        ││  私钥 (64位十六进制字符串)                            ││  例如: "0x3a8b9c1d2e3f4a5b6c7d8e9f0a1b2c3..."       ││           ↓ 椭圆曲线加密算法 (secp256k1)              ││  公钥 (128位十六进制字符串)                            ││  例如: "0x04a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5..."      ││           ↓ Keccak-256 哈希 + 截取后40位             ││  地址 (40位十六进制,0x开头)                          ││  例如: "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb"  │└─────────────────────────────────────────────────────┘
⚠️ 安全铁律

永远记住:

  1. 1. 私钥 = 资产所有权
    • • 泄露私钥 = 资产丢失
    • • 任何人拥有私钥都能完全控制账户
  2. 2. 助记词 = 所有账户的主密钥
    • • 一个助记词可以生成无限个账户
    • • 丢失助记词 = 所有账户都无法找回
  3. 3. 绝对不能做的事
    • • ❌ 不要在代码中硬编码私钥
    • • ❌ 不要在聊天软件中发送私钥
    • • ❌ 不要截图保存助记词
    • • ❌ 不要把私钥提交到 GitHub
    • • ❌ 不要使用在线生成的钱包
  4. 4. 正确做法
    • • ✅ 手写助记词在纸上,保存在安全的地方
    • • ✅ 使用硬件钱包(如 Ledger、Trezor)
    • • ✅ 使用环境变量存储敏感信息
    • • ✅ 定期备份

1.4 网络类型

以太坊网络类型

网络类型

用途

ETH 价值

Gas 费用

交易确认

主网 (Mainnet)

真实资产交易

真实 ETH,有实际价值

~15秒

测试网 (Testnet)

开发测试

测试 ETH,无价值

~15秒

本地网络

本地开发调试

假 ETH

免费

即时

主网 vs 测试网

主网 (Mainnet)

  • • 真正的以太坊网络
  • • 交易需要消耗真实 ETH
  • • 合约部署不可逆
  • • Gas 费用昂贵
  • • 适合生产环境

测试网 (Testnet)

  • • 与主网功能相同,但代币无价值
  • • 用于开发和测试
  • • 可以通过水龙头免费获取测试 ETH
  • • Gas 费用极低或免费
  • • 适合学习和实验
主流测试网

测试网

状态

链 ID

特点

Sepolia

✅ 推荐

11155111

当前最推荐的测试网

Goerli

⚠️ 逐步弃用

5

曾广泛使用,但即将停止支持

Holesky

✅ 新测试网

17000

用于验证者和质押测试

为什么选择 Sepolia?

  • • 由以太坊基金会维护
  • • 稳定性好
  • • 水龙头充足
  • • 社区支持完善

🛠️ 实操部分 (60分钟)

步骤 1: 安装 MetaMask (10分钟)

什么是 MetaMask?

MetaMask 是最流行的以太坊浏览器钱包插件,充当 Web3 世界的"身份证"。

安装步骤
  1. 1. 打开 MetaMask 官网
    • • 访问:https://metamask.io/
    • • 点击 "Download" 按钮
  2. 2. 安装浏览器扩展
    • • 选择 Chrome 浏览器扩展
    • • 点击 "Add to Chrome"
    • • 在弹窗中点击 "Add Extension"
  3. 3. 创建新钱包
    • • 安装后点击浏览器工具栏的狐狸图标
    • • 选择 "创建新钱包"(Create a new wallet)
    • • 点击 "I Agree" 同意条款
  4. 4. 设置密码
    • • 输入强密码(至少8位,包含字母、数字、符号)
    • • 点击 "Create"
    • • 记住密码,但不要与助记词混淆
  5. 5. 备份助记词(最重要!)
    • • 显示12个单词的助记词
    • • 一定要手写在纸上
    • • 不要截图,不要复制到剪贴板
    • • 点击 "Next"
  6. 6. 确认助记词
    • • 按顺序点击单词确认
    • • 点击 "Confirm"
    • • 钱包创建完成!

⚠️ 检查清单:

  • • 助记词已手写在纸上
  • • 助记词保存在安全的地方
  • • 没有截图或复制助记词
  • • 密码已记住

步骤 2: 添加测试网络 (10分钟)

方法一:使用 Chainlist(推荐)
  1. 1. 访问 Chainlist
    • • 打开:https://chainlist.org/
  2. 2. 连接钱包
    • • 点击 "Connect Wallet"
    • • 在 MetaMask 弹窗中确认连接
  3. 3. 搜索 Sepolia
    • • 在搜索框输入 "Sepolia"
    • • 找到 "Sepolia Testnet"
  4. 4. 添加网络
    • • 点击 "Add to MetaMask"
    • • 在 MetaMask 弹窗中点击 "Switch network"
    • • 完成!
方法二:手动添加网络
  1. 1. 打开 MetaMask
    • • 点击网络下拉菜单(显示为 "Ethereum Mainnet")
  2. 2. 添加网络
    • • 点击 "添加网络" (Add Network)
    • • 点击 "添加自定义网络" (Add a custom network)
  3. 3. 填写网络信息

字段

网络名称

Sepolia

新增 RPC URL

https://sepolia.infura.io

链 ID

11155111

货币符号

SepoliaETH

区块浏览器 URL

https://sepolia.etherscan.io

  1. 4. 保存
    • • 点击 "保存"
    • • 网络添加成功

验证网络切换:

  • • MetaMask 顶部应显示 "Sepolia Testnet"
  • • 地址前的圆圈颜色与主网不同
  • • ETH 余额显示为 0

步骤 3: 领取测试币 (15分钟)

方法一:Alchemy Faucet
  1. 1. 访问 Sepolia Testnet Faucet
    • • 打开:https://www.alchemy.com/faucets/ethereum-sepolia
  2. 2. 输入钱包地址
    • • 在输入框粘贴你的钱包地址
    • • 从 MetaMask 复制地址(点击地址旁的复制图标)
  3. 3. 领取 ETH
    • • 点击 "Send 0.1 ETH"
    • • 等待确认(通常 1-5 分钟)
    • • 查看消息确认是否成功这儿我遇到了问题,当我选择“Ethereum Sepolia”网络时,领取不成功,提示“Insufficient balance! You need at least 0.001 ETH on Ethereum Mainnet.”。

    

我后我逐一尝试了下拉列表的所有网络,发现只有“Humanity Testnet Faucet”,可以领取成功。

如图所示,我们可以看到消息“Your 0.1 tHP has been successfully sent!”,说明领取成功了。我已经帮大家测试了所有的网络,目前只有Humanity Testnet Faucet可以直接免费领取测试的ETH。

下拉菜单里面还其他测试网络都要求你的钱包里面至少有0.001EHT才能领取,这对于我们新手来说就比较麻烦了。

Sepolia被设计为开发者的游乐场,为智能合约和去中心化应用(dApp)提供精确的测试环境。该平台具有快速同步和一组已授许可的验证器,使其成为开发者专注于dApp开发的高效选择。Sepolia是测试智能合约和dApps的最佳场所。所以,后面还是得想办法搞到Sepolia网络的测试ETH。

如果有伙伴还有其他的路径,请在留言区分享。

方法二:PoW Faucet
  1. 1. 访问 PoW Faucet
    • • 打开:https://sepolia-faucet.pk910.de/
  2. 2. 输入钱包地址
    • • 粘贴你的钱包地址
  3. 3. 开始挖矿
    • • 点击 "Start Mining"
    • • 等待挖矿进度(需要几分钟)
    • • 挖到一定数量后点击 "Claim"

目前这个水龙头可能有访问限制,总是提示“Invalid target address”,有成功的伙伴请分享一下您的经验。

方法三:其他水龙头
下面这几个我没有试过,有兴趣的同学试了后分享一下。
  • • QuickNode Faucet: https://faucet.quicknode.com/ethereum/sepolia
  • • Infura Faucet: https://www.infura.io/faucet/sepolia
  • • Web3 Faucet: https://web3faucet.org/

💡 提示:

  • • 每个水龙头可能有每日领取限制
  • • 如果一个不行,试试其他的
  • • 也可以找朋友要一些测试 ETH

验证领取成功:

  • • MetaMask 余额应显示 > 0 ETH
  • • 通常是 0.1 - 0.5 ETH

步骤 4: 添加Humanity Testnet

因为前面我们只在Humanity Testnet领取了测试币,所以我们要添加Humanity Testnet。

1. 首先注册alchemy.com,并创建自己的第一个app

2. 再启用Humanity Testnet网络。

搜索“Humanity”,点击旁边的“Enable”启用网络。

3. 点击copy,记录RPC URL:

4. 将网络信息添加到MetaMask里面,网络信息如下:

字段

网络名称

Humanity Protocol testnet

新增 RPC URL

此处为你刚copy的地址,格式https://humanity-testnet.g.alchemy.com/v2/YOUR_ALCHEMY_API_KEY

链 ID

7080969

货币符号

tHP

区块浏览器 URL

https://humanity-testnet.explorer.alchemy.com/

5. 添加好网络以后,你就可以在你的钱包里面查看测试ETH余额了。

6. 通过区块链接浏览器查看交易信息

访问区块链接浏览器地址:https://humanity-testnet.explorer.alchemy.com/,然后输入你的钱包地址,你就可以查看交易信息了。

步骤 5: 完成第一笔转账 (15分钟)

1. 准备接收地址
  • • 可以创建第二个 MetaMask 账户(点击右上角圆形图标 → Create Account)
  • • 或者使用朋友的地址
  • • 复制接收地址
2. 发起转账
  • • 在 MetaMask 中点击 "发送" (Send)
  • • 输入接收地址
  • • 输入金额(如 0.001 ETH)
3. 检查交易详情
  • • 确认网络是 :Humanity Protocol testnet
  • • 检查 Gas 费用(测试网很低)
  • • 点击 "下一步" (Next)不幸的是,发送测试币的时候报错:
Error: No XChain Swaps native asset found for chainId: eip155:7080969

查了一下,主要原因是:由于 Humanity Protocol 测试网是一个较新的网络,MetaMask 的 Swap 服务提供商(如 MetaMask Portfolio 的 API)尚未在其支持的链列表中收录该链(7080969)。因此,当 Swap 功能尝试查询时,找不到对应的资产配置,从而抛出此错误。

尝试了一些方法,发现使用Rabby Wallet(由DeBank团队开发)来发送更方便,它专为多链DeFi设计,对新链支持更好。接下来我们先后:安装Rabby Wallet浏览器扩展;导入MetaMask钱包(使用助记词);添加Humanity Protocol测试网网络配置。

然后尝试转帐:

转帐成功:

4. 确认交易
  • • 查看交易摘要
  • • 滑动滑块确认
  • • 等待交易确认(约 15 秒)
5. 查看结果
  • • MetaMask 余额应减少
  • • 接收方余额应增加

  • • 转账金额不要全部发送,留一些用于支付 Gas
  • • 确认地址正确,转账不可撤销
  • • 测试网转账是安全的,可以随意实验

• 使用区块链浏览器查看一下交易记录,可以查看到刚才转帐的记录。

⚠️ 注意事项:


步骤 5: 进一步了解区块浏览器 (10分钟)

什么是区块浏览器?

区块浏览器是查看区块链数据的网站,类似区块链的"搜索引擎"。刚才我们测试使用的浏览器名称叫:Humanity Testnet explorer。

Humanity Testnet explorer
  1. 1. 访问区块浏览器
    • • 打开:https://humanity-testnet.explorer.alchemy.com/
  2. 2. 查询地址
    • • 在搜索框输入你的钱包地址
    • • 点击搜索
    • • 查看地址信息:
      • • 余额
      • • 交易历史
      • • 首次交易时间
      • • 最新交易时间
  3. 3. 查询交易
    • • 在 MetaMask 中复制交易哈希(点击交易记录)
    • • 查看交易详情:
      • • 交易哈希 (Tx Hash): 交易的唯一标识
      • • 区块高度 (Block): 交易被打包的区块编号
      • • 状态 (Status): 成功 (Success) 或失败 (Failed)
      • • 发送者 (From): 你的地址
      • • 接收者 (To): 接收地址
      • • 价值 (Value): 转账金额
      • • Gas Used: 实际消耗的 Gas
      • • Gas Price: Gas 价格

• 在 Humanity Testnet explorer 搜索框粘贴

交易详情图一:

交易详情图二:

  1. 4. 查询区块
    • • 点击区块高度数字
    • • 查看区块信息:
      • • 区块号
      • • 时间戳
      • • 矿工地址
      • • 区块中的所有交易

💡 为什么使用区块浏览器?

  • • 验证交易是否成功
  • • 查看交易历史
  • • 检查合约代码
  • • 调试问题

✅ 今日产出检查清单

环境准备

  • • MetaMask 钱包创建完成
  • • 助记词安全备份(手写)
  • • 密码已记住
  • • 安装Rabby Wallet并导入钱包

网络配置

  • • Sepolia 测试网络添加成功
  • • Humanity Testnet网络添加成功
  • • 网络切换正常
  • • 能够在不同网络间切换

测试币获取

  • • 领取到测试 代币(至少 0.1 ETH)
  • • MetaMask 余额显示正确

交易操作

  • • 完成第一笔转账交易
  • • 转账交易确认成功
  • • 余额变化正确

区块浏览器

  • • 能够使用 Humanity Testnet explorer 查询地址
  • • 能够查看交易详情
  • • 理解交易信息的含义

💡 常见问题

Q1: 忘记助记词怎么办?

A: 没有办法找回。这就是为什么助记词必须安全备份。如果你忘记了,只能创建新钱包,旧钱包的资产将永久丢失。

Q2: MetaMask 可以用在多个浏览器吗?

A: 可以。通过导入助记词,可以在不同浏览器和设备上访问同一个钱包。但要注意,每次导入都增加了助记词泄露的风险。

Q3: 测试网的 ETH 可以在主网使用吗?

A: 不可以。测试网 ETH 只能在测试网使用,没有实际价值。主网 ETH 需要在交易所购买或从其他用户处获得。

Q4: 为什么我的交易一直处于 "Pending" 状态?

A: 可能的原因:

  • • Gas 费用太低,矿工不愿打包
  • • 网络拥堵
  • • 可以等待或取消交易,重新发送并提高 Gas

Q5: 可以把测试网 ETH 换成真实 ETH 吗?

A: 不可以。测试网 ETH 是假的,没有任何价值,无法兑换。


📖 课后作业

  1. 1. 探索其他测试网
    • • 尝试添加 Holesky 测试网
    • • 对比不同测试网的特点
  2. 2. 多次转账实验
    • • 尝试转账给自己
    • • 尝试转账给多个地址
    • • 观察每次交易的 Gas 费用
  3. 3. 研究区块浏览器
    • • 查看 Humanity Testnet 上的最新区块
    • • 查找最近的交易
    • • 尝试理解区块的结构
  4. 4. 记录学习笔记
    • • 记录今天遇到的问题
    • • 记录解决方法
    • • 记录新的发现

🎯 下集预告

明天我们将进入 Solidity 智能合约开发的学习,详见学习计划:


📚 延伸阅读

  • • 以太坊官方文档
  • • MetaMask 用户指南
  • • Etherscan 使用指南
  • • 区块链基础概念
  • • Alchemy文档

大家在学习过程中如果遇到问题请在留言,我们一起学习进步,祝你学习顺利! 🚀

Read more

实时系统性能翻倍秘诀:深入C++26的CPU亲和性底层机制

第一章:实时系统性能翻倍的底层驱动力 在现代高并发、低延迟的应用场景中,实时系统的性能优化已成为核心挑战。实现性能翻倍并非依赖单一技术突破,而是由多个底层机制协同驱动的结果。这些机制共同作用于系统架构的各个层面,从内核调度到内存管理,再到数据处理流水线。 内核级调度优化 实时操作系统(RTOS)或启用 PREEMPT_RT 补丁的 Linux 内核,通过减少不可抢占区域(atomic sections)显著降低任务响应延迟。关键改进包括将自旋锁转换为可抢占的互斥锁,使高优先级任务能及时中断低优先级任务。 零拷贝数据传输 传统数据读写涉及多次用户态与内核态之间的数据复制,消耗大量 CPU 周期。采用零拷贝技术可直接在内核缓冲区与应用间共享内存,避免冗余拷贝。例如,在 Go 中使用 mmap 映射文件: // 使用 mmap 实现零拷贝文件访问 data, err := syscall.Mmap(int(fd), 0, fileSize, syscall.

By Ne0inhk
c++树形数据结构——树状数组,算法必看哟!!!

c++树形数据结构——树状数组,算法必看哟!!!

目录 一,简介 二,区分与前缀和的区别和联系 三,基本步骤演示 1,lowbit操作 2,lowbit和树状数组t[]的联系 1,update函数 2,getprefix函数 四,例题详解 例题1:蓝桥杯官网——殷老师排队 问题描述 输入格式 输出格式 样例输入 样例输出 数据规模 代码详解! 方法一:正确方法,树状数组 方法二,普通前缀和差分方法,时间复杂度高 例题2:23年蓝桥杯真题——异或和 问题描述 输入格式 输出格式 样例输入 样例输出 评测用例规模与约定 代码详解! 方法一:树状数组 方法2:更加简单直观的方法 注:本文题目均来自蓝桥杯官网公开题目,

By Ne0inhk
《 C++ 点滴漫谈: 四十 》文本的艺术:C++ 正则表达式的高效应用之道

《 C++ 点滴漫谈: 四十 》文本的艺术:C++ 正则表达式的高效应用之道

摘要 本文全面讲解了 C++ 标准库中的正则表达式功能(<regex> 头文件),内容涵盖基础语法、关键类和函数(如 std::regex、std::regex_match、std::regex_search 等),深入剖析了匹配结果的获取方式、进阶使用技巧与性能优化策略。此外,文中结合实际工程中的典型用例展示了正则表达式在文本处理、日志分析、格式校验等场景中的高效应用,并指出了常见错误与调试建议。最后,本文还探讨了 C++ 正则的局限性及替代方案,如 RE2 和 Boost.Regex,为读者在项目选型与性能权衡上提供参考。 一、引言:正则表达式的魅力 在当今的软件开发领域,正则表达式(Regular Expression, 简称 Regex) 几乎无所不在。无论是前端用户输入校验,后端日志分析,还是数据清洗与转换处理,

By Ne0inhk
【C++补充】第一弹---位图技术揭秘:内存优化与快速访问

【C++补充】第一弹---位图技术揭秘:内存优化与快速访问

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C++详解】 目录 1 位图 1.1 位图相关面试题 1.2 位图的设计及实现 1.3 C++库中的位图 bitset 1.4 位图的模拟实现 1.5 位图的优缺点 1.6 位图相关考察题目 1 位图 1.1 位图相关面试题 1. 面试题 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。(本题为腾讯/百度等公司出过的⼀个⾯试题) 解题思路1:暴力遍历,时间复杂度O(N),太慢

By Ne0inhk