Skip to content
Commits on Apr 11, 2013
  1. Merge pull request #11 from devurandom/patch-1

    Fix issue #8
    committed Apr 11, 2013
Commits on Apr 10, 2013
  1. @devurandom

    Fix issue #8

    Eligius sends non-string data with the work, so we need to convert the values to strings.
    devurandom committed Apr 10, 2013
Commits on Nov 19, 2012
  1. Differentiate RPC errors

    Indicate whether an RPC error occurs during getwork or sendwork.
    committed Nov 18, 2012
  2. Check that solutions are within work range

    Since solutions are computed in parallel, it is possible that a found
    solution may lie outside a given work range. Check that solutions are
    within range before returning them.
    committed Nov 18, 2012
Commits on Nov 16, 2012
  1. Add likely()/unlikely() convenience macros

    Wrap __builtin_expect() with likely()/unlikely() to simplify the
    resulting boolean expressions.
    committed Nov 15, 2012
Commits on May 4, 2012
  1. Ensure non-empty path on long poll URI

    To avoid RPC errors, use a default path of "/" when the long poll URI
    has none.
    committed May 3, 2012
Commits on Jun 27, 2011
  1. Improve performance by tweaking vec_Maj()

    We can exploit boolean equivalence to eliminate one instruction from
    vec_Maj() and improve its performance in both SPU and PPU cases.
    committed Jun 27, 2011
Commits on Jun 25, 2011
  1. Add description of spufs requirement to README

    Some people may not realize they need to have spufs mounted on /spu in
    order to use their SPEs, so add a description of this to the README.
    committed Jun 25, 2011
Commits on Jun 10, 2011
Commits on Jun 6, 2011
  1. @lgeek
  2. @lgeek
Commits on May 27, 2011
  1. Query the number of usable SPEs

    Rather than hard-code a default of 6 SPEs, query the total usable number
    and use this as the default number of SPEs to use.
    committed May 27, 2011
Commits on May 20, 2011
  1. Improve persistent HTTP connection handling

    If the server drops our HTTP connection, Net::HTTP::Persistent will
    often complain rather than retry the request because it believes
    Net::HTTP::Post requests are not idempotent. We correct this by
    redefining the #idempotent? method on our session object's singleton
    class.
    committed May 19, 2011
  2. Set proper Content-Type on RPC requests

    The default Content-Type of application/x-www-form-urlencoded isn't
    really appropriate; use application/json instead.
    committed May 19, 2011
  3. Allow polling interval to be set with option

    Rather than hard-coding a work polling interval of 60 seconds, allow
    this to be changed with a command-line option.
    committed May 19, 2011
  4. Clean up previous commit

    I prefer 80-column line limits, sorry.
    committed May 19, 2011
  5. @lgeek
Commits on May 19, 2011
  1. Eliminate 'pp' dependency

    We can get by without using this library, so rewrite the test data debug
    output not to use it.
    committed May 19, 2011
  2. Don't expose mutex as attribute

    There's no reason to expose our output mutex as an attribute, so just
    use the instance variable directly.
    committed May 19, 2011
  3. Handle missing path in server URI

    Allow the path component to default to '/' instead of creating an error.
    committed May 19, 2011
  4. Merge branch 'lgeek-master'

    committed May 18, 2011
  5. Alter hash rate calculation start time

    Change the start time for hash rate calculations to include any delay in
    obtaining work (e.g. from starvation during prolonged RPC errors).
    committed May 18, 2011
  6. Second pass persistent HTTP clean-up

    Simplify RPC exception handling by (1) forcing all non-success HTTP
    responses to raise an exception, and (2) pushing the responsibility for
    handling them to the caller.
    
    One benefit of this change is we can now timestamp our RPC errors. We're
    also less picky about what the errors are; since we assume the process
    should essentially run forever (until manually interrupted), just log
    the error, wait a short period, and retry.
    
    Do some further code clean-up, and test that long polling still works.
    committed May 18, 2011
Commits on May 18, 2011
  1. First pass persistent HTTP clean-up

    The timeout is only relevant to long polling, so don't set the open
    timeout with it. String#to_uri doesn't seem to exist, so revert back
    to URI.parse. We don't need quite so much header flexibility, so just
    modify the User-Agent header directly on the request.
    
    While we're cleaning things up, remove external access to the RPCProxy
    attributes (until we have a compelling need for them).
    committed May 18, 2011
Commits on May 17, 2011
  1. @lgeek

    Changed from using rest-client to using net-http-persistent because t…

    …he former doesn't seem to support keep-alive HTTP connections. Most pools ask the users to enable keep-alive connections because of lower overhead, not needing to open a new HTTP connection for each request.
    lgeek committed May 17, 2011
Commits on May 16, 2011
  1. Additional gratuitous changes to Ruby SHA-256

    Separate the SHA-256 SHR/ROTR operations from the SHA-256 functions.
    
    Rename a few methods and variables to make use of Ruby 1.9's support for
    alternative encodings.
    
    Avoid creating an (unnecessary) additional array.
    committed May 15, 2011
  2. Use ruby's -C option

    Add some consistency with make -C / ruby -C.
    committed May 15, 2011
  3. Add const qualifier to pointer casts

    Add some consistency to our calls to sha256_search().
    committed May 15, 2011
Commits on May 13, 2011
  1. Allow RPC server to be specified with URI syntax

    Accept and parse "http://server.example.org:8332" as well as just
    "server.example.org:8332". Note that the default port will be different
    with URI syntax, so "http://server.example.org" defaults to port 80,
    while "server.example.org" defaults to port 8332.
    committed May 12, 2011
  2. More Ruby SHA-256 tweaks

    Reduce the scope of t1 and t2, and improve readability somewhat.
    committed May 12, 2011
  3. Rewrite Ruby SHA-256 implementation

    Simplify the implementation of the SHA256 class and at the same time add
    flexibility for wrapping the underlying 32-bit base type and
    encapsulating the operations on them.
    
    Also add some unit tests to ensure correct computation.
    committed May 12, 2011
Commits on May 12, 2011
  1. Abstract miners into an anonymous ThreadGroup subclass

    Instead of just keeping a list of miner threads, create an anonymous
    subclass of ThreadGroup to encapsulate the operations on miners,
    including querying the current hash rate and signalling all miners to
    abort their current work assignments.
    committed May 12, 2011
Commits on May 9, 2011
  1. Workaround problem using mkmf.rb with US-ASCII encoding

    Some values of the LANG environment variable can cause Ruby to assume
    an encoding of US-ASCII which trips up mkmf.rb. Avoid this by explicitly
    setting a default encoding of ASCII-8BIT.
    committed May 9, 2011
Commits on May 8, 2011
  1. Implement long polling

    Support long polling by creating a new RPCProxy object for the long poll
    URI and yielding it to the block attached to the current RPC call.
    
    Split the getwork thread into a gathering thread and a processing thread
    so that long polling can execute in a subthread of the gathering thread.
    
    We currently use a long polling timeout of 12 hours.
    committed May 8, 2011
Something went wrong with that request. Please try again.