HHTT High Availability

AWS Regions

HHTT is hosted with Amazon Web Services and makes use of the fact that AWS has multiple independant regions to give very good availability.

Endpoints

HHTT has an endpoint in these regions:

  • us-east-1 - Virginia, US - stratum+tcp://stratum-iad.hhtt.1209k.com:3333
  • eu-west-1 - Ireland - stratum+tcp://stratum-dub.hhtt.1209k.com:3333
  • us-west2 - Oregon, US - stratum+tcp://stratum-pdx.hhtt.1209k.com:3333
  • ap-northeast-1 - Tokyo, JP - stratum+tcp://stratum-nrt.hhtt.1209k.com:3333
  • However it is recommended that all users use the global endpoint, which will use all of these:

  • stratum+tcp://stratum.hhtt.1209k.com:3333
  • How it Works

    Each HHTT endpoint has its own instance of bitcoind and SockThing. Those two can give out work and generate blocks without anything outside of the bitcoin network itself. To save user shares, SockThing sends the share records to Amazon SNS in the local region. Amazon SNS then is responsible for getting the message to Amazon SQS in us-west-2. SNS will retry until it works if there are problems. Then the share records are read from SQS and processed into an RDS Database. The database provides information for the web page and payment generation.

    When a user submits a share to an HHTT stratum endpoint, SockThing only replies to the miner with an accept message after the record is handed of to SNS. So if your miner is getting accepts, SNS has the record. SNS won't quit until the message has been written at least once to SQS. SQS will keep the message until we delete it, after adding it to the database. So this means if the user gets an accept on their submission, it will make it to our database. Quickly is most cases. Eventually if there are problems.

    Limitations

    Web Interface

    The web server (hhtt.1209k.com) is not fault tolerant. It could be down or out of date.

    Payments and Metrics

    Payments and metrics can be delayed. No data will be lost but a problem may delay payouts until corrected.

    Stratum Only

    No getwork or getblocktemplate. We have those, but not fault tolerant. The old endpoint, http://rpc.hhtt.1209k.com:8337/ , is not highly available.