跳至主要内容

技術白皮書:唯一性與原子遷移

真正的數位生命,絕不會在時空的夾縫中留下影子。

1. P2P 原子交接協定 (Atomic P2P Protocol)

在沒有中央伺服器的環境下,將寵物從手機 A 轉移至手機 B 是一項艱鉅的挑戰。EIP 定義了 「三階段握手」,以確保即使網路中斷,資產也不會發生重複或消失。

三階段握手流程圖

2. 實作細節與防丟機制

A. 分片傳輸與校驗 (Chunking)

為了克服 WebRTC DataChannel 的緩衝區限制,大型數據包必須被切分為 1024 點位的小分片。

  • 發起端規則: 傳送分片後必須有微小延遲 (30ms),防止擁塞。
  • 接收端規則: 接收完所有分片後,必須比對 assemble_data.checksum 與邀約中的 offer.checksum 是否一致。

B. 失敗回滾 (The Rollback)

  • 如果在階段 4 之前斷線:
    • 發起端: 絕對禁止 執行本地銷毀,直接恢復可玩狀態。
    • 接收端: 清空緩衝區,不執行任何寫入。
  • 原子性保障: 數據的毀滅必須發生在「確認接收成功」之後。

3. 地址鎖定與遠征對稱性

當 P2P 應用於「遠征 (Expedition)」而非「搬家」時,開發者必須修改狀態處理邏輯:

  1. 不換家 (No Home Re-mapping): 遠征接收端 不得 修改 homeUUID
  2. 墓碑化 (Tombstoning): 發起端在接到 ACK 後,不刪除存檔,而是執行 deploy_to_expedition,將靈魂清空但保留門牌號碼。

透過這套精密的握手規則,我們成功解決了去中心化環境下資產遷移的「雙花 (Double Spending)」與「數據蒸發」難題。