Imageboards have always had issues with hosting costs since they end up transferring so much data. both halfchan and Holla Forums have been in trouble on numerous occasions for that. I decided to write a imageboard software that would try to solve this issue. I used this js library called webtorrent (yes I know, js is cancer blah blah) to transfer posts data between users instead of hosting it on the server. Each post is a torrent and the server only retains a structured list of torrent magnet links. The backend runs on flask.
I've spun up a little aws instance that you can get to here for testing: torrentchan.ml
I know my code is horrible and I'm open to suggestions and criticisms. Also the captcha might not work the first time, its janky for some reason. We were about a dozen Keystones in when we wrote most of this.
I'd understand if it was over I2p with this kind of approach, but clearnet and aws? This must be bait. Basically, this is what will happen:
Nathaniel Allen
it's just hosted on aws for testing, in a full scale deployment an admin could host it on whatever
Evan Clark
Sounds alright enough even though I wish I could do this with a normal torrent client instead of just having my browser become an unregulated client.
The idea to let votes decide what to show and what not is a bad idea however.
Isaac Rogers
Challenge accepted.
Hudson Clark
I really love this idea.
Previously I thought you would need a decentralized clear net website which allows newfags to connect sort of like what gnu social/mastodon does, but you seem to solve this differently, nj user.
Lucas Hall
Why even bother with images anyway. Plain text is enough.
Brayden Richardson
I'll play around with it as soon as I figure out how to get Firefox to use any fucking XHR at all.
Alexander Wright
This is a nice way to spot a native speaker who skipped his English classes.
Jordan Jenkins
I'm sleepy user.
Kayden Allen
I wouldn't do that even if I was asleep t: not native english speaker
Tyler Morris
Great concept but it's a little buggy.
Eli Taylor
kek. I'm sure I wouldn't be misspelling much in asleep either, speaking of which I'm off to bed.
I just realized something, wouldn't this make it ez af to dox people?
Brandon Torres
goddamn kill me lel
Kevin Stewart
Are the posts actually tied to IPs? I doubt they are because that would be really stupid. Imageboards struggle with P2P because imageboards weren't designed to be immutable, so maybe there is an IP/post link. In that case, a simple hashing of the IP would be in order and solve most of your problems.
Other than that, you'd only be able to correlate IPs to posts if you were the first person to see the post, and thus you saw the IP of the original poster. Even so, could you really be sure it was actually the poster and not someone else who happened to be seeding it alone? It would require being there the moment the post was made for each post and, while it might be possible, I wouldn't exactly call that easy.
Parker Torres
ITT: we make life easier to enforcement agencies and media monopolies by making imageboards vulnerable to MAFIAA attacks.
You need something else than torrent for this to work. Maybe a Tor-like protocol where a download may ask to be hopped through several other clients or not, but the payload is encrypted an arbitrary number of times to simulate several hops even if it's a direct download.
Like:
Adrian Mitchell
OP wants to make hosting easier not go full lockdown. One step at a time user or just do it yourself :^)
Dominic Walker
I think this would be a WAY better idea if you just focused on p2p hosting the media instead of the entire imageboard. You could have a much larger impact on strengthening imageboard communities if you found a way to squeeze Webtorrent or js-ipfs into vichan, or even just into OpenIB. We have immutable, decentralized imageboards now, but what we need is to reinforce the ones we use now.
Dominic Nguyen
I'm not saying it's not a perfect idea, I'm saying it is a terrible idea. I am all for small but significant steps, but this is a significant step in the wrong direction, unless getting caught is part of your plan.
With this shit, you can profile who visited certain threads with ease, and with some resources, when, or even the original poster. That's a terrible idea and should be reworked as soon as possible, unless you want the feds knocking on your door for distributing CP because some funny guy decided to post it in a thread you were watching.
Eli Howard
...
Jackson Gonzalez
Why am I laughing so much?
Dylan Nelson
Because “The 4chan Party Van” actually sounds like a really fun time.
Levi Rogers
Because images are what creates issues with hosting costs. It doesn't cost anything to host a text only board.
Owen Turner
yeah you are only seeding while you have the page open, as soon as you close the tab its gone unless someone else got it. The idea is that after a certain point there would always be someone on the website so posts wouldn't disappear. Getting people to use the site until that point would be the main challenge.
let me know how that goes, I did most of my testing in chromium
appreciate the feedback, and yeah most of the bugs come from the fact that the backend is hot garbage right now cause I just slapped it together
posts aren't tied to an ip, they just are a magnet link. however since the way you are connecting to others, just like a torrent your ip is exposed when you are seeding.
this actually would be possible since you could modify the way webtorrent uses webRTC to get a similar functionality. It would get slower though.
I actually really like this idea, and I think it makes sense since I don't have to completely rewrite the whole imageboard. I'm probably gonna look into this next.
the purpose of the post rating system would be to mitigate this. A post below a certain threshold would be hidden by default and not downloaded.
and thanks again to everyone who checked it out!
Liam Adams
Mario kart ftw
Daniel Kelly
sleepy user here. I was also running on firefox. captcha worked on third attempt. Image and text loaded fine although it was quite slow. (if this was a firefox issue sorry for talking so much about network health)
I know this sort of defeats the purpose a little bit but webtorrent does have support for webseeds so if you or someone else automatically made a webseed you could have reasonable performance until there are enough users.
A similar pretty easy to implement and more decentralized alternative would be to have a rss feed of all magnet links so that users could automatically seed using rutorrent as posts occur.
Cameron Robinson
Or you could use a fake user that's actually just a torrent client seeding all images from all threads.
Anthony Barnes
I'm not quite sure what you mean by this. I guess you could as a individual scrape the site and automatically seed the torrents if that's what you mean. Probably wouldn't be that much to demand of users although it is a little more than just having a rss link people can copy/paste into rutorrent and have automatically seed everything.
Leo Miller
Funny, I'm looking into booru-like boards because I'm tired of every damn one of the existing one missing the most obvious and simple features one can think of. I had been thinking of, God willing, do something that doesn't use any js, but your idea is interesting. But I don't know how sites with persistent images like boorus compare with imageboards with temporary images.
While I'm at it, might as well ask about a couple of topics I haven't looked into it yet: image duplicate finders, and possibly image recognition software so it can tell resized versions of the same pic. The former are trivial, tho I don't know what's the favored software by imageboards. The former, I have absolutely no idea. Any knowledge to impart?
Jackson Phillips
I wonder about the viability of doing this to stealthily off-load the image hosting onto Imgur or the like.
Christian Richardson
Image duplication is usually solved by just comparing hashes of images. To do this visually you just need more advanced hashing algorithms libraries or programs. There are quite a few of these. en.wikipedia.org/wiki/Perceptual_hashing
Charles Bell
Wait, you can tell which pics are similar by comparing hashes? I thought the whole point was to create a ridiculously and rather unpredictably different hash even if you alter just a single pixel.
Lincoln Ross
I tried to suggest that a site admin could run a seedbox like this to keep his site alive when there are not enough users online.
Sebastian Perry
It's a specially spooky type of hash.
oh cool. I dig it.
Levi Foster
So saging is what happens when people stop seeding? This isn't a bad idea.
Isaac Murphy
You sound like you have no idea what you're talking about.
Joseph Torres
This 100%. I don't think hosting text is the issue, its the thousands of blob files. Plus, rewriting the entire imageboard software and having sites like 8ch and 4chan adopt it is very ambitious. On the other hand, creating p2p software that plugs in to what already exists seems more reasonable.
John Nelson
If you want unique inputs to be the exact image it would be different if you changed just a pixel. In certain cases, you might define an image to be the same because just a single pixel being different doesn't really make it a unique image.
Camden Rogers
why don't use ipfs instead?
Jordan James
Usually that's the case, but perceptual hashes want the opposite. They're badly named.
Charles Brooks
Isn't the whole point of ipfs to have a immutable web, that seems to be the opposite of what a image board would want. Also you'd need a browser extension to access ipfs.
Jonathan Reyes
Ipfs has a p2p library that can be used to share the hash of new posts and such. github.com/libp2p/js-libp2p
Luke Baker
why not just use embedding of images hosted on another site in addition to the textboard? preferably with tiny thumbnails and click to open/straight up link
Easton Sanchez
That's awesome!
Jordan Ward
Don't use megabytes of javascript or just create a desktop/mobile client for it so people only have to download and update the most minimal amount of text. If you really want a web client make it a single-page thing, and host it somewhere else.
No! Fucking make a desktop/mobile client.
Landon Garcia
this is a good idea. have users individually decide for single files wether they're going to share them, this way cp won't be as big of a problem
Luke Russell
this
this
While you're at it, OP, try to implement some layers of native darknet or deepsec on that new torrent imageboard. It's the only way to do it op, and maybe. just maybe, those time travelers will have courage to post another disclosure since all imageboards (if not) and clearnet connections are currently compromised or compromisable and jeopardizes them.
remember when proxies were enough opsec?
Gabriel Stewart
lol
Isaac Perry
Immutable is not "see everything, both good and bad, forever." Look at what NNTPchan does. Just because every post is technically visible doesn't mean you can't hide them or refuse to host them. This also assumes that you are decentralizing the entire thing and not just using it to offload your bandwidth-heavy media hosting onto your clients. Obviously you'd still have moderators blacklisting and deleting any CP if the setup is centralized or federated.
I also don't think it would be feasible to host CP on IPFS just like it isn't feasible to host it with torrents. There has been no security audit for IPFS through Tor; and js-ipfs uses (among other things) WebRTC, which is more likely to leak a CP poster's IP than reliably host their content. Plus you have to consider that js-ipfs will not cache forever and will stop hosting once you close all the site's tabs.
This may give you the impression that it wouldn't do a whole lot to benefit this site, but adding something like this to Holla Forums is more enthusiast-oriented: The idea is for people to volunteer to host their pictures folders through go-ipfs, a js-ipfs browser addon, or a more user-friendly GUI running on top of IPFS. Plus, how often do you browse this site for a couple minutes and then turn it off? How many tabs do you have open here right now, and how long have they been open?
The burden on the hop networks would be far greater than the benefits that Imgur hosting would provide, and they're getting more aggressive about shutting down people using them for serving images.