|
|
@@ -1,3 +1,155 @@
|
|
|
+Version ??? - Future
|
|
|
+
|
|
|
+- Major upgrade - support for the stratum mining protocol.
|
|
|
+- Fix various modminer warnings on mingw.
|
|
|
+- Fix sign warning on windows build for bitforce.
|
|
|
+- Cast socketfail to integer since SOCKET is an unsigned int on windows.
|
|
|
+- Use strtod not strtol for bitforce temp backup.
|
|
|
+- Cope with broken drivers returning nonsense values for bitforce temperatures.
|
|
|
+- Minor warning fixes.
|
|
|
+- Use the stratum thread to detect when a stratum pool has died based on no
|
|
|
+message for 2 minutes.
|
|
|
+- Only set the stratum auth flag once and once the stratum thread is started,
|
|
|
+use that to set/unset the stratum active flag.
|
|
|
+- Only hand off to stratum from getwork if we succeed in initiating the
|
|
|
+protocol.
|
|
|
+- Target should only be 32 bytes copied.
|
|
|
+- Use a static array for work submission data instead of stack memory.
|
|
|
+- Clear the buffer data before sprinting to it.
|
|
|
+- Clear work stratum strings before setting them and add them to debug output.
|
|
|
+- Drop stratum connect failed message to verbose level only since it's a regular
|
|
|
+probing message.
|
|
|
+- TCP Keepalive in curl is only in very recent versions and not required with
|
|
|
+regular messages on stratum anyway.
|
|
|
+- Move stratum sockets to curl infrastructure with locking around send+recv to
|
|
|
+begin support for proxies and ssl.
|
|
|
+- Make detect stratum fail if a proxy has been set up.
|
|
|
+- Stratum does not currently have any proxy support so do not try to switch to
|
|
|
+stratum if a proxy has been specified.
|
|
|
+- Windows doesn't work with MSG_PEEK on recv so move to a continuously updating
|
|
|
+buffer for incoming messages.
|
|
|
+- Alloca is unreliable on windows so use static arrays in util.c stratum code.
|
|
|
+- Begin support for mingw stratum build.
|
|
|
+- Add space to reject reason.
|
|
|
+- Parse the reject reason where possible from stratum share submission.
|
|
|
+- Pass json error value to share result function to be able to parse reject
|
|
|
+reason in stratum.
|
|
|
+- Don't try to parse unneeded parameters in response to mining.subscribe.
|
|
|
+- Remove the sshare hash entry if we failed to send it.
|
|
|
+- Change notify message to info level to avoid spamming repeatedly when a pool
|
|
|
+is down.
|
|
|
+- Check the stratum pool difference has not changed compared to the work diff
|
|
|
+when testing whether a share meets the target or not and retarget if necessary.
|
|
|
+- Bit error in target calculation for stratum.
|
|
|
+- Set work_block in gen_stratum_work for when work is reused to avoid thinking
|
|
|
+it's all stale.
|
|
|
+- Offset the current block detection to the prev block hash.
|
|
|
+- We should be testing for id_val, not id in parse stratum response.
|
|
|
+- Make target on stratum scale to any size by clearing sequential bits according
|
|
|
+to diff.
|
|
|
+- Correct target calculation in gen_stratum_work.
|
|
|
+- If a share result has an error code but still has an id, it is likely a
|
|
|
+reject, not an error.
|
|
|
+- Initiate stratum the first time in pool_active only, allowing us to switch to
|
|
|
+it on getting a failed getwork and detecting the presence of stratum on the url
|
|
|
+at that time.
|
|
|
+- Use 5 second timeout on sock full for now as a temporary workaround.
|
|
|
+- If no stratum url is set by the end of the detect stratum routine, copy the
|
|
|
+sockaddr url.
|
|
|
+- Make all buffers slightly larger to prevent overflow.
|
|
|
+- Make the stratum recv buffer larger than the recvsize.
|
|
|
+- Userpass needs to be copied to user and pass earlier to allow stratum
|
|
|
+authorisation to work with it.
|
|
|
+- Store a sockaddr url of the stripped url used in determining sockaddr to not
|
|
|
+confuse it with the stratum url and fix build warnings.
|
|
|
+- Decrease the queued count with stratum work once it's staged as well.
|
|
|
+- Allow the stratum retry to initiate and auth stratum in pool_alive to make
|
|
|
+sure the stratum thread is started.
|
|
|
+- Avoid duplicating pool->rpc_url and setting pool->stratum_url twice to itself.
|
|
|
+- Detect if a getwork based pool has the X-Stratum header on startup, and if so,
|
|
|
+switch to the stratum based pool.
|
|
|
+- Comment update.
|
|
|
+- Minor message change.
|
|
|
+- Create a work item from a "clean" request from stratum allowing the new block
|
|
|
+to be detected and the appropriate block change message to be given.
|
|
|
+- Use statically allocated stratum strings in struct work to cope with the
|
|
|
+inability to safely deallocate dynamically allocated ram.
|
|
|
+- Use the current pool when deciding whether to reuse work from a stratum source
|
|
|
+rather than the work's previous pool.
|
|
|
+- Copy the stratum url to the rpc url to avoid none being set.
|
|
|
+- Provide locking around stratum send operations to avoid races.
|
|
|
+- Submit shares from stratum through the abstracted submit share function
|
|
|
+detecting what message they belong to and showing the data from the associated
|
|
|
+work, and then deleting it from the hash.
|
|
|
+- Use a more robust mechanism to obtain a \n terminated string over a socket.
|
|
|
+- Abstract out share submit as a function to be useable by stratum.
|
|
|
+- Rename parse_stratum to parse_method as it is only for stratum messages that
|
|
|
+contain methods.
|
|
|
+- Display stratum as mechanism in status line when current pool is running it.
|
|
|
+- Count each stratum notify as a getwork equivalent.
|
|
|
+- Correct nonce submitted with share.
|
|
|
+- Extranonce2 should be added before coinbase2.
|
|
|
+- We should be hashing the binary coinbase, not the hex one.
|
|
|
+- Fix endianness of nonce submitted for stratum.
|
|
|
+- Check that stratum is already active in initiate_stratum to avoid
|
|
|
+de-authorising ourselves by subscribing again.
|
|
|
+- Begin implementing a hash database of submissions and attempt sending results.
|
|
|
+- Copy parameters from stratum work required for share submission.
|
|
|
+- Set lagging flag on first adding a pool to prevent pool slow warning at
|
|
|
+startup.
|
|
|
+- Fix work->target being a 32 byte binary in gen_stratum_work.
|
|
|
+- Store and display stripped url in its own variable.
|
|
|
+- Create machinery to divert work requests to stratum.
|
|
|
+- Generate the work target in gen_stratum_work, setting default diff to 1 in
|
|
|
+case it is not yet set.
|
|
|
+- Generate work data, midstate and hash1 in gen_stratum_work.
|
|
|
+- Generate header created from stratum structures in gen_stratum_work.
|
|
|
+- Generate merkle root hash in gen_stratum_work.
|
|
|
+- Generate the coinbase for generation of stratum based work.
|
|
|
+- The number of transactions is variable so make merkle a variable length
|
|
|
+dynamically allocated array and track how many there are for stratum.
|
|
|
+- Rename nonce2 to n2size reflecting that it's a size variable and not the
|
|
|
+actual nonce.
|
|
|
+- Provide rudimentary support for stratum clean work command in the stratum
|
|
|
+thread.
|
|
|
+- Cope with pools being removed in the stratum thread.
|
|
|
+- Use the pool sock value directly in the stratum thread in case it changes
|
|
|
+after reconnecting.
|
|
|
+- Create a stratum thread per pool that has stratum that monitors the socket and
|
|
|
+serves received data.
|
|
|
+- Check return value of stratum_parse.
|
|
|
+- Complete authorisation in stratum.
|
|
|
+- Implement stratum parsing of notify parameters and storing them in the pool
|
|
|
+stratum work structure.
|
|
|
+- Create helper functions for duplicating json strings to avoid keeping json
|
|
|
+references in use.
|
|
|
+- Append \n in the sock_send function instead of adding it when constructing
|
|
|
+json in stratum.
|
|
|
+- Don't keep any json references around with stratum structures.
|
|
|
+- Create parse_stratum function that hands off stratum parameters to other
|
|
|
+functions to manage pool stratum work struct variables. Implement mining
|
|
|
+difficulty setting.
|
|
|
+- Create helper functions for checking when a socket is ready to read on and
|
|
|
+receive a single line at a time. Begin stratum authorisation process.
|
|
|
+- Provide a helper function for reading a single \n terminated string from a
|
|
|
+socket.
|
|
|
+- Create a stratum work structure to store current work variables.
|
|
|
+- Test specifically for stratum being active in pool_active.
|
|
|
+- Detect stratum in common place when adding urls, and use a bool to tell us
|
|
|
+when it's active.
|
|
|
+- Fix warnings.
|
|
|
+- Extract and store various parameters on stratum init confirming successful
|
|
|
+mining notify.
|
|
|
+- Use existing socket macros and close the socket on failure in init stratum.
|
|
|
+- Initiate stratum and grab first json result.
|
|
|
+- Get detailed addressinfo from the parsed URL for future raw socket usage when
|
|
|
+possible. IPV4 only for now.
|
|
|
+- Prepare for getaddrinfo call.
|
|
|
+- Add data structures to pool struct for socket communications.
|
|
|
+- Put all socket definitions in util.h to allow reusing by added socket
|
|
|
+functions to be used in util.c.
|
|
|
+
|
|
|
+
|
|
|
BFGMiner Version 2.8.2 - October 8, 2012
|
|
|
|
|
|
- Update to libblkmaker 0.1.2
|