服务端2月20日 23:54
什么是以太坊账户模型?EOA和合约账户有什么区别?以太坊用账户模型追踪状态,每个账户有唯一地址和关联状态。账户分两种:**EOA(外部拥有账户)**和**合约账户**。
EOA 由私钥控制,用户通过钱包管理,能主动发起交易、转账 ETH、调用合约,但不能存储代码。合约账户由部署的智能合约代码控制,不能主动发起交易,只能被 EOA 或其他合约调用后执行逻辑,可以存数据、跑代码。
核心区别看三个维度:
- **控制权**:EOA 看私钥,合约账户看代码
- **主动性**:EOA 能发起交易,合约账户只能被动响应
- **代码能力**:EOA 没有代码,合约账户有字节码和存储
每个账户都包含四个字段:**nonce**(EOA 是交易...服务端2月21日 01:05
以太坊Layer 2和Gas优化如何提升性能?以太坊主网 TPS 大约 15,一笔简单转账在拥堵时 gas 费能到几十美元。性能优化就两条路:Layer 2 把交易搬到链下,单笔成本降 90%+;Gas 优化从合约层面砍掉不必要的链上操作,一笔交易省几千到几万 gas。
## Layer 2 扩容方案
核心思路:不让每笔交易都占主网。Rollup 把几百笔交易打包提交一个状态根,主网只验证这根"摘要"。
### Optimistic Rollup
假设交易都合法,批量提交后开放 7 天挑战期。有人觉得有假交易就提交欺诈证明,证明成立则回滚。Arbitrum(TVL 超 150 亿美元)和 Optimism 是这个赛道的头部。...服务端2月20日 23:51
以太坊智能合约常见安全漏洞有哪些?重入攻击怎么防?以太坊智能合约部署后不可修改,安全漏洞直接等于资金损失。最经典的例子是 2016 年 The DAO 事件——重入攻击一次就卷走 6000 万美元,直接导致以太坊硬分叉。2025 年的数据显示,重入攻击造成的损失仍高达 3570 万美元,说明这个老漏洞至今没被完全堵住。
下面按"最致命 → 最容易被忽略"的顺序,逐个讲清楚。
## 重入攻击(Reentrancy)
**一句话**:合约在更新状态之前就把 ETH 发出去了,攻击者利用 fallback 函数递归调用,反复提款。
**漏洞代码**:
```solidity
function withdraw(uint256 amou...服务端2月19日 21:50
如何从 Webpack 迁移到 Rspack?Rspack 是字节跳动开源的基于 Rust 的高性能构建工具,从设计之初就以 Webpack 兼容性为核心目标。Rspack 1.0 已于 2024 年 10 月正式发布,到 2026 年已成为生产就绪的 Webpack 替代方案,在大型项目中可实现 5-10 倍的构建速度提升。以下是完整的迁移路径和关键要点。
## 核心答案
**Rspack 与 Webpack 的配置兼容性约 95%**,大多数项目可在 1-2 天内完成迁移。迁移的核心步骤:替换依赖 → 重命名配置文件 → 更新构建脚本 → 修复不兼容项 → 验证构建产物一致性。Yelp 等公司的实际迁移案例显示,迁移后构建时...服务端2月20日 14:37
React 迁移 Qwik 完全指南:渐进式策略与实战踩坑React 和 Qwik 表面相似——都用 JSX、都有组件、都支持 TypeScript。但打开 DevTools 就会看到本质差异:同一个中等页面,React SSR 首次交互需要加载 40-100KB 的 JavaScript,Qwik 只需 1-2KB。差距来自一个架构选择:React 用 hydration 重建页面,Qwik 用 resumability 接着跑。
这篇文章把 React 迁移 Qwik 拆成五个阶段,每个阶段对照核心 API、解释设计差异、指出踩坑点。读完你能拿到一条可执行的迁移路线,而不是一堆代码片段。
## 为什么 React 的 Hydration...服务端2月20日 19:20
YAML 反序列化漏洞为什么危险?真实攻击案例与防御方法YAML 反序列化漏洞不是理论风险。2022 年曝光的 CVE-2022-1471 让整个 Java 生态紧张——SnakeYAML 在 2.0 之前的所有版本都可能被一行 YAML 执行任意代码。Python 那边也没好到哪去,PyYAML 的 `yaml.load()` 在 5.1 之前默认允许实例化任意 Python 对象。
这篇文章把 YAML 最危险的安全风险、真实攻击手法、以及每个语言该用的防御方案讲清楚。
## 最危险的风险:反序列化远程代码执行
YAML 规范允许在文档中使用类型标签(tag),比如 `!!python/object/apply:os.system`...服务端2月20日 19:17
YAML 锚点和别名是什么?如何避免重复配置?YAML 锚点(`&`)给一个节点打标签,别名(`*`)引用标签指向的内容,合并键(`<<:`)把锚点里的键值对铺开到当前映射——三个符号组成 YAML 内置的 DRY 机制,在 Docker Compose、GitLab CI、Kubernetes 配置里到处都在用。
语法就三条:
- `&anchor_name` — 打标记,写在值后面
- `*anchor_name` — 引用,完整复制那个值
- `<<: *anchor_name` — 合并,把映射里的键值对铺进当前位置
```yaml
defaults: &defaults
timeout: 30
retry: 3...服务端2月20日 19:15
YAML 是什么?语法规则和常见踩坑一次讲清YAML 是 Kubernetes、Docker Compose、GitHub Actions 这些工具的配置文件格式——如果你在做云原生或 DevOps,YAML 几乎天天写。但它有个让人又爱又恨的特点:语法看起来简单,踩坑却一个接一个。
## YAML 是什么
YAML 全称"YAML Ain't Markup Language"(递归缩写,故意这么玩的),是一种面向人类的数据序列化格式。和 JSON、XML 一样,它用来表示结构化数据,但设计目标很明确:让人能直接读和写。
一句话区分:JSON 是给机器看的,YAML 是给人看的。
## YAML 的三种数据结构
所有 Y...服务端2月20日 19:16
YAML 缩进规则有哪些?Tab 和空格混用为什么会报错?YAML 用缩进表示层级关系,这是它和 JSON/XML 最大的区别——缩进不是排版,是语法。三条核心规则:只能用空格不能用 Tab、同一层级的元素缩进量必须一致、子级比父级多缩进即可(通常 2 个空格)。违反任何一条,解析器直接报错,不会像 Python 那样给你模糊的提示。
## 追问
### 为什么 YAML 禁止 Tab?
YAML 规范明确规定 Tab 不能用于缩进。原因是 Tab 的显示宽度在不同编辑器中不一致(有的算 4 格,有的算 8 格),解析器无法判断两个 Tab 等价于几个空格,索性禁止。实际踩坑:从网页或文档复制配置时,经常会带入隐藏的 Tab 字符,导致排...服务端2月20日 19:15
YAML 有哪些数据类型?最容易踩的坑是什么?YAML 的数据类型分三大类:标量(字符串、数字、布尔、空值)、序列(列表)、映射(键值对)。解析器会根据值的书写格式自动推断类型,但也支持用 `!!标签` 显式指定。
字符串最灵活:默认不需要引号,但含特殊字符时必须加引号。单引号不转义('Hello\nWorld' 输出原样),双引号会转义("Hello\nWorld" 输出换行)。多行文本用 `|` 保留换行,用 `>` 折叠成一行。
数字支持整数(十进制、`0o` 八进制、`0x` 十六进制)、浮点数和科学计数法(`1.23e4`)。
布尔值有三个等价组:`true/yes/on` 和 `false/no/off`。这是 Y...