Hacker News new | past | comments | ask | show | jobs | submit login
IPFS Pubsub: Distributed named pubsub channels based in the IPFS Cloud (ipfs.io)
209 points by KirinDave on Dec 8, 2017 | hide | past | favorite | 37 comments



Hey Everyone! IPFS dev here, If anyone is interested in the future of ipfs pubsub you can participate in the discussions in our research repo: https://github.com/libp2p/research-pubsub . One of the next big things we're planning to do is to implement a new routing algorithm, one proposal for this is here: https://github.com/libp2p/research-pubsub/pull/17 (feedback and review very welcome)

We are also planning on implementing various different modes for authentication and encryption. Our pubsub currently is plaintext and open for anyone to publish to any topic


When you're talking about a routing proposal, I think you are referring to this? https://github.com/vyzo/research-pubsub/blob/a6cfdd3fec9d595...



Sweet. Is there an RFC for authentication yet?


Not yet, its somewhere in our giant pile of things to do. If anyone is interested in helping out on this I can definitely help out and point people in the right direction.


I wouldn't want to drive this but I'd be interested in contributing and providing feedback. yaniv [] functionalfoundry com


Any updates on filecoin integration?


Pubsub is probably one of the lesser known features of IPFS right now, given that it's still marked as experimental. We're researching more efficient tree-forming and message routing algorithms, but generally the interface is pretty stable by now. Pubsub is supported in both go-ipfs and js-ipfs.

A shining example of pubsub in use is PeerPad, a collaborative text editor exchanging CRDTs over IPFS/Pubsub: https://peerpad.net


Off-topic question for you. What language do you recommend developers build IPFS-backed apps with? I started building an app in Go (which is your reference language) but Javascript seems to have a lot more APIs available for it.


If you're looking for raw performance and/or large datasets, go-ipfs is for you. If you're​ looking for running within websites (and in browsers generally), then js-ipfs is for you.


IPFS just keeps looking more and more useful. I'm starting to wonder about planning future text-rich applications (forums, news, blog, etc..) with article backups to IPFS and a link on the live site.

Would require extra storage and overhead, but the result is maybe even more helpful than a tor site for important content.


make no mistake: ipfs _by_itself_ is no more "anonymous" than torrenting or other types of file sharing ftp/sftp/ssh/http/whatever...

because they can always get your ip address.

You will need to use some other method if you want anonymity.


Sorry, the reference to Tor is misleading. I was not referring to anonymity but rather access to content from restricted areas like the Middle East or Asia.


In that sense, I would agree, ipfs can provide access to content that would otherwise be blocked.


Could ISPs throttle IPFS content the same way they did with torrents a while ago? (and probably will again once net neutrality falls).


Sure -- but libp2p's network transports underneath are pluggable. There's already Websockets (/ws, think domain fronting! [1]) and Tor (/onion) transports, so there's various options for evading censorship (I personally consider bandwidth throttling a form of censorship).

[1] Domain fronting lets you use a well-established web frontend for your web service. E.g. we could host /ws nodes in Google Cloud, and to the ISP the TLS handshake looks like it's for google.com, while inside the connection there's e.g. a `Host: libp2p.googlecloud.com` header. More info: https://www.bamsoftware.com/papers/fronting/

But then again, net neutrality is a political issue! You don't solve it for good with technology.


The real challenge to this is negotiating pinning without it being exploitable by third parties.


Is there where a third party node can spoof (or lie about) the content belonging to a pin to clients that ask it?


Since IPFS is based on content addressing, if a node tries to spoof a piece of content, any peers trying to fetch from the malicious node will immediately see that the content provided does not match the desired hash.

I'm not sure how peers handle that situation, I'd assume it'd be treated like wire corruption (retry) or give up and try to fetch from a different peer.


But that doesn't stop ddos attacks.


True, but a ddos also doesn't exactly mean the content is "exploitable".

I presume future clients would block nodes that share false content (if clients don't already).


Pins are something that's per-node, and whether a node has a specific piece of content pinned is not visible publicly (only that it's providing the content).


as far as I know www.shiftnrg.org is building something along those lines... decentralised hosting on IPFS + custom DNS...


Back in the day (late 1990s iirc) I used Usenet as a global, distributed, publish/subscribe bus for system messages between island service POPs. Messages PGP encrypted and carried by a variety of groups (mostly alt.*). Also eventually consistent. Very eventually in some cases.

"Floodsub" indeed.


So, botnet C&C with no takedowns and more efficient and lower risk than servers on Tor? Nice.


Maybe, but remember IPFS nodes can elect to blacklist any given channel, so any given static C&C site here is just as vulnerable as a DNS point or a given static IP address.


There's no blocking functionality in IPFS yet - the plan is to have customizable opt-in blocklists (and allowlists) for content and peers, though, so communities can govern themselves regarding what content is desired and what's not.


I'm a complete IPFS ignorant but I can't help but wonder what's a typical latency in such a pubsub system? I would imagine it varies widely but some anecdotal experiences would be nice to hear


Is there some kind of podcast or YouTube series about ipfs and similar technologies? I'd love to learn more about how they work, what they're working on, and what's next.


Check out the IPFS YouTube channel (https://www.youtube.com/channel/UCdjsUXJ3QawK4O5L1kqqsew) and Decentralized Web Primer (https://www.gitbook.com/book/flyingzumwalt/decentralized-web...) as starting points.

For a more overarching perspective, I'd suggest A Progress Report on the Decentralized Web: https://www.youtube.com/watch?v=WK4PIGr3RB8


How does spam prevention work?


> Currently, any peer can publish to any pubsub topic. We plan to implement an authenticated mode for pubsub topics, where only authorized peers — those given a cryptographic key or capability — can publish messages. We are still working out the sharing and capability granting model.


It doesn't even slightly.


Great work by vyzo on this. Look forward to using this for all sorts of content publication!


Article is from seven months ago. I'd be curious to see if there is an update to this.


Looking over the github I don't see much code changes being committed.


Could this be used for neartime RSS type functionality? I have zero IPFS experience.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: