技術白皮書:唯一性與原子遷移
真正的數位生命,絕不會在時空的夾縫中留下影子。
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)」而非「搬家」時,開發者必須修改狀態處理邏輯:
- 不換家 (No Home Re-mapping): 遠征接收端 不得 修改
homeUUID。 - 墓碑化 (Tombstoning): 發起端在接到 ACK 後,不刪除存檔,而是執行
deploy_to_expedition,將靈魂清空但保留門牌號碼。
透過這套精密的握手規則,我們成功解決了去中心化環境下資產遷移的「雙花 (Double Spending)」與「數據蒸發」難題。