Rotonde / rotonde-client

Rotonde Base Client
https://client-neauoire.hashbase.io/
MIT License
227 stars 49 forks source link

Rotonde for iOS #79

Open karloscarweber opened 6 years ago

karloscarweber commented 6 years ago

Hello Friends,

I started working on a Rotonde client for iOS. It's read only for now because DAT doesn't run on a phone. Dat is also only single writer so a truly distributed system just isn't possible. This requires a new approach to getting a fully featured mobile Rotonde client working. Push notifications for mentions and Direct mentions would also need a conventional Push Notification server.

I see 2 possible solutions to overcoming these limitations on iOS in particular, and perhaps in facilitating richer services for other mobile clients.

Proxy Publishing: Manage your Rotonde DAT on a server and send commands to the server to then commit. This could be accomplished with a simple API. This method would also be compatible with any generic client. The downside is that now the DAT is on the server and a local Rotonde client would be necessary to truly get it off of your computer.

Feed mirroring: A worker process would monitor changes to an external feed and replicate them on your local feed. The Remote feed would be a feed that you post to from a mobile device through proxy publishing. Mirroring would have to be 2 way, the remote feed "mirror" would then also have to replicate your local changes.

I would prefer to figure out a solution that stays distributed while making it ultra easy to start your own Rotonde. The Repeater server seems necessary.

I plan on using Hashbase to automatically persist any DAT created on the Repeater.

Please let me know what ya'll think, or if you have any ideas about how I should structure this.

pfrazee commented 6 years ago

These are good ideas - I just want to mention that Dat is working on multiwriter, and some folks are working on mobile support for Dat as well.

neauoire commented 6 years ago

Well this might be a good place to get all the dev together and exchange ideas.

gojomo commented 6 years ago

Perhaps a 3rd option (that might require new underlying DAT support) would be for a DAT to be able to specify other overlay/underlay DATs, and for clients to consider the composition-of-them-all to be the effective-DAT. Essentially, union mounting for DATs.

soyuka commented 6 years ago

Some mobile node links worth being mentioned here:

pfrazee commented 6 years ago

@gojomo I do think a union mount would be interesting. Not sure yet whether it's worth the complexity, though!

max-mapper commented 6 years ago

@gojomo https://github.com/andrewosh/layerdrive

karloscarweber commented 6 years ago

There is just too much good stuff here, But in keeping with the spirit of peer-to-peer I think I should focus on Getting nodes-mobile to run on device to have a DAT on the iPhone. With the Hashbase API I can make a Rotonde DAT persist pretty easily.