Every message (including sign-on/-off) creates a node in the DOM tree that never gets removed. That's about 15-20 per second at the moment, so this might cause the eventual crash.
very interesting. seems to be handling the load exceptionally well, even if the system messages are interfering right now. latency is quite good to!
there's something I don't understand from skimming the docs: if I want to use IPFS for a project of mine, do I have to deploy a IPFS backend or there's a default I can use? it's said to be peer-to-peer so unless the peer are shared across all projects small implementation may have issues to keep availability.
edit: figured out there's a public gateway and one can also set up a private swarm. sweet!
If you want to use IPFS, you can either import IPFS as a library (which this application does, everything is P2P in the browser, by using js-ipfs and including it in the application, you can see it in the annotated source here: https://ipfs.io/ipfs/QmbZVv9q52znhF9wN6GVi55EJQYq2BR6oeTgzVn...) or you can connect to a gateway.
+100 awesome for the annotated source. A lot of these demos get released as minified JS which makes it kinda useless to use them as a guide or hack on them.
Would have been easy to fix, if this wasn't a demo.
Either you use IPNS which are pointers to other data on IPFS. Or you can use DNS to point to IPFS hashes. The results are the same, you end up with a address that can be updated.
For this example I didin't use it, as it's just a silly little example.
Rather than using a discovery server, couldn't you throw in the web3 library and use Ethereum for that purpose? You could keep the discovery server as backup for people not connected to Ethereum nodes, but for those that are you'd be fully decentralized. To keep things cheap you could use Ethereum's event logging rather than actually storing data on chain.
In any case, this is great, I've been looking for something like this.
Not sure how that would work. You would have to make some transaction on the Ethereum network for other peers to discover you, correct? That kind of makes the barrier to entry a lot harder.
On desktop, it's possible to use mDNS et al, we need something similar for browsers.
Please tell me more how I could use Ethereum for discovery of other peers though, sounds interesting.
Yes, so it'd only work for people running things like the Metamask browser plugin. It'd be nifty because it'd be fully decentralized, but for now, using the discovery server as backup would keep it working for everyone else.
So you write a chat message, store it on IPFS and then send the hash to the other party? Why don't you just send the message through whatever means you're sending the hash?
This kind of app doesn't seem like a good fit for the whole IPFS idea. The same applies to Orbit.