Git Product home page Git Product logo

aws-ethereum-miner's Introduction

AWS Ethereum miner

CloudFormation template for mining Ethereum (ETH) crypto currency on AWS GPU-enabled EC2 instances

Important!

Quick start

  1. Login to your AWS account and have your Ethereum wallet address ready
  2. Launch the stack in one or more of the cheapest regions. Sometimes spot capacity is not available in a particular region, in that case try a different one.
  • Oregon us-west-2 Launch Stack
  • Ohio us-east-2 Launch Stack
  • N. Virginia us-east-1 Launch Stack

You will have an opportunity to check the stack details, enter the wallet address, etc, before the stack is launched.

What does the template do?

  • Spins up an AutoScaling Group with Spot Instances of the specified type (by default g4dn.xlarge)
    • Use template-eth-default-vpc.yml if you want to spin up the instances in the Default VPC (most users).
    • Use template-eth.yml if you have your own VPC that you want to use (advanced users). The Subnets must have direct or NAT access to the internet! Make sure that the VPC matches the Subnets selected!!
  • Runs ethminer with the right options upon the instance start

Increase resource quotas

All right you have created the stack but no instances seem to be running. If you navigate to EC2 -> Autoscaling groups -> ethminer -> Events tab you may see this error:

Failed: Launching a new EC2 instance.

Status Reason: Max spot instance count exceeded. Launching EC2 instance failed.

AWS accounts have default limits (quotas) on some resources. You may find, for example, that your quota for All G and VT Spot Instance Requests in a particular region is 0 and you therefore can't start any g4dn.xlarge instances. It pays to request the quotas increase which can be done with this simple command (you can do this from the CloudShell):

export AWS_REGION=us-west-2 # Oregon
export CODE=L-3819A6DF      # All G and VT Spot Instance Requests (for g4dn.xlarge, etc)
# export CODE=L-7212CCBC    # All P Spot Instance Requests (for p3.2xlarge, p3dn.24xlarge or p4d.24xlarge)
export VCPUS=96             # 96 vCPUs - can accommodate e.g. 24x g4dn.xlarge or 1x p4d.24xlarge

aws --region ${AWS_REGION} service-quotas request-service-quota-increase --service-code ec2 --quota-code ${CODE} --desired-value ${VCPUS}

Choose the number of vCPU and the Quota code according to your needs.

Expand to Los Angeles (us-west-2-lax-1)

Spot instance capacity for g4dn.xlarge instances is in short supply in the cheapest regions, even though the spot prices are still very very low. You may have to wait for a long time to get an instance.

Interestingly the Los Angeles local zone seems to have plenty of g4dn spot capacity at the same price as Oregon, however you have to opt-in to be able to use it. Here is how (you can do this from the CloudShell):

  1. Opt-in to the LAX zone with:
    aws --region us-west-2 ec2 modify-availability-zone-group --group-name us-west-2-lax-1 --opt-in-status opted-in
    
  2. Create new default subnets in the 2 LAX AZs in the default Oregon VPC:
    aws --region us-west-2 ec2 create-default-subnet --availability-zone us-west-2-lax-1a
    aws --region us-west-2 ec2 create-default-subnet --availability-zone us-west-2-lax-1b
    
  3. Delete and re-deploy the CFN stack in us-west-2 (Oregon) - it will pick up the 2 new AZs and launch the instances.

Tell me more ...

Check out the instructions in my Medium article, it contains some important considerations. Alternatively, if you think you know what you are doing follow these instructions:

  • Have your Ethereum wallet address ready. You can create a free one for example with Guarda if needed.
  • Login to your AWS account.
  • Click the Launch link or create the stack manually:
  • Check your mining progress on Ethermine dashboard.
    • Note that it takes some time (15 ~ 30 mins) before your stats start to appear, and
    • The reported hashrate speed ramps up slowly to the sustained rate over the first hour or so, I believe due to delays in reporting and some averaging.
    • From my tests the hashrate reported by the ethminer process is correct and that's what you get paid out. Even if the dashboard speed is lower.
  • When done delete the stack.

Author

Michael Ludvig, you're welcome :)

Did you make some profit using this template and wish to say thanks? Any ETH amount sent to my address will be much appreciated: 0x99b36B44cf319c9E0ed4619ee2050B21ECac2c15

0x99b36B44cf319c9E0ed4619ee2050B21ECac2c15

Thanks! :)

aws-ethereum-miner's People

Contributors

mludvig avatar wilfi avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.