Brand new Imageboard software

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

and if you want to check out the code its hosted here: github.com/brainletjs/torrentchan

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.

Other urls found in this thread:

en.wikipedia.org/wiki/Perceptual_hashing
github.com/libp2p/js-libp2p
twitter.com/NSFWRedditVideo

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:

it's just hosted on aws for testing, in a full scale deployment an admin could host it on whatever

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.

Challenge accepted.

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.

Why even bother with images anyway. Plain text is enough.

I'll play around with it as soon as I figure out how to get Firefox to use any fucking XHR at all.

This is a nice way to spot a native speaker who skipped his English classes.

I'm sleepy user.

I wouldn't do that even if I was asleep t: not native english speaker

Great concept but it's a little buggy.

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?

goddamn kill me lel

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.

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:

OP wants to make hosting easier not go full lockdown. One step at a time user
or just do it yourself :^)

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.

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.

...

Why am I laughing so much?

Because “The 4chan Party Van” actually sounds like a really fun time.

Because images are what creates issues with hosting costs. It doesn't cost anything to host a text only board.

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!

Mario kart ftw

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.

Or you could use a fake user that's actually just a torrent client seeding all images from all threads.

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.

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?

I wonder about the viability of doing this to stealthily off-load the image hosting onto Imgur or the like.

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

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.

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.

It's a specially spooky type of hash.

oh cool. I dig it.

So saging is what happens when people stop seeding? This isn't a bad idea.

You sound like you have no idea what you're talking about.

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.

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.

why don't use ipfs instead?

Usually that's the case, but perceptual hashes want the opposite. They're badly named.

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.

Ipfs has a p2p library that can be used to share the hash of new posts and such.
github.com/libp2p/js-libp2p

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

That's awesome!

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.

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

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?

lol

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.

...

...

Even a broken clock is right twice a day.

poastan on a ded chan