Really looks interesting, I like that there went some thought into integrating with the existing web, lowering the barrier of entry compared to other projects.
(Thinking of the webfont/JS discussion going on in another thread: so when can we start to deliver fonts and jquery content-addressed from this? ;))
> Though if you want something to stick around, you have to seed it yourself for now.
Question: Do all nodes act as peers, serving from their local cache once they requested a piece of data (basically, does it feel like normal bittorrent in that regard)? Or are there differences?
Yes, files (or blocks) you request stick around on your computer. There is a garbage collection command that will remove unpinned files. There is also going to be (not sure if it's implemented yet) the bitswap. More information about the bitswap can be found in the paper.
Yeap! bitswap is currently pretty dumb, but I have a branch that will watch the network for popular blocks and cache them for a short period (until GC). When I get more time, Im going to implement some more interesting AI into it, its currently pretty dumb. (code: https://github.com/jbenet/go-ipfs/compare/feat/smartswap)
It's been around for a long time, has hash-based content addressing with versioning, and is primarily a web-centric utility. Plus, it's based on anonymity for both the browsing user and the content cacher.
Is there an architecture diagram somewhere? Or some kind of description that isn't in video form?
I'd like to understand how http interface discovery works? Is there a single http gateway, or is there some kind of DNS integration with multiple gateways?
You can check the papers on the non-code repo [1] but an update to the whitepaper (4th draft) is in the works.
not sure what you mean by http interface discovery, thou. Each local node opens a readonly http interface (localhost:8080 by default) and a json api interface for cli and webui (localhost:5000 by default). gateway.ipfs.io simply a node that exposes it's readonly http interface.
The binary 'wire' protocol happens on 4000 by default. The discovery of other nodes happens by connecting to a bunch of known/configured nodes to bootstrap and asking them for other nodes.
forthcoming talks will address this. these are really really important topics that deserve careful attention + detail in explanations of our models. :)
Wow. Just yesterday I was searching for info Tent & Eris to assess building something similar (I think combining payments with this would be sweet). Great to see!
Wow, had a bunch of ideas that came up after a good night's sleep.
- This is what many of my friends initially thought "Cloud Technology" was, and were disappointed to find out that the cloud tech we have today isn't truly peer-to-peer.
- This has immediate application for distributing data generated by governments.
- I don't have to use rsync or capistrano to deploy websites. I can write locally to an ipfs content address, and the servers will automatically pick it up.
- This would be awesome as a way to distribute public Docker containers or App containers.
- Containers + ipfs can potentially make for a highly portable app, one where both the code and the data are portable. At the very least, you wouldn't have to create a data container and link a different container to get that data out. Some potentials are things like redesigning Diaspora, or even running distributed copies of OpenFarm. (Any non-profit, open-sourced crowd-sourced data project, like OpenFarm, would seriously benefit from this -- people can contribute compute, network, and storage by installing a container with that stuff already there).
- DRM might actually work. (I've brought this up before, and it has been really unpopular with people since they are not rationally thinking about the societal value of DRM). The problem with current DRM schemes is that it puts the power on the side of the merchants. Using neutral third party schemes don't work well. There is also the problem of when the merchant shuts down and kills the asset servers. What we really want to do is register rights in a p2p setting like with Counterparty or one of the blockchain technology. IPFS would solve the asset distribution and storage problem. (Enforcement is interesting, and one potential idea that just bubbled up: if you can have a web of trust, you can have a web of distrust; use peer pressure to mitigate bad actors; this works well if people actually want some reasonable way of having property rights over data).
- Promise Theory. Been reading and thinking a lot about this. I see promise theory as a possibility for helping with human-to-AI interactions. It's core premise is based upon documenting intent and evaluating trust in actions out in the open. IPFS would allow AIs to publish intent as well as publish their evaluation of trust. This allows for reputation management for AIs.
- A similar application above would work for reputation management for humans. For example, TaskRabbit, ELance, and other gig markets currently lock up reputation data as proprietary. On the other hand, reputation published on IPFS would be portable. (It could also be built on web-of-trust, something brought up by that co-opt consultancy posted here). This is also an application of Promise Theory.
The ideas keep coming up, will start up an ipfs node and store some of that there.
Great points! thanks for the reply! Containers are our next big 'target feature', the ability to simply boot from an ipfs hash will be extremely useful.
You should stop by our irc channel (#ipfs on freenode) and chat!
love love the intiative. this is what I believe our internet will become, a giant decentralized p2p, immune to the forces that is aimed to destroy content (either copyright, censorship , anti-anonymity).
I believe that this distributed p2p internet will the ultimate threat to internet companies. Imagine we no longer need to trust a corporation with all of our data, imagine we no longer need to be victims of attention theft while using services that is entirely powered by nodes of the network.
This is of course very far off and not at all the perfect utopia I am describing but this is definitely the right way to go and eventually the future.
Not sure if ipfs.io will take off, unless it offers something that regular internet does not, the name could also be changed to something more catchy.
Hi! If you haven't already found it, a good way to start is to lurk around the IRC #ipfs channel on freenode (logs: https://botbot.me/freenode/ipfs/). If you have any skills in Golang go ahead and check out the issues labeled as "help wanted" https://github.com/jbenet/go-ipfs/labels/help%20wanted. Those ones are generally easier for newcomers to tackle. If you have other talents go ahead and ask in the IRC channel and we'll point you in the right direction.
Really looks interesting, I like that there went some thought into integrating with the existing web, lowering the barrier of entry compared to other projects.
(Thinking of the webfont/JS discussion going on in another thread: so when can we start to deliver fonts and jquery content-addressed from this? ;))