Storage

The protocol is designed to be storage system agnostic. For the quick-start and proof-of-concept implementations, the data storge system used is swarm. Swarm meets the design requirements of decentralised and data ownership.

Generic Payloads

Service Provider Info / Items / Terms

The initial design is for service provider data to be stored monolithically, excluding images. The payloads are generic in nature, with payloads designed to be extended by industry-specific implementations.

Each payload is placed in a SignedPayloadWrapper, with an authorised API signer having signed a hash of the payload which is subsequently placed in SignedPayloadWrapper.signature. This provides

message ServiceItemData {
  // primitive item.id
  bytes item = 1;
  // industry-specific payload describing item
  bytes payload = 2;
}

message ServiceTermData {
  // primitive term.id
  bytes term = 1;
  // industry-specific payload describing term
  bytes payload = 2;
  // smart contract address that implements ITerm interface
  string implementation = 3;
}

message ServiceProviderData {
  // primitive serviceProvider.id
  bytes serviceProvider = 1;
  // services (items) provided by this service provider
  repeated ServiceItemData items = 2;
  // terms that may be applicable to services provided
  repeated ServiceTermData terms = 3;
  // industry-specific payload describing service provider
  bytes payload = 4;
  // signed hash by ServiceProvider `api` signer
  bytes signature = 5;
}

movi Payloads

Driver Profile

// ServiceProviderData.payload
message Driver {
  // name of driver
  // vehicle description
  // phone number
  // profile picture
  // connectivity in vehicle
}

Rider Profile

// BuyerData.payload
message Rider {
  // name of rider
  // phone number
  // profile picture
}