标签 Rust 下的文章

一次 unwrap() 引发的全球宕机:Cloudflare 故障报告背后的 Rust 安全反思

本文永久链接 – https://tonybai.com/2025/11/19/cloudflare-18-november-2025-outage

大家好,我是Tony Bai。

2025 年 11 月 18 日,世界标准时间(UTC) 11:20,支撑着全球大量互联网流量的 Cloudflare 网络开始出现严重故障。无数网站和应用的用户,开始频繁地看到那令人心悸的“Internal Server Error (500)”页面。一场席卷全球的互联网宕机事件,就此拉开序幕。

事后,Cloudflare 发布了一份极其详尽、坦诚的故障复盘报告。报告揭示了一个令人震惊、也极具讽刺意味的事实:这场灾难的最终扳机,竟然是新一代代理引擎FL2 中(这里仅针对文中提及的新引擎FL2,受影响的旧引擎FL文中并未提及具体原因),一段本应代表“内存安全”的 Rust 代码中的 unwrap() 调用。

这起事件,如同一颗投入平静湖面的巨石,激起了关于 Rust 安全模型、系统复杂性、以及“快速失败”哲学的层层涟漪。它迫使我们重新审视一个根本性问题:我们所追求的“内存安全”,真的能让我们高枕无忧吗?

故障的多米诺骨牌:从一个权限变更开始

Cloudflare 的报告清晰地描绘了一条如多米诺骨牌般精准倒下的故障链。令人惊叹的是,这一切的源头,并非黑客攻击,也不是硬件故障,而是一次看似无害的内部变更:

  1. 源头:ClickHouse 数据库权限变更 (11:05 UTC)
    为了提升查询安全性和可靠性,Cloudflare 的工程师对 ClickHouse 数据库集群进行了一次权限变更。

  2. 第一个意外:重复的元数据
    这次变更意外地导致了一个用于生成“特征文件”(feature file) 的元数据查询(SELECT name, type FROM system.columns WHERE table = …)开始返回重复的列名。因为该查询忘记了按数据库名进行过滤,而新的权限让它看到了底层 r0 数据库中的重复表结构。

  3. 第二个意外:配置文件体积翻倍
    这个“特征文件”是 Cloudflare 机器人管理 (Bot Management) 系统机器学习模型的核心输入。由于元数据查询返回了双倍的行数,最终生成的特征文件体积也翻了一倍,从约 60 个特征,激增到了超过 200 个。

  4. 第三个意外:触发预分配内存上限
    为了极致的性能,Cloudflare 的核心代理服务(包括基于 Rust 的新一代引擎 FL2)会在启动时,为机器人管理模块预分配一块固定大小的内存,用于加载这个特征文件。这个预分配的上限被设置为 200 个特征。

  5. 最终扳机:Rust 代码中的 unwrap() 恐慌 (Panic)
    当那个体积翻倍的、包含超过 200 个特征的“毒丸”配置文件,被分发到全球的 FL2 服务器上时,灾难发生了。负责加载特征的 Rust 代码,在尝试将超过 200 个特征塞入预分配的 200 大小的缓冲区时,append_with_names 方法返回了一个 Err 结果。然而,调用这段代码的地方,却简单粗暴地使用了 unwrap()。

    // Cloudflare 报告中展示的 Rust 代码片段
    let (feature_values, _) = features
        .append_with_names(&self.config.feature_names)
        .unwrap(); // <- BOOM!
    

    unwrap() 的行为是:如果结果是 Ok(value),则返回 value;如果结果是 Err(error),则立即让当前线程 panic(恐慌)

  6. 雪崩:5xx 错误与全球宕机
    工作线程的 panic,导致了一个未处理的错误。这个错误迅速向上传播,最终导致核心代理系统无法处理依赖于机器人管理模块的流量,并开始向上游返回大量的 HTTP 5xx 错误。多米诺骨牌全部倒下,全球大范围的互联网服务因此中断。

Rust 安全模型的反思:“内存安全”≠“永不崩溃”

这起事件,是对 Rust 安全模型的一次深刻、也是痛苦的“压力测试”。Rust 最引以为傲的“卖点”——内存安全——在这场灾难中,既是“英雄”,也是“恶棍”。

英雄之处:它精确地阻止了更坏的情况

Rust 在这里所做的一切,完全符合其设计哲学。append_with_names 方法正确地检测到了缓冲区溢出的风险,并通过返回一个 Err,阻止了一次潜在的内存损坏。如果这段代码是用 C++ 编写的,一个类似的错误可能会导致缓冲区溢出、数据损坏、甚至远程代码执行等更严重、更难以追踪的安全漏洞。

Rust 成功地将一个未定义的、危险的内存行为,转化为了一个已定义的、可预测的程序崩溃

恶棍之处:“快速失败”的哲学真的普适吗?

然而,问题恰恰出在 unwrap() 这个“捷径”上。unwrap() 和它的兄弟 expect(),是 Rust “快速失败”(Fail-fast) 哲学的体现。它们背后的假设是:“我相信这种情况永远不会发生,如果发生了,那就是一个程序员无法恢复的、灾难性的逻辑错误,整个程序应该立刻死掉,而不是带着错误的状态继续运行。

Cloudflare 的工程师们,显然也相信“特征文件永远不会超过 200 个”。

这次事件血淋淋地告诉我们:

  1. 在分布式系统中,你所做的“永不发生”的假设,几乎总会在某个时刻、以一种你意想不到的方式被打破。
  2. unwrap() 是一把极其锋利的双刃剑。它在原型开发、测试代码、或处理那些真正代表“程序不变量被破坏”的场景时非常有用。但将其用于处理任何可能由外部输入(即使是内部系统的“外部输入”)而失败的操作,都是在埋下一颗定时炸弹。
  3. Rust 的内存安全,并不能替代全面的错误处理和系统韧性设计。 它只能保证你的程序“死得干净”,而不能保证它“不死”。

更深层次的教训:超越语言的“系统性失败”

将锅完全甩给 Rust 或 unwrap() 是不公平的。这场宕机,是一次典型的、由多个层面小失误共同导致的系统性失败 (Systemic Failure)

  • 数据库查询的脆弱性:那个元数据查询,为何如此脆弱,以至于一次权限变更就能使其输出加倍?它缺乏对数据库名的过滤,这是一个早已存在的隐患。
  • 配置发布的“零校验”:一个体积异常的配置文件,为何能在没有任何校验和告警的情况下,被迅速分发到全球网络?配置发布管道缺乏基本的“理智检查”。
  • 边界条件的“想当然”:为什么预分配的内存上限是 200?这个“魔法数字”背后的假设是什么?当假设被打破时,为什么没有一个优雅的降级方案(如拒绝加载新配置,继续使用旧配置),而是直接崩溃?
  • 故障域的耦合:机器人管理模块的一次“错误”的特征文件生成,为何能导致核心代理的瘫痪,并进一步影响到 Workers KV 和 Access 等看似不相关的服务?这暴露了系统各组件之间过紧的故障耦合。

小结:废墟之上,我们学到了什么?

Cloudflare 的这次全球宕机,为整个软件行业都上了一堂极其昂贵的公开课。对于 Rust 社区而言,它提醒我们,Result<T, E> 和完善的 match 模式,才是处理可恢复错误的王道,而 unwrap() 应该像 unsafe 关键字一样,被审慎地、有意识地使用。

但更重要的是,它告诉我们,没有任何一门语言,无论其内存安全模型多么先进,能够将我们从系统性思考的责任中解救出来。构建可靠的、有韧性的分布式系统,是一项超越任何特定语言的、需要防御性编程、纵深防御、以及对“墨菲定律”抱有永恒敬畏的综合性工程挑战。

Cloudflare 在废墟之上,承诺将“加固配置文件的摄入”、“增加全局熔断开关”、“消除核心转储压垮资源的可能性”。这些,才是比争论“unwrap() 是否邪恶”更有价值的、真正能让我们从这次灾难中变得更强大的教训。

Cloudflare的故障复盘报告:https://blog.cloudflare.com/18-november-2025-outage/


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


想系统学习Go,构建扎实的知识体系?

我的新书《Go语言第一课》是你的首选。源自2.4万人好评的极客时间专栏,内容全面升级,同步至Go 1.24。首发期有专属五折优惠,不到40元即可入手,扫码即可拥有这本300页的Go语言入门宝典,即刻开启你的Go语言高效学习之旅!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

Go 在 Web3 的统治力:2025 年架构与生态综述

本文永久链接 – https://tonybai.com/2025/11/18/go-web3-dominance-overview-2025

大家好,我是Tony Bai。

截至 2025 年末,Go 语言 (Golang) 作为基础设施主导语言 (Infrastructure Dominance Language),在 Web3 生态系统中的地位已然根深蒂固。Go 的架构特性——特别是其内置的并发模型、简单的语法以及继承自云基础设施领域的强大工具链——使其对于运行在链下或核心网络层的、任务关键型、高吞吐量的系统而言,是不可或缺的。

本文旨在系统性地剖析 Go 语言在 Web3 领域的“统治力”从何而来,将向何处去。我们的核心发现证实了 Go 在几个关键领域不可动摇的地位:

  1. 客户端弹性: Go 支撑了以太坊的主要客户端 go-ethereum (Geth),为这个最大的智能合约平台带来了制度性的稳定性。
  2. 应用链架构: Go 通过 Cosmos SDK 主导了模块化和主权链的范式,使其在互操作性的未来中占据中心位置。
  3. 中间件编排: Go 是 API 网关、交易中继器、预言机(Oracle)节点(如 Chainlink, The Graph)以及索引服务的核心“引擎”。

尽管由于其有保证的内存安全性,Rust 在新型高性能 Layer 1 (L1) 运行时的开发中对 Go 构成了挑战,但 Go 卓越的开发速度、成熟的分布式系统库以及更低的企业采用门槛,巩固了其在水平扩展和快速部署方面的持续必要性。

1. 引言:Go 在去中心化系统中的演进

1.1 从 Web1 到 Web3:一个去中心化的演进

在深入探讨 Go 的角色之前,理解 Web3 的历史背景至关重要。互联网的演进大致可分为三个阶段:

  • Web 1.0 (只读网络):以静态 HTML 页面为主,用户主要是信息的消费者。
  • Web 2.0 (读写网络):以社交媒体和用户生成内容为标志,但用户的身份和数据都掌握在中心化平台手中。
  • Web 3.0 (读-写-拥有网络):旨在通过区块链技术,将数据和数字资产的所有权归还给用户。


图来自https://chain.link/education/web3

Go 语言的崛起,恰好与 Web3 从概念走向大规模基础设施建设的阶段相吻合,并在其中扮演了至关重要的角色。

1.2 Go 在区块链 1.0 和 2.0 中的历史足迹

  • 区块链 1.0 (比特币时代):在以比特币为代表的、专注于“点对点电子现金”的时代,Go 并非中心。其参考实现 Bitcoin Core 是用 C++ 编写的。

  • 区块链 2.0 (以太坊时代):以太坊引入了智能合约和通用计算能力,这要求高度可用且稳健的客户端软件。Go 的关键切入点是 go-ethereum (Geth) 项目。Geth 迅速成为以太坊客户端实现的标杆,并凭借其持续的开发势头和稳定性,成为了事实上的标准实现。这一历史基础巩固了 Go 作为以太坊生态系统核心骨干主要工程语言的地位,提供了一层从其早期成功中继承而来的制度性信任与稳定性

2. 剖析“统治力”:我们从哪里寻找答案?

要理解 Go 为何能在 Web3 基础设施领域占据如此重要的地位,我们不能仅仅停留在“Go 很棒”这样的表面结论上。我们需要像剥洋葱一样,层层深入,从不同的维度寻找答案。

在本文的分析中,我们将从三个关键视角出发,来共同构建一幅关于 Go 在 Web3 中角色的全景图:

  1. 审视核心项目与定位 (协议分析):我们将深入到 Web3 世界的“引擎室”,去考察那些用 Go 构建的、具有里程碑意义的核心项目(如以太坊的 Geth 和 Cosmos SDK)。通过分析它们在生态系统中所扮演的角色和解决的核心问题,我们可以找到 Go 语言特性与 Web3 基础设施需求之间最直接的联系。

  2. 审视竞争与权衡 (竞争格局):任何技术选型都是一场权衡。我们将把 Go 放在聚光灯下,与它在系统编程领域最强大的竞争对手——Rust——进行一次坦诚的对比。通过分析它们各自的优势(Go 的并发与开发速度 vs. Rust 的内存安全与绝对性能),我们可以更清晰地理解 Go 在 Web3 生态中所占据的、不可替代的“生态位”。

  3. 放眼未来与趋势 (市场情报):技术的发展离不开市场的驱动。我们将目光投向 Web3 中增长最快的新兴领域,如 DePIN(去中心化物理基础设施网络)和 AI 与 DeFi 的融合,并评估 Go 在这些未来战场上的战略价值和相关性。

通过这三个维度的交叉验证,我们希望能为你揭示 Go 在 Web3 统治力背后,那些不为人知的、深层次的原因。

3. 统治力的基石:Geth 的制度性信任与 Cosmos 的生态扩张

3.1 核心客户端弹性与制度性信任

以太坊网络的稳定性直接取决于其客户端实现的弹性,其中 Geth 仍然至关重要。目前构建 Geth 需要 Go 1.23 或更高版本。Geth 项目提供的全面工具套件,展示了 Go 在管理和维护以太坊虚拟状态方面的深度和活跃角色。

Geth 的持续成功,为 Go 语言带来了高度的制度性信任。随着机构投资者和受监管实体进入加密货币领域,依赖一种成熟的、企业友好的、驱动核心 L1 客户端的语言(Go)成为了一项关键的战略选择。

背景知识:区块链分层 (Layers)

为了理解 Go 的生态位,我们需要了解区块链的分层结构:

  • Layer 1 (L1):基础层,即区块链本身(如以太坊、比特币)。它负责网络的安全和最终的交易确认,但通常速度较慢、费用较高。
  • Layer 2 (L2):构建在 L1 之上的扩展层(如 Arbitrum, Optimism)。它们通过将大部分计算和交易移至链下处理,来提高速度、降低费用,同时将其安全性锚定在 L1 上。
  • Layer 3 (L3):应用层,通常构建在 L2 之上,为特定应用提供更定制化的功能。

尽管 L2 现在承载了以太坊大部分的经济活动,但连接这些 L2 回到 L1 安全层的基础通信、排序和桥接基础设施,频繁地依赖于 Go。这是因为 Go 在处理可靠的跨层通信所需的高吞吐量网络编排方面非常有效。

3.2 Cosmos 生态系统:Go 的应用链策略

Go 在通过 Cosmos 生态系统开创“区块链互联网”愿景方面,找到了第二个同样关键的专业领域。

Cosmos SDK 是一个完全用 Go 编写的开源框架,使开发者能够构建自定义的、主权的“应用链”(app-chains)。Go 为 Cosmos 生态系统提供了模块化的骨干,特别是至关重要的跨链通信 (Inter-Blockchain Communication, IBC) 模块。随着行业对互操作性的需求日益增长,Go 已然成为在 EVM 环境之外,扩展模块化、多链生态系统的主要载体。

3.3 成熟的工具链与企业并发之桥

Go 从云和分布式系统架构成熟过程中(以 Docker 和 etcd 等项目为代表)锻造出的、成熟而广泛的生态系统中获益匪浅。这为 Web3 项目提供了稳健的、企业级的链下后端需求工具。

Go 的简单并发模型和可读语法,为从传统企业后端转向专业 Web3 基础设施角色的开发者,创造了摩擦力最低的桥梁。企业可以无缝地将在通用 IT 领域积累的 Go 人才和代码库,转移到专业的 Web3 中间件、内部节点和 API 层,从而极大地加速了机构的采用。

4. 统治力的体现:Go 在网络层、中间件与新兴领域的架构优势

4.1 基础设施:网络节点层

Go 在 Web3 中的根本优势在于其对 P2P 网络通信的稳健和高效处理,这主要归功于其原生的并发特性——Goroutines。在 Geth 中,服务器为每个连接的对等节点创建一个独立的、廉价的 goroutine,并发地处理所有网络交互,从而确保了高吞吐量和稳定性。

架构权衡:Go 的自动内存管理(垃圾回收, GC)简化了开发,但也可能引入延迟。Go 团队持续专注于 GC 的优化,例如 Go 1.25 中引入的 “Green Tea” 算法,就是为了在高并发应用中提供可预测的、低延迟的 GC。Go 与 Rust 的选择,通常是可预测的吞吐量 (Go) 与绝对的峰值速度 (Rust) 之间的权衡。

4.2 中间件:API 网关与数据编排

Go 是所有关键链下基础设施久经考验的“引擎”,包括 API 平台、交易中继器、监控代理等。特别是对于预言机 (Oracle) 和索引 (Indexing) 基础设施,Go 的能力至关重要:

  • The Graph: 其索引基础设施的核心组件,使用非常适合 Go 架构的分布式系统范式构建。
  • Chainlink: 其节点在其网络栈和数据处理管道中广泛使用 Go,以实现与外部数据源的高度并发交互。

AI-DeFi 的交汇点

一个主要趋势是将人工智能(AI)积极整合到 DeFi 中。这些 AI 智能体需要一个高并发的“大脑”来处理实时数据流并执行交易。Go 在数据编排方面的既有主导地位,战略性地使其成为托管和管理这些高频 AI 智能体的主要运行时环境。

4.3 新兴应用:DePIN

去中心化物理基础设施网络 (DePIN) 领域预计将经历急剧增长。DePIN 的架构要求——高效的网络通信、大规模分布式节点的管理、简化的运维——与 Go 语言在云原生领域(Kubernetes)所解决的问题几乎完全相同。因此,预计 Go 将成为 DePIN 项目复杂网络层的默认语言。

5. 竞争格局:Go vs. 竞争语言

5.1 Go vs. Rust:基础设施之争

Go 与 Rust 的竞争,定义了 Web3 基础设施的架构决策。这不是“好”与“坏”的选择,而是基于关键需求的抉择:部署速度和简单性 (Go) vs. 绝对的安全和性能 (Rust)

这场竞争导致了明确的市场细分:

  • Rust 正在L1 核心运行时开发领域获得主导地位,在这些领域,有保证的内存安全是不可协商的。
  • Go 则在L1/L2 客户端维护和 L2/L3 中间件领域保持主导地位。

最具战略优势的技术栈,会结合使用这两种语言:Rust 用于最深层的、安全关键的层面,而 Go 用于更广泛的、提供可扩展性和可访问性的高并发分布式系统封装层。

表1:Go vs. Rust 架构权衡对比分析

5.2 Go vs. Solidity/EVM 语言

Go 和 Solidity 并非竞争关系,它们在技术栈中占据不同的功能空间。Solidity 是用于创建链上逻辑的专门语言。Go 的价值在于,通过 Geth 生态系统中的 abigen 等工具,能够生成类型安全的 Go 绑定,实现 Go 链下服务与已部署合约逻辑之间稳健、安全的通信。

6. 结论与战略展望

6.1 “统治力”的根源与未来

Go 在 Web3 生态系统中的地位,由基础设施领域的深耕与战略性扩张所定义。它的“统治力”,并非偶然,而是其核心架构优势——成熟的高吞吐量并发模型和企业友好的简单性——在 Web3 场景下的必然体现。

在核心以太坊客户端维护方面的持续投入,以及在模块化应用链范式(Cosmos SDK)中对 Go 的战略选择,都展示了其韧性。此外,其在 DePIN 和 AI 编排等新兴高增长领域的直接适用性,保证了其持续的相关性。对于优先考虑水平可扩展性、快速部署和稳定网络运营的工程师来说,Go 仍然是最务实的选择。

6.2 技术选型战略性建议 (2026+)

  • 优先选择 Go 以实现连接与扩展: 所有 Web3 基础设施层,如 API 网关、数据索引服务、交易中继器等,应继续锚定在 Go 上。
  • 拥抱架构细分: 认识到最优的技术栈可能是混合的。构建新 L1 核心运行时应审慎评估 Rust,而外部工具和网络层应默认选择 Go。
  • 利用 Go 开展应用链计划: 对于希望推出自定义主权链的企业,用 Go 编写的 Cosmos SDK 提供了最快、最稳健的路径。
  • 缓解 GC 延迟: 在低延迟环境中运行的 Go 服务,利用诸如 Go 1.25+ 改进的 GC 功能,并采用全面的性能分析来最小化延迟峰值。

表2:Go 在 Web3 子领域的预测势头 (2026 – 2028)

6.3 关于 Go 长期轨迹的最终预测

Go 在去中心化经济中的长期轨迹,并非由赢得 L1 共识层之战来定义,而是由主导集成和扩展层来定义。随着 Web3 范式进一步向模块化、应用特定 rollups 以及物理基础设施的整合转变,对高吞吐量、并发和易于部署的连接组织的需求将加剧。Go 仍将是分布式系统工程师的默认、务实选择,确保其在未来很长一段时间内,作为 Web3 基础设施关键基础的持续地位。

注:Rollup 是一种 Layer 2 扩展技术。它的基本工作原理是将成百上千笔交易在链下 (off-chain) 执行和“打包”(roll up),然后只将一个压缩后的、证明这些交易有效性的数据摘要,提交回到底层的 Layer 1(如以太坊)上。这样做极大地降低了 L1 的负担,从而实现了更快、更便宜的交易。

注:本文借助AI大模型的联网搜索获取和整理相关最新资料(见参考资料列表)。

参考资料

  1. Go implementation of the Ethereum protocol - GitHub, https://github.com/ethereum/go-ethereum
  2. Exploring Cosmos SDK for Web3 Development, https://hashtagweb3.com/exploring-cosmos-sdk-for-web3-development
  3. The Future of Blockchain: Trends We Expect in 2025 and Beyond, https://londonblockchain.net/blog/blockchain-in-action/the-future-of-blockchain-trends-we-expect-in-2025-and-beyond/
  4. Best Web3 Programming Languages in 2025 - Alchemy, https://www.alchemy.com/overviews/web3-programming-languages
  5. Chainlink Quarterly Review: Q3 2025, https://blog.chain.link/quarterly-review-q3-2025/
  6. Edge & Node’s October / November 2025 Update - The Graph Forum, https://forum.thegraph.com/t/edge-nodes-october-november-2025-update/6752
  7. Rust vs Go — What to choose while developing a blockchain app - Litslink, https://litslink.com/blog/rust-vs-go-for-blockchain
  8. Rust vs Go: Which one to choose in 2025 | The RustRover Blog, https://blog.jetbrains.com/rust/2025/06/12/rust-vs-go/
  9. avelino/awesome-go: A curated list of awesome Go frameworks, libraries and software - GitHub, https://github.com/avelino/awesome-go
  10. State of Crypto 2025: The year crypto went mainstream, https://a16zcrypto.com/posts/article/state-of-crypto-report-2025/
  11. What are the key DeFi trends to look out for in Q4 2025? - AMBCrypto, https://eng.ambcrypto.com/what-are-the-key-defi-trends-to-look-out-for-in-q4-2025/
  12. What is the history of blockchain? - Avalanche Support, https://support.avax.network/en/articles/4587339-what-is-the-history-of-blockchain
  13. Blockchain 1.0 Definition - CoinMarketCap, https://coinmarketcap.com/academy/glossary/blockchain-1-0
  14. Chapter 3: Ethereum Clients · GitBook, https://cypherpunks-core.github.io/ethereumbook/03clients.html
  15. Why Golang was chosen to implement ethereum protocol?, https://ethereum.stackexchange.com/questions/155183/why-golang-was-chosen-to-implement-ethereum-protocol
  16. Charting Crypto Q4 2025: Navigating Uncertainty | Coinbase Institutional, https://www.coinbase.com/en-gb/institutional/research-insights/research/insights-reports/charting-crypto-q4-2025
  17. It’s survey time! How has Go has been working out for you? - The Go …, https://go.dev/blog/survey2025-announce
  18. I have written a short writeup of how geth’s network processing works and I’m looking for someone to verify that it is indeed correct - Ethereum Magicians, https://ethereum-magicians.org/t/i-have-written-a-short-writeup-of-how-geths-network-processing-works-and-im-looking-for-someone-to-verify-that-it-is-indeed-correct/8994
  19. Learn | Explore the SDK - Cosmos SDK, https://docs.cosmos.network/v0.50/learn
  20. Why is infrastructure mostly built on go?? : r/golang - Reddit, https://www.reddit.com/r/golang/comments/1eg8l9m/why_is_infrastructure_mostly_built_on_go/
  21. What “mature” Go libraries/frameworks are available that companies can put their trust in? : r/golang - Reddit, https://www.reddit.com/r/golang/comments/7r9aof/what_mature_go_librariesframeworks_are_available/
  22. Expert Predictions About Cryptocurrency: What to expect in 2025 and Beyond, https://cryptoresearch.report/crypto-research/expert-predictions-about-cryptocurrency-what-to-expect-in-2025-and-beyond/
  23. Choosing the Right Language for Web3: Solidity vs Rust vs Go - GeeksforGeeks, https://www.geeksforgeeks.org/solidity/choosing-the-right-language-for-web3-solidity-vs-rust-vs-go/
  24. Golang vs Rust: Which Language Wins for Backend in 2025? - Netguru, https://www.netguru.com/blog/golang-vs-rust
  25. The Hidden Trade-offs of Go: Understanding Its Limitations | by Charles Wan - Medium, https://charleswan111.medium.com/the-hidden-trade-offs-of-go-understanding-its-limitations-6107ab2ce387
  26. Tracing Go’s Garbage Collection Journey: Reference Counting, Tri-Color, and Beyond, https://hackernoon.com/tracing-gos-garbage-collection-journey-reference-counting-tri-color-and-beyond
  27. Blockchain Dev Tools Guide: Best IDEs, SDKs & APIs for 2025 - Webisoft, https://webisoft.com/articles/blockchain-development-tools/
  28. The Ultimate Tech Stack for Blockchain Developers in 2025 | by Kelley Kinney - Medium, https://medium.com/@kelleymj/the-ultimate-tech-stack-for-blockchain-developers-in-2025-5b16c79390ec
  29. (DePIN): A Comprehensive Guide | 2024 - Rapid Innovation, https://www.rapidinnovation.io/post/depin-the-ultimate-guide-to-decentralized-physical-infrastructure-networks
  30. Solidity vs Rust vs Go: The Best Programming Language for Blockchain Development, https://www.codezeros.com/solidity-vs-rust-vs-go-the-best-programming-language-for-blockchain-development

你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


想系统学习Go,构建扎实的知识体系?

我的新书《Go语言第一课》是你的首选。源自2.4万人好评的极客时间专栏,内容全面升级,同步至Go 1.24。首发期有专属五折优惠,不到40元即可入手,扫码即可拥有这本300页的Go语言入门宝典,即刻开启你的Go语言高效学习之旅!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 AI原生开发工作流实战 Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats