polkadot-第20期学习培训

Wagmi 是什么?

WAGMI = We’re All Gonna Make It(我们都会成功/我们都能赚到钱),是加密/Web3 社区的高频口号与文化梗,核心是集体乐观、抱团打气、长期主义

一、基本含义与用法

  • 中文常译:必胜、稳了、一起发财、都会成的
  • 场景:
    • 熊市大跌、被套时:互相安慰“WAGMI,拿住”。
    • 项目/技术突破:庆祝+凝聚共识“WAGMI frens”。
    • 表达信念:相信行业、社区、长期持有者终将获益。
  • 反义词:NGMI = Not Gonna Make It(凉了/要亏/没救),用来吐槽错误决策或看衰项目。

二、起源

  1. 最早来自2010年代健身圈,网红 Zyzz(Aziz Shavershian) 常说“You’re gonna make it, brah”,传播开来。
  2. 后进入 Reddit 的 WallStreetBets 散户社区,2021年牛市随加密/NFT/DeFi 爆发,彻底成为 Web3 文化符号。

三、和技术库 wagmi 的区别

你可能也见过一个叫 wagmi 的前端库(小写):

  • 它是以太坊生态的 React 钱包连接器,简化 DApp 接入 MetaMask、WalletConnect 等钱包的代码。
  • 口号 WAGMI(大写)≠ 技术库 wagmi(小写),只是同名巧合。

四、一句话总结

WAGMI 是加密圈的“抱团打气暗号”:市场会好、项目会成、大家都能赢,但它是情绪表达,绝非投资建议

要不要我顺便整理一份常见 Web3 缩写速查表(如 GM、DYOR、HODL、FUD),方便你快速看懂社区聊天?

Wagmi 特点包括

答案:A、B、C、D 全选 ✅

这四个都是 wagmi(Web3 React 钱包库) 的核心官方特点。


逐项解析

A 类型安全 ✅

wagmi 基于 TypeScript 开发,完整类型推导

  • 调用合约、获取钱包地址、交易签名等全部自带类型检查
  • 开发时不会出现拼写错误、类型不匹配等低级bug
  • 是它最核心的优势之一

B 多种不同钱包连接 ✅

wagmi 内置支持几乎所有主流钱包,开箱即用:

  • MetaMask、Coinbase Wallet、Trust Wallet
  • WalletConnect、Rainbow、Argent 等
  • 无需自己写适配代码,一行配置即可支持

C 和 Viem 有很好的集成 ✅

wagmi 底层直接使用 Viem(以太坊轻量级类型安全库):

  • 所有 wagmi 的钩子(hooks)都能无缝调用 viem 功能
  • 共享配置、共享客户端、类型完全互通
  • 官方推荐组合:wagmi + viem + React

D 对于连接状态,数据缓冲可以自动管理 ✅

wagmi 内置强大的状态管理 + 缓存

  • 钱包连接状态自动同步
  • 账户、余额、合约读取结果自动缓存
  • 重复请求自动合并,避免重复网络请求
  • 页面刷新、组件重渲染都不会丢失状态

总结

wagmi 的四大核心特点:

  1. 类型安全(TypeScript)
  2. 多钱包支持
  3. 与 Viem 深度集成
  4. 自动状态 & 缓存管理

答案:A B C D 全对

viem是什么

Viem 是一个轻量、类型安全、高性能的以太坊(EVM 链)交互 TypeScript 库,由 wagmi 团队开发,定位是 ethers.js / web3.js 的现代化替代品

一、核心定位

  • 作用:连接 DApp 与区块链,发送交易、读取合约、监听事件、处理钱包签名等。
  • 关系:wagmi 底层完全依赖 Viem,wagmi 是给 React 用的“带状态钱包连接器”,Viem 是底层“无状态链交互工具”。
  • 类比:
    • web3.js / ethers.js:老式、重、类型弱
    • Viem:新、轻、快、类型强
    • wagmi = Viem + React 状态管理 + 多钱包适配

二、五大核心特点(对应你之前的题)

  1. 极致类型安全(TypeScript 原生)

    • 从 ABI 自动推导合约函数/事件类型,编译期校验,减少 80% 运行时错误。
    • 原生支持 bigint,无需手动转换 BigNumber
  2. 模块化、轻量(Bundle 极小)

    • 按需引入,打包体积比 ethers.js 小 60%+
    • 核心代码无依赖,浏览器/Node.js 通用。
  3. 高性能(比 ethers.js 快 40 倍+)

    • 地址校验、ABI 编解码、JSON-RPC 通信全链路优化。
    • 异步任务并行处理,减少等待时间。
  4. 多链与钱包原生支持

    • 内置以太坊、Polygon、Arbitrum 等 20+ EVM 链配置。
    • 直接接入 MetaMask、WalletConnect、私钥钱包,无需额外适配。
  5. API 直观、贴近以太坊原生

    • 方法名与以太坊 JSON-RPC 一致(如 getBlockNumbersendTransaction),学习成本低。
    • 完善文档与示例,支持 Anvil/Hardhat/Ganache 本地测试网。

三、代码示例(极简上手)

1
2
3
4
5
6
7
8
9
10
11
12
import { createPublicClient, http } from 'viem'
import { mainnet } from 'viem/chains'

// 1. 创建客户端
const client=createPublicClient({
chain: mainnet,
transport: http() // 连接公共 RPC 节点
})

// 2. 读取链上数据
const blockNumber=await client.getBlockNumber()
console.log('当前区块高度:', blockNumber)

四、Viem vs ethers.js(关键差异)

特性 Viem ethers.js
类型安全 原生 TypeScript,强类型 需额外类型补丁,弱类型
包体积 ~20KB(最小化) ~130KB
性能 极高(快 40 倍+) 一般
多链支持 内置多链配置 需手动配置
与 wagmi 集成 官方底层,无缝 需适配层,有兼容问题

五、一句话总结

Viem 是 Web3 开发的新一代“标准工具”类型安全、轻量、高性能、多链友好,是 wagmi 的底层核心,也是现代 DApp 开发的首选链交互库。

要不要我给你一份 Viem + wagmi 的最小可运行代码,直接复制就能在 React 项目里跑通钱包连接和合约读取?

Storage合约使用EVM 和 PVM时abi相同吗?

结论:同一套 Solidity Storage 合约,在 EVM 与 PVM(PolkaVM)上的 ABI 完全相同

一、为什么 ABI 相同

  1. ABI 由 Solidity 编译器决定,不由虚拟机决定

    • ABI 是对合约函数/事件/参数的 JSON 描述,以及编码规则(如 address 占32字节、函数选择器取 keccak256 前4字节)。
    • 只要源码不变、Solidity 版本不变,无论编译到 EVM 字节码还是 PVM(Revive)字节码,ABI 完全一致
  2. PVM(PolkaVM)通过 Revive 保持以太坊语义兼容

    • Polkadot 的 Revive 模块:
      • EVM 模式:直接跑标准 EVM 字节码,ABI 不变。
      • PVM 模式:Solidity → YUL → RISC-V(PolkaVM)字节码,但对外仍暴露标准以太坊 ABI 与 RPC 接口
    • 对钱包(MetaMask)、DApp(wagmi/viem)、区块浏览器:调用方式、编码格式、ABI 完全和以太坊一致
  3. Storage 布局完全兼容

    • Solidity 的 storage 槽位规则(如基本类型占1槽、结构体紧凑排列、mapping 哈希寻址)在 EVM/PVM 上完全一致
    • 同一组 set/get 函数,在两种虚拟机上的参数编码、返回值解码、事件日志格式完全相同

二、唯一区别:字节码不同

  • EVM:编译为EVM 字节码(256位栈指令)。
  • PVM:编译为RISC-V 字节码(64位寄存器指令)。
  • ABI、调用数据、事件日志、存储布局 100% 兼容

三、实操结论

  • 你可以用同一套 ABI,通过 wagmi/viem 同时调用 EVM 与 PVM 上的 Storage 合约。
  • 无需修改前端代码、无需重新生成 ABI、无需适配编码逻辑。

一句话总结:ABI 只跟源码与编译器有关,跟 EVM/PVM 无关;Storage 合约在两者上 ABI 完全相同

要不要我给你一段可直接运行的 wagmi+viem 代码,同时调用 EVM 和 PVM 上的 Storage 合约,验证 ABI 一致性?

06, 必填, 波卡开发者文档有谁维护, 单选

A Pairty 公司
B Web3 基金会
C Papermoon 公司

答案:C Papermoon 公司

简要说明

  • A Parity 公司:核心开发波卡/Substrate 代码,但不主导官方开发者文档维护。
  • B Web3 基金会(W3F):波卡的资金与治理方,拥有内容终审权,但日常维护与运营由 Papermoon 执行
  • C Papermoon 公司:波卡官方开发者文档中心(docs.polkadot.com)的实际开发与日常维护团队,受 W3F 与 Decentralized Futures 资助执行。

需要我把波卡文档相关的维护分工和对应链接整理成一页速览吗?

Papermoon 公司是什么

PaperMoon(常写作 Papermoon)是波卡生态内专注「开发者关系(DevRel)+ 技术文档」的服务型初创公司,核心负责波卡官方开发者文档的日常维护与生态开发者体验建设

一、基本信息

  • 公司全称:PaperMoon DevRel Services
  • 创始人:Alberto Viera(波卡生态资深开发者,前 Moonbeam 核心成员)
  • 成立时间:2023年1月
  • 团队规模:11–50人,分布式团队(中国/西班牙/美国)
  • 官网:papermoon.io

二、核心定位与业务

  1. 波卡官方文档唯一维护方

    • 负责 docs.polkadot.com(波卡开发者文档中心)的内容撰写、更新、翻译、审核、优化
    • Web3 基金会(W3F)Decentralized Futures(DF) 资助,Parity 提供技术协作。
  2. 开发者关系(DevRel)服务

    • 为波卡/Polkadot Hub 生态提供:技术文档、教程、示例、SDK/工具适配、开发者支持、黑客松与活动运营。
    • 重点项目:Moonbeam、Tanssi、Polkadot Hub(含 REVM/PVM 文档)。
  3. 技术专项:EVM→PVM 迁移支持

    • 主导 REVM(Revive EVM) 测试与部署,帮助以太坊 DApp 低成本迁移至波卡 PVM(PolkaVM)。
    • 编写 EVM/PVM 双虚拟机兼容文档(含 Storage 合约 ABI 一致性说明)。

三、与 Parity、Web3 基金会的区别

  • Parity(A 选项):波卡底层代码(Substrate/Polkadot 节点)开发团队,不负责文档维护
  • Web3 基金会(B 选项):波卡资金与治理方,拥有文档终审权但不做日常维护
  • PaperMoon(C 选项)文档日常维护+DevRel 执行方,直接面向开发者提供技术支持。

四、一句话总结

PaperMoon 是波卡生态的「官方文档管家+开发者体验工程师」,由 W3F 资助、Parity 协作,独家负责波卡开发者文档的全生命周期维护

需要我把 PaperMoon 的核心贡献、关键项目和联系方式整理成一页速览吗?

07, 在计算密集型智能合约选择时, 单选

A PVM 可以有比EVM更好的效率
B 都一样,通过Solidity代码实现没有区别

答案:A

解析:
PVM(PolkaVM) 基于 RISC-V 架构,专为高性能、计算密集型场景设计,相比 EVM 栈式虚拟机:

  • 运算效率更高、指令执行更高效
  • 复杂计算、大数运算、循环逻辑比 EVM 性能更好

所以计算密集型智能合约,PVM 效率优于 EVM,不是没区别。