The Dat project, with hypercore lib and https://beakerbrowser.com/ are really promising!
Are there any tooters who played with it? Any feedbacks?
@22 @paul @taravancil I wonder how an authentication mechanism and authorization could be implemented for "non technical users". Something like https://auth0.com/blog/an-introduction-to-ethereum-and-smart-contracts-part-3/?
I am also starting to look at hypercore to use it as an event store for an app and it is promising also...
@22 @taravancil @Pierre Authentication in a live session will be doable once you have a username->dat binding, since each dat is address by a keypair. Just have to be careful with the auth construction to avoid tricking the user into signing payloads that aren't related to authenticating a connection-session
@Pierre @taravancil @22 The other consideration about key-distribution is keeping the service honest
If I bind a dat to my 'bob' profile on 'fritter.com', then we expect 'fritter.com/bob' to provide the pubkey of the dat I gave-- but of course that's a trust issue
To help with that, we can have fritter.com distribute a hypercore logging all of its bindings, similar to in Certificate Transparency
@paul @22 @taravancil Thanks for these very interesting insights. I understand better how it could be achieved, and in the end there is this famous "trust issue" to be solved, but transparency is a fair solution indeed!
I've started to build some stuff with https://github.com/mafintosh/hyperpipe, which makes distributed event stores and streams super nice. I kinda used it to make a distributed tweet viewer thingy: https://hypertweet.glitch.me/, https://glitch.com/edit/#!/hypertweet?path=README.md:1:0
Docs on hyperpipe need some love (they haven't reflected recent changes), I'll try to update those soon.
@joehand @22 @paul @taravancil I am not sure it really is a problem -> https://github.com/mafintosh/hyperpipe/blob/f92746e044f152ef37a255517e7f6b42afa291df/index.js
@Pierre @taravancil @22 Yes actually, we've been thinking something along those lines.
It's relatively simple, for instance, to have a user prove ownership of a Dat to a service (https://github.com/datprotocol/hypercloud/blob/master/docs/flows/dat-ownership-proof.md)
Building flows for binding dats to a service username is then straight-forward, and that's key distribution (more on that in a second)