Hentai@Home

From EHWiki
Jump to: navigation, search

Hentai@Home (H@H) is a Peer-2-Peer gallery distribution system which reduces the load on the E-Hentai Galleries. Current version: 1.4.0

The client UI (maximized)
The client list UI

General Information

H@H is a project that can be compared to a cross between the SETI@home project and BitTorrent.

All participating users run a small Java-based client that downloads files from the main E-Hentai servers to their computer and passes those files on to people who browse the E-Hentai Galleries. This allows E-Hentai to serve many more images using less server bandwidth.

The client may be run freely for any duration of time but it is recommended to run it continuously for as long as possible for maximum rewards.

Signing Up

The H@H application form.

Minimum Requirements

Requirement Notes
Java Runtime Environment
  • Version must be at least 7.
  • The SDKs are also usable.
5+ Mbit/s burst speed
  • This applies to both upload and download.
  • Sustained upload should be 200+ KB/s. 250+ KB/s is recommended.
300 MB/hour bandwidth Users may limit how much bandwidth is used per hour.
10+ GB of dedicated hard drive space
  • SSDs are ideal; write endurance is not an issue.
  • For optimal static range allocation, at least 1 GB for every 25 KB/s is encouraged.
    • Please make sure the client can sustain both speed and disk I/O in the long run to maintain decent performance.
An open TCP port
A unique IPv4 IP address 1 per every operational client.

Obtaining Client Keys

Users signing up for their first client simply go to the Hentai@Home page in their My Home area. A flash interface will appear where users may fill in their qualifications. Applications typically take a few days to process.

For any additional clients please PM Tenboro. For users wishing to run more than 5 clients the average quality of their existing clients must be stable 7000+ before more keys are assigned.

Installation Guides

Limits

A client's maximum burst speed (in KB/s) will determine the maximum number of connections that can be had simultaneously (up to 500 at 4800 KB/s or more).

Simultaneous connections are determined by a client's hitrate and burst speed (during speed tests, the packet size is adjusted to match the client's burst speed).

Maximum connections = 20 + max_burst_speed / 10000

The disk cache size (in GB) must be enough to maintain static ranges. Clients must be able to store 10 GB or 175 MB per static range at any given time, whichever is higher:

Minimum cache size = max(10, static_ranges * 175 / 1024)

Speed Test

When the H@H client starts, it contacts one of the H@H control servers which tests the connection of the client in order to check if it can upload data at the configured maximum burst speed. If it cannot, the maximum burst speed is reduced internally to the measured upload speed in order to prevent the connection from being overloaded.

It is possible for the measured upload speed to be significantly lower than real upload speed of the Internet connection. In such a case, the H@H client will be underused and its owner can request a speed test override from Tenboro by sending proof (e.g. a screenshot of their SpeedTest's results).

Activity

An H@H client needs to maintain a Trust of 0, Quality of 2500, and max tested speed of 80 KB/s. Failure to reach any of these requirements will make it idle on the network and wait until the requirements are reached.

Scheduler

Each client can be scheduled to use less than its maximum burst speed and bandwidth. These can be based on particular days but are limited to using precise times (every hour on the hour). Schedules are read and cached at the start of each hour so changes won't apply until the start of next hour.

Software

A few command line switches may be given to the H@H application in order to change some of its behaviors:

--disable_bwm
(Can also be set from the client's settings page)
Disables the bandwidth monitor, which prevents the client from using more upload speed than the value of the "Maximum Burst Speed" parameter. The H@H dispatcher will still respect the "Maximum Burst Speed" parameter so that the mean upload speed of the client won't exceed that value. However, the client might use as much upload speed as its connection provides in order to send files, which generally results in upload peaks.
In some cases, the bandwidth monitor is unable to use the whole maximum upload speed that has been set, which can result in an under-utilization of the client's upload speed (and might trigger false overload notifications). In such cases, it is better to disable the bandwidth monitor in order for the client to give better performances.
--disable_logging
(Can also be set from the client's settings page)
Disables the opening, creation, and writing to the log_out file. This will significantly reduce I/O for HDD but make network troubleshooting harder. Java errors will still be logged to log_err.
--flush-logs
Flushes the log to disk for every written line. This will increase I/O; mostly recommended for when the log is written to a ramdisk.
--max_connections=conn
Sets the maximum number of connections the application can handle to conn. The default maximum number of connections depends on the max burst speed parameter, as detailed above. In some rare circumstances the default value is too low and the maximum number of connections needs to be increased slightly in order to avoid triggering false overload notifications. Setting this value too high might have severe consequences on a client's performance and impact the whole H@H network badly. DO NOT CHANGE THIS VALUE UNLESS YOU ABSOLUTELY KNOW WHAT YOU ARE DOING!
--port
Overrides the port set in the client's settings. This allows running H@H on port 80 on Linux as a non-priviledged user. This can be achieved by adding the following rules to iptables:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 7777 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 7777
--rescan-cache
Checks the cache for errors.
--silentstart
Starts the UI in minimized mode / tray icon.
--skip_free_space_check
Disables the free space check so that the application won't err if the space left on the partition that contains the cache folder is less than the configured parameter (or 100MB if that parameter is set to a value less than 100MB).
--verify_cache
(Can also be requested from the client's settings page)
Forces a check of the entire cache. This is the same as --rescan-cache with the addition that the SHA-1 hash of each file is also checked; this can take a long time.
--Xmxmemm
Limits the use of memory to mem (in MB).

Directories

--cache-dir
--data-dir
--download-dir
--log-dir
--temp-dir

These arguments allow for changes to the locations of these directories. Quotes are required if there are spaces in the path. H@H will attempt to create the directory if it does not exist. Only log and temp may share a directory.

Examples:

Windows: --download-dir="c:\some download dir with spaces"
Linux: --cache-dir=/some/cache/location --temp-dir=/dev/shm/hath --log-dir=/dev/shm/hath

Cache

The system fills a client's cache exclusively with static ranges of files. Users should not tamper with any of these files; this will cause major trust and cache database issues for the client. Corrupted files will be deleted and replaced if requested.

Static Ranges

Static ranges are ~175 MB each or 1/65536th of the site's "active" content. The server will always assume that the client is able to serve files from that range without tracking the files individually. If a ranged file isn't currently cached the client will proxy-request it from the image servers on-demand and store it for later use. The ranged files will stay in the client's cache for 90 days after they were last requested. A client with at least 855 GB of disk cache may have up to 5000 ranges.

Clients that have started for the first time are assigned 5 ranges. From there, up to 48 new ranges can be assigned every day (assuming great performance and available capacity).

Clients experiencing connectivity issues during peak hours will receive less static ranges to avoid increases in hitrate and workload they would otherwise not properly manage.

Trust

Trust indicates how well the client is performing according to other clients.

  • Trust caps at +1000 and gradually rises by 1-4 per minute if the client is behaving normally, even if it is not serving files.
  • Negative trust often occurs from improper shutdowns or bad connections.

Quality

Quality measures the long-term overall stability and reliability of a client, calculated by comparing the client's average failure rate with its average hit rate. It prioritizes clients for file requests (along with raw speed and proximity factors) and determines how many static ranges can be assigned every day when compared with the region's average performance.

  • Quality has a maximum value of 10000 and gradually recovers while the client is properly serving files.
  • Quality fluctuates using a weighed average of low and high marks to measure a client's long-term stability. Those marks stabilize over time unless network issues exist. The low mark defines daily static range assignment.
  • New clients and clients that have been unused for several days start out at 1500 quality and may take from several days to months to stabilize to a baseline value.
  • What constitutes a decent quality rating varies between geographical regions. A client's low mark should be at least within its regional average in order to get the most static ranges.
  • Clients that perform below 5000 will have their static range factor for hath calculation reduced. Those that drop below 2500 will become idle to avoid hurting the entire network.

Rewards

Users receive 1 GP for each hit on their client and may compete for a position on the H@H toplist.

While running H@H clients, users also receive Hath, which can be used to purchase Hath Perks. The daily amount earned per client is based on average hit/minute (calculated over a week) and static ranges.

A quality rating below 5000 reduces the static range gain by a linear factor:

Hathrate/day = 1 + 0.15 * hitrate + 0.01 * static_ranges * min(1, low_quality_factor)

H@H Downloader

Any H@H can be used to download archives (instead of via HTTP).

  • Resolution options include 780x, 980x, 1280x, 1600x, 2400x, or original (availability may differ).
  • Once queued there is no way to prevent the client from downloading the gallery.
  • This generates a galleryinfo.txt when completed unlike normal archive downloading.
  • These downloads still cost GP/credits (see below for exceptions).

Free Archives

Any client that runs for at least 24 hours and has a hitrate of 1+ earns a quota of 1 GB/day in free archive downloads. An additional 10 MB/day is earned per adjusted average hit.

  • This quota is measured over a 7-day sliding window.
  • Recreated archives do not qualify.
  • The amount a user has earned can be found in their H@H client list page at the bottom of the "Your Active Clients" section.
  • The quota is disabled when a client is suspended or shut down for up to 4 hours, and is re-enabled when a client comes back online. Uptime resets if this happens more than once within 1 hour.

See also

Forum Links