技術 · SDK

協定定義庫

GProtocol 用五種語言維護同一份協定定義:動作常數、訊息結構、錯誤 key 與版本號。Go 是主來源,其餘語言與之逐項對齊。

語言套件名內容狀態
Gogather-gprotocol/go常數、訊息結構、版本判斷與簽章原文拼接等輔助函式節點在用
Dartgather_protocol常數與型別,帶 JSON 序列化應用在用
Javatop.gather.protocol常數與型別僅定義
JavaScript@gather-network/gather-protocol常數、型別與訊息工廠函式僅定義
Pythongather_protocol動作與常數,由 Go 版本自動產生僅定義

怎麼保證五種語言一致

  • 提交前自動比對各語言的動作清單、路由類型標註與版本號。
  • Python 綁定由腳本從 Go 產生,並驗證產生結果沒有被手改。
  • 加密相關的格式(信箱、群組、檔案憑據、備份、節點目錄)有共用的測試向量,Go、Dart、Python 三端逐位元組比對。

參考實作

信箱、群組、檔案憑據與備份四部分的加密格式另有 Python 參考實作,用來產生和驗證測試向量。各語言的協定庫本身不包含加密、網路或用戶端實作。

面向開發者開放

協定定義庫和第三方開發文件目前尚未公開發布。開放計畫確定後,我們會在這裡公布取得方式與文件。