Bridging SOLID with Peergos

I work on the open-source Peergos project and recently gave a presentation on Custom Apps to dsocialcommons.org | twitter.com/dsocialcommons
edited video

I got feedback that i should reach out to the SOLID community. For those not familiar with the project: Peergos offers P2P connectivity, E2E encryption, fine grained access control
strong meta-data protection. github project (also self-hostable).
Can think of it as a global filesystem where people have total control over their data.
longer video from fosdem 2022

I need to admit my lack of knowledge of SOLID, but from a cursory glance of the spec i think it ought to be possible to run SOLID apps within Peergos with a shim. Possibly using GitHub - solid-contrib/solid-rest: a client-side API which supports any backend for Solid requests and a custom BrowserFS backend as a start. The identity part may also be doable building on existing functionality.
My question is: Would there be any interest in this? What would be a good example App to demonstrate?
Is this an opportunity for collaboration?

2 Likes

If you have questions about solid-rest, I’m the author, feel free to reach out here or in the gitter chat solid/app-development - Gitter.

2 Likes

@kev welcome to Solid…
I’ve take a look at peergos.
It’s based on Ipfs as i can see.
On Solid, each ‘user’ is known by its webid / a url something like
https://spoggy-test2.solidcommunity.net/profile/card#me
And got a space to store data like
https://spoggy-test2.solidcommunity.net/
With a private and a public part like https://spoggy-test2.solidcommunity.net/public
Like peergos each user choose what container or resource he /she share with who.

A big part of Solid is based on Linked Data, something like Ipld on ipfs Understanding IPFS in Depth(2/6): What is InterPlanetary Linked Data(IPLD)? | by vasa | towardsblockchain | Medium

On Solid one can have a public container, something like website on peergos.

App can be hosted on a pod or somewhere else and can interact with data stored on other pods whereas i think on peergos apps are only stored on peergos server and can only interact with data on user storage or with friends through chat api

1 Like

Thanks for the reply and links.
Yes, we do use elements of IPFS. We built ipfs-nucleus which only implements the 7 odd API calls we need.
The linked data aspect brings back memories of XML wrangling of years past.
Expanding elements on the page associated to the urls above is an intriguing way to navigate around as is the ‘xml source’ view.
I will need to dig into how ACLs are implemented.
Peergos apps do have access to content across the global file system according to the sharing permissions. It is early days and additional APIs will be added as use-cases emerge. Everything runs in the web client given the nature of E2E encryption and trust boundaries. Also have a CLI and FUSE support as well.
Much for me to learn about SOLID. Some things similar, some things quite different.

There are many implementation of Solid server
According to the specs
https://solidproject.org/TR/

And other in php /nextcloud bit i can’t remember its name

Acl has been implemented for nss
Acp seems to be more secure and is implemented on Ess
You can find more on acl Access Policies: Universal API — Inrupt JavaScript Client Libraries

This page could be useful too to know how to use a pod SolidOS Databrowser Frontend User Guide | userguide

1 Like