Skip to content

SORA Nexus 服務

SORA Nexus 在 Iroha 3 周圍添加了應用程序面向的服務飛機.這些服務不是單獨的賬本.它們由 Iroha 世界狀態,Norito 公開表,治理記錄和 Torii 路線家族固定.

可用性取決於節點構建和網絡配置文件. 在目標節點上使用 /openapi作爲啓用路線的權威列表.

組件地圖

組件角色主要表面
Soracloud應用部署,託管服務,私人模型/運行時間狀態以及服務生命週期控制./v1/soracloud/, /api/,iroha app soracloud ...
在裏面Soracloud 爲需要直播 HTTP 飛機的服務修改運行時間託管 HTTP.Soracloud 運行時間配置,主機功能廣告,複製運行時間狀態.
SoraNet電路,繼電流, VPN,連接會議和流媒體線路的隱私和運輸覆蓋./v1/connect/,/v1/vpn/, SoraNet 的路線元數據
數據可用性 (DA)在 Nexus 車道, SoraFS 表格和證明流程中引用的有效載荷的可用性證據,承諾和準意圖層./v1/da/, FindDaPinIntent,[sumeragi.da]
SoraFS文件表, CAR 有效載荷,固定內容,網關檢索和可回收性證明流的內容定位存儲布料./v1/sorafs/, /sorafs/,FindSorafsProviderOwner
SoraDNS對於 SORA 託管的服務和內容,確定性命名和解決器認證層./v1/soradns/, /soradns/,解決方程式事件
艾塔伊應用程序級的法定和資產結算走廊,由本地託管記錄支持,而不是單獨的賬本.OpenAssetEscrow, FindAssetEscrow*,EscrowEventFilter, Kotodama escrow_*的建築物

常見流量

託管的分類應用程序

一個典型的混合平面應用程序使用了所有零件:

  1. 靜態前端資產被包裝並通過 SoraFS 綁定.
  2. 公共主機,例如 <app>.sora,通過 SoraDNS 進行註冊.
  3. Soracloud 路線 /api/v1/search/api/v1/stream到一個 Inrou HTTP 服務.
  4. Soracloud 路線 /api/auth/api/v1/user向確定性處理器 IVM.
  5. 需要隱私的客戶可以通過 SoraNet 電路達到相同內容或 API 路線.
路徑後備飛機爲什麼?
/SoraFS 靜態含量可複製內容的根和網關緩存
/assets/*SoraFS 靜態含量內容地址的資產和明確證據
/api/auth*Soracloud IVM複製安全的作者和錢包挑戰狀態
/api/v1/user*Soracloud IVM對於治理敏感的狀態突變
/api/v1/search*Soracloud 在線現場 HTTP 服務,緩存, SSE,或收藏狀態

內容出版

SoraFS 出版物在名稱指向它們之前,生產了持久的文物:

  1. 建立一個有效載荷或目錄.
  2. 包裝在一個 CAR 檔案和零件計劃.
  3. 建立一個 Norito 表格,包含針政策和治理數據.
  4. 提交說明書給 Torii.
  5. 如果目標配置文件需要明確的證據,則記錄 DA 筆意圖或可用性承諾.
  6. 綁定表與 SoraDNS 名稱或 Soracloud 靜態前端路線.

乘坐私人車或播放路線

SoraNet 可以坐在 SoraFS 或 Soracloud 前面:

  1. 客戶端解決了名稱或表格.
  2. 一個警衛目錄或路線公開選擇入口和出口繼電器.
  3. 交通被填充並通過 SoraNet 電路發送.
  4. 輸出繼電器到達 SoraFS 門口, Torii 流或 Soracloud 路線.

艾塔伊

Aitai是市場式結算的 SORA 應用程序走廊,買方和賣方在鏈外協調支付,而 Iroha 則控制了 在鏈上存儲資產.它應使用本地託管指令家族,而不是合同所有的託管賬戶用於新數值資產託管流動.

在本地保證人賬戶中保留保管權.賣方開設了 OpenAssetEscrow, 買方接受並標記鏈外支付: AcceptAssetEscrowMarkEscrowPaymentSent, 賣家將與 ReleaseAssetEscrow 如果買方和賣方不同意,雙方可以開啓爭端,並通過 CanResolveEscrowDispute 可以把鎖定的金額劃分.

對於整個生命週期,通用資產鎖定,匿名保證金,查詢,事件和 Rust 的例子,請見 原始資產保證金.

艾塔伊表面用它來
OpenAssetEscrow, AcceptAssetEscrow, MarkEscrowPaymentSent, ReleaseAssetEscrow, CancelAssetEscrow透明數值資產報價,包括以 XOR 爲單位的結算流動.
OpenAnonymousAssetEscrow, AcceptAnonymousAssetEscrow, MarkAnonymousEscrowPaymentSent, ReleaseAnonymousAssetEscrow, CancelAnonymousAssetEscrow保護的報價使用證明附件對於資金和關閉活動.
OpenEscrowDispute, ResolveEscrowDispute,OpenAnonymousEscrowDispute, ResolveAnonymousEscrowDispute糾紛和法庭方式的解決.
FindAssetEscrowById, FindAssetEscrowsBySeller,FindAssetEscrowsByBuyer, FindAssetEscrowsByStatus應用程序狀態頁面,調整工作和支持工具.
EscrowEventFilter按保證人身份,賣家,買家,狀態或事件類型的透明保證人訂閱.
Kotodama escrow_open_offer, escrow_accept, escrow_mark_payment_sent, escrow_release, escrow_cancel, escrow_open_dispute, escrow_resolve_disputeKotodama 合同通話由 V1 保證金系統支持.

對於公開使用的 Taira 或 Minamoto,請將離鏈支付軌道和任何支持或法院工作流程視爲應用程序政策. Iroha 記錄保管狀態,生命週期事件,證據哈希以及最終資產移動;它不會自行驗證法定結算.

檢查目標節點

在使用本頁面的示例之前,請確認您正在準的節點中存在路線家族:

bash
export TORII_URL=https://taira.sora.org

curl -fsS "$TORII_URL/openapi.json" \
  | jq '.paths | keys[] | select(test("^/v1/(soracloud|sorafs|soradns|connect|vpn|da)/"))'

curl -fsS "$TORII_URL/status" | jq .

如果 /openapi.json 沒有被個人資料所暴露,請嘗試 /openapi.準確的路線可用性取決於構建功能和網絡配置.

Taira 僅閱讀煙霧檢查

公開 Taira 終端點對於閱讀側檢查是有用的,但除非您正在運營一個授權帳戶並且打算更改現實狀態,否則不要使用它用於突變例子.

bash
export TORII_URL=https://taira.sora.org

curl -fsS "$TORII_URL/status" \
  | jq '{version: .build.version, peers, blocks, lanes: (.teu_lane_commit | length)}'

curl -fsS "$TORII_URL/v1/connect/status" | jq '{enabled, sessions_active}'

curl -fsS "$TORII_URL/v1/vpn/profile" \
  | jq '{available, relay_endpoint, supported_exit_classes}'

curl -fsS "$TORII_URL/v1/sorafs/storage/state" \
  | jq '{bytes_capacity, bytes_used, pin_queue_depth, por_inflight}'

curl -fsS -H 'Accept: application/json' "$TORII_URL/v1/soracloud/status" \
  | jq '.control_plane | {service_count, services: [.services[] | {service_name, current_version}]}'

Taira 可能會暴露出未列在 OpenAPI 路徑地圖中的部署特定控制平面路線.將 /openapi視爲首要生成的 API 合同,然後直接確認任何部署特定路線,然後記錄它作爲現場.

Soracloud

Soracloud 是 SORA 應用控制平面.它跟蹤部署捆綁,服務修訂,路由,推出狀態,權威配置輸入,加密服務機密,模型註冊表記錄,私人推斷會議和運行時間收據 .

Soracloud 使用兩個執行飛機:

執行飛機運行時間用它來
DeterministicServiceIvm作者,庫存狀態,認證閱讀,訂單郵箱處理器,對治理敏感的突變
HttpServiceInrou現場 HTTP APIs,收藏器繁重工作,緩存支持的服務, SSE,瀏覽器輔助流動.

控制平面是權威的.部署,升級,反彈,配置,祕密,模型和狀態命令通過 Torii 提交併閱讀承諾世界狀態;它們不依賴單獨的 CLI 本地鏡子.公共路由基於最長的前,因此一個註冊主機可以在託管的 HTTP 路線和確定性的 API 路線之間分開流量.

架一個分開的應用程序

分類應用程序模板創建了靜態前端加上一個託管的直播 API 和一個確定性庫/API 服務:

bash
iroha app soracloud app init \
  --template split-app \
  --app-name solswap_indexer \
  --app-version 0.1.0 \
  --public-host solswap-indexer.sora \
  --output-dir ./apps/solswap-indexer

iroha app soracloud app local-plan \
  --manifest ./apps/solswap-indexer/app_manifest.json

iroha app soracloud app doctor \
  --manifest ./apps/solswap-indexer/app_manifest.json

local-plan 打印路線分區,兒童服務表格,工作空間腳本路徑以及預期的前端發佈模式. doctor 在你參與之前,驗證本地釋放合同 Torii.

部署和檢查應用程序狀態

bash
export SORACLOUD_TORII_URL=https://<soracloud-enabled-torii>

iroha app soracloud app deploy \
  --manifest ./apps/solswap-indexer/app_manifest.json \
  --torii-url "$SORACLOUD_TORII_URL"

iroha app soracloud app status \
  --manifest ./apps/solswap-indexer/app_manifest.json \
  --torii-url "$SORACLOUD_TORII_URL"

對於已部署的服務,使用服務範圍指令:

bash
iroha app soracloud status \
  --service-name solswap_indexer_live \
  --torii-url "$SORACLOUD_TORII_URL"

iroha app soracloud rollback \
  --service-name solswap_indexer_live \
  --target-version 0.1.0 \
  --torii-url "$SORACLOUD_TORII_URL"

隱私和祕密材料

Soracloud 配置和祕密輸入是權威部署狀態的一部分.當需要的配置或祕密綁定缺失或與活躍表格不一致時,部署,升級和反彈無法關閉.

bash
iroha app soracloud config-set \
  --service-name solswap_indexer_live \
  --config-name indexer/public_config \
  --value-file ./config/public-config.json \
  --torii-url "$SORACLOUD_TORII_URL"

iroha app soracloud secret-set \
  --service-name solswap_indexer_live \
  --secret-name indexer/api_key \
  --secret-file ./secrets/api-key.envelope.json \
  --torii-url "$SORACLOUD_TORII_URL"

使用 CLI 幫助查詢您的個人資料所需的準確憑證標誌:

bash
iroha app soracloud config-set --help
iroha app soracloud secret-set --help

在線

伊內羅是主機 HTTP 使用的運行時間 Soracloud. 一個 Iroha 嵌入式的節點 Soracloud 運行時間項目被錄取 Soracloud 在本地實現計劃中,將分配的託管服務副本作爲循環服務啓動,報告複製運行時間狀態回到權威模型中.

使用Inrou用於需要現場 HTTP 表面的工作負載,例如收藏量重的 APIs,SSE 流程,緩存支持的處理器或瀏覽器輔助服務.

運行時間要求

  • 集裝箱表運行時間必須爲 Inrou.
  • 服務表執行平面必須是 HttpService.
  • HttpService + Inrou需要一個確切的 PersistentRootLeaseVolume安裝在/.
  • 複製的Inrou服務還需要共享服務或保密租存儲,如果它們保持可變的共享狀態.
  • 產品託管節點應該宣傳真正的Inrou容量,而不是僅僅作爲代理.

顯而易見的部分

下面的例子顯示了兩個表現體的形狀. 它是一個碎片,而不是一個完整的部署捆綁.

jsonc
// container_manifest.json
{
  "schema_version": 1,
  "runtime": { "runtime": "Inrou", "value": null },
  "bundle_path": "/bundles/solswap-indexer.inrou",
  "entrypoint": "/app/bin/launch-indexer.sh",
  "args": [],
  "env": {
    "RUST_LOG": "info",
  },
  "inrou": {
    "schema_version": 1,
    "guest_os": { "guest_os": "DebianSlim", "value": null },
    "guest_images": {
      "x86_64": {
        "kernel_image_path": "/inrou/x86_64/vmlinux",
        "rootfs_image_path": "/inrou/x86_64/rootfs.ext4",
        "initrd_image_path": null,
      },
      "aarch64": {
        "kernel_image_path": "/inrou/aarch64/vmlinux",
        "rootfs_image_path": "/inrou/aarch64/rootfs.ext4",
        "initrd_image_path": null,
      },
    },
  },
  "lifecycle": {
    "start_grace_secs": 60,
    "stop_grace_secs": 30,
    "healthcheck_path": "/api/indexer/v1/health",
  },
}
jsonc
// service_manifest.json
{
  "schema_version": 1,
  "service_name": "solswap_indexer_live",
  "service_version": "0.1.0",
  "execution_plane": { "execution_plane": "HttpService", "value": null },
  "replicas": 2,
  "route": {
    "host": "solswap-indexer.sora",
    "path_prefix": "/api/v1/search",
    "service_port": 8080,
    "visibility": { "visibility": "Public", "value": null },
    "tls_mode": { "tls": "Required", "value": null },
  },
  "lease_volumes": [
    {
      "volume_name": "root_disk",
      "kind": {
        "lease_volume": "PersistentRootLeaseVolume",
        "value": null,
      },
      "storage_class": { "storage_class": "Warm", "value": null },
      "mount_path": "/",
      "max_total_bytes": 8589934592,
    },
    {
      "volume_name": "index_state",
      "kind": { "lease_volume": "ServiceLeaseVolume", "value": null },
      "storage_class": { "storage_class": "Warm", "value": null },
      "mount_path": "/var/lib/solswap-indexer",
      "max_total_bytes": 1073741824,
    },
  ],
}

在運行時,每個安裝的租量都通過從數量名稱所衍生的環境變量來暴露:

text
SORACLOUD_LEASE_VOLUME_ROOT_DISK_DIR
SORACLOUD_LEASE_VOLUME_ROOT_DISK_MOUNT_PATH
SORACLOUD_LEASE_VOLUME_INDEX_STATE_DIR
SORACLOUD_LEASE_VOLUME_INDEX_STATE_MOUNT_PATH

SoraNet

SoraNet 是隱私和運輸覆蓋層.它爲交通提供了基於繼電的路線,該路線不應直接連接到目標門口或服務.運輸設計採用入口,中部和出口繼電器角色, QUIC 運輸,基於噪音的混合握手,能力談判,繼電器目錄元數據以及固定尺寸接式細胞.

在 Nexus 部署中,SoraNet 可以攜帶內容獲取,網關流量, VPN 或連接會議和 Norito 流媒體路線.目錄入口可標記支持 norito-stream的繼電器,這使客戶能夠更好地選擇適合 Torii RPC 或流媒體流量的路線.

流媒體配置

Nexus 的配置使 SoraNet 爲流媒體路線提供:

toml
[streaming]
feature_bits = 0b11

[streaming.soranet]
enabled = true
exit_multiaddr = "/dns/torii/udp/9443/quic"
padding_budget_ms = 25
access_kind = "authenticated"
provision_spool_dir = "./storage/streaming/soranet_routes"
provision_spool_max_bytes = 0
provision_window_segments = 4
provision_queue_capacity = 256

使用 access_kind = "read-only"在不需要觀衆身份驗證的內容路線上.使用 authenticated當退出繼電器必須在連接到 Torii 或託管服務之前強制執行票或觀衆身份時.

SoraNet-意識到 SoraFS 帶來

SoraFS 獲取 CLI 可以發射一個本地代理表格,併爲瀏覽器擴展或 SDK 適配器輸出 SoraNet 路線元數據:

bash
sorafs_cli fetch \
  --plan artifacts/payload_plan.json \
  --manifest-id 7bb2...9d31 \
  --provider name=alpha,provider-id=9f5c...73aa,base-url=https://gw-alpha.example.org/,stream-token="$(cat alpha.token)" \
  --output artifacts/payload.bin \
  --json-out artifacts/fetch_summary.json \
  --local-proxy-manifest-out artifacts/proxy_manifest.json \
  --local-proxy-mode bridge \
  --local-proxy-norito-spool storage/streaming/soranet_routes \
  --local-proxy-kaigi-spool storage/streaming/soranet_routes \
  --local-proxy-kaigi-policy authenticated \
  --max-peers=2 \
  --retry-budget=4

總結記錄提供商報告,零件收據,本地代理元數據以及用於採集的有效路線設置.

數據可用性 (DA)

DA 是太大,太敏感於隱私或太特定於服務的有效載荷的可用性證據層,無法直接放置在世界狀態.它記錄了確定性承諾和檢索義務,以便驗證者,網關和客戶可以同意哪些字節被承諾,哪些政策適用,以及哪些證據已經觀察到.

DA 不取代 Kura 或 SoraFS:

  • Kura 存儲了最終的區塊流和共識恢復數據.
  • SoraFS 存儲並提供內容地址字節,CAR 實用載荷和公開文件.
  • DA 記錄承諾,證據政策,證據開放,並將這些字節安排,審計和鏈接到賬本狀態的標記.

使用 DA 當應用程序或 Nexus 車道需要在賬本中可見的承諾,即鏈外數據仍然可回收.常見例子包括對結算流程的車道實用負載承諾,發佈內容的 SoraFS 筆意圖;必須保存以後進行驗證的證據捆綁,以及公共狀態應該是消化品而不是全部有效載荷的應用文物.

生命週期

階段記錄的內容
意圖一張門票,明確引用,號,車道/時代/序列參考,保留政策或複製目標.
承諾消化材料將表格,車道有效載荷,證據捆綁或內容根連接到本書可見的記錄.
證據可用性投票,證據開放,供應商認證或其他被目標網絡接受的個人資料特定證據.
問題通過 FindDaPinIntentByTicket,FindDaPinIntentByManifest, FindDaPinIntentByAliasFindDaPinIntentByLaneEpochSequence進行印意圖查詢.

一個典型的 DA 支持的出版流量是:

  1. 在 WSV 之外構建或接收有效載荷,例如一個 SoraFS CAR 文件或 Nexus 車道有效載荷.
  2. 在 Norito 宣言或路線特定的承諾記錄中描述有效載荷.
  3. 在啓用該路線家族時,通過 /v1/da/* 或網絡簽署的交易途徑提交明示表,印意圖或承諾.
  4. 讓驗證者或可用性提供者收集根據活躍證明政策所要求的證據.
  5. 在推廣一個姓名,結算證明或關口路線之前,請詢問所產生的針意圖或承諾.

算法模型

DA 將一個有效載荷轉化爲簽署的,反彈保護的,區塊索引承諾.重要算法是確定性的,所以驗證器和網關可以從相同字節中重新計算相同的消化.

  1. Torii 接受一個用量請求,包括 (lane_id, epoch, sequence),用量字節,壓縮元數據,零件大小,刪除配置文件,節點在要求時將gzip,delate或Zstandard的有效載荷解壓縮,然後驗證標準字節長度等於 total_size.
  2. 驗證車道和零件參數.該車道必須存在於 Nexus 車道目錄中. chunk_size必須具有兩個,至少兩個字節的非零功率.不大於配置的最大值.刪除資料必須包括數據片段和至少兩個平率片段.車道目錄選擇證明方案,無論是 merkle_sha256還是 kzg_bls12_381.
  3. 應用網絡政策.節點強制對類的配置複製和保留基線.公共元數據必須保持純文本;只使用統治方式的元數據在被寫入表格之前,由節點的配置統治性元數據密鑰加密.
  4. 常規的有效載荷是通過固體尺寸的配置文件進行的 chunk_size. Torii 計算有效載荷消化,可檢索性證明樹根和每塊的承諾. 數據分量 BLAKE3 對於其字節的承諾.
  5. 添加刪除承諾.切片被組分爲 data_shards 的條紋.最後條紋中缺失的細胞是零填充的,用於平衡計算. RS(16) 平衡創造排/全球平衡分片;可選的 row_parity_stripes在矩陣中添加列式條紋平衡. 平衡分片承諾是 BLAKE3 少數符號的消化u16.
  6. 建立表格. DaManifestV1記錄了車道,時代,斑點類別,編碼器,有效載荷消化,零件根,零件大小,刪除配置文件,保留政策,租金報價,零件承諾,可選的 IPA 承諾,元數據和發佈時間.存儲門票是確定性的:節點首先將一個表格模板與空格門票哈希,然後把指紋寫回爲最後的 storage_ticket.
  7. 拒絕重播衝突.重播鍵是 (lane_id, epoch, sequence, manifest_fingerprint).具有相同指紋的複製件是無效的.已過時的序列或具有不同的指紋的同一序列被拒絕.
  8. 發行簽署的文物. Torii 計算 PDP 承諾,簽署DaIngestReceipt,構建DaCommitmentRecord,併爲公開文件編寫卷文物;PDP 承諾,承諾記錄,承諾時間表,筆意圖,收件文件和收件日誌.收件緩衝器每次(lane_id, epoch)均地推進.

一個記錄綁定了:

  • 路線,時代和序列
  • ID 的調用器和法典表格哈希
  • 車道防護方案
  • 子根
  • 對 KZG 車道的可選 KZG 承諾
  • PDP/證據消化
  • 存儲類和存儲門票
  • Torii DA 確認簽名

在區塊嵌入 DA 記錄之前,區塊組裝路徑驗證了捆綁:

  • (lane_id, epoch, sequence)必須在捆綁中是唯一的.
  • 顯而易見的哈希必須在捆綁中是非零和獨特的.
  • 承諾證明方案必須符合配置的車道政策.
  • 梅克爾路線拒絕 KZG 承諾; KZG 路線需要非零的 KZG 承諾.
  • 按行徑,表格哈希,存儲票,所有者賬戶和碰規則進行加нони化,分類和過.

區塊標題存儲 DA 證明政策,承諾和筆意圖的哈希.對於會員身份證明,承諾捆綁還暴露出一個 Merkle根,其葉子 Norito 編碼的常規值 DaCommitmentRecord 的哈希.父母節點對左和右孩子的連接進行了哈希;一個奇偶葉是不變地推向下一層的.

證據驗證

/v1/da/commitments/prove可以爲區塊中的一個承諾提供證明.該證據包含承諾,區塊高度,捆綁中索引,捆綁哈希,捆綁長度,默克爾根和兄弟路徑.驗證檢查:

  1. 證據捆綁哈希匹配區塊標題的 DA 承諾哈希.
  2. 證明區塊高度與引用的區塊標題相匹配.
  3. 指數是限額的,承諾等於該指數中的包入.
  4. 車道防護政策接受了承諾.
  5. 從承諾葉子摺疊的兄弟路徑重建了提供的根.
  6. 複製的根與捆綁根等.

這證明,一個特定的區塊有效載荷中包含了具體的可用性承諾;這並不證明每個複製品都目前在線.通過 SoraFS 供應商檢查, PDP/PoTR 檢查或特定配置文件的可用性證據來單獨檢查現場獲取性.

協商一致的互動

DA 通過可靠的廣播 (RBC) 連接到 Sumeragi,但它不是第二個最終協議. RBC 傳播和恢復提案有效載荷:提議者宣佈爲 (height, view, payload_hash),同行交換部分和 READY/DELIVER信號進行會議,追蹤是否有足夠的驗證者觀察到相同的有效負載.

在 Iroha 3 中,一個同行將懸而未決的區塊有效載荷視爲可用的,當:

  • 當地懸而未決區塊對預期有效載荷的哈希字節進行值,或
  • RBC 已經恢復了一個符合區塊哈希,高度,視圖和有效載荷哈希的實用負載.

如果任何條件都不符合,同行記錄 missing_local_data,通過 RBC 或區塊同步繼續試圖恢復有效載荷,並報告狀態和遠程測量中 DA 門口.在目前的實施中,這些 DA 信號是最終性的建議:一個區塊仍然從承諾證書加上相匹配的本地有效載荷來完成,而不是從單獨的 DA 定製證書.

DA 時間擴大恢復窗口.有效的 DA 定製時限從配置的區塊中提取,然後乘以 sumeragi.advanced.da.quorum_timeout_multiplier.可用性時限爲 max(quorum_timeout, availability_timeout_floor_ms) * availability_timeout_multiplier.在可用性截止日期到期之前,節點有利於有效載荷恢復並避免過早重新安排;在截止日後,正常恢復和視圖更改路徑可以繼續進行.

運營商筆記

Iroha 3 共識配置文件包括 RBC 支持的有效載荷傳播,表格保護,DA 捆綁驗證和恢復遠程測量.同行模板暴露[sumeragi.da]限制 對於每個區塊的承諾和證據開放,再加上 [sumeragi.advanced.da] 定製和可用性行爲時間延誤乘法.保持這些設置在一個網絡配置文件中的驗證器中一致.

對於路線發現,從節點的 OpenAPI 文檔開始:

bash
curl -fsS "$TORII_URL/openapi.json" \
  | jq '.paths | keys[] | select(startswith("/v1/da/"))'

對於當前的 DA 查詢名稱,使用查詢參考,以及您的構建暴露的本地 [sumeragi.da]按的](/zh-hant/reference/peer-config/)同行配置模板[.

SoraFS

SoraFS 是分散的內容地址存儲布料. 它將字節包裝成決定性塊, CAR 檔案,和 Norito 表達了綁定內容根,分類配置文件,針政策和治理證書. 存儲服務提供商廣告容量和內容可用性,而在提供內容之前,門戶驗證表格和部分承諾.

典型的 SoraFS 用途包括靜態應用資產,文檔構建,區域捆綁,模型或文物引用和治理證據捆綁. Iroha 數據模型暴露了 SoraFS 門戶事件和供應商所有權解決方案的FindSorafsProviderOwner查詢.

包裝,表達,簽署和提交

bash
cargo run -p sorafs_car --features cli --bin sorafs_cli -- \
  car pack \
  --input ./dist \
  --car-out artifacts/site.car \
  --plan-out artifacts/site.chunk-plan.json \
  --summary-out artifacts/site.car-summary.json

cargo run -p sorafs_car --features cli --bin sorafs_cli -- \
  manifest build \
  --summary artifacts/site.car-summary.json \
  --manifest-out artifacts/site.manifest.to \
  --manifest-json-out artifacts/site.manifest.json \
  --pin-min-replicas=3 \
  --pin-storage-class=warm \
  --pin-retention-epoch=42

SIGSTORE_ID_TOKEN=$(oidc-client fetch-token) \
cargo run -p sorafs_car --features cli --bin sorafs_cli -- \
  manifest sign \
  --manifest artifacts/site.manifest.to \
  --bundle-out artifacts/site.manifest.bundle.json \
  --signature-out artifacts/site.manifest.sig

cargo run -p sorafs_car --features cli --bin sorafs_cli -- \
  manifest submit \
  --manifest artifacts/site.manifest.to \
  --chunk-plan artifacts/site.chunk-plan.json \
  --torii-url "$TORII_URL" \
  --resolve-submitted-epoch=true \
  --authority=<i105-account-id> \
  --private-key-file ./secrets/authority.ed25519 \
  --summary-out artifacts/site.manifest.submit.json \
  --response-out artifacts/site.manifest.submit.body

如果 /v1/sorafs/pin/register 沒有在目標節點上路由,則 CLI 可以回到已簽署的 /transaction 提交中,並等待終端管道狀態.

檢查和帶來

bash
cargo run -p sorafs_car --features cli --bin sorafs_cli -- \
  proof verify \
  --manifest artifacts/site.manifest.to \
  --car artifacts/site.car \
  --chunk-plan artifacts/site.chunk-plan.json \
  --summary-out artifacts/site.verify.json

sorafs_cli fetch \
  --plan artifacts/site.chunk-plan.json \
  --manifest-id <manifest-digest-hex> \
  --provider name=primary,provider-id=<provider-id-hex>,base-url=https://gateway.example.org/,stream-token="$(cat provider.token)" \
  --output artifacts/site.fetch.tar \
  --json-out artifacts/site.fetch.json

檢查可回收性證明

運營商可以對存儲提供商進行檢查並啓動驗證:

bash
sorafs_cli por status \
  --torii-url "$TORII_URL" \
  --manifest <manifest-digest-hex> \
  --status=failed \
  --limit=20

sorafs_cli por trigger \
  --torii-url "$TORII_URL" \
  --manifest <manifest-digest-hex> \
  --provider <provider-id-hex> \
  --reason=latency_probe \
  --samples=48 \
  --auth-token artifacts/challenge_token.to

SoraDNS

SoraDNS 是 SORA 服務和內容的確定性命名層.它將名稱正常化,在 Iroha 中關聯解決方案目錄更新,和通過 SoraFS 分發簽署的區域或解決器捆綁.

對於瀏覽器訪問, SoraDNS 從註冊的 FQDN 中導出網關主機. 註冊的虛無性主機仍然是常規應用程序來源,而部署的網關配置文件則暴露了該來源的瀏覽器和 Torii 倒退路線.

主持人表格

表格示例目的
虛榮的起源https://<fqdn>/<path>URL 記錄在表格和公告中
Taira 瀏覽器網關https://<fqdn>.mon.taira.sora.net/<path>公共瀏覽器網關爲活躍的名
Torii 倒車路徑https://taira.sora.org/soradns/<fqdn>/<path>Torii active alias 的調試和迴歸路線
佳能式哈希網關<base32(blake3(name))>.gw.sora.id確定性門口身份和 GAR 驗證

/soradns/<alias>/... 倒退不是首選的公衆 URL.工具,應用程序表格和前端配置應該更喜歡虛無主機本身.如果在 Taira 上不活躍的姓氏,瀏覽器網關或倒退路徑可以在應用程序路由啓動之前返回404或失敗 TLS.

導入網關主機

ts
import {
  deriveSoradnsGatewayHosts,
  hostPatternsCoverDerivedHosts,
} from '@iroha/iroha-js'

const derived = deriveSoradnsGatewayHosts('docs.sora')
console.log(derived.canonicalHost)
console.log(derived.prettyHost)

const taira = deriveSoradnsGatewayHosts('solswap-indexer.sora', {
  prettySuffix: 'mon.taira.sora.net',
})
console.log(taira.prettyHost)

const patterns = [
  derived.canonicalHost,
  derived.canonicalWildcard,
  derived.prettyHost,
]
console.log(hostPatternsCoverDerivedHosts(patterns, derived))

GAR 有效載荷應該覆蓋正規的哈希主機,正規的野生卡片和選擇的漂亮的主機.

獲取一個分辨器目錄快照

bash
curl -i "$TORII_URL/v1/soradns/directory/latest"

soradns_resolver directory fetch \
  --record-url "$TORII_URL/v1/soradns/directory/latest" \
  --directory-url https://gateway.example.org/soradns/directory/latest.car \
  --output ./state/soradns-directory

soradns_resolver rad verify \
  --rad ./state/soradns-directory/rad/resolver-a.norito

網關應拒絕那些在最新的Merkle root目錄中缺失,過期,未簽名或未安裝的解決方案證明文件. 在尚未發佈任何解決方案目錄的網絡上, /v1/soradns/directory/latest可以返回 404 即使路線已啓用.

公共 DNS 代表團

SoraDNS 主機衍生程序不取代常規互聯網 DNS 委託程序.如果一個公共的 DNS 名稱應該指向 SoraDNS 門戶口:

  • 爲子域,將 CNAME 發佈到所選擇的漂亮主機
  • 對於頂點名稱,在任何cast IPs 門口使用 ALIAS/ANAME 或A/AAAA 記錄.
  • 在 SoraDNS 網關域下保存可行的哈希主機,以便進行 GAR 檢查.

FHE 和 UAID

在 Nexus 服務中可用的與 FHE 有關的表面包括:

  • iroha_crypto::fhe_bfv 實現確定性 BFV 支持 skalar ciphertext評價.識別器分辨率使用 BfvIdentifierPublicParametersBfvIdentifierCiphertext, 在此,插槽0存儲輸入字節長度,後來的插槽存儲每一個加密字節.
  • Soracloud 狀態和職位方案模型 FHE 密碼文本工作負載與管理管理參數組,執行政策,密碼文檔承諾,查詢封以及披露請求.

BFV 識別器路徑用於保護隱私的註冊. 客戶端可以提交加密識別器到 Torii 解決方案中.根據活躍識別器政策,獲得一個 OpaqueAccountId,併發出一個收據. ClaimIdentifier然後將該收據綁定到目標賬戶附帶的 UAID.

其他 UAID 而在數據模型中, UniversalAccountId 是哈希支持的,顯示爲 uaid:<hash>. 解析者接受了兩種 uaid:<hash> 或是原始的64 Hex消化. AccountNewAccount 包含可選 uaidopaque_ids 運行時間登記執行一個對一個的 UAID-對賬戶指數,拒絕複製或碰撞的不透明標識符,並且拒絕沒有 UAID. 每當一個 UAID 運行時間重建空間目錄數據庫的綁定. UAID.

空間目錄表達了將功能添加到 UAID.一個 AssetPermissionManifest 命名 UAID,數據空間,激活和可選的過期時代,並按數據空間,程序,方法,資產和 AMX 角色進行排序允許/拒絕輸入.評價是拒絕勝利:第一個匹配拒絕拒絕請求,否則最新匹配允許候選人與任何數額限制進行檢查.發佈,過期和撤銷這些表格由 CanPublishSpaceDirectoryManifest保護.

對於 Soracloud FHE 狀態,實施的計劃是:

方案它控制了什麼?
SoraStateBindingV1FheCiphertext聲明狀態密鑰前置值爲 FHE 密碼文本.
FheParamSetV1名稱:方案,後端,模塊鏈,多項級別,插槽數量,安全目標,生命週期和參數消化.
FheExecutionPolicyV1限制密碼文本大小,純文本的大小,輸入/輸出數量,乘法深度,旋轉,啓動帶和圓形模式.
FheGovernanceBundleV1一個參數設置與一個執行政策進行錄取驗證.
FheJobSpecV1描述對密碼文本狀態密鑰和承諾的確定性 Add, Multiply, RotateLeftBootstrap工作.
CiphertextQuerySpecV1查詢僅按服務,綁定,關鍵前置,結果限量,元數據水平和可選的包含證明.
DecryptionRequestV1要求在解密權限政策下披露一個加密文本承諾.

FheJobSpecV1::validate_for_execution 檢查工作,執行政策和參數設置在錄取前是否一致.它還強制執行特定操作規則:添加和乘法需要至少兩個輸入,旋轉和啓動帶需要一個輸入,要求的深度,旋轉數量,啓動帶數量,輸入數量,有效載荷字節和確定性輸出尺寸必須保持在政策界限內.密碼文字查詢結果不得返回直文行.

UAID 不是加密文本,也不是 FHE 政策本身.它是用於查找帳戶,不透明的標識符索賠和空間目錄綁定的穩定賬戶功能,允許服務或數據空間流程.FHE 方案通過參數集合,執行政策,密碼文本承諾和解密權威政策分別管理加密有效載荷的輸入和執行.

相關的 Torii 表面包括:

  • /v1/identifier-policies
  • /v1/identifiers/resolve
  • /v1/accounts/{account_id}/identifiers/claim-receipt
  • /v1/identifiers/receipts/{receipt_hash}
  • /v1/accounts/{uaid}/portfolio
  • /v1/space-directory/uaids/{uaid}
  • /v1/space-directory/uaids/{uaid}/manifests
  • /v1/soracloud/model/run-private
  • /v1/soracloud/model/run-private/finalize
  • /v1/soracloud/model/decrypt-output

公開元數據界限在方案中明確:UAID 綁定,不透明的標識符記錄,表達生命週期,狀態密鑰消化,加密文本大小,加密文字承諾,政策名稱,參數設置版本,工作操作,輸出狀態密鑰,識別字體,解密狀態,模型輸入和輸出以及 FHE 祕密鑰匙都在這些公開查詢記錄之外.

運營檢查列表

  • 確認有 /openapi在目標 Torii 節點上的啓用服務家庭.
  • 處理 Soracloud 部署表格, SoraFS 表格,SoraDNS 解決器目錄記錄, SoraNet 繼電目錄記錄和 DA 筆意圖或可用性承諾作爲對治理敏感的文具.
  • 在一個網絡中的驗證器中,使用相同的 SORA Nexus 配置文件.
  • 保持Inrou根和共享租數量在表格中,而不是依賴於臨時節點本地路徑.
  • 在推廣內容別名之前使用 SoraFS 證據驗證.
  • 監視器 SoraNet 握手失敗, DA 定製或可用性時間, SoraFS 網關拒絕, SoraDNS RAD 新鮮性,以及 Soracloud 部署健康.
  • 對於公開 Taira 或 Minamoto 的使用,首先使用連接到 SORA Nexus 數據庫.

此外,請參見: