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.1

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 7-8. 9 is currently unstable.
  • 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.
  • At least 1 GB for every 25 KB/s is encouraged for optimal static range allocation.
    • Please ensure 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 speed test 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.

Clients that have started for the first time are assigned 20 ranges. Ranges are capped based on the low-end quality mark of the client.

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 gradually increases as long as the client is properly serving files. It 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-end mark defines daily static range assignment.
  • What constitutes a decent quality rating varies between geographical regions. A client's low-end mark should be at least within its regional average in order to get the most static ranges.
Quality Notes
10,000 Maximum quality.
7,000 Static Range cap becomes 6,000.
5,000 Static Range cap becomes 2,000. Its factor for hath calculation is reduced.
3,000 Static Range cap becomes 1,000.
2,500 Client stays idle.
1,500 Starting point for new clients or those that have been unused for several days.

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. The hath is made available roughly every 4 hours the client has been running.

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

For more information, please check this thread.

Any H@H client 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.
  • Filename changes still occur.
  • These downloads still cost GP/credits (see below for exceptions).

Free Archives

Functioning clients earns a quota of 1000 MB/day in free archive downloads. An additional 10 MB/day is earned per adjusted average hit.

A client is considered functional if all 3 of the following apply:

  • The client scores an average hitrate of at least 1.0 hit/minute.
  • The client has been running for at least 24 hours straight.
  • The client experienced no more than one downtime within the same hour and the downtime did not exceed 4 hours.

Notes:

  • This quota is measured over a 7-day sliding window.
  • Extra clients do NOT earn another 1000 MB.
  • 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.
  • If a client remains down for over 4 hours or several times within 1 hour, the uptime is reset, and it must become active for 24 hours again to qualify.

See also

Forum Links