Walrus Publisherは、データの保存準備、ストレージ料金の支払い、およびWalrusネットワークとのトランザクション管理を担当します。
BLOBの保存
BLOBをWalrusネットワークに追加します。BLOBデータはリクエストボディで送信されます。Publisherがデータの保存準備、ストレージ料金の支払い、Walrusネットワークとのトランザクション管理を行います。
ベースURL
https://walrus-mainnet-publisher.nami.cloud/${endpoint_key}/
ここで${endpoint_key}は、あなた専用のエンドポイントキーです。
クエリパラメータ
BLOBを保存するストレージエポック数(デフォルト: 1)
BLOBを削除可能として保存するかどうか(デフォルト: false)
リクエスト例
# 1エポック分のストレージで文字列を保存
curl -X PUT "https://walrus-mainnet-publisher.nami.cloud/${endpoint_key}/v1/blobs" \
-d "some string"
# 5エポック分のストレージでファイルを保存
curl -X PUT "https://walrus-mainnet-publisher.nami.cloud/${endpoint_key}/v1/blobs?epochs=5" \
--upload-file "some/file"
# ファイルを保存し、BLOBオブジェクトを特定のアドレスに送信
curl -X PUT "https://walrus-mainnet-publisher.nami.cloud/${endpoint_key}/v1/blobs?send_object_to=${ADDRESS}" \
--upload-file "some/file"
# ファイルを削除可能なBLOBとして保存
curl -X PUT "https://walrus-mainnet-publisher.nami.cloud/${endpoint_key}/v1/blobs?deletable=true" \
--upload-file "some/file"
レスポンス - 新規作成BLOB
BLOBが初めて保存された場合、newlyCreatedフィールドに新しいBLOBの情報が含まれます:
{
"newlyCreated": {
"blobObject": {
"id": "0xe91eee8c5b6f35b9a250cfc29e30f0d9e5463a21fd8d1ddb0fc22d44db4eac50",
"registeredEpoch": 34,
"blobId": "M4hsZGQ1oCktdzegB6HnI6Mi28S2nqOPHxK-W7_4BUk",
"size": 17,
"encodingType": "RS2",
"certifiedEpoch": 34,
"storage": {
"id": "0x4748cd83217b5ce7aa77e7f1ad6fc5f7f694e26a157381b9391ac65c47815faf",
"startEpoch": 34,
"endEpoch": 35,
"storageSize": 66034000
},
"deletable": false
},
"resourceOperation": {
"registerFromScratch": {
"encodedLength": 66034000,
"epochsAhead": 1
}
},
"cost": 132300
}
}
レスポンス - 既に認証済みのBLOB
Publisherが同じBLOB IDかつ有効期間が十分な認証済みBLOBを見つけた場合、alreadyCertified JSON構造が返されます:
{
"alreadyCertified": {
"blobId": "M4hsZGQ1oCktdzegB6HnI6Mi28S2nqOPHxK-W7_4BUk",
"event": {
"txDigest": "4XQHFa9S324wTzYHF3vsBSwpUZuLpmwTHYMFv9nsttSs",
"eventSeq": "0"
},
"endEpoch": 35
}
}
eventフィールドは、Sui Blobオブジェクトを作成したトランザクションをSui ExplorerやSui SDKで検索するために利用できるSuiイベントIDを返します。