14 ms·
Show HN: A Decentralized StatusPage on IPFS
- paulogr 9y agoOne of the main problems while I was researching about status page services and saw many having the same doubts here was about where to deploy the status page. Besides this market has a lot of players even the biggest one had problem when the big S3 outage happened last year (see ref-1). What about do not depend on a centralized infrastructure to deploy you status page and kept always alive? This project aims to deploy you status page on a decentralized infrastructure IPFS (see ref-2), after installed it, you will be running a status page service on top of a local IPFS node. So you’ll be able to to publish you status pages on IPFS while being part of the network. I thought this use case fits perfect on a decentralized environment. You can deploy this service on a VPS for 1/4 of the price you pay for your current status page service provider. See an example of a status page deployed using D StatusPage: https://gw1.dstatuspage.net/ipfs/QmePTzsSVae8BK8antLHfV2xWfEf3C8px7yQ9gUX5PY1N3/ https://gw1.dstatuspage.net/ipfs/QmePTzsSVae8BK8antLHfV2xWfE... http://gw2.dstatuspage.net/ipfs/QmePTzsSVae8BK8antLHfV2xWfEf3C8px7yQ9gUX5PY1N3/ http://gw2.dstatuspage.net/ipfs/QmePTzsSVae8BK8antLHfV2xWfEf... What are you thoughts? https://www.dstatuspage.net https://www.dstatuspage.net https://github.com/paulogr/dstatuspage https://github.com/paulogr/dstatuspage This software is still in alpha state with basic status page service functionalities, feel free to ask for a feature or address any issue you have: https://github.com/paulogr/dstatuspage/issues https://github.com/paulogr/dstatuspage/issues - ref-1: https://blog.statuspage.io/a-birds-eye-view-of-the-amazon-s3-outage https://blog.statuspage.io/a-birds-eye-view-of-the-amazon-s3... - ref-2: https://ipfs.io https://ipfs.io The software will be distributed for free and open source under MIT license.
- heavenlyblue 9y agoSo how do I (perma-)link the user to the latest status page?
- paulogr 9y agoIPFS has a so called IPNS system that use mutable hashes. So when you publish using this piece of software you got always a permanent link to share with your users.
- foxhop 9y agoWhat if I wanted to always link to the latest, like from my normal HTTPS powered web site? Is there a way to link to the head so that it always references the latest version?
- mstade 9y agoI believe that's what the previous poster means, you get a namespace that points to the canonical version of your resource, whatever that may be. Kind of like how HEAD is an alias for the latest SHA on a branch in git. But I don't know, this is just how I understood the previous comment.
- jstanley 9y agoThe latest would be a link like /ipns/yourcompany.com, and you'd have a TXT record pointing at your node's IPNS hash (or an IPFS content hash directly) and you update it by either updating what your node's IPNS hash points to, or by editing the DNS record to point to the latest IPFS content hash.
- foxhop 9y agoNow I'm even more confused. I suppose I'll watch a talk on youtube or something. Edit: currently watching this - https://www.youtube.com/watch?v=BA2rHlbB5i0 https://www.youtube.com/watch?v=BA2rHlbB5i0 (10 minutes)
- StreamBright 9y agoSo far we learned that the HTTP web is slow, impermanent and centralized. This is why it can support billions of people daily in every corner on the planet and have services like https://archive.org/ https://archive.org/. Time to move on I guess. I wonder why do we need an http to IPFS gateway for that video he just uploaded though.
- foxhop 9y agoI'm brand new to the IPFS concept, this looks really cool! I was surprised to see that the page served via IPFS supports HTTPS, do you happen to know how the secret key is securely shared among nodes in the decentralized environment?
- fyi1183 9y agoThe HTTPS is served by the proxy, it has nothing to do with IPFS.
- paulogr 9y agoThe https version is served thru a proxy. This is the way you can get your status page visible to the HTTP world. The gotcha is that anyone on the IPFS network could have a copy of your page and serve them in your behalf.
- edraferi 9y ago> anyone on the IPFS network could have a copy of your page Yes, but critically they can't modify it thanks to content addressing [0]. > and serve them in your behalf. Yes, over IPFS. So anyone with an IPFS client will have a robust way to view your status page. If people want to view it via HTTPS, they hit ipfs.io, which is an IPFS/HTTP gateway. While it's possible for other people to run gateways, I believe ipfs.io is the main one. It could theoretically be a bottleneck. [0] https://dweb-primer.ipfs.io/avenues-for-access/lessons/power-of-content-addressing.html https://dweb-primer.ipfs.io/avenues-for-access/lessons/power...
- travelton 9y agoIf I understand correctly, you still need a gateway VPS to proxy the ipfs site out to the internet over http. Isn't this a single point of failure, as your gateway server will be pegged. Or am I misunderstanding the implementation? You could have a VPS in multiple regions, but we're back at square one.
- dna_polymerase 9y agoI think you can run IPFS locally and access the IPFS network without a gateway this way.
- Kudos 9y agoSounds like IPFS needs more ubiquity before this is something you can rely on. I know IPFS support is coming to Firefox soon, but I suspect it's much further off for other browsers.
- icebraining 9y ago"IPFS support is coming to Firefox soon" Not exactly, as far as I understand it; you still need to manually install an addon, it's just that the addon can now handle ipfs:// links when you click on them. https://news.ycombinator.com/item?id=16243530 https://news.ycombinator.com/item?id=16243530
- diggan 9y agoThat's entirely correct. Before it had to be prefixed with `web+` and now just `ipfs://` will work. For the extension, the IPFS community have been developing one which will use this new feature: https://github.com/ipfs-shipyard/ipfs-companion https://github.com/ipfs-shipyard/ipfs-companion PR for tracking the protocol handler is here: https://github.com/ipfs-shipyard/ipfs-companion/pull/359 https://github.com/ipfs-shipyard/ipfs-companion/pull/359 Disclaimer: I work for Protocol Labs on IPFS
- sudhirj 9y agoAnybody can gateway the entire IPFS network, so not really. The officially maintained gateway is just one gateway. If you don’t want to rely on it, can run your own.
- book_mentioned 9y agoCompeting on price is a mistake for enterprise customers, they want to pay more. Saying this option is cheaper counts against it. Make it as reliable as IPFS claims it can be (this has to work in the real world!), and as easy to use as a Twitter account, then market that combo. Look at the competition for pricing ideas, and charge more since your offering delivers.
- KirinDave 9y agoWhy is this desirable? IPFS nodes don't really rehost content for any substantial period of time (especially the gateway) so you're still stuck with some major problems: 1. You're still hosting off your IPFS node. This isn't worse, but it isn't better. You need to have a node and it needs to have connectivity. 2. IPNS resolution is glacial and it's a known issue without resolution currently. So any gateway trying to resolve your current version of the IPFS-hosted status page through a gateway using IPNS can often end up waiting seconds (sometimes even tens of seconds) for name resolution, giving the impression of a downed status page. Sadly, IPFS is more of a decentralized presentation and perhaps caching framework. It doesn't really achieve the goal of decentralized storage until there is some reliable way to persist the data on the network beyond immediate use. Pinning services exist, but most seem quite expensive to me.
- prophesi 9y ago1. They're hoping that FileCoin will resolve that issue. Akin to Storj and Siacoin, people will offer to host (aka pin) content on their IPFS gateway node in return for FileCoins, and the market will decide the price. 2. In the meantime, you can set up a script to update your DNS TXT record to point to the most recent IPFS hash. I've got a static site generator that does this upon the completion of a build.
- KirinDave 9y agoIt's really too bad that anyone still thinks FileCoin is not a deeply flawed (if not outright scammy) endeavor. The only reason it isn't more widely decried is that the IPFS folks have a lot of goodwill in the community. But it's a bad coin. As for your #2, I don't use this solution because of propagation times. Instead, I use an nginx proxy that rewrites incoming requests on a specific path to root on IPFS node. When I rebuild, I rebuild that site config there. But tbh, I'm going to undo that. I get absolutely nothing for being part of IPFS and there's effectively no reason to host content there. It's a DHT and while that's cool, it's actually substantially less efficient than alternatives. I've been enthusiastic about IPFS because it's a neat white paper, but after using it for months I've concluded it's a tech demo with no real direction to go other than a deeply flawed cryptocurrency.
- Nelkins 9y agoHow timely, considering I am intermittently getting gateway timeouts on HN right now.
- TeMPOraL 9y agoSpeaking of which, what's up with the Twitter frame on the status page? I keep getting HN errors quite regularly, but the Twitter bot reports that the most recent failure happened two years ago...
- corben 9y agoHere's a status page for HN that has built-in monitoring, so it shows all downtime: https://hn.hund.io https://hn.hund.io
- ComputerGuru 9y agoI mean, your status page itself may be on ipfs but since ipfs isn’t natively supported as a browser protocol, your “decentralization” fails since you’ll likely need to host the http <—-> ipfs gateway somewhere. Might as well stick your status page on a couple of vps (literally just two on two different continents) and round robin them.
- paulogr 9y agoThe gotcha there is that you can use multiple gateways to access you page. So you are right, you need to have a http <--> ipfs but you can have many of then and anyone hosting an IPFS node can have a copy of your page and serve it.
- federicobond 9y agoFirefox has already whitelisted the IPFS protocol so that extensions can provide implementations. It won't be long before this can be decentralized. https://blog.mozilla.org/addons/2018/01/26/extensions-firefox-59/ https://blog.mozilla.org/addons/2018/01/26/extensions-firefo...
- rhn_mk1 9y agoOne thing I'm missing (or misunderstanding) about IPFS is updates. In a centralized system, like HTTP, a site has a single address: something.example.com. Any new entry (e.g. blog post) I create gets its own entry address, but is also referenced from the main site address. As far as I understand, IPFS contains static copies of documents, so any document that would be the "front" page would have to be copied before updating with new entries, and would receive a new address. How to let readers know that a new entry is available then? Would there need to be a centralized place referencing all existing entries?
- CapacitorSet 9y agoOne word: IPNS. It's a DNS-like system, though much slower than DNS due to propagation delays. It points to the latest version (hash) of a document, much like a git branch.
- cortesoft 9y agoBeing slow is kinda a deal breaker for a status page, isn’t it? The whole point is to notify your customers of an issue, and you need to do that fast. Most issues are only going to last a few minutes anyway, so any delay in update makes the whole thing pretty moot.
- federicobond 9y agoThere's a PubSub implementation for IPFS that can provide support for dynamic content in this case. I'm pretty sure there is another way to provide fast updates through some indirection mechanism though. https://ipfs.io/blog/25-pubsub/ https://ipfs.io/blog/25-pubsub/
- CapacitorSet 9y agoYup, I agree that IPFS is not the best choice.
- diggan 9y agoThe slowness of IPNS is something we're actively working on. Currently we have fixed so resolutions are faster after the first lookup, by using the libp2p feature pubsub. It being faster/slower than DNS depends on your case, but if you're close to the next node, it'll probably be faster. If you're offline, DNS won't work at all :) We also have more fixes for IPNS in general that will come soon. So, depends on your use case in the end. Disclaimer: I work for Protocol Labs on IPFS
- foxhop 9y ago> Powered by D StatusPage on IPFS The URI on the footer of the status page points to here: https://www.statuspage.co https://www.statuspage.co - but it doesn't appear to load, is this an artifact from development?
- paulogr 9y agoThis is a bug from development :) I saw this and will be fixed on next release. Thanks for reporting.
- survivaletc 9y agoI love that the background image is a schematic of a centralized network. Look at that single point of failure! ^^ https://www.dstatuspage.net/decentralized.png https://www.dstatuspage.net/decentralized.png
- amelius 9y agoI think that the edges represent links across which information did/does flow, not where it can flow.
- diggan 9y agoWell, I think it's showing a decentralized network, not centralized. Maybe closer to federated, who knows, it's not clear. It's for sure not distributed though, while IPFS is a distributed file system. If the graph contained at least one other link between the nodes than via the center one, it would make it more clear. I think this famous graph (from Paul Baran https://www.rand.org/about/history/baran.html https://www.rand.org/about/history/baran.html) does a good job of showing the difference: https://ipfs.io/ipfs/QmdYtMUTnz6vaQNRUAzhh8YiSSGzBCyQrCXE5AgEeYowVx https://ipfs.io/ipfs/QmdYtMUTnz6vaQNRUAzhh8YiSSGzBCyQrCXE5Ag...
- sp332 9y agoIn a tree, any node can be chosen as the "root". That means any non-leaf node is a SPOF.
- Spearchucker 9y agoI think his point is that the existence of a SPOF obviates the need for distribution.
- jstanley 9y agoBut it should be a DAG instead of a tree.
- some1else 9y agoIt's decentralized. Maybe you were referring to distributed networks? https://cdn-images-1.medium.com/max/600/1*nnpzTe1hx74WKICL3Gj34A.jpeg https://cdn-images-1.medium.com/max/600/1*nnpzTe1hx74WKICL3G...
- jatsign 9y agoApologizes for blockchaining every comment, but one of the cryptocurrencies I'm interested in, from a tech perspective, is doing something similar. It lets you host your website on IPFS as well. http://www.shiftnrg.org/ http://www.shiftnrg.org/
- icebraining 9y agoI'd find your post acceptable if the site had any technical content about how it's actually supposed to work. As it stands, it's just marketing fluff.
- tw1010 9y agoNaive question: if data on IPFS is permanent, meaning it's hard or impossible to remove things from it, what mechanisms, if any, exists to prevent unlawful content from being uploaded to it?
- oblio 9y ago> What mechanisms, if any, exists to prevent unlawful content from being uploaded to it? Probably the same ones used against P2P, lawsuits and pressure on national governments to crack down against the offenders :)
- tw1010 9y agoSo there is a way to figure out who is downloading what on IPFS? (At least assuming that you have assets comparable to national governments.)
- wybiral 9y agoYeah, the nodes connect via IP addresses. You could proxy it through Tor or something though.
- icebraining 9y agoAs far as I understand it, proxying it is dangerous because IPFS will announce all your IPs so that the shortest routes can be established. You probably need to run it in a VM/container that only has access to Tor and no other network adapter.
- wybiral 9y agoAh, good to know. I love the idea behind IPFS but it just doesn't feel mature enough yet. The documentation, examples, consistent APIs, etc, don't seem very solidified.
- 9y ago
- book_mentioned 9y agoThis is such a natural use case for IPFS that commercial adoption seems inevitable; as first mover you can offer the concierge edition and optionally gain a ton of credibility by open sourcing some of the core bits! It sounds like your marketing will need to explain: 1. How updates work and how you guarantee staying universes away from NSFW/illegal content -- answered separately because nobody wants to find out what IPFS is infamous for as a part of discovering your service. (Both explanations need to function at two levels: one for techies and one for their bosses controlling the purse strings.) This may be possible to pull in quickly from existing CC-licensed documentation. 2. How users can link to content through multiple redundant WWW gateways/other services, and how to pay (you and others) for more reliability. Reliable reachability is absolutely key here, and should be built on multiple existing 3rd parties that are already used as status pages. For example: pay extra to whitelabel an auto-Twitter retweet bot. Opportunity to be the "enterprise IPFS contact" here - explain from soup to nuts how to push status updates from anywhere (setup and simplified through your service but without requiring it be reachable) with any of multiple Yubikey/hardware auth tokens. -- Consider a completely separate marketing push/landing page that doesn't even mention IPFS until potential customers ask how it works. IPFS is a buzzword here but commercial customers probably count it as a negative (analogy: ICO on HN). Focus on the unique features IPFS offers and write up how those features solve the status page problem!
- jstanley 9y agoIs IPFS infamous for illegal content? My perception was that it's still much too easy to trace the origin of content on IPFS and therefore not suitable for illegal things.
- giancarlostoro 9y agoEveryone's IP is public, and I think your home network gets exposed which I think is the worst part of it (or so I was told).
- book_mentioned 9y agoDepends on target market, so ideally non-technical perception (enterprise budget). There is probably still time to do effective marketing that conveniently doesn't emphasize it but discreetly assuages any concerns. However, I am hard pressed to find any sizable HN discussion that doesn't mention it? It's basically worrying about what shows up as downsides when Googling, since most potential customers are starting from zero.
- NickBusey 9y agoI'm not sure this is actually Decentralized. I have been playing with IPFS quite a bit recently, and this looks to host the content on one node. That node goes away, your content goes away. You need more than one nodes 'pinning' the same content in order to actually be decentralized, and as far as I can tell this project doesn't provide that functionality. That has been my biggest drawback so far with IPFS, there isn't really an easy way to get other nodes to pin the correct content, without passing around big nasty hashes (e.g., QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG) by hand.
- mtgx 9y agoI thought the devs invented Filecoin for exactly that reason - to incentivize people to pin content. They haven't enabled Filecoin for IPFS yet?
- NickBusey 9y agoCorrect. Also correct.
- txsh 9y agoIf I understand it correctly, it is decentralized. When pages are accessed they are automatically copied and hosted by nodes. Eventually, garbage collection will delete the copy. Pinning prevents it from being deleted so that the node hosts it permanently.
- NickBusey 9y agoAs far as I'm aware the 'automatic copying and hosting' currently lasts for around 30 minutes. You need to manually pin anything you want to live for longer than a day for sure. Additionally, this project utilizes IPNS, which clears it's DHT of entries that haven't refreshed within the past 24 hours. So you DEFINITELY need at least one node online, pretty much always, for this content to load.
- txsh 9y ago
- marknadal 9y agoBig fan of IPFS here, but silly question, isn't a status page suppose to have realtime updates of whether a service is online or not? This doesn't seem like a good fit unless you're using some realtime CRDT adapter on top like they list here https://github.com/ipfs/research-CRDT/blob/master/Readme.MD https://github.com/ipfs/research-CRDT/blob/master/Readme.MD (disclaimer: I'm the author of https://github.com/amark/gun https://github.com/amark/gun, which is one of the listed options). The StatusPage link is sparse on info, anybody know how it works underneath? Sorry if I'm confused on how status pages are supposed to work, can it really be static if it is supposed to be reporting services uptime liveliness (and thus requires some type of realtime monitoring)??
- stevekemp 9y agoThere seem to be two types of status-pages: Really great ones show that all services are up, and often have timing information, graphs, or metrics, etc. An example of this would be https://status.bitbucket.org/ https://status.bitbucket.org/ More basic status-sites generally only show useful detail(s) if something is currently broken, and perhaps will show you a summary of recent problems over the past few days. An example of that would be https://status.github.com/messages https://status.github.com/messages (I wrote a simple status-page for my own site, but I elected to go the simple route. I do monitor availability and response-time(s) of various parts of the service, but I only update the site when there are problems, manually. This works for me because problems are rare, and my site is small.)
- marknadal 9y agoThank you for these links! So... This still seems problematic though - if you manually update it, then the hash of the page is going to change, and then you'd need to retrieve a different IPFS item than the original status page. And so on... No? This just seems like an odd loop.
- stevekemp 9y agoWhen I manually update my site, that just means I add a file to the git-repository with today's date. Once I commit and push that a Makefile rebuilds my (static) site. I don't personally use IPFS, but I imagine if I did then I'd have a script to change DNS, or update the hash IPFS uses. I see from other replies that updating the "most recent" version of a site is simple enough that it shouldn't be a problem in practice.
- deleted 9y ago[deleted]
- zapita 9y agoHas anyone here used both IPFS and DAT in-depth? I am a happy IPFS user, and it seems that it has more traction than DAT. But on the other hand, the Beaker Browser project (which is based on DAT) is very interesting, and doesn't seem to have an equivalent in IPFS. I'm also worried that the IPFS team might get distracted by Filecoin and not invest seriously in the IPFS ecosystem beyond what Filecoin needs. I'm interested to hear what others think?
- StreamBright 9y agoDecentralized is the new buzzword in the crypto community and it is used everywhere to justify everything. I lost count how many times people were trying to sell me ideas with "its decentralized, you get it???". I am getting more and more resilient to take anything seriously that is solved with this. For me S3 is a perfect storage and with Cloudfront is decentralized enough for my use cases. As far as I am concerned a node that is not under AWS or my control is not the definition of decentralized it just means that you have less control over a distributed object store that has worse access patterns than for example S3. Bandwidth is one of the problems. If a typical IPFS node is a home computer than it has 10x upload speed compare to the download speed. This is going to limit how somebody can access content from IPFS. And so on. These access patterns are pretty relevant when you are hosting something other than backups on such a system.
- RainaRelanah 9y ago> Bandwidth is one of the problems. If a typical IPFS node is a home computer than it has 10x upload speed compare to the download speed. This is going to limit how somebody can access content from IPFS. This can easily be addressed by choosing hosts which have gigabit upload links if you are hosting high demand files. Personal computer backups may opt for hosts with 10mbit upload that offer much cheaper storage. It may not be possible to do so atm, but eventually the platforms will get there. It's still very early and most distributed storage technologies are nowhere near complete.