AgregoreWeb / agregore-browser

A minimal browser for the distributed web (Desktop version)
https://www.youtube.com/watch?v=TnYKvOQB0ts&list=PL7sG5SCUNyeYx8wnfMOUpsh7rM_g0w_cu&index=14
GNU Affero General Public License v3.0
751 stars 66 forks source link

Agregore Web with Solid #195

Open ghost opened 2 years ago

ghost commented 2 years ago

Is Your Feature Request Related to a Problem? Please Describe I would like the Agregore Web to have Solid support - Solid allows the user to manage their own browsing data.

Solution You'd Like

  1. There are some browsers that allow or support Solid like: Pod Browser, Brave Browser, Beaker Browser, Min Browser - it would be interesting to have another browser option with Solid support like Agregore
  2. Supported Protocols - Agregore Browser: BitTorrent, Hypercore, Gemini, IPFS, Gun, SecureScuttlebutt - I would like to know if you all have already thought about having Solid support. Have you all ever thought about having Solid support?

Alternatives You've Considered

Additional Context

RangerMauve commented 2 years ago

It's not clear to me what SOLID integration would actually look like.

Would you mind elaborating on what that would entail? Are you imagining new protocols handlers for SOLID? Or is this some sort of UI addition?

ghost commented 2 years ago

@RangerMauve Hi!

1. What is Solid Project?

For us to know a little about what Solid Project means we have 3 definitions:

  1. Solid is a specification that lets people store their data securely in decentralized data stores called Pods. Pods are like secure personal web servers for data. When data is stored in someone's Pod, they control which people and applications can access it.
  2. Solid [1] is a web decentralization project led by Sir Tim Berners-Lee, the inventor of the World Wide Web, developed collaboratively at the Massachusetts Institute of Technology (MIT). The project "aims to radically change the way Web applications work today, resulting in true data ownership as well as improved privacy"[2] by developing a platform for linked-data applications that are completely decentralized and fully under users' control rather than controlled by other entities. The ultimate goal of Solid is to allow users to have full control of their own data, including access control and storage location. To that end, Tim Berners-Lee formed a company called Inrupt to help build a commercial ecosystem to fuel Solid.
  3. Solid (derived from "social linked data") is a proposed set of conventions and tools for building decentralized social applications based on Linked Data principles. Solid is modular and extensible and it relies as much as possible on existing W3C standards and protocols.

2. FAQ - Frequently Asked Questions

  1. Would you mind elaborating on what that would entail? No, I can detail everything ;D

  2. Are you imagining new protocols handlers for SOLID? yes. Something: solid://

  3. Or is this some sort of UI addition? User can activate feature 'solid' or not.

  4. How can Solid Project be implemented in the browser Agregore Web? Aggregate Web from what I noticed and realized by the code implements the client part of the protocols like: BitTorrent, Hypercore, Gemini, IPFS, Gun, SecureScuttlebutt. What I'm asking for is client integration in the Aggregore Web browser with the Solid protocol.

  5. Why? The Aggregore Web browser implements as I said several protocols like: BitTorrent, Hypercore, Gemini, IPFS, Gun, SecureScuttlebutt and coming soon like: EarthStar, Gopher Protocol, Pigeon Protocol - What I'm asking for is integration of the Aggregore Web browser with the Solid protocol. Solid is a protocol like BitTorrent, Hypercore, Gemini, IPFS, Gun, SecureScuttlebutt etc.

  6. How to integrate Solid protocol client part in Agregore Browser? You need to use these libraries: "@inrupt/solid-client": "^1.23.1","@inrupt/solid-client-access-grants": "^1.0.1", "@inrupt/solid-client-authn-browser": "^1.12.0", "@inrupt/solid-ui-react": "^2.8.0" - reference here and reference here too

3. See more\Contacts

4. See more\References

RangerMauve commented 2 years ago

Hey there, thank you for the follow up. I was out of office for the past week and a bit on a conference. Are you still interested in SOLID integration with Agregore?

One useful next step would be to talk about some example solid:// URLs and how they map to interacting with actual data.

Typically URLs in Agregore look like scheme://origin/path. If the scheme is solid, what sort of data should go in the origin?

Also what sort of methods will we need for it. E.g. GET/POST.

I personally don't have time to code up protocol handlers for this, but I'm down to help guide folks on an implementation and to review / merge PRs. 😁