Help wanted

Hello,

I want to build a distributed Solid app

which will more or less do this:

  1. Me and only me should be able to add new records to the distributed storage(however it may be implemeneted). Records are Argon2 hashes.

  2. Other users can , (by using android and iphone apps) modify those records, if they provide

source of that Argon2 hash.

So, I can put Argon2(x) into a distributed database. And others can modify that record if they provide x.

everything should run on a multitude of self hosted pods and if one fails, everything should continue to work

best regards

Veljko

Hi, my impression of Solid so far is that the access to a resource should not additionally be protected by any hash, IFF the party wishing modification of a given record are allowed access by you in this case. The whole idea of Solid is to manage access (using Universal Access API) from one WebId to another. In the scenario where the "other user’ has no WebId, you are supposed to make the data you wish to share public de facto and then protect the contents using another mechanism, among which a hash inversion check. In that case however, Solid Pod tech may not be what you need. But again, that is my impression after building only the simplest of Solid app.

1 Like

Hi,

is there any reason you want to implement this with Solid? What would be the advantages over a blockchain / other approach you want to get with Solid in this use case? e.g. with Ethereum you would already have the distributed database and can create a smart contract that only allows modification if the preimage x is provided (though you’d need to prevent front-running attacks).

That said, you maybe could implement a custom identity provider, s.t. a user can login as https://your.id.provider/argon2/{hash} only when they provide the preimage x. Then you could use the Solid access controls to allow https://your.id.provider/argon2/{hash} to modify these records.

For the distributed storage and failure tolerance there are no in-built mechanisms and I’m not aware that someone already published such tools. So you would need to build this yourself (host several pods and keeping them synchronized).

1 Like