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_*的建築物 |
常見流量
託管的分類應用程序
一個典型的混合平面應用程序使用了所有零件:
- 靜態前端資產被包裝並通過 SoraFS 綁定.
- 公共主機,例如
<app>.sora,通過 SoraDNS 進行註冊. - Soracloud 路線
/api/v1/search或/api/v1/stream到一個 Inrou HTTP 服務. - Soracloud 路線
/api/auth和/api/v1/user向確定性處理器 IVM. - 需要隱私的客戶可以通過 SoraNet 電路達到相同內容或 API 路線.
| 路徑 | 後備飛機 | 爲什麼? |
|---|---|---|
/ | SoraFS 靜態含量 | 可複製內容的根和網關緩存 |
/assets/* | SoraFS 靜態含量 | 內容地址的資產和明確證據 |
/api/auth* | Soracloud IVM | 複製安全的作者和錢包挑戰狀態 |
/api/v1/user* | Soracloud IVM | 對於治理敏感的狀態突變 |
/api/v1/search* | Soracloud 在線 | 現場 HTTP 服務,緩存, SSE,或收藏狀態 |
內容出版
SoraFS 出版物在名稱指向它們之前,生產了持久的文物:
- 建立一個有效載荷或目錄.
- 包裝在一個 CAR 檔案和零件計劃.
- 建立一個 Norito 表格,包含針政策和治理數據.
- 提交說明書給 Torii.
- 如果目標配置文件需要明確的證據,則記錄 DA 筆意圖或可用性承諾.
- 綁定表與 SoraDNS 名稱或 Soracloud 靜態前端路線.
乘坐私人車或播放路線
SoraNet 可以坐在 SoraFS 或 Soracloud 前面:
- 客戶端解決了名稱或表格.
- 一個警衛目錄或路線公開選擇入口和出口繼電器.
- 交通被填充並通過 SoraNet 電路發送.
- 輸出繼電器到達 SoraFS 門口, Torii 流或 Soracloud 路線.
艾塔伊
Aitai是市場式結算的 SORA 應用程序走廊,買方和賣方在鏈外協調支付,而 Iroha 則控制了 在鏈上存儲資產.它應使用本地託管指令家族,而不是合同所有的託管賬戶用於新數值資產託管流動.
在本地保證人賬戶中保留保管權.賣方開設了 OpenAssetEscrow, 買方接受並標記鏈外支付: AcceptAssetEscrow 和 MarkEscrowPaymentSent, 賣家將與 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_dispute | Kotodama 合同通話由 V1 保證金系統支持. |
對於公開使用的 Taira 或 Minamoto,請將離鏈支付軌道和任何支持或法院工作流程視爲應用程序政策. Iroha 記錄保管狀態,生命週期事件,證據哈希以及最終資產移動;它不會自行驗證法定結算.
檢查目標節點
在使用本頁面的示例之前,請確認您正在準的節點中存在路線家族:
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 終端點對於閱讀側檢查是有用的,但除非您正在運營一個授權帳戶並且打算更改現實狀態,否則不要使用它用於突變例子.
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 使用兩個執行飛機:
| 執行飛機 | 運行時間 | 用它來 |
|---|---|---|
DeterministicService | Ivm | 作者,庫存狀態,認證閱讀,訂單郵箱處理器,對治理敏感的突變 |
HttpService | Inrou | 現場 HTTP APIs,收藏器繁重工作,緩存支持的服務, SSE,瀏覽器輔助流動. |
控制平面是權威的.部署,升級,反彈,配置,祕密,模型和狀態命令通過 Torii 提交併閱讀承諾世界狀態;它們不依賴單獨的 CLI 本地鏡子.公共路由基於最長的前,因此一個註冊主機可以在託管的 HTTP 路線和確定性的 API 路線之間分開流量.
架一個分開的應用程序
分類應用程序模板創建了靜態前端加上一個託管的直播 API 和一個確定性庫/API 服務:
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.jsonlocal-plan 打印路線分區,兒童服務表格,工作空間腳本路徑以及預期的前端發佈模式. doctor 在你參與之前,驗證本地釋放合同 Torii.
部署和檢查應用程序狀態
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"對於已部署的服務,使用服務範圍指令:
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 配置和祕密輸入是權威部署狀態的一部分.當需要的配置或祕密綁定缺失或與活躍表格不一致時,部署,升級和反彈無法關閉.
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 幫助查詢您的個人資料所需的準確憑證標誌:
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容量,而不是僅僅作爲代理.
顯而易見的部分
下面的例子顯示了兩個表現體的形狀. 它是一個碎片,而不是一個完整的部署捆綁.
// 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",
},
}// 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,
},
],
}在運行時,每個安裝的租量都通過從數量名稱所衍生的環境變量來暴露:
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_PATHSoraNet
SoraNet 是隱私和運輸覆蓋層.它爲交通提供了基於繼電的路線,該路線不應直接連接到目標門口或服務.運輸設計採用入口,中部和出口繼電器角色, QUIC 運輸,基於噪音的混合握手,能力談判,繼電器目錄元數據以及固定尺寸接式細胞.
在 Nexus 部署中,SoraNet 可以攜帶內容獲取,網關流量, VPN 或連接會議和 Norito 流媒體路線.目錄入口可標記支持 norito-stream的繼電器,這使客戶能夠更好地選擇適合 Torii RPC 或流媒體流量的路線.
流媒體配置
Nexus 的配置使 SoraNet 爲流媒體路線提供:
[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 路線元數據:
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, FindDaPinIntentByAlias或 FindDaPinIntentByLaneEpochSequence進行印意圖查詢. |
一個典型的 DA 支持的出版流量是:
- 在 WSV 之外構建或接收有效載荷,例如一個 SoraFS CAR 文件或 Nexus 車道有效載荷.
- 在 Norito 宣言或路線特定的承諾記錄中描述有效載荷.
- 在啓用該路線家族時,通過
/v1/da/*或網絡簽署的交易途徑提交明示表,印意圖或承諾. - 讓驗證者或可用性提供者收集根據活躍證明政策所要求的證據.
- 在推廣一個姓名,結算證明或關口路線之前,請詢問所產生的針意圖或承諾.
算法模型
DA 將一個有效載荷轉化爲簽署的,反彈保護的,區塊索引承諾.重要算法是確定性的,所以驗證器和網關可以從相同字節中重新計算相同的消化.
- Torii 接受一個用量請求,包括
(lane_id, epoch, sequence),用量字節,壓縮元數據,零件大小,刪除配置文件,節點在要求時將gzip,delate或Zstandard的有效載荷解壓縮,然後驗證標準字節長度等於total_size. - 驗證車道和零件參數.該車道必須存在於 Nexus 車道目錄中.
chunk_size必須具有兩個,至少兩個字節的非零功率.不大於配置的最大值.刪除資料必須包括數據片段和至少兩個平率片段.車道目錄選擇證明方案,無論是merkle_sha256還是kzg_bls12_381. - 應用網絡政策.節點強制對類的配置複製和保留基線.公共元數據必須保持純文本;只使用統治方式的元數據在被寫入表格之前,由節點的配置統治性元數據密鑰加密.
- 常規的有效載荷是通過固體尺寸的配置文件進行的
chunk_size. Torii 計算有效載荷消化,可檢索性證明樹根和每塊的承諾. 數據分量 BLAKE3 對於其字節的承諾. - 添加刪除承諾.切片被組分爲
data_shards的條紋.最後條紋中缺失的細胞是零填充的,用於平衡計算. RS(16) 平衡創造排/全球平衡分片;可選的row_parity_stripes在矩陣中添加列式條紋平衡. 平衡分片承諾是 BLAKE3 少數符號的消化u16. - 建立表格.
DaManifestV1記錄了車道,時代,斑點類別,編碼器,有效載荷消化,零件根,零件大小,刪除配置文件,保留政策,租金報價,零件承諾,可選的 IPA 承諾,元數據和發佈時間.存儲門票是確定性的:節點首先將一個表格模板與空格門票哈希,然後把指紋寫回爲最後的storage_ticket. - 拒絕重播衝突.重播鍵是
(lane_id, epoch, sequence, manifest_fingerprint).具有相同指紋的複製件是無效的.已過時的序列或具有不同的指紋的同一序列被拒絕. - 發行簽署的文物. 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可以爲區塊中的一個承諾提供證明.該證據包含承諾,區塊高度,捆綁中索引,捆綁哈希,捆綁長度,默克爾根和兄弟路徑.驗證檢查:
- 證據捆綁哈希匹配區塊標題的 DA 承諾哈希.
- 證明區塊高度與引用的區塊標題相匹配.
- 指數是限額的,承諾等於該指數中的包入.
- 車道防護政策接受了承諾.
- 從承諾葉子摺疊的兄弟路徑重建了提供的根.
- 複製的根與捆綁根等.
這證明,一個特定的區塊有效載荷中包含了具體的可用性承諾;這並不證明每個複製品都目前在線.通過 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 文檔開始:
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查詢.
包裝,表達,簽署和提交
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 提交中,並等待終端管道狀態.
檢查和帶來
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檢查可回收性證明
運營商可以對存儲提供商進行檢查並啓動驗證:
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.toSoraDNS
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.
導入網關主機
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 有效載荷應該覆蓋正規的哈希主機,正規的野生卡片和選擇的漂亮的主機.
獲取一個分辨器目錄快照
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評價.識別器分辨率使用BfvIdentifierPublicParameters和BfvIdentifierCiphertext, 在此,插槽0存儲輸入字節長度,後來的插槽存儲每一個加密字節.- Soracloud 狀態和職位方案模型 FHE 密碼文本工作負載與管理管理參數組,執行政策,密碼文檔承諾,查詢封以及披露請求.
BFV 識別器路徑用於保護隱私的註冊. 客戶端可以提交加密識別器到 Torii 解決方案中.根據活躍識別器政策,獲得一個 OpaqueAccountId,併發出一個收據. ClaimIdentifier然後將該收據綁定到目標賬戶附帶的 UAID.
其他 UAID 而在數據模型中, UniversalAccountId 是哈希支持的,顯示爲 uaid:<hash>. 解析者接受了兩種 uaid:<hash> 或是原始的64 Hex消化. Account 和 NewAccount 包含可選 uaid 和 opaque_ids 運行時間登記執行一個對一個的 UAID-對賬戶指數,拒絕複製或碰撞的不透明標識符,並且拒絕沒有 UAID. 每當一個 UAID 運行時間重建空間目錄數據庫的綁定. UAID.
空間目錄表達了將功能添加到 UAID.一個 AssetPermissionManifest 命名 UAID,數據空間,激活和可選的過期時代,並按數據空間,程序,方法,資產和 AMX 角色進行排序允許/拒絕輸入.評價是拒絕勝利:第一個匹配拒絕拒絕請求,否則最新匹配允許候選人與任何數額限制進行檢查.發佈,過期和撤銷這些表格由 CanPublishSpaceDirectoryManifest保護.
對於 Soracloud FHE 狀態,實施的計劃是:
| 方案 | 它控制了什麼? |
|---|---|
SoraStateBindingV1與 FheCiphertext | 聲明狀態密鑰前置值爲 FHE 密碼文本. |
FheParamSetV1 | 名稱:方案,後端,模塊鏈,多項級別,插槽數量,安全目標,生命週期和參數消化. |
FheExecutionPolicyV1 | 限制密碼文本大小,純文本的大小,輸入/輸出數量,乘法深度,旋轉,啓動帶和圓形模式. |
FheGovernanceBundleV1 | 一個參數設置與一個執行政策進行錄取驗證. |
FheJobSpecV1 | 描述對密碼文本狀態密鑰和承諾的確定性 Add, Multiply, RotateLeft或 Bootstrap工作. |
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 數據庫.
此外,請參見: