mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-14 16:58:05 +00:00
Update NEWS and README.
This commit is contained in:
parent
b41de69c35
commit
1614da682c
152
NEWS
152
NEWS
@ -1,3 +1,155 @@
|
||||
Version 2.8.0 - October 7, 2012
|
||||
|
||||
- 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.
|
||||
|
||||
|
||||
Version 2.7.7 - October 7, 2012
|
||||
|
||||
- Fix unused warnings on ming build.
|
||||
|
16
README
16
README
@ -304,6 +304,10 @@ Single pool with a socks5 proxy, regular desktop:
|
||||
|
||||
cgminer -o "socks5:proxy:port|http://pool:port" -u username -p password
|
||||
|
||||
Single pool with stratum protocol support:
|
||||
|
||||
cgminer -o stratum+tcp://pool:port -u username -p password
|
||||
|
||||
The list of proxy types are:
|
||||
http: standard http 1.1 proxy
|
||||
http0: http 1.0 proxy
|
||||
@ -908,6 +912,18 @@ To permanently give your account the 'dialout' group:
|
||||
sudo usermod -G dialout -a `whoami`
|
||||
Then logout and back in again
|
||||
|
||||
Q: What is stratum and how do I use it?
|
||||
A: Stratum is a protocol designed for pooled mining in such a way as to
|
||||
minimise the amount of network communications, yet scale to hardware of any
|
||||
speed. With versions of cgminer 2.8.0+, if a pool has stratum support, cgminer
|
||||
will automatically detect it and switch to the support as advertised if it can.
|
||||
Stratum uses direct TCP connections to the pool and thus it will NOT currently
|
||||
work through a http proxy but will work via a socks proxy if you need to use
|
||||
one. If you input the stratum port directly into your configuration, or use the
|
||||
special prefix "stratum+tcp://" instead of "http://", cgminer will ONLY try to
|
||||
use stratum protocol mining. The advantages of stratum to the miner are no
|
||||
delays in getting more work for the miner, less rejects across block changes,
|
||||
and far less network communications for the same amount of mining hashrate.
|
||||
|
||||
---
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user