Updated Algorithm switcher to change on pool rather than on algorithm.
This way if, for example, 2 pools use the same algorithm but different
GPU settings, the settings will be applied when changing pool.
Additionally:
* Included a "common" algorithm type in API pool/profile listing. For
example using "marucoin-mod" will return "X13", "darkcoin-mod" will
return "X11", scrypt + nfactor != 10 will return "NScrypt", etc...
* Added "kernel" config option to be backwards compatible with other
miners' configs.
* Added a few algorithm aliases: x11mod -> darkcoin-mod, x13mod ->
marucoin-mod...
* New config keyword: "includes", which holds an array of include files.
This is to counter the JSON limitation not allowing multiple values with
the same name, thus preventing inclusion of multiple files.
Fixed addpool to specify a profile or algorithm and sets defaults if
nothing specified. Also added a new API function to change multipool
strategy.
Conflicts (resolved):
sgminer.c
Config writer now supports profiles and pool specific values. In
addition, the config writer now makes use of the jansson library to
create proper json objects and save them to the config file. This is
much better than trying to write our own json code.
Conflicts (resolved):
sgminer.c
Disconnect from pool, if auth is failed
handle mining.set_extranonce method
subscribe for mining.extranonce
Allow disable extranonce subscribe
Send subscribe request before auth
Change mining.set_extranonce method as stratum notification
Set extranonce.subscribe timeout to 2sec
Some tweaks for extranonce
Handle pool response, who send errors in invalid format
Move no-extranonce-subscribe parameter to a pool config
Include pool.h
Set the pool idle and switch pool, if need
Mark pool as idle if stratum restart is failed
Conflicts:
sgminer.c
This will have unintended consequences, since API clients are sure to
send pool details without name/desc/algo. pooldetails() will allow them
to do that, and add_pool_details() will fill the pool structure with
NULLs.
Closes#116.
This is trivial and shouldn't be so hard: it required modifying
functions in both sgminer.c (for NCurses stuff) and api.c. There is
much code repetition, since the NCurses interface is hard-coded in.
Removing it would simplify things greatly.
Pool state machine is incomplete, and enabled_pools is not increased if
pool state is not explicitly set to "enabled" in config. However,
there is no reason why the user should not be allowed to disable
all pools.
enabled_pools is a bookkeeping variable, and bookkeeping is cumbersome.
Rather than trying to fix this regression, get rid of another place
where enabled_pools is used.
Closes https://github.com/veox/sgminer/issues/75