New data type - distributed set (multi value per key)

I have seen Project Decorum, which aim to create decentralized forum over SAFE.
Some challenge they had, in my perspective, is how can you link all posts(which is a structured data) to a single forum.
In other words, a way that each user on the network could append values to the same key.
It was solve there in alternative way(and maybe a better solution in that case) - by the concept of web of trust.

Someone had invited such data structure already - it is called Distributed Hash Table(DHT).
The funny thing in my opinion is that SAFE use this Kadmilia based concept for routing - but the multi value per key isn’t supported!
I do understand the distinction between routing level and data level, but it’s still paradoxically for me.

I think that adding such a data type, call it distributed subscribers list or distributed pointer or what ever you’d like make SAFE infrastructure much better. Additionally, it could improve the traffic of SAFE. Many new ways to route such data better between vaults and users.

And the technical details are not so hard in my opinion, here are the rules of subscribing to key:

  • The key is represented in HASH identifier
  • It’s impossible to create a key or to delete one, and hence, doesn’t cost money. The rule is such - if it had subscriber it exist, false otherwise.
  • You can only subscribe HASH identifier to the set, and it cost you 1 PUT for each.
  • You can remove such value from the set only if you have the correct signature. I think that in this case you should be refunded by the system in anti 1 PUT.

I guess I’m not the first one to talk about it (but couldn’t found such topic).
What do you think?


It is :wink: in that address you can have
1 - Immutable Data
2^64 Structured Data items
1 PrivateAppendable
1 PublicAppendable

We are probably not finished there, but you can have a lot of data types in a single address. There are 2^256 addresses that can host each of these types as well as nodes.


Thanks for your answer!
Each time I find here more and more features. (Sadly no one place when I can find all of them, but it’s ok)

  1. I can’t determine what is your answer - should I use Appendable data type or just rand a type for each subscription? In the latter one, does the user query by adress result in all data types associate with this address?
  2. Can you point me to documentation for appendable data types?
1 Like Here you are for now, the RFC repo has most of what’s happening right now.