---
title: "如何快速发现 dapp 中的问题并在影响用户前部署修复"
description: "了解工程师在监控 dapp 健康状况时面临的挑战与解决方案"
---

# 如何快速发现 dapp 中的问题并在影响用户前部署修复

在[去中心化应用不断变化的世界](https://www.alchemy.com/dapps)中，快速识别和解决问题对于保持流畅的用户体验、建立客户信任至关重要。

关键在于通过数据驱动的工程方法，将传统的被动式故障排查转变为对[应用](https://www.alchemy.com/dapps/top/defi-dapps)的主动式健康管理。

## **Web3 中的数据驱动工程有何独特之处？**

数据驱动工程指的是基于确切数据而非猜测或直觉做出决策。数据驱动工程使工程团队能够在问题影响终端用户之前对其进行预测、理解和解决。

### **Web3 中数据驱动工程面临哪些挑战？**

尽管数据驱动工程潜力巨大，但目前许多 Web3 开发者仍处于被动模式，原因包括缺乏合适的工具、Web3 本身的复杂性，以及区块链行业 24/7 运转的特点。

#### **1. 缺乏 Web3 可观测性工具**

由于缺乏有效的 Web3 专用监控工具，问题往往在开始影响终端用户之后才被发现，导致团队仓促部署修复方案。Web3 开发者常常为了解决当前问题而牺牲安宁和睡眠，这会带来一系列连锁影响：

1. 用户体验变差
1. 开发者持续处于高压、高风险的场景中
1. 问题疲劳威胁着 dapp 的整体成功

#### **2. 传统工具无法覆盖 Web3 的复杂性**

此外，传统分析工具虽然在其他领域表现出色，却往往无法满足 Web3 的独特需求，这使情况更加严重。

这些工具无法捕捉开发者在去中心化环境中预测和缓解问题所需的数据深度和广度。

从用户交互到智能合约执行，再到代币转账，Web3 的世界需要能够处理其多层复杂性的监控和分析手段。

### **数据驱动工程工具有哪些优势？**

数据驱动工程工具的三大优势是：主动式问题管理、性能优化，以及帮助工程师做出更明智的决策。

#### **1. 主动式问题管理**

实时数据有助于及早发现潜在问题，并在其影响用户之前加以缓解。可以及早发现的潜在问题包括从性能瓶颈到异常用户行为等各类情况。

一些例子包括：

- 高峰时段触及 API 用量限制
- 所用节点失去同步
- 第三方服务提供商不可用
- 区块链拥堵
- 部署到生产环境的前端 bug 导致交易失败
- 检测到试图与你的智能合约交互的恶意行为者

一个真实案例是，某个 dapp 将功能更新部署到生产环境后，导致失败交易大幅增加，用户支付了 gas 费用却无法成功执行交易。

在收到这一异常激增的告警后，工程团队迅速找到了根本原因：dapp 前端存在一个 bug，它在调用某个智能合约函数时传入了一个硬编码参数，该参数持续触发了该函数中的一条 revert 语句。

由于该 revert 语句未包含说明性的 revert 原因，如果没有可观测性工具，找到根本原因将会影响更多用户。

#### **2. 性能优化**

分析数据有助于识别瓶颈和低效环节，从而优化性能、改善用户体验。此类性能问题包括智能合约执行缓慢、oracle 延迟问题、资源利用效率低下，以及[整个 Web3 技术栈](https://www.alchemy.com/overviews/web3-stack)中的互操作性问题。

在一个具体案例中，某开发团队使用 Blocktorch 发现了 dapp 中一个反复出现的低效问题：某个智能合约由于结构复杂，导致 gas 费用高于正常水平。

有了这一信息，该 dapp 的开发者得以重构该智能合约，精简其执行逻辑，显著降低了 gas 费用。这一效率提升不仅增强了其 dapp 的性能，也为用户节省了成本、改善了用户体验。这一案例说明，数据驱动的洞察能够带来实实在在的收益，并在 Web3 领域形成竞争优势。

#### **3. 明智决策**

团队可以利用从数据中获得的洞察，在功能开发、资源分配和系统改进方面做出更好的决策。

可观测性让团队能够看清用户如何与 dapp 的不同功能交互，以及使用趋势随时间的变化。举例来说，这类信息可以是用户使用某些链的频率明显高于其他链（为获得最佳用户体验，应确保将 dapp 中最常用的链设为默认链），也可以将这些信息与竞品应用进行比较。

另一个例子是针对越来越多用户使用的特定浏览器或钱包优化支持。

<VideoCta
  title="查看 Alchemy 控制台的实际效果"
  description="30 分钟引导式演示：现场演示控制台中的每一款工具。"
  ctaHref="/resources/dashboard-demo"
  thumbnail={{
    src: "https://media.alchemy.com/alchemy-dashboard-demo-thumbnail.png",
    alt: "Alchemy Dashboard Demo",
  }}
/>
 

## **帮助监控 Web3 工程问题的 3 款工具**

要让 Web3 工程团队更加数据驱动，引入能提供可观测性和深入数据分析的工具至关重要。以下是一些能帮助 Web3 工程师深入监控和观测其应用的工具。

### **1. Alchemy Monitor**

[Alchemy Monitor](https://www.alchemy.com/monitor) 提供了一整套仪表盘，用于监控和分析，帮助了解 dapp 用户行为以及 Alchemy API 的健康状况和性能表现。

Monitor 允许 dapp 开发者按调用类型评估其 API 使用情况分析，从而更好地了解如何优化和调试其程序。它还提供了一个平台，用于创建关于应用活动的告警和摘要。

### **2. Blocktorch**

[Blocktorch](https://www.blocktorch.xyz/) 是 Alchemy Ventures 投资组合中的一家公司，为区块链开发者提供端到端的应用洞察。作为面向 Web3 应用的全栈监控平台，Blocktorch 提供了无与伦比的广度和深度洞察，涵盖前端、区块链交易、智能合约性能，以及 Web3 技术栈的每一层。

Blocktorch 使工程团队不仅能对实时数据做出反应，还能预判潜在问题。他们通过识别模式、发现异常，并以简单易懂的形式呈现这些洞察，将主动式管理提升到了新的高度。

这使团队不仅能全面理解其 dapp 的整体健康状况，还能据此做出明智决策，快速部署修复方案。

### **3. Tenderly**

[Tenderly](https://www.alchemy.com/dapps/tenderly) 是一款智能合约开发者工具，用于从开发到落地各阶段构建、测试、监控和运维智能合约。这套工具支持工程师在部署到主网之前，使用强大的交易模拟器彻底测试其智能合约，并通过定位导致问题的智能合约具体代码行，来识别生产环境中的问题。

## **选择 Web3 监控工具前需考虑的 5 个因素**

在为你的去中心化应用选择 Web3 可观测性和监控工具时，需考虑以下因素：覆盖范围、实时告警、数据解读、可扩展性，以及与其他提供商的集成能力。

### **1. 全面覆盖**

该工具应能提供对 Web3 技术栈每一层的洞察，从用户交互到智能合约执行。Blocktorch 让工程师能够查看其应用的前端、工程团队开发的智能合约、以及所集成的其他协议，还能按需查看所使用的 oracle 和去中心化文件存储。

此外，Blocktorch 与 Web2 数据标准 OpenTelemetry 具有互操作性，可以在应用仅部分去中心化、仍依赖云服务的情况下，与任何 Web2 可观测性工具配合使用。

### **2. 实时告警**

该工具应能针对潜在问题提供实时告警，使团队能在问题升级之前予以纠正。以下是 Web3 工程师最常设置的一些告警：

- mempool 中交易的平均等待时间
- 交易被丢弃和失败的比例
- 使用量突然下降，可能预示功能存在故障
- gas 费用飙升，尤其是相对于整体网络 gas 成本而言

上述所有示例都会直接影响用户：要么使用 dapp 的成本上升，促使用户寻找更便宜的替代方案；要么用户在使用 dapp 时遇到问题，导致用户流失。

### **3. 易于解读数据**

寻找能提供易于理解的数据可视化和可操作洞察的工具。

开箱即用的仪表盘能在很短时间内提供洞察，自定义仪表盘则让工程师能够灵活地按团队需求精确监控。理想的工具应两者兼备。仪表盘提供系统的全局视角，帮助了解趋势、峰值和存活状态，进而深入分析。

### 4. 可扩展性

随着你的 dapp 不断成长，监控工具应能无缝扩展。例如，如果你的 dapp 新增了对某条区块链网络的支持，你的监控工具也应能相应扩展到该新链。

该工具及其定价层级本身也应具备可扩展性，以便在你的 dapp 使用量增长时，实时功能依然能正常运作。

### **5. 集成能力**

该工具应能与团队所使用的其他工具和服务顺畅集成。例如，与用于智能合约部署的 IDE 集成，以及与提供节点和其他服务的 API 提供商集成，都有助于打造流畅的可观测性体验，并获取最丰富的数据。

## **结论**

采用数据驱动的方法，对 Web3 工程团队交付流畅的用户体验而言至关重要。像 Alchemy 和 Blocktorch 这样的工具，凭借其先进的可观测性功能，在帮助团队快速识别和纠正问题方面发挥着关键作用。
