---
title: "Origin 的開發過程因狀態不一致和 RPC 錯誤而受阻"
description: "Origin 是一個使用 Ethereum 和 IPFS 的共享經濟市場協議。"
---

# Origin 的開發過程因狀態不一致和 RPC 錯誤而受阻

<ImageBlock
  src="https://media.alchemy.com/1703096803-origin-hero.png"
  alt="Origin Protocol 案例研究主視覺"
  width={2000}
  height={1330}
  priority
/>

<StatsCardDeck
  items={[
    { title: "413K+", description: "Daily queries" },
    { title: "880 Hours", description: "Saved per month" },
    { title: "Zero", description: "Errors" },
  ]}
/>

> Alchemy 很可靠，這對我們工程師來說至關重要。
>
> — Mike Shultz, Origin Developer

## 摘要

和許多區塊鏈團隊一樣，Origin 正在打造一個協定，這個協定仰賴成功將訂單送上區塊鏈，並隨時掌握最新的區塊鏈狀態。

他們過去使用的基礎設施供應商問題不斷，一致性錯誤層出不窮。Origin 後來意識到，他們必須盡快做出決定：要嘛花幾個月時間自行建構相關元件讓系統正常運作，要嘛另尋解決方案。

越早修好基礎設施，就能越早讓工程師不必每天花時間除錯不可靠的資料。如今 Origin 專注於自家協定本身，透過 Alchemy 的新一代基礎設施來查詢區塊鏈，取得可靠的狀態資訊。

## RPC 錯誤與除錯耗費大量時間

Origin 原本使用的是另一家基礎設施供應商，狀態不一致與 RPC 錯誤的問題層出不窮。並非所有請求都送達同步的伺服器。

舉例來說，某個節點回應了請求，但這個節點的區塊高度卻落後於回應另一個請求的節點。這類詭異的狀態問題幾乎無從排查，直到他們找出具體原因之後，才發現這個問題無所不在。

## 狀態不一致以意想不到的方式影響使用者

相較於 RPC 錯誤，狀態不一致的問題除錯起來更加棘手。許多時候，使用者回報問題後，Origin 花時間除錯，結果才發現是節點回傳了錯誤的回應。

舉例來說，Origin 看到某個事件發生，去檢查對應的狀態變化，卻發現狀態根本沒有更新。這種不一致的狀態資訊，意味著終端使用者會看到無效的資料，或是他們的出價、報價根本沒有送上市場。

## 狀態問題大幅減少

Origin 走到了一個必須盡快做決定的時刻——要嘛投入接下來幾個月的時間建構修補方案，例如建置快取層，讓現有的基礎設施能夠運作，要嘛另尋解決方案。

Origin 的 Franck Chastagnol 聽聞 Alchemy 風評相當好，於是說服團隊其他成員一起試用這項新服務。他們先將 Alchemy 導入 Origin 所有的 staging 環境，如今 Origin 所有正式環境的產品都已改用 Alchemy。

> Alchemy 幫 Origin 省下了非常可觀的時間，也讓終端使用者體驗變得更好。
>
> — Franck Chastagnol, Origin

Origin 以前每天都會遇到問題，現在則只是偶爾出現暫時性的狀況。對他們的工程師來說，改用 Alchemy 後最大的優勢，就是各次請求之間的狀態是準確的。狀態的相對一致性原本很難排查，一旦能拿到正確的資料，影響就非常大。終端使用者不再遇到莫名其妙的錯誤，工程師也能把時間花在開發 Origin 本身。

## 高度貼身的客戶支援

如今狀態不一致的問題只是偶爾、暫時性地發生。只要 Origin 遇到問題，詢問 Alchemy 團隊，對方都會迅速回應協助排查。VIP 客戶可以直接聯繫到開發 Alchemy 的工程師。Alchemy 團隊要嘛立即解決問題，要嘛協助 Origin 找出如何修正自家程式碼。

## 實用的開發者工具，用於除錯與警示

除了核心服務之外，Origin 也會查看 Alchemy 的每日分析更新，作為健檢與警示工具，捕捉一些原本可能漏掉的 bug。及早發現這些 bug，能讓他們提前察覺 relayer 或其他依賴項的異常行為，避免問題雪球般越滾越大。

## Alchemy 提供的核心服務是最棒的

Alchemy 幫 Origin 省下了非常可觀的時間，也讓終端使用者體驗變得更好。他們對 Alchemy 支援團隊的回應速度印象深刻，但他們最喜歡的還是 Alchemy 的核心服務。Alchemy 很可靠，這對身為工程師的 Origin 來說至關重要。
