Rent Blobber Registration

The Rent Blobber Registration process is used within the Züs ecosystem to register blobber storage providers for renting purposes.

Blobbers are an essential component in the decentralized storage architecture of Züs, offering storage services that can be leased by users.

By registering a rent blobber, storage providers can participate in the network, lease storage space, and manage their instances efficiently.

This guide provides a step-by-step approach for correctly setting up and registering a rent blobber via an API request. It includes:

  • A detailed explanation of the API request structure.

  • The required authentication headers and request body parameters.

  • Configuration steps in 0box.yaml to ensure correct integration.

  • An overview of portainer management within the Züs network.

Registering a Rent Blobber

To register a rent blobber, execute the following curl command:

curl -X POST \  
              -H "X-CSRF-TOKEN: ${X-CSRF-TOKEN}" \  
              -H "X-App-Client-ID: ${X-App-Client-ID}" \  
              -H "X-App-User-ID: ${X-App-User-ID}" \  
              -H "Content-Type: application/json" \  
              -d "{\"blobber_id\": \"${client_id}\", \"private_key\": \"${private_key}\", \"portainer_id\": \"${portainer_id}\", \"container_id\": \"${container_id}\", \"delegate_wallet\": \"${delegate_wallet}\"}" \  
              https://0box.dev.zus.network/v2/add-rent-blobber

Parameter Details

The request requires several header properties and body parameters:

Headers:

  • X-CSRF-TOKEN → The security token for authentication.

  • X-App-Client-ID → This should match wallets.owner_wallet in 0box.yaml.

  • X-App-User-ID → This should match rent_blobbers.user_id in 0box.yaml.

  • Content-Type → Must be set to application/json.

Body Parameters:

  • blobber_id → The unique identifier of the blobber being registered.

  • private_key → The private key associated with the blobber.

  • portainer_id → The identifier for the portainer instance. It must match an entry in 0box.yaml under portainer.rent_blobbers.hosts.

  • container_id → The name of the Docker container within the selected portainer instance.

  • delegate_wallet → The delegate wallet of the blobber.

Portainer Configuration in 0box.yaml

In 0box.yaml, portainer instances should be defined as follows:

portainer:
  rent_blobbers:
    username: "******"
    password: "******"
    hosts: 
      - "dev1.zus.network"
      - "dev2.zus.network"
      - "dev3.zus.network"

The portainer_id used in the request should correspond to the index of the host in portainer.rent_blobbers.hosts.

For example:

  • portainer_id: 0 → corresponds to dev1.zus.network

  • portainer_id: 1 → corresponds to dev2.zus.network

  • portainer_id: 2 → corresponds to dev3.zus.network

Additional Configuration in 0box.yaml

Ensure that the following properties exist in 0box.yaml for proper registration:

kms:
  user_id: *******
  domain: *******

rent_blobbers:
  user_id: *******

These properties are necessary to ensure secure key management and correct user identification during the blobber registration process.

Last updated