Simple Structured Data implementation with new routing

Disjoint Groups are implemented in routing at the moment. It makes a group of nodes share the same routing table and makes them responsible for a specified part of the address range of the network. I was thinking about how we could implement structured data in the most basic way. I understand the network needs quite some advanced SD as well. Think of version updates, group owning of an addres and more. But what if we start with the most simple version possible? I call it: Single-user SD.

Single-user SD
This is the most basic implementation of structured data on the network. It’s an address + space where a node can PUT, POST, GET and DELETE data. The data might be private or public.

How it works
I’m a member of a group of nodes and want to store some SD. What should happen?

  • I ask my group to do a PUT for SD.
  • The nodes look at my balance and make me pay some Safecoin.
  • The group picks a random address with the SD tag_type to see if it’s available.
  • The group responsible for this address replies back to notify if the address is available.
  • If available my group signs a PUT and routes the data to the responsible group.
  • The responsible group allows me to GET, POST and DELETE this piece of data when requested.

As with Disjoint Groups each group between my Group A and the destination Group X signs the data while it’s routed. Things become very secure this way. Also the fact that my group picks a random address makes things secure. If a random address isn’t available they just pick another one (opposed to a Farming attempt which would fail in that case).

When a simple version of SD is implemented the more advanced ones could follow rapidly. But taking a small step and letting the community test it to the max would make sense IMO. The acronym for this is called KISS :upside_down:.