STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
187024
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2013 · P4026

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://eye.swfchan.com:57475/20008979?noj=FRM20008979-27DC" width="1" height="1"></div>

How it works | What more | As a pure file server | Auto download of new and/or popular files on swfchan
Screenshots | How to (setup guide) | Download | Version history | Planned features | Discussion



swfchan Mirroring

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.

No mirror is up at the moment. =(

(Hardly surprising since this project has been teminated. The client can still be of use as a private file server however. Read more in the download section.)



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.



What more

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.



Screenshots

Version 1.0.0:



This is a freshly set up mirror. I went to the what's popular page and downloaded 10 flash files that had a couple of views. Then I added them to the share, started the mirror and took the screenshot.


This is the same mirror as above, about one hour later. 6 people has downloaded from the mirror so far, with one more download in progress.


This screenshot was taken after six hours of uptime. After 4 hours the mirror had served over 20 files and since it also had 10 files in its share the swfchan server started sending new/popular flash files to the mirror for distribution. 2 hours later the mirror's library had expanded by 75 swf files and over 1000 files had been served.
Important to point out is that the mirror I set up while taking the screenshots above were at the time the only available mirror, meaning that it got all requests sent to it. If there are a couple of mirrors up the load is evenly divided among the mirrors. So your mirror probably won't be as swamped as mine was in these screenshots. Additionally, a 1000 files might sound like a whole lot but as chance would have it many of the popular files during these two hours were really small, less than 100 KiB each. So sending a thousand of them wasn't too much hassle. But still over 1 GiB of data was sent in total.

Version 1.1.0:



The appearance has changed slightly. File hashes has been replaced by a short-term two character long ID tag that represents the IP that are requesting the file. Transfer speeds are shown more exact.
Asian characters show up as "boxes" in the log window since the default font used (Lucida Console) doesn't have glyphs for them. Font can be changed in the ini file if you wish to use a different font that supports these glyphs. Note that even if the glyphs aren't displayed in the window they are still written correctly to the log text file and can be viewed there.



How to (setup guide)

These step-by-step instructions will guide you when setting up a mirror.

1.Get Java
Go to http://www.java.com/download/ and download + install Java on your machine. If you already have Java installed this can be skipped.

2.Get WinRAR
Go to http://www.rarlab.com/download.htm and download + install WinRAR on your machine. If you already have WinRAR installed this can be skipped.

3.Download swfchanMirror
Save the RAR file that is linked to from this page. Scroll down a bit for the link.

4.Extract swfchanMirror
Right-click on the downloaded RAR file and select "extract here". A folder named "swfchanMirror" will be created. Delete the RAR file you downloaded, it is no longer needed.

5.Run swfchanMirror
Go inside the extracted folder, a JAR file is inside. Double-click it to run. A window will appear and some files and folders will be created next to the JAR file inside the swfchanMirror-folder.

6.Share flash files
Close the window. A folder named "share" has appeared. Copy or move all flash files that you wish to mirror into that folder.

7.Define yourself
Double-click on the "swfchanMirror.ini" text file to view the program settings. Find the row that starts with "0400", change "Anonymous" to whatever nickname you wish to use. Save and close the text file. If you want to use an avatar image (appears on swfchan), copy a PNG image into the swfchanMirror-folder and rename it to "icon.png". JPG/GIF images (non-animated) are also supported, just change "icon.png" to for example "icon.jpg" in the settings ini file on row 0401.

8.Open ports
Add exceptions in your computer's firewall to allow traffic on UDP 12345 and TCP 54321. If you have a router you have to open these ports there as well, usually done by visiting 192.168.0.1 or 192.168.1.1 in your browser and looking for a port forwarding section. If you are unsure about how to do any of this you can just skip this step and hope that it will work magically, or start to deal with it only if swfchanMirror complains about your port settings. You can ask for further help here.

9.Run swfchanMirror
The program will hash your flash files and then try to communicate with swfchan. If everything works you will receive three messages: "communicating" (UDP port is OK), "thanks" (TCP port is OK) and "reflecting" (have begun mirroring). Tip: Hashing might take a while, it's smart to not add too many files to your share before knowing that the UDP/TCP stuff works like it should. What you could do is to add only a couple of flash files and then after you've gotten a "reflecting" message you add the rest of the flashes to your share.

10.Hide swfchanMirror
You can close the window now, the program will keep running in the background. An icon will show next to your clock. To actually close down your mirror you simply right-click on that icon and select "Exit". The mirror will exit automatically if you shut down your PC for the night.

11.Become dedicated
Right-click on the JAR file that you previously double-clicked to run swfchanMirror and "create shortcut". Drag this shortcut to the start button, hold and wait over it until it opens. Then continue to drag the shortcut to programs and then finally to the "Startup" folder where you release the mouse button. This will make it so that swfchanMirror runs automatically each time you start your computer. Of course if you prefer to start it manually, skip this step. But if you plan to always host a mirror I recommend auto-starting it so you won't forget. You can change setting 0302 to false in the swfchanMirror.ini text file to make it so that the window does not show itself upon program start (otherwise it may become annoying to have the window pop up every time you boot your computer).



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.



Download

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.

Note: This thing still works, but currently your mirror will only provide alternative download locations when people are getting files using the non-embed option. This is actually because of a safety thing that browsers has when flashes are hosted on different domains, long story short it is to make sure that the JavaScript controls works when embedding flashes on swfchan (the seekbar etc).
      There is a way to get around this but it requires me to update the code of the client a little plus you must become a official mirror by speaking with me so I can set up a subdomain of swfchan.com to point to your IP. Since I don't think anyone is interested I have not made any updates in the code for this, however if YOU are interested in actually making a dedicated swfchanMirror please let me know in this thread.
      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.



Version history

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



Planned features

+ Automatic downloading of new files from swfchan. Make it so that as soon as a new flash is discovered it is distributed to the best available mirrors. Done.

+ Cached hashes. Right now all files are re-hashed upon program start. Saving an already done hash saves startup time. Done.

+ Adding new files to the mirror without a required restart of the program. Done.

+ Splitting of log files and limiting of messages in the window. Done.

+ Better file listing (sorting/pages).

+ Statistics (average speed etc). Done.



Discussion

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.




http://mirror.swfchan.com/
Created: 24/4 -2012 05:16:32 Last modified: 19/11 -2012 04:07:01 Server time: 27/5 -2017 12:00:36