閱讀時間 5 分鐘
概覽
一款名為 Farcaster 的新型去中心化社交網路,正因其整合的 Web3 架構以及獨具巧思的應用程式內體驗而逐漸受到關注。Farcaster 建構於以太坊之上,讓使用者能夠建立公開的社交個人檔案與社群,藉此與他人互動。
在這份指南中,您將進一步了解 Farcaster、其設計理念,以及它與 Meta 和 X 等其他社交網路的比較。讓我們開始吧!
想看影片教學嗎?請跟著這段影片一起了解 Farcaster 及其架構。
您將負責的工作內容
- 了解Farcaster
- 掌握 Farcaster 架構的基礎知識
- 了解「Hubs」以及 Farcaster 上資料的儲存方式
您需要準備的物品
什麼是 Farcaster?
Farcaster 是一個創新、開源且去中心化的社交網路平台,其與 Meta 或 X 等中心化社交網路的區別在於,它賦予使用者對自身資料的完全控制權。與這些保留使用者資料所有權的中心化平台不同,Farcaster 賦予使用者直接擁有資料的所有權。
雖然 Farcaster 與傳統社交網路有相似之處,但它引進了新的術語:
| 《Farcaster》詞彙表 | 對應的常見社群媒體術語 |
|---|---|
| 演員陣容 | 貼文 |
| 頻道 | 群組 |
| 框架 | 網路應用程式 |
關於 Farcaster 的重點包括:
-
它作為一個標準的社交網路平台運作,讓使用者能夠:
- 建立帳戶
- 分享內容
- 與他人分享的內容互動
這些功能符合人們對社交網路的一般期待。然而,Farcaster 透過以下這些整合的 Web3 功能脫穎而出:
- 建立 Farcaster 帳戶需提供一個以太坊(EVM)地址。此地址將與您的帳戶綁定,並用於簽署訊息及將其發佈至 Farcaster 協定上(有別於傳統的用戶名/密碼方式)。任何被識別為貼文、回覆、追蹤等活動的訊息,
- 使用者帳戶資料(例如個人檔案詳情)儲存於鏈上。此操作是透過部署在 Optimism 主網上的智慧合約(例如 Id Registry)來實現。其他資料(例如 Casts 等)則儲存於鏈下,位於 Farcaster 名為 Hubs 的儲存網路中。
- 使用者名稱可透過 ENS 在鏈上進行管理,確保使用者對自身身分擁有主權;相較之下,中心化實體則可隨意撤銷使用者名稱。任何人都可以呼叫 ENSRegistry 合約,將使用者名稱解析至其託管地址。
- 使用者可以在貼文中建立並嵌入去中心化應用程式(例如:鑄造 NFT 按鈕、一鍵 DAO 投票等)。 - 使用者可以在貼文中建立並嵌入去中心化應用程式(例如:鑄造 NFT 按鈕、一鍵 DAO 投票等)。這些被稱為「框架」(Frames),且必須符合 OpenGraph 規範,才能在 Cast 中正確顯示。 目前已有其他開發者建置的熱門 Frame 包括@cookies——他們透過 Coinbase Commerce 打造了無縫結帳體驗;以及 $DEGEN——這是一種透過 BASE 鏈空投給 Farcaster 社群的 ERC-20 代幣。
- 由於沒有單一實體擁有底層數據,這意味著任何擁有 Farcaster 帳戶的人都能運行 Farcaster 節點(亦稱 Hub),並讀取/寫入數據。
Farcaster 的獨特功能由以下內容提供支援:
- 特定的智慧合約,每個皆執行不同的功能,以促進去中心化的體驗
- 「樞紐」(Hubs)指的是用於儲存及提供 Farcaster 資料的開源、去中心化、分散式點對點節點
Farcaster 架構
如前所述,Farcaster 會將部分資料(例如帳號建立紀錄)儲存於鏈上,而其他資料(例如 Casts)則儲存於稱為「樞紐」(Hubs)的節點中。
以下是整體概覽:

讓我們進一步深入探討所使用的智慧合約。
Farcaster 運用三個智慧合約(部署於 Optimism 主網)來促進鏈上操作:
- ID 註冊處 - 此身分識別註冊合約允許使用者進行帳戶註冊、轉移及復原。它與一個
fId,該地址與建立帳戶時所使用的以太坊地址相關聯 - 儲存登記處— 儲存登記處合約負責追蹤帳戶及其儲存租金。這筆租金即使用者在建立帳戶時所支付的費用,並用於其在 Farcaster 網路上的各項互動(例如:發送訊息、回覆)。
- 金鑰登錄處— 金鑰登錄處合約負責追蹤已為應用程式註冊的金鑰。這決定了應用程式是否能代表使用者執行相關操作(例如:發文、追蹤)
若要進一步了解各智慧合約的功能詳情,請參閱相關文件,並在此處查看原始碼。
樞紐
儲存並提供 Farcaster 資料的節點網路稱為「Hubs」。這個分散式、點對點的節點網路會儲存並驗證 Farcaster 的完整狀態(包含鏈上與鏈下資料),並透過相互通訊來確保 Farcaster 的狀態始終保持最新。
由於 Farcaster 是開源的,任何使用者都能運行自己的 Hub,並透過 API 讀取/寫入 Farcaster 中的資料。目前已實現的 Hub 包括Hubble(以 Rust 和 TypeScript 編寫)。讓我們先深入探討儲存機制及其運作方式;接著,我們將深入探討訊息的生命週期,以及訊息如何在 Hub 上進行驗證與儲存。
儲存
一個帳號若要在 Farcaster 網路中進行互動,必須先支付租金。這通常是一年一次的費用,涵蓋該帳號可能進行的所有活動,例如發文、回覆、追蹤他人等。
每種訊息都會被分配一定的「租期」,一旦「租期」總量被超過,任何在此之後發布的訊息都會導致最舊的訊息被(由 Hub)刪除。由於 Hub 會進行刪除並控制網路負載,因此當「租期」被超過後,使用者仍可繼續使用 Farcaster 協定。
現在,讓我們來談談訊息,以及它們是如何儲存在 Hub 上的。
訊息生命週期
Hub 的同步流程包含兩個階段—— 八卦 以及 diff 同步。讓我們概述它在 Hubs 上儲存/提供資料的生命週期中是如何被使用的:
- 一個帳號會透過簽署訊息來建立互動(例如:Cast、React、Link)
- 該訊息會儲存於 Hub 上,並經過驗證(例如:簽名是否有效?是否符合 Cast 的要求?)
- 系統會(以非同步方式)檢查該訊息是否存在儲存空間與帳戶限制方面的衝突(例如:該 Cast 是否已被刪除;是否存在副本;帳戶中是否有足夠的租用額度?)
- 若此訊息有效,中繼器會將其傳遞給網路上的其他中繼器(即,
閒聊) - Hub 會定期執行
diff透過同步功能找出遺漏的訊息,並高效地將其恢復
請注意,運行 Hub 需滿足最低硬體需求,且運行節點的用戶無法藉此獲取收益。為管控惡意使用者,Hub 會監控對等節點並對其行為進行評分,若偵測到惡意行為則予以忽略。如需進一步了解,請參閱 Hub文件。
其他資源
結語
做得好!現在你已經對 Farcaster 及其運作方式有了基本的了解。為了進一步鞏固你剛學到的知識,請務必參考 [Farcaster 機體] 的組裝指南,然後標記我們 @Quicknode,分享你的自訂機體!
如有任何疑問,歡迎前往我們的Discord伺服器,或透過下方表單提供回饋以獲取協助。請追蹤我們的Twitter帳號 (@Quicknode) 以及Telegram 公告頻道,掌握最新動態。
我們 ❤️ 您的回饋!
如果您有任何意見回饋或對新主題的建議,請告訴我們。我們非常樂意聽取您的意見。
