-
Notifications
You must be signed in to change notification settings - Fork 26
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
[2021 Theme Proposal] IPFS ❤️ to make new friends #78
Comments
Thank you for submitting your first issue to this repository! A maintainer will be here shortly to triage and review.
Finally, remember to use https://discuss.ipfs.io if you just need general support. |
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days. |
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days. |
Note, this is part of the 2021 IPFS project planning process - feel free to add other potential 2021 themes for the IPFS project by opening a new issue or discuss this proposed theme in the comments, especially other example workstreams that could fit under this theme for 2021. Please also review others’ proposed themes and leave feedback here!
Theme description
Adding friends to your IPFS node would allow us to send them messages, share content with them and allow them to store stuff on your node and the other way around.
When you share content with a friend, your node could create an ACL with the friend's nodes, to avoid sharing this data with the whole network (see also #75). This would require to have private files in your IPFS node, which isn't shared with the network at all by default.
Those changes avoid, that user builds small networks with network keys since they can use the public network simultaneously. This makes the transition between private, peer-group, and public data for the users much easier and allows also some additional features and benefits for the network.
Potential benefits for the network:
Cross-Device-Signing allows coalescing multiple nodes-ids to one 'friend' entry
Give friends storage on your node:
More robustness of the network due to a build-in Web Of Trust:
Hypothesis
IPFS is great, but there's no way to add friends to a node or connect nodes together and have them hold the same data, like a Dropbox or a Google Drive.
Adding ACLs and friends allows both: Having data available without even have some server running since a friend's computer can hold the data and easy and secure sharing of files with friends.
Vision statement and why focus on it this year
I think that's what people are currently missing from IPFS and whats somewhat holds back the adoption in daily use.
The team worked hard to grown IPFS mature enough to be used for general purpose and I think 2021 would be a good target to get these features in to make it useful for daily life.
Example workstreams
[ ] Create the ability to store a web of trust with different levels of trust in the node.
[ ] Start bootstrapping with friend's nodes while still bootstrapping simultaneously to the bootstrap nodes to avoid netsplits
[ ] Make it configurable how many connections (in percent or as integer) should be held open to friends all the time - which are not part of the normal connection limits.
[ ] Implement messages with a topic-tag, an 'application'-tag and headline/text/respond-options etc.
[ ] Add ACLs for data stored in the client
[ ] Implement cross-signing between clients
[ ] Create a 'private files' section in the clients, which can be listed and accessed with all cross-signed clients
[ ] Allow easy push and pull of data stored in the 'private files' section of the clients to other clients, or all clients commanded via messages
[ ] Create an eventually consistent message database shared between the clients, to be able to store and share messages from all the different clients and sync them without conflicts.
[ ] Change the search for data to ask and prioritize the friends when requesting data from the network, to avoid having to ask the DHT and connect to the other side of the world to get the data. Local transfers first. 😃
[ ] Add a config option to give friends a quota in your client
[ ] Give friends (with quota) the ability to push data to your client, with an ACL
[ ] Add an option to store a copy of (private) files to a list of friends, sharded to avoid that one friend do holds all data. This gives a user a chance to access files which are on a node which is offline via fetching it from friends, while not being limited
by individual upload bandwidth limits of the friends.
[ ] Implement proxied network access for low-power nodes (which only opens one connection to the proxy and commands network operations) see for more details
Other content
Related already created tickets by me (some mentioned before)
The text was updated successfully, but these errors were encountered: