client

We cover the commands provided by the polka-storage-provider-client CLI tool.

wallet

The wallet command is a thin wrapper over the subkey utility provided by Polkadot.

More information available on the wallet page.

info

The info command retrieves information about the storage provider it connects to.

$ polka-storage-provider-client info --rpc-server-url "http://127.0.0.1:8000" { "start_time": "2024-11-06T11:29:06.058967136Z", "address": "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y", "seal_proof": "StackedDRG2KiBV1P1", "post_proof": "StackedDRGWindow2KiBV1P1" }

propose-deal

The propose-deal command sends an unsigned deal to the storage provider, if the storage provider accepts the deal, a CID will be returned, that CID can then be used to upload a file to the storage provider — for details on this process, refer to the File Upload chapter.

For the current MVP, the storage provider accepts all valid deals!

$ DEAL_TO_PROPOSE='{ "piece_cid": "baga6ea4seaqj527iqfb2kqhy3tmpydzroiigyaie6g3txai2kc3ooyl7kgpeipi", "piece_size": 2048, "client": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", "provider": "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y", "label": "", "start_block": 200, "end_block": 250, "storage_price_per_block": 500, "provider_collateral": 1250, "state": "Published" }' # when we omit the `--rpc-server-address` it defaults to "http://127.0.0.1:8000" $ polka-storage-provider-client propose-deal "$DEAL_TO_PROPOSE" bagaaieradsfmawozrmgjwxosarexpg7w7ytoe7xw2c63hv6svdc5hpucqo3a

sign-deal

The sign-deal commands takes a deal like the one passed to propose-deal and signs it using the passed key, the returned deal can then be used with publish-deal to send a deal for publishing. This command does not call out to the network.

$ DEAL_TO_SIGN='{ "piece_cid": "baga6ea4seaqj527iqfb2kqhy3tmpydzroiigyaie6g3txai2kc3ooyl7kgpeipi", "piece_size": 2048, "client": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", "provider": "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y", "label": "", "start_block": 200, "end_block": 250, "storage_price_per_block": 500, "provider_collateral": 1250, "state": "Published" }' $ polka-storage-provider-client sign-deal --sr25519-key "//Charlie" "$DEAL_TO_SIGN" { "deal_proposal": { "piece_cid": "baga6ea4seaqj527iqfb2kqhy3tmpydzroiigyaie6g3txai2kc3ooyl7kgpeipi", "piece_size": 2048, "client": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", "provider": "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y", "label": "", "start_block": 200, "end_block": 250, "storage_price_per_block": 500, "provider_collateral": 1250, "state": "Published" }, "client_signature": { "Sr25519": "32809cd5b53fa3c2e977f77c4e2189dee230b8773946cf94a704f8af19c578289c11ad256b56146195cfc5d7bb8f670003e4575e133f799f19696495046ed58f" } }

publish-deal

The publish-deal command effectively publishes the deal, its input is a deal signed using sign-deal, and the output is the on-chain deal ID.

$ SIGNED_DEAL='{ "deal_proposal": { "piece_cid": "baga6ea4seaqj527iqfb2kqhy3tmpydzroiigyaie6g3txai2kc3ooyl7kgpeipi", "piece_size": 2048, "client": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", "provider": "5FLSigC9HGRKVhB9FiEo4Y3koPsNmBmLJbpXg2mp1hXcS59Y", "label": "", "start_block": 200, "end_block": 250, "storage_price_per_block": 500, "provider_collateral": 1250, "state": "Published" }, "client_signature": { "Sr25519": "32809cd5b53fa3c2e977f77c4e2189dee230b8773946cf94a704f8af19c578289c11ad256b56146195cfc5d7bb8f670003e4575e133f799f19696495046ed58f" } }' $ polka-storage-provider-client publish-deal "$SIGNED_DEAL" 0