|STORY LOOP FURRY PORN GAMES
C SERVICES [?] [R] RND POPULAR
|/disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/
|P0001 · P2558 · P5115
Screenshots | How to (setup guide) | Download | Version history | Planned features | Discussion
These are the brave souls that are currently helping out to host flash files for everybody that uses swfchan. Anybody can help out, all you need is a computer and an Internet connection. You don't have to have a powerful server or tons of bandwidth.
How it works
First you make sure you have Java installed on your machine. Then you download a small program that I've written to your computer. A jar file, just double click it to run.
The jar will create a share folder and a ini file with settings. Place the swf files you want to mirror in the share folder, or edit the ini file so that you share the folder which contains your already existing flash collection.
Now restart the swfchanMirror program. It will find your shared files and create hashes of them. A hash represents a flash file. Your client informs swfchan about your hashes.
Whenever someone requests a flash file on the swfchan site it will check if any mirror has reported that they have the hash of that flash file. If someone does have it (your mirror for example) an alternative download location will be suggested to the person that is requesting it. The alternative works just like any other http link on the web.
If he wants to use your mirror he will grab it from your computer. The swfchanMirror is working as a very lightweight file server (or web server) on your computer that hosts the files you've chosen to share. You can actually surf to your computer now in your browser, normally this doesn't display any files though but you can change that by using the ini file if you want to.
The small swfchanMirror client that runs on your computer will keep reminding swfchan that it's there throughout its uptime. Whenever you close the program or shut down your computer swfchan will simply stop listing your mirror.
There's no obligation to continue once started, and you don't have to share a minimum amount of files. You can even limit the total amount of bandwidth the client is allowed to use through the ini file if you want to, and there's a slow mode that you can enable at any time which chokes the bandwidth to what you specify. The smallest you can set the limit to is 0.25 MiB/s because limiting bandwidth too much will take away the point of hosting a mirror.
Flash files are tiny and each transfer will be over very quickly. Putting up a mirror should not have a too big impact on your upload rate during your daily ruitine, and it's a great way to give something back if you like swfchan and want to make it work better. Everybody likes to download their files faster.
Since the client is sending files from your computer it will --not-- make you receive files any slower. So if you don't usually upload a lot of files you won't even notice any differance, you'll still download at the same speed as before. Don't worry that hosting a swfchan mirror will make it slower to surf the web or watch streaming movies, it won't.
If you don't want to show your IP address directly to people you can camouflage it with a domain name (just like any website on the net). Simply use one of the many free domain name alias services available online and point it to your IP. If your IP changes you can get one of those dynamic DNS things. Just be careful to make sure the domain points to the right IP, if the DNS resolves to an address that isn't where your mirror is talking to swfchan from it will simply fall back to the IP until the DNS fixes itself (your desired host name is checked periodically).
IN SHORT: You download a program, share some flash files and let the program run.
You can specify a nickname for your mirror (default is Anonymous). Request: Keep it clean and keep it "logical" (a long sentance can be "logical" while the repeation of the same letter 50 times is not). Rule: No URL. You may put your domain name there if you want ("example.com") but don't put an entire URL in there ("http://example.com" or "example.com/bla/asd.rar"), it just looks bad and make it appear like you're hosting a mirror just for advertising.
You can specify an avatar for your mirror (default is "swf" written in orange). The image you use can be any size, the program will automatically scale it to acceptable dimensions (between 32x32 and 128x128). Request: Keep it clean. Rule: Nothing illegal or anything that looks downright ugly (like just a solid green color for example).
The purpose of the nickname and avatar is for people that use swfchan a lot to recognize your mirror among others, thinking "oh yeah, I got good download speed from that mirror the last time, I'll use it again".
I reserve the right to block mirrors that breaks these nick/avatar rules here above. Also I might block a mirror if it's clear to me that it is being used as a way of advertising only, for example by sharing just 1 file that nobody ever downloads. There's no reason to keep mirrors around that nobody uses.
Right now this mirror project is in an early phase, the program has not yet reached version 1. One key feature I'm planning is the automatic downloading of new files on swfchan (unless disabled by you in the ini file). Some entries in the config files are marked UNIMPLEMENTED, which means they aren't really used yet.
The swfchanMirror is provided as-is without any warranty. I've tested it a lot but I'm saying it just in case. Of course there's no "spy-ware" or anything else of the sort in the program, it is just a file server and a communicator with swfchan and nothing else.
As a pure file server
If you want to you may use the swfchanMirror as a file server without actually mirroring anything for swfchan. Turn off communications with swfchan in the ini file to achieve this. What you will get is a unique file server that supports --unless disabled by you-- links that time out after a while (which prevents hotlinking) and the ability to download the exact same file with whatever name you want. You aren't limited to only flash files, any file can be shared. You can make your shared list of files public or private so that only you or your close friends can access it. The file server works like a web server (working with the http protocol), it can be accessed by any browser.
Auto download of new and/or popular files on swfchan
The mirror client will download brand new files directly from swfchan as soon as they become available on the site. It will also download the flashes deemed to be most popular at the moment. Just leave the client running in the background and your flash folder will be filled with new flash files as soon as they arrive. You never have to enter any captcha, everything is fully automatic. Of course the catch is that the files that are downloaded will also be mirrored by you, but that's the whole point of hosting a mirror in the first place so it shouldn't come as a shock.
You can move or rename the files downloaded however you please. You can even delete the files that you don't like. Even though they are gone from your hard drive you will still be mirroring them, recently downloaded files are kept in the client's memory for easy access. The perks of this is that you are able to delete files without closing your client, plus as a bonus your HDD needs to work less since the files aren't read from it. The only drawback is that the mirror will take up some more memory than otherwise needed, but most people today have way more RAM than they can use anyway so it doesn't matter. Besides, Java has a built-in memory limit so the mirror can't use up all your RAM even if it wanted to (which it don't).
So to sum things up: You get to have all the new and popular flash files delivered to you, and the users of the site get more mirrors and faster downloads. Win-win.
The files that are available to the mirrors are those on the newcommer list and main list of the stats page. Normally not ALL of these files are auto-mirrored by your client. By default your mirror will be interested in flashes on the newcommer list that has had at least 5 views in the last 24 hours. It is also interested in popular flashes on the main list that has had 5 or more views in the last 24 hours, IF the flash has an age of less than 75. Flashes with an age of 75 or more needs to have had at least 30 daily views to be interesting.
In the ini config file there are four settings that you can modify to change the download behaviour of the client. If you want to download ALL files on the newcommer list, even those that no-one has watched you should change setting 0801 to "0". If you want to download ALL files on the main list you should change both setting 0802 and 0803 to "0". You can change the age at which a flash is considered old by editing setting 0804.
499 out of 500 flashes on the main list contains porn, if you aren't interested in that you might as well not get any flash from the main list and only grab flashes from the newcommer list (most likely the 1 file that doesn't contain porn on the main list are also on the newcommer list). By setting 0802 and 0803 to "9999999" you'll ensure no files are downloaded from the main list unless they also can be found on the newcommer list.
To disable auto-mirror completely and only share the files that you put there manually you should put "off" into setting 0505 (which normally contains the path to the folder where newly downloaded files should be put).
There are three requirements that needs to be met before the server starts to send your mirror new/popular files:
1. You need to share at least 10 flashes that exists on swfchan.
2. You need to have served at least 15 flashes to swfchan users in the last 24 hours.
3. Your mirror must have been online for 4 hours straight.
These demands are there to prevent people from setting up a mirror only for auto-downloading files without actually mirroring anything. Requirement number 3 is key for this purpose. The thing has been designed to allow you to reboot your computer without breaking your client's uptime count just as long as you start the mirror again as soon as your OS has rebooted. I will also myself inspect the server logs from time to time to make sure that nothing fishy is going on with clients that are sent files but then don't actually distribute them like a good mirror should. A fourth requirement of a minimum average and top upload speed might be added later if I think it's needed.
How to (setup guide)
These step-by-step instructions will guide you when setting up a mirror.
At the moment you must restart swfchanMirror if you add new flash files to the mirror. You can just let the new swf files be there in the share folder until the next restart happens, but they won't be mirrored until the restart.
To run your own swfchanMirror, download the following RAR file and extract it.
There's only one file (inside its own folder): swfchanMirror.jar
Grab the client --> swfchanMirror_1.4.0_8jul2012_r10.rar
You can run the client with the argument "console" to disable the graphical interface.
There is a way to get around this but it requires me to update the code of the client a little
There is also an issue in the client with very big flash files that causes the client to stop working if there isn't enough memory available for the program. It's not that big a problem unless you plan to have the mirror up and running for weeks on a low-RAM system without checking it now and then. I know how to fix it but, again, there's no interest in this project so I haven't bothered. But I might update the client if you want to set up a dedicated mirror, just let me know in the discussion thread.
Update: I decided to turn off the swfchanMirror project completely on 19nov2012. It wasn't really doing anything except taking up a some server resources that could be used to run the rest of the site a little tiny bit faster. So that's the end of this experiment. It wasn't a complete waste of time though since some new things were learned.
You can still download the swfchanMirror client because it can be used to make a private file server. That's the only purpose it still serves.
0.8.0 (25apr2012) r1
+ Initial release
0.8.1 (30apr2012) r2
+ Increased TCP timeout
+ More stable handshaking
0.8.4 (3may2012) r3
+ Added support for non-graphical console-only systems
+ Transfer progress now correctly updates visually
+ Increased stability
+ 42 hour statistics cycle
0.9.0 (15may2012) r4
+ Better distinguish between outside users and swfchan users
+ Added option to make links only work for one IP address
+ The log file is no longer locked by the program
+ Logging can now be done to a new file when old log gets too big
+ Now informs about duplicate files during hash
+ New flash files are added automatically (restart no longer needed)
1.0.0 (4jun2012) r5
+ Can now auto-mirror new and/or popular files on swfchan
+ Some tweaks here and there
1.0.2 (7jun2012) r6
+ Fixed an array-out-of-bounds error
+ Changed to a much more logical 24 hour statistics cycle
+ TCP connections should now better try to use available bandwidth
+ New setting that limits a IP to connect max once per 0-1000 ms
+ Made the log a bit easier to read
+ Added short-term two character long identity tag for each IP
+ Now writes filename unicode characters correctly to the log
+ Now receives filename unicode characters correctly from server
1.1.0 (17jun2012) r7
+ Removed suggestions for the Java VM to do garbage collection
+ Made sure the most requested files are in memory, reduce HDD usage
+ Files being sent are now shared more efficiently between threads
+ Won't try to share 0 byte files anymore
+ Increased minimum speed limit from 0.1 to 0.25 MiB/s
+ Can now pause the mirror (stop serving files temporarily)
+ Upon exit active transfers will be given 10 minutes to finish
+ Removed hashes from the log, making it smaller and easier to read
+ Transfer speeds are now shown more exact
1.1.1 (18jun2012) r8
+ TCP connections now utilize bandwidth better
+ Increased URL time out from 10-20 min to 45-90 min
1.2.0 (20jun2012) r9
+ Improved performance (disk reading, memory management, CPU usage)
+ Different tray icon menu that no longer halts GUI updates
+ No longer scrolls down to new log entries if field isn't at bottom
+ Now displays large transfer totals as GiB instead of MiB
+ Window width is now set depending on screen resolution
1.4.0 (8jul2012) r10
+ Increased overall program stability
+ Improved performance (memory management, CPU usage)
+ Fixed rare thread synchronization issue with logging
+ TCP transfer speeds are now more decisive in slow mode
+ Faster handshaking and better server communication
+ More sophisticated updating of the identity file
+ Minor GUI performance improvement
+ Saved hashes for faster startup
+ Abortions are now logged as disconnects or timeouts
+ Better file listing (sorting/pages).
As always I love feedback and as always I get too little of it. If you have anything to say, any comment at all, don't hesitate to go the service discussion and make a post.
Please let me know about any bug or crashes you experience also, if any. Include the crash report output (the exception stack trace).
If you want to host a mirror but need help you should also make a post about it. I know that a lot of people find it tricky to set up correct port forwarding in their routers for example. Just ask and I'll try to help.