[HN Gopher] Show HN: Fully-searchable Library Genesis on IPFS ___________________________________________________________________ Show HN: Fully-searchable Library Genesis on IPFS Author : sixtyfourbits Score : 280 points Date : 2021-09-19 15:42 UTC (7 hours ago) (HTM) web link (libgen.fun) (TXT) w3m dump (libgen.fun) | isoprophlex wrote: | And it's fast as hell too! | | This is fantastic yo, mad props. | | Thanks for liberating our collective knowledge, ipfs style. Keep | it up! | dr_dshiv wrote: | https://libgen-crypto.ipns.dweb.link/ | | Wow, this is way more user friendly than normal! Nice work. | severine wrote: | You could add a link to IPFS Lite (" _IPFS Lite node with modern | UI to support standard use cases of IPFS_ ") on F-Droid. Seems | actively updated, can anone vouch for its quality? | | Source: https://gitlab.com/remmer.wilts/ipfs-lite | | F-Droid: https://f-droid.org/en/packages/threads.server/ | 8K832d7tNmiQ wrote: | It's probably just a few steps away to finally build an IPFS | version of sci-hub. Sadly, I'm not a fan of the site's method of | searching the libgen index by using sqlite's partial load feature | [1] mainly because of the possible limited available storage | issue. | | [1]:https://phiresky.github.io/blog/2021/hosting-sqlite- | database... | morsch wrote: | I remember the sqlite via static host discussion, but I don't | understand what you mean by "the possible limited available | storage issue". Can you explain? | betwixthewires wrote: | Bravo. This is big stuff. | | There are some good critiques and ideas in this thread I won't go | over since it's been done, I have been putting off building | something akin to this (not the same thing but somewhat similar) | hoping someone more motivated would do it, and I'm very excited | to see it happen. | mbStavola wrote: | Immutability is a blessing and a curse for IPFS. | | It's cool for preventing things like censorship. Something like | SciHub would really benefit from it. | | However, for "real world" use cases, many people want to be able | to remove or modify what they've uploaded. With IPFS, as far as | I'm aware, doing either doesn't really change the underlying data | but just creates a new object in IPFS instead which you'd point | to via IPNS. Anyone who still wanted to view the old content | still could, provided they had the right content id. | | God forbid you accidentally upload a "personal" photo, your only | hope is that someone never comes across the content id of that | image. There is no way to undo it! | eric__cartman wrote: | From my understanding if you accidentally upload a personal | file, as long as no one downloaded it in the time you took to | realize your mistake taking down the only node that has the | file (your computer in this case) should effectively "erase it" | in the sense that unless the node comes back up, even if | someone has the id of that file they are SOL. | unknownOrigin wrote: | Ok, I have to ask, what is an actual difference between | torrents and ipfs? I don't care for technical details, I mean | the business logic, so to speak. | | - Both use DHTs to search for sources of fingerprinted | content. - Both use nodes (seeds in BT terminology) that | actuallu store the content. - Both don't have an "archive" | system, and so if at least one node doesn't have the file, it | may as well not exist at all. - Both can have content | censored by going after the node operators. | | Am I getting any of these wrong? | easrng wrote: | BitTorrent is easier to understand (IMO) and can sometimes | be faster at lookups than IPFS. IPFS dedups content, | whereas if you have an identical file in 2 torrents but | only one is seeded, you can't download it from the other | one. As far as I know those are the only differences. | | Edit: Actually BitTorrent v2 dedups files so it seems like | IPFS and BitTorrent are now functionally identical. | grumbel wrote: | The difference is the granularity. A torrent is like a tar | file, it's a big blob of static data that can't be updated. | IPFS in contrast works more like a file system, you have a | top level directory that points to the content within it. | If you want to change something, you just update the top | level directory, while all the content within it can stay | the same. Each file on IPFS has it's own checksum and can | be addressed individually. | | IPFS doesn't help much with censorship, as it has all the | same issues as torrent in that area. It doesn't help much | with privacy either, as it's all rather public. It's really | for legitimate uses, not outside-the-law kind of stuff. | | The benefit of IPFS is that its granularity makes it much | more useful for smaller tasks. For example you can host Git | repositories or source trees on there. And since IPFS on | Linux can be mounted as a file system, you can just access | them with a simple `cd` command, no manual download or | extraction needed. | madars wrote: | Tech details from the Getting Started guide: | | > How does this work? | | > SQLite compiled into WebAssembly fetches pages of the database | hosted on IPFS through HTTP range requests using sql.js-httpvfs | layer, and then evaluates your query in your browser. | | The same guide, https://libgen-crypto.ipns.dweb.link/, also | explains how you can also download the page to search locally | without constant internet access. | | sql.js-httpvs was previously discussed on HN here: Hosting SQLite | databases on GitHub Pages or any static file hoster (1812 points) | https://news.ycombinator.com/item?id=27016630 | hugoroussel wrote: | The website looks down :( | | I love libgen will switch to your version for sure :) | fabianhjr wrote: | It is available over IPFS. Do you have a client installed and | running? | | EDIT: if you do have IPFS and the companion extension then | libgen.crypto should resolve to something like | `http://libgen.crypto.ipns.localhost:8080/` which currently | works as advertised. | ajvs wrote: | Awesome project, now all we need is the SciHub version of this. | sayonaraman wrote: | there is an open source project scihub-p2p (written in Go) | indexing scihub articles on libgen torrents, but it also seems | to work with IPFS | | https://www.reddit.com/r/scihub/comments/ovp5c0/make_scihub_... | antegamisou wrote: | Most of SH papers are accessible from libgen too. | cmeacham98 wrote: | > Put http:// as the protocol prefix instead of various https://, | ipfs://, or ipns://. The most universal format is http://, since | transport-level security (TLS) is not yet fully adopted in dWeb | systems (neither it is essential for our applications where a | domain name resides on a blockchain and SSL traffic encryption is | employed further on) | | I understand that this isn't really their fault because they'd | have to get a CA to issue a cert for the non-standard .crypto | TLD, but has to be untrue, assuming I understand correctly that | the HTTP version is just hosting a JS IPFS client? And therefore | the non-IPFS link is suceptible to MITM attacks if I understand | correctly. | ducktective wrote: | > decentralized Web | | I thought the web and internet was decentralized already? | | Interesting project, btw! Many thanks to the devs. | superkuh wrote: | I agree. IPFS is more centralized in that 99% of the people | that attempt to view data on the IPFS network go through the | actual web proxies not IPFS. And when that happens they're easy | to take down with legal or traffic attacks. | | Additionally, IPFS's devs have already stated on their | community forums that content like sci-hub is not welcome | there. | jancsika wrote: | > Additionally, IPFS's devs have already stated on their | community forums that content like sci-hub is not welcome | there. | | Do you have a link? | TacticalCoder wrote: | > Additionally, IPFS's devs have already stated on their | community forums that content like sci-hub is not welcome | there. | | I'm not familiar with IPFS: is content on IPFS actually | moderated somehow? | IceWreck wrote: | No, the discussion of "sci-hub on IPFS" is not allowed in | their forums. | | Theres nothing stopping you frm actually doing that, just | talk about it somewhere other than their official forums. | jazzyjackson wrote: | I think people don't notice that IPFS is not built for | privacy- you are broadcasting that you have possession of a | particular hash, not a smart place to be a pirate. | mnd999 wrote: | Isn't this a whole load of pirate ebooks though? | chrisco255 wrote: | I mean, maybe? It's trivial to add noise to a file to | produce a different hash. It's a neutral routing protocol | that doesn't make prescriptions one way or the other. | zozbot234 wrote: | Doesn't torrent have the same issue? | sixtyfourbits wrote: | The gateways are indeed centralized (though there are several | different public gateways). But anyone who installs IPFS on | their computer can access the content directly. Also some | browsers support IPFS natively, e.g. https://brave.com/ipfs- | support/ | | From what I understand, the notion of sci-hub/libgen "not | being welcome" was only about discussion on the official | forums. See https://discuss.ipfs.io/t/mirror-of-sci-hub-in- | ipfs/1613 and https://news.ycombinator.com/item?id=25209246. | But IPFS is a protocol just like bittorrent or HTTP, and the | software is open source; it doesn't and can't enforce | copyright restrictions. | superkuh wrote: | >But IPFS is a protocol just like bittorrent or HTTP, | | Yes, but it's a protocol with a centralized single group | doing development who can change whatever they want without | the users' consent. Take a look at what is happening to the | Tor ecosystem on Oct 15th this year: all tor v2 routing | support is being dropped from the main client and | infrastructure (for security reasons). Entire communities | built on onionland and other tor v2 features, as well as | all URLs/links, search engine databases, etc, will just go | poof when the devs drop support. | | Unfortunately being a protocol isn't enough. It has to be a | community protocol, not a proprietary one where everyone | follows one group's code. HTTP and bittorrent are safe from | these kinds of attacks. IPFS isn't (yet) and that's why | their butt-covering anti-sci-hub/libgen stance is worrying. | gzer0 wrote: | That's being quite unfair to the developers. The entire | process has been public and announced well in advance. | | You are welcome to download the Tor source code and add | v2 functionality back in, and you'll be able to visit | sites hosted by people who have done the same. No one is | stopping you. | | To very quickly summarize why we are deprecating, in one | word: Safety. Onion service v2 uses RSA1024 and 80 bit | SHA1 (truncated) addresses [1]. It also still uses the | TAP [2] handshake which has been entirely removed from | Tor for many years now _except_ v2 services. Its | simplistic directory system exposes it to a variety of | enumeration and location-prediction attacks that give | HSDir relays too much power to enumerate or even block v2 | services. Finally, v2 services are not being developed | nor maintained anymore. Only the most severe security | issues are being addressed. | | That being said, the deprecation timeline is now quite | simple because v3 has reached a good maturity level: | * v3 has been the default since Tor 0.3.5.1-alpha. | * v3 is feature parity with v2. * v3 now has Onion | Balance support [3] * Entire network supports v3 | since the End-of-Life of 0.2.9.x series earlier | this year. | a1369209993 wrote: | > [1] [2] [3] | | Citation (literally) needed. | easrng wrote: | This is cool, but more centralized than it needs to be. The | update check resolves libgen.crypto using | @unstoppabledomains/resolution[0] with its default Ethereum | provider, Infura[1]. That means that if Infura disables the | default API key, goes down, or starts censoring responses, the | update check will fail and users will be stuck on an older | version of the site. Using the .crypto domain for updates is | unnecessary, a simple IPNS[2] lookup (Not to be confused with | DNSLink[3]) would've sufficed. | | [0]: https://www.npmjs.com/package/@unstoppabledomains/resolution | | [1]: | https://github.com/unstoppabledomains/resolution/blob/HEAD/R... | | [2]: https://docs.ipfs.io/concepts/ipns/ | | [3]: https://docs.ipfs.io/concepts/dnslink/ | nynx wrote: | Pretty neat. Too bad searches take such a long time. | c54 wrote: | This is great! I've been half-barely-following IPFS development | for a few years now but I think this is a salient use case that I | could actually see myself using. | | I think also with IPFS i can share files with peers pretty | easily? It's nicer than uploading to a filesharing site, and | easier than setting up a torrent. | | So, what's next @sixtyfourbits? Is there a read-only wikipedia on | ipfs yet? | | edit: found it, but I think it's not searchable | https://en.wikipedia-on-ipfs.org/wiki/ | sixtyfourbits wrote: | Next up is the scimag collection (also maintained by library | genesis), which is a backup of all articles on sci-hub. | | The torrents are already widely replicated, but whether or not | IPFS is going to be able to scale to the level required for 85M | articles is still an unknown. | ramon wrote: | Nice, is it open source? Can we learn from this implementation? | Is there any documentation? | sixtyfourbits wrote: | https://libgen-crypto.ipns.dweb.link/source.tar.gz | | It makes use of the sql.js-httpvfs library, previously | discussed on HN here: | https://news.ycombinator.com/item?id=27016630 | [deleted] | mijailt wrote: | It's not working for me on Firefox 92.0. It hangs on | "Initializing...", with a single error on the console which says | | Loading Worker from | "http://libgen.crypto.ipns.localhost:8080/dist/257fb50677e116... | was blocked because of a disallowed MIME type ("text/plain") ___________________________________________________________________ (page generated 2021-09-19 23:00 UTC)