New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comparison: Solid vs Ethereum Dapps, Swarm, IPFS, Dat, Storj, Hedera Hashgraph, Internet of People, Safe Network #183

Closed
niutech opened this Issue Oct 3, 2018 · 17 comments

Comments

Projects
None yet
8 participants
@niutech

niutech commented Oct 3, 2018

I am new to Solid but the web page does not describe its features clearly enough. How does Solid compare with existing distributed web platforms, such as Ethereum Dapps, Swarm, IPFS, Dat, Storj, Hedera Hashgraph, Internet of People, Safe Network, etc.? What are the pros and cons of your solution?

(Sorry that I am asking here, but I cannot find an official Solid forum.)

@niutech niutech changed the title from Comparison: Solid vs Ethereum Dapps, Swarm, IPFS, Storj, Hedera Hashgraph, Fermat, Safe Network to Comparison: Solid vs Ethereum Dapps, Swarm, IPFS, Dat, Storj, Hedera Hashgraph, Internet of People, Safe Network Oct 3, 2018

@bblfish

This comment has been minimized.

Show comment
Hide comment
@bblfish

bblfish Oct 3, 2018

Contributor

If one were to try to keep track of all the different proposals one would spend one's life doing that and not getting anything else done. So your question has to be an open one. I'll answer on a couple I think I can say something:

Ethereum like most blockchain solutions is distributed data not decentralized. In a way it is a central database that every one has a copy of, and that requires an expensive consensus protocol that a lot of people have to be part of to identify the next version of that db. SoliD allows complete decentralization without requiring duplication or global consensus. I argue in Epistemology in the Cloud why that is an epistemological requirement on agency.

IPFS is also distributed but it does not require global data consensus. Everyone can say what they want on IPFS, it's just that everybody could end up knowing it.

IPFS could be useful and integrated with SoliD for use cases that are happy to have the data replicated as widely as possible. Given that SoLiD is based on the RDF, ie logic applied to the web, then it can integrate with all kinds of protocols. SoLiD starts with http(s) as it is the most widely distributed protocol in existence.

Contributor

bblfish commented Oct 3, 2018

If one were to try to keep track of all the different proposals one would spend one's life doing that and not getting anything else done. So your question has to be an open one. I'll answer on a couple I think I can say something:

Ethereum like most blockchain solutions is distributed data not decentralized. In a way it is a central database that every one has a copy of, and that requires an expensive consensus protocol that a lot of people have to be part of to identify the next version of that db. SoliD allows complete decentralization without requiring duplication or global consensus. I argue in Epistemology in the Cloud why that is an epistemological requirement on agency.

IPFS is also distributed but it does not require global data consensus. Everyone can say what they want on IPFS, it's just that everybody could end up knowing it.

IPFS could be useful and integrated with SoliD for use cases that are happy to have the data replicated as widely as possible. Given that SoLiD is based on the RDF, ie logic applied to the web, then it can integrate with all kinds of protocols. SoLiD starts with http(s) as it is the most widely distributed protocol in existence.

@melvincarvalho

This comment has been minimized.

Show comment
Hide comment
@melvincarvalho

melvincarvalho Oct 3, 2018

Contributor

@niutech short answer is that solid, for the most part, is a semantic layer that sits on top of those other technologies, and should be complimentary. Lots more details of course, but I thought Id give a high level comment.

Contributor

melvincarvalho commented Oct 3, 2018

@niutech short answer is that solid, for the most part, is a semantic layer that sits on top of those other technologies, and should be complimentary. Lots more details of course, but I thought Id give a high level comment.

@niutech

This comment has been minimized.

Show comment
Hide comment
@niutech

niutech Oct 3, 2018

Thank you for explaining it. But how does Solid decentralization work compared with e.g. IPFS? When I upload my data to a Solid pod and it goes down, isn't it a single point of failure, unlike distributed IPFS nodes?

niutech commented Oct 3, 2018

Thank you for explaining it. But how does Solid decentralization work compared with e.g. IPFS? When I upload my data to a Solid pod and it goes down, isn't it a single point of failure, unlike distributed IPFS nodes?

@melvincarvalho

This comment has been minimized.

Show comment
Hide comment
@melvincarvalho

melvincarvalho Oct 3, 2018

Contributor

Thank you for explaining it. But how does Solid decentralization work compared with e.g. IPFS? When I upload my data to a Solid pod and it goes down, isn't it a single point of failure, unlike distributed IPFS nodes?

It certainly is, unless we make some content addressable backup space (which is quite doable btw).

But the alternative is what? To have redundancy in IPFS you need to pin a file, which is a paid service. And only as long as the pins survive. They are basically different cost models, with different cost / benefit / risk profiles.

I'd really like to work on creating multihash content hosted on solid pods. I dont think it's hard -- just put the file in .well-known/multihash/hash and get others to mirror it with some routing and a key space. Fun weekend project, if I find time! :)

Contributor

melvincarvalho commented Oct 3, 2018

Thank you for explaining it. But how does Solid decentralization work compared with e.g. IPFS? When I upload my data to a Solid pod and it goes down, isn't it a single point of failure, unlike distributed IPFS nodes?

It certainly is, unless we make some content addressable backup space (which is quite doable btw).

But the alternative is what? To have redundancy in IPFS you need to pin a file, which is a paid service. And only as long as the pins survive. They are basically different cost models, with different cost / benefit / risk profiles.

I'd really like to work on creating multihash content hosted on solid pods. I dont think it's hard -- just put the file in .well-known/multihash/hash and get others to mirror it with some routing and a key space. Fun weekend project, if I find time! :)

@imta11

This comment has been minimized.

Show comment
Hide comment
@imta11

imta11 Oct 3, 2018

imta11 commented Oct 3, 2018

@timathom

This comment has been minimized.

Show comment
Hide comment
@timathom

timathom Oct 3, 2018

But the alternative is what? To have redundancy in IPFS you need to pin a file, which is a paid service. And only as long as the pins survive. They are basically different cost models, with different cost / benefit / risk profiles.

@melvincarvalho Although there may be services that you can pay to pin your files in IPFS for you, pinning itself--as far as I understand--is a core feature of IPFS, something that anyone can do. Do you have a source for saying it's a paid service?

timathom commented Oct 3, 2018

But the alternative is what? To have redundancy in IPFS you need to pin a file, which is a paid service. And only as long as the pins survive. They are basically different cost models, with different cost / benefit / risk profiles.

@melvincarvalho Although there may be services that you can pay to pin your files in IPFS for you, pinning itself--as far as I understand--is a core feature of IPFS, something that anyone can do. Do you have a source for saying it's a paid service?

@melvincarvalho

This comment has been minimized.

Show comment
Hide comment
@melvincarvalho

melvincarvalho Oct 3, 2018

Contributor

@timathom you're right. It doesnt have to be a pinned service. You can pin it on your laptop and access it from your laptop (if you would want to do such a thing), or you can pin it on your laptop and access from another device, but then you have to keep your laptop on, and connected to the net. Im trying to get at the point (probably badly phrased) that there is a cost model for the redundancy.

Contributor

melvincarvalho commented Oct 3, 2018

@timathom you're right. It doesnt have to be a pinned service. You can pin it on your laptop and access it from your laptop (if you would want to do such a thing), or you can pin it on your laptop and access from another device, but then you have to keep your laptop on, and connected to the net. Im trying to get at the point (probably badly phrased) that there is a cost model for the redundancy.

@niutech

This comment has been minimized.

Show comment
Hide comment
@niutech

niutech Oct 4, 2018

@melvincarvalho what if you put Solid pods on top of something like IPFS, so that a pod is also an IPFS node as well as an HTTPS gateway? Wouldn't it provide the best of both worlds?

EDIT: There is already a Safe Network backend for Solid.

niutech commented Oct 4, 2018

@melvincarvalho what if you put Solid pods on top of something like IPFS, so that a pod is also an IPFS node as well as an HTTPS gateway? Wouldn't it provide the best of both worlds?

EDIT: There is already a Safe Network backend for Solid.

@melvincarvalho

This comment has been minimized.

Show comment
Hide comment
@melvincarvalho

melvincarvalho Oct 4, 2018

Contributor
Contributor

melvincarvalho commented Oct 4, 2018

@niutech

This comment has been minimized.

Show comment
Hide comment
@niutech

niutech Oct 4, 2018

@melvincarvalho This has been discussed in ipfs/ipfs#75.

niutech commented Oct 4, 2018

@melvincarvalho This has been discussed in ipfs/ipfs#75.

@kggp1995

This comment has been minimized.

Show comment
Hide comment
@kggp1995

kggp1995 Oct 5, 2018

Im trying to get at the point (probably badly phrased) that there is a cost model for the redundancy.

I think a cost model to help users manage / address redundancy makes sense.

In case of IPFS, we can think of encrypting data & then pinning them in the IPFS redundancy pool. This makes the data management fairly distributed & safe from unauthorized access at the same time.

Crypto payments to the interested parties in persisting these redundant shards of info is a common concept that could be availed as an option.

@timbl @melvincarvalho I hope this concept is in-line to the vision of Solid? Just checking..

kggp1995 commented Oct 5, 2018

Im trying to get at the point (probably badly phrased) that there is a cost model for the redundancy.

I think a cost model to help users manage / address redundancy makes sense.

In case of IPFS, we can think of encrypting data & then pinning them in the IPFS redundancy pool. This makes the data management fairly distributed & safe from unauthorized access at the same time.

Crypto payments to the interested parties in persisting these redundant shards of info is a common concept that could be availed as an option.

@timbl @melvincarvalho I hope this concept is in-line to the vision of Solid? Just checking..

@melvincarvalho

This comment has been minimized.

Show comment
Hide comment
@melvincarvalho

melvincarvalho Oct 5, 2018

Contributor

I hope this concept is in-line to the vision of Solid? Just checking..

@kggp1995 solid (like the web) is about permissionless development. So the solid dev's vision doesnt matter. What matters is the creativity and imagination of those building apps.

The solid architecture is to be as neutral as possible and allow developers to create without hitting walls.

Crypto payments to the interested parties in persisting these redundant shards of info is a common concept that could be availed as an option.

Agreed, I think this it's a really interesting use case, and would like to work on some proof of concept :)

Contributor

melvincarvalho commented Oct 5, 2018

I hope this concept is in-line to the vision of Solid? Just checking..

@kggp1995 solid (like the web) is about permissionless development. So the solid dev's vision doesnt matter. What matters is the creativity and imagination of those building apps.

The solid architecture is to be as neutral as possible and allow developers to create without hitting walls.

Crypto payments to the interested parties in persisting these redundant shards of info is a common concept that could be availed as an option.

Agreed, I think this it's a really interesting use case, and would like to work on some proof of concept :)

@kggp1995

This comment has been minimized.

Show comment
Hide comment
@kggp1995

kggp1995 Oct 5, 2018

@melvincarvalho glad to know! I will fork the server repo & get started on the IPFS Service abstraction.

Will ping you if I hit a tech roadblock.

kggp1995 commented Oct 5, 2018

@melvincarvalho glad to know! I will fork the server repo & get started on the IPFS Service abstraction.

Will ping you if I hit a tech roadblock.

@thecryptodrive

This comment has been minimized.

Show comment
Hide comment
@thecryptodrive

thecryptodrive Oct 6, 2018

From what I understand a Solid Pod is essentially an encrypted container for your online identity and data, it does not exist in any distributed context and as mentioned above is a single point of failure and hence, once located, is easily censored as well. A more robust network could be created by treating Pods as nodes for sharding purposes, you would still need a Pod to join the network and house your data but it would also add to the global sharding pool, where encrypted shards of data from x other pods are stored within your Pod and in turn your data is sharded to other Pods.

This basically creates a self-healing network where you could essentially rebuild your Pod from the shard network if the host server ever failed. Timestamped version restore capabilities would also be useful, should your sharded data ever become corrupted or compromised, allowing rollback to a previous state archived by the shard mesh network.

Basically, a Pod as a single container is a nice idea as a starting point, but with sharding, each new Pod that joins would also add to the security and immutability of the Solid network community and make it a truly robust and technically marvellous concept.

thecryptodrive commented Oct 6, 2018

From what I understand a Solid Pod is essentially an encrypted container for your online identity and data, it does not exist in any distributed context and as mentioned above is a single point of failure and hence, once located, is easily censored as well. A more robust network could be created by treating Pods as nodes for sharding purposes, you would still need a Pod to join the network and house your data but it would also add to the global sharding pool, where encrypted shards of data from x other pods are stored within your Pod and in turn your data is sharded to other Pods.

This basically creates a self-healing network where you could essentially rebuild your Pod from the shard network if the host server ever failed. Timestamped version restore capabilities would also be useful, should your sharded data ever become corrupted or compromised, allowing rollback to a previous state archived by the shard mesh network.

Basically, a Pod as a single container is a nice idea as a starting point, but with sharding, each new Pod that joins would also add to the security and immutability of the Solid network community and make it a truly robust and technically marvellous concept.

@megoth

This comment has been minimized.

Show comment
Hide comment
@megoth

megoth Oct 17, 2018

For those that want to continue this discussion, I can recommend trying out the new forum! ^_^ https://forum.solidproject.org/

megoth commented Oct 17, 2018

For those that want to continue this discussion, I can recommend trying out the new forum! ^_^ https://forum.solidproject.org/

@megoth megoth closed this Oct 17, 2018

@melvincarvalho

This comment has been minimized.

Show comment
Hide comment
@melvincarvalho

melvincarvalho Oct 19, 2018

Contributor

@megoth thanks for the pointer. Just a point on process.

As we dont yet have a process relating the discourse site to github (which is our primary issue system), could I suggest the following.

If there is consensus of moving an issue from github to discourse, create a pointer to the previous issue there, and vice versa.

This topic has generated some interested and is asked about frequently. I think it would be a good candidate for an FAQ. Consider reopening temporarily.

Contributor

melvincarvalho commented Oct 19, 2018

@megoth thanks for the pointer. Just a point on process.

As we dont yet have a process relating the discourse site to github (which is our primary issue system), could I suggest the following.

If there is consensus of moving an issue from github to discourse, create a pointer to the previous issue there, and vice versa.

This topic has generated some interested and is asked about frequently. I think it would be a good candidate for an FAQ. Consider reopening temporarily.

@megoth

This comment has been minimized.

Show comment
Hide comment
@megoth

megoth Oct 19, 2018

If there is consensus of moving an issue from github to discourse, create a pointer to the previous issue there, and vice versa.

There is a thread started from this issue, Distributed Solid (based on IPFS, SAFE Network, etc.), although I would argue the thread is slightly more specific than the questions initially proposed here.

In general I think people should link to this issue if they have threads inspired from it, and add a comment here pointing to the new thread, in case people are following this issue. (I guess this comment ensures that for the aforementioned thread.)

This topic has generated some interested and is asked about frequently. I think it would be a good candidate for an FAQ. Consider reopening temporarily.

This issue and the Discourse thread are good resources for keeping track of the interest in this topic. It might be a lot of threads going forward, and could be a bit confusing for newcomers to get into, but hey, that's threaded discussions for you ;)

We could reopen this issue to make it easier to find? But could mark it with a specific label that conveys to us developers that this is merely a discussion issue?

megoth commented Oct 19, 2018

If there is consensus of moving an issue from github to discourse, create a pointer to the previous issue there, and vice versa.

There is a thread started from this issue, Distributed Solid (based on IPFS, SAFE Network, etc.), although I would argue the thread is slightly more specific than the questions initially proposed here.

In general I think people should link to this issue if they have threads inspired from it, and add a comment here pointing to the new thread, in case people are following this issue. (I guess this comment ensures that for the aforementioned thread.)

This topic has generated some interested and is asked about frequently. I think it would be a good candidate for an FAQ. Consider reopening temporarily.

This issue and the Discourse thread are good resources for keeping track of the interest in this topic. It might be a lot of threads going forward, and could be a bit confusing for newcomers to get into, but hey, that's threaded discussions for you ;)

We could reopen this issue to make it easier to find? But could mark it with a specific label that conveys to us developers that this is merely a discussion issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment