forked from luke-jr/bfgminer
/
NEWS
4404 lines (4097 loc) · 216 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
BFGMiner Version 3.0.2 - April 28, 2013
- Receive failures in recv_line should unconditionally fail.
- Use sock_blocks function for stratum send and receive.
- Avoid applog under stratum_lock in __stratum_send.
- Create an OS specific sock_blocks function.
- There should be no error response code with return value 0 in recv_line.
- Check for errors on stratum recv for any recv return value less than 1 and
only parse the response if it's positive.
- Avoid applog under stratum_lock in recv_line.
BFGMiner Version 3.0.1 - April 24, 2013
- Bugfix: configure: Move actual roundl macro back to miner.h after math.h
should be included
- Bugfix: configure: Use dummy pointer to correctly detect roundl when conftest
main is missing argc parameter
- Bugfix: configure: Use variable argument to roundl to prevent compilers from
optimizing it out entirely
- Remove bitstreams from Windows binary distributions (README directs users to
download source and copy them)
- make-release: Remove autom4te.cache from distributed source
- Bugfix: Omit --no-opencl-binaries option from build if OpenCL is not being
compiled
- Bugfix: Check that all pools have URIs set before starting
- Bugfix: bitforce: Make noncebuf large enough for max qresults +1 (for OK line)
- opencl: Ability to avoid using binary kernels with new --no-opencl-binaries
option
- README: Include jansson PKG_CONFIG_PATH in example for Mac
- Include trailing \0 with coinbase sigs if there's room
- Differentiate socket closed from socket error in recv_line.
- Add new best share info to verbose logging.
- Add notice for when network diff is changed.
- convert sleep(const) to nmsleep()
- Rename longpoll threads according to what pool they're associated with
- miner.php report 'Last Valid Work' as time before request
- API V1.25 - add 'Last Valid Work' time for each device
- add 'count' to customsummarypage 'calc'
- Bugfix: ztex: Initialize fw_buf pointer to NULL so a free before allocation is
safe
- Cleanup when stratum curl fails to initialise.
- LTC text typo
- Recreate cURL for new stratum connections, and clear stratum_notify on
suspending them
- clear_stratum_shares: Rename diff_stale variable to diff_cleared
- MMQ it's a bitstream
- Update a pool's last work time when the work is popped as well as staged.
- Extend stratum connections another minute (total 2 minutes) after the last
work item was staged, and maintain last_work_time for non-stratum pools.
- Fix --benchmark generating valid work for cgminer.
- Bugfix: Correct pdbuilder result directory
- Omit add_serial_all code when serial support is not wanted
- Use configure to detect presence of roundl to avoid redefining an actual
function (possibly inline)
- Bugfix: roundl: Add needed parenthesis to perform ?: before +
- Bugfix: ft232r: Defer allocating structure until after USB endpoint is
successfully opened, so it won't leak in case of failure
- Bugfix: ztex: Free bitstream in memory when done with it
- Bugfix: Safely handle all-space cURL debug messages, should they ever happen
- Silence warnings about poor format usage for quit()
- Apply noreturn and printf-format attributes to quit() function definition
- Bugfix: set_serial_rts get flags to manipulate them correctly
- Bugfix: Missing return for /dev globbing
- Bugfix: Free unused work when retrying failed lp request
- Display processor name with thread disabled/re-enabled messages
- Move best share to top summary line, and add network difficulty to block line
- opencl: Default to phatk kernel for Mesa platform
- opencl: Default to single thread with Mesa OpenCL
- opencl: Check for Mesa OpenCL and avoid using binary kernels with it
- bitforce: Never increase bulkqueue poll wait time during queue underruns
- bitforce: Start off polling bulk queue every 100ms
- bitforce: Log device queue size after getting bulk results
- bitforce: Ensure bulkqueue polling occurs at least once a second
- opencl: Include OpenCL platform in kernel binary filenames
- bitforce: Use bulk queue mode for all SC devices
- Bugfix: bitforce: When reinitializing, free all known works to avoid
decrementing reset queued counter
- bitforce: Handle timeout during ZOX as cleanly as possible
- Bugfix: bitforce: Make reinitialization more complete and safe
- Bugfix: bitforce: Close opened fd if reinit fails
- Bugfix: bitforce: Retry ZGX until device is NOT busy
- bitforce: Log when zero queued results are received
BFGMiner Version 3.0.0 - April 5, 2013
- Update libblkmaker to 0.3.0
- debian: Include new api-example.py in docs
- added example for Python using the RPC API
- added SPEC file for SUSE distributions
- Bugfix: bitforce: Free initialization data to avoid trivial one-time memory
leak
- Support for local submission of found blocks (GBT only)
- bitforce: RPC pgaset fanmode 0-5 for manual fan control
- bitforce: More debugging information
- Bugfix: modminer: Since RPC always includes the temperature, we don't need to
add it specially
- bitforce: Expose dual temperature sensors to RPC
- bitforce: Support for up to 2 temperature sensors per processor
- Bugfix: bitforce: BFP_QUEUE: Attempt to recover from extra queue results, or
the next job finishing early
- bitforce: Always send a new job ASAP after flushing the queue
- bitforce: Implement "Queue Job Pack" (ZWX) and use it for XLINK devices to
avoid USB latency issues
- bitforce: Ignore INPROCESS added to ZOX response
- Implement minerloop_queue for devices that process work items too fast to keep
track of which one they're currently working on
- bitforce: Split ZOX command into its own function
- Bugfix: DevAPI: Free work when preparing it fails
- DevAPI: Abstract get_and_prepare_work for minerloops
- DevAPI: Move select() logic from minerloop_async to do_notifier_select
- Clarify stratum mining.set_difficulty debug log message
- No longer call configure from autogen.sh
- Bugfix: bitforce: Ensure result_busy_polled gets set for queue mode to avoid
unnecessary 10ms wait times
- Bugfix: bitforce: Use common code for end of job_get_results, so queue results
don't short-circuit timing code
- Bugfix: bitforce: Ensure "OK" doesn't remain in queued results buffer
- Bugfix: bitforce: next_line needs to increment beyond the newline character
- Update README for x970 memdiff values.
- Do not scan other gpu platforms if one is specified.
- Update README for sync objects on windows.
- Add information for setting gpu max alloc and sync parameters for windows with
scrypt.
- Whitelist AMD APP SDK 2.8 for diablo kernel.
- Show pool number in switch message
- Clear just the socket buffer when we don't care what is left in a stratum
socket.
- Clear the stratum socket whenever we are closing it since the buffer is going
to be reused.
- Do not continue work from a stratum pool where the connection has been
interrupted.
- Close any existing stratum socket if we are attempting to restart stratum so
the pool knows the connection has gone.
- Show mechanism of stratum interruption if select times out.
- Make stratum connection interrupted message higher priority to be visible at
normal logging levels.
- API add 'Network Difficulty' to 'coin'
- avalon: if all result are wrong in one batch read. reinit the avalon
- avalon: record the last result temperature info
- delay when close avalon; only record matched result
- avalon: fix no_matching_work only count when debug
- avalon: minor change
- avalon: add idle code
- avalon: fliter the temp_max >= 100, print the result for debug.
- avalon: export more data to API stats
- avalon: add default chip frequency
- avalon: fix the work_i3 init
- avalon: add reinit_device
- avalon: the temp_history_count base on timeout
- avalon: fix mistake on adjest_fan
- avalon.c: fix the copyright
- bfgminer-rpc: add -o option: no format, only the result
- avalon: update fan pwm
- avalon: update the FAN_PWM MAX/MIN
- avalon: minor change
- avalon: overclock code
- avalon: fix the display
- avalon: minor change
- avalon: fix the fan/temp control
- avalon: fix the temp_avg
- avalon: fix temp
- avalon: add fan/temp control
- avalon: add FAN speed factor
- avalon: add TODO on fan/temp control. cleanup detect
- avalon: add the gate_miner bits
- avalon: only send one byte on reset
- avalon: add support on send 2 bulk taskes at begin
- avalon: fix the hash_count return
- avalon: fix the LOG_WARNING
- avalon: add comment on hash_count
- avalon: WORKAROUND on hashrate
- avalon: update max miner_num
- avalon: add more info on api
- avalon: add nonce_elf and more info on match miner_num
- avalon: change reset to 300ms
- avalon: move bulk buffer to it's info structrue
- avalon: more work on hashrate and read_count
- avalon: add baud 38400 support
- avalon: fix nonce_range EB
- avalon: fix the hashrate wrong
- more info on avalon API
- avalon: fix the nonce_range EL
- avalon: fix the read count
- avalon: more work on nonce_range
- avalon: read() times and send delay fixed
- avalon: add the send delay option
- avalon: print out fan/temp info
- avalon: add the result info (fan/temp etc)
- avalon: more check on hardware error
- avalon: more work on get_work_count
- avalon: now we have dynamic get_work_count
- avalon: more work on parameters
- avalon: add timeout parameter
- avalon: baud as parameter now
- avalon: send work pitch should be : (15*(8+2)*4/19200)s
- avalon: more work on match work
- avalon: fix free_work
- avalon: continue on reset work. wait for buffer empty
- avalon: add options, if write() error. sleep(1) before reset()
- avalon: more cleanup
- avalon: finish read when Buffer empty
- avalon: fix the nonce EB issue
- avalon: MORE work
- avalon: fix the EB/LB issue
- avalon: some cleanup
- avalon: fix the first configure task
- more work on the avalon buffer
- avalon: fix the BIG_ENDIAN issue
- avalon: Fix the buffer statu
- change defines to avalon parameters
- fix the cts return
- avalon: change the data to uint8_t, add some test temp code
- avalon: fix task init
- avalon: more data format work
- change to avalon data format
- debug: add a debug hexdump.c
- avalon: add some code on match work
- avalon: try to correct the pool_status and dev_status
- avalon: more work on multi-works
- avalon: more work on read
- avalon: more work on get results
- more RTS code on avalon.c/h
- more RTS code
- avalon: some cleanup
- avalon: more work on new work queue structrue
- fpgautils.c: use lancelot as target
- avalon: since we submit task as bulk data. modify again
- add scanhash_queue
- renmae avalon.h to driver-avalon.h
- fpgautils.c: add get_serial_cts
- understand the avalon protocol more
- avalon: new software structrue but target as lancelot
- add avalon.h
- avalon: fix warning
- avalon: add TODO comments
- more AVALON defines
- avalon: more work
- add driver-avalon.c
- add avalon support to automake
- Default to work queue mode on BitForce SC devices
- bitforce: Implement support for non-contiguous XLINK slave addressing
- gnulib: stdint: fix build with Android's Bionic fox x86
- gnulib: stdint: Improve support for Android.
- gnulib: stdint: Add support for Android.
- Check for ?e##toh macros independently from hto?e##
- If pthread_cancel is missing/emulated, set asynchronous thread cancel type on
stage, watchdog, watchpool, and longpoll threads since the emulation cannot
support deferred cancellation
- If pthread_cancel is missing (Bionic/Android), emulate it using pthread_kill
and pthread_exit
- configure: Intelligently detect what flags/libs get us working pthread, and
define HAVE_PTHREAD_CANCEL if pthread_cancel is available
- Bugfix: Initialize mutex_request to invalid so devices that don't use it
(bitforce) don't try to
- RPC: pools: Add "Message" to show last client.show_message received over
stratum
- Stratum: Support client.show_message method
- Don't retry without resume support, if the first attempt just timed out
- Bugfix: minerloop_async: Intelligently handle work updates and device disables
during transitions
- Bugfix: minerloop_async: Free old (unused) prepared work when replacing it
with an upgraded one
- Bugfix: Free pool sessionid before replacing it
- Bugfix: Stratum: Address dereference-after-free and memory leak introduced in
resume support
- Stratum: If old protocol fails as well, try to resume again next time around
- Bugfix: Stratum: Only failover to old mining.subscribe protocol if the
previous attempt was the new one (fixes a flood of retries)
- Try to extract the sessionid associated with mining.notify on 3rd level array
and submit it along with the userid to support mining resume, failing gracefully
and restarting if the pool rejects it.
- Cope with misread sessionid on stratum for now.
- Use the sessionid as passed on stratum connect to attempt to resume a
connection once and then clear it if it fails, to use a new connection.
- Move to storing the nonce1 in the work struct instead of the sessionid for the
now defunct first draft mining.resume protocol.
- Only continue submitting shares with mining.resume support on stratum when the
session id matches.
- Provide support for mining.resume with stratum, currently re-authorising after
successful resumption pending finalising of the protocol process.
- Provide basic framework for restarting stratum depending on whether resume
support exists or not.
- Abstract out the setting up of the stratum curl socket.
- Remove redundant setting of strings to NULL since the whole work struct is
zeroed.
- Only clear stratum shares mandatorily on stratum dropouts when the pool does
not support resume.
- Stratum: Keep trying to submit shares, even across reconnects
- Use new select loop primitives in submission thread
- Bugfix: Missing pool_no parameter to applog for no-stratum-sessionid debug
message
- Do as much outside of mutex locking of sshare_lock as possible.
- Remove last reference to struct work used outside the sshare_lock in
submit_work_thread
- Unlock the sshare_lock in submit_work_thread when all references to work and
sshare are complete.
- Bugfix: Copy and free sessionid on work objects
- Add timestamps to stratum_share structs as they're generated and copy the
stratum sessionid if it exists to stratum work generated.
- Store session id for stratum if the pool supports it for future mining.resume
support.
- Keep the unique id of each work item across copy_work to prevent multiple work
items having the same id.
- x6500: Never consider processors idle if they're enabled
- x6500: Make mutex management cleaner by blocking device select loop during
idle get_stats
- Bugfix: minerloop_async: Always refer to real thread for select loop
- Bugfix: Initialize work_restart_notifier[1] to INVSOCK instead of -1 to be
portable
- ztex: Use restart_wait to react quicker to work updates
- Handy TIMEVAL_USECS macro
- Restore blocking restart_wait function with nearly identical semantics as old
one
- Bugfix: bitforce: Rework sleep delay adjustment logic to properly deal with
more accurate timing readings (added in device API update)
- Hidden --force-rollntime option for getwork pools (use like --pool-priority,
after each pool definition)
- Include processor id in get_work logging
- Support for BIP23 BPE request target extension via new --request-diff option
- Hidden option to reduce "work update" messages to debug level:
--quiet-work-updates
- Change "work restart" to "work update" in messages to reflect reality more
accurately (no work is lost), and normalize case of "longpoll"
- HACK: Since get_work still blocks, reportin all processors dependent on this
thread
- Move FD_SETSIZE definition to configure so it affects everywhere it needs to
- Move absolute_uri function to util.c
- Remove now-unused blocking-wait code (restart_cond, restart_wait, and
stale_wait)
- Bugfix: bitforce: Zero hashes complete if we get an invalid response
- HACK: Since get_work still blocks, reportout all processors dependent on this
thread
- bitforce: Support for work queue protocol on BitForce SC devices
- Use new double-stage format for SC devices
- modminer+x6500: Expose frequencies to API in terms of MHz to be consistent
with ztex driver and cgminer
- bitforce: Replace (bool)cgpu->nonce_range with (enum)bitforce_data->proto
- bitforce: XLINK support for multiple processors
- bitforce: Prepare log messages for XLINK by separating into proc and dev
messages
- bitforce: Always use fd/mutex pointers on actual device, to prepare for XLINK
support
- bitforce: Get fd/mutex pointers only once per function
- bitforce: Abstract commands to bitforce_cmd1 (single-stage) and bitforce_cmd2
(double-stage) functions
- bitforce: Debuglog device information during detection
- Bugfix: Missing includes needed on Windows
- Bugfix: Use waddstr instead of wprintw to display completed device summary
line, so literal %s don't get interpreted as formatting options
- Bugfix: bitforce: Avoid polling continuously between work restart and job
completion
- bitforce: Use poll device API when job_get_results needs to wait
- bitforce: Use poll device API when job_start needs to wait
- stale_work_future function to determine in advance if a work/share will be
stale at some future time
- bitforce: Minimally refactor to adapt to new minerloop_async
- minerloop_async: Break out of select on work_restart_notifier
- Replace UNIX-only work_restart_fd pipe with portable work_restart_notifier
- Bugfix: Clean out unused variables from minerloop_async
- Move new device API code to new deviceapi.c source file
- Make minerloop_async more async, using some callbacks to handle event
completions
- Split part of minerloop_async into do_get_results, and a bit other
reorganization
- Abstract select_timeout function to convert a realtime timeval to a timeout
pointer for select()
- Split part of minerloop_async into do_process_results, and don't allow
api->job_get_results to return hashes
- Split part of minerloop_async into do_job_prepare and do_job_start
- Initialize thr->tv_poll to -1 (disabled)
- Update the hashmeter one last time before disabling a device
- minerloop_async: Break out of select for wakeup notifications
- Replace mining thread queues (which were only used for wakeup pings) with
notifiers (which can be used with select and co)
- Unify all mining thread wakeup to mt_enable (simplifying code)
- Bugfix: get_statline: Correct device summary status, only showing DEAD or OFF
if it affects all processors
- Working processor disable/enable with new async minerloop (currently gets
stuck if all processors disabled)
- Bugfix: get_statline: Only care about the processor status if
--show-processors is set
- Bugfix: watchdog: Use processor thr_info even if it isn't a real thread
- Only support thread-per-device or N-threads-per-processor; simplify
work_restart check
- x6500: Remove mutex, since driver is single-threaded now
- Bugfix: Update utility every get_statline call, and include every processor
involved
- HACKING: New text file to document the internal workings of (currently) the
device API
- Bugfix: mining_threads is now a total of thr_info objects, not necessarily
actual running threads
- x6500: Working (but incomplete) asynchronous/single-threaded driver
- Incomplete (but workable) asynchronous minerloop
- Core support for managing multiple processors from a single thread
- Allow device drivers to implement their own minerloop
- Move cgpu_info and thr_info initialization to main, and ensure all get
initialized before starting any threads
- Refactor and simplify miner_thread (no major behavioural changes)
- Move difficulties to end of share result message, so they can be made to line
up nicely
- Bugfix: Consolidate share result message code (including fixing displayed
hash portion for stratum)
- miner.php: Include ProcID in Device column as a letter
- Show summaries per-device unless --show-processors is used (also available on
Display TUI menu)
- Order next_proc linked list in processor id order
- Consolidate processor summary line generation for TUI and text-only modes
- RPC: Update to include ProcID so multiprocessor devices can be understood
correctly
- RPC: Common function for adding device-identifying fields
- modminer: Make single-processor statline look like other temperature-only
statlines
- modminer: Split each FPGA into its own logical processor (in the same device
still)
- modminer: Get mutex pointer only once per function
- ztex: Combine master+slave devices into a single multiprocessor device
- Preformat dev_repr (device representation) and proc_repr (processor
representation) once for use everywhere
- x6500: Split each FPGA into its own logical processor (in the same device
still)
- x6500: Get mutex pointer only once per function
- Minimal support for defining devices with multiple logical processors
- Rename all README files to standard README.* style
BFGMiner Version 2.10.6 - April 5, 2013
- Bugfix: Restore missing variable
- Bugfix: openwrt: Never include _ in platform name
- Bugfix: Fixed typo in bfgminer-rpc usage
- pool_active: Ensure temporary curl is always cleaned up
- Try to find jansson via pkg-config first, and fall back to checking system
defaults if that fails
- Attempt to find libjansson via pkg-config if AC_CHECK_LIB fails
- Update scrypt readme re drivers and sdk.
- Bugfix: README: Move --device out of GPU only options
- Update .gitignore
- Added bfgminer-rpc binary to .gitignore
- Bugfix: Actually change to the newly selected pool when statum is inactive and
it decides to change
- Bugfix: modminer: Properly fail on dynclock error
- Bugfix: opencl: Clean pc_data->work before freeing pc_data
- Bugfix: Correct order of libblkmaker libraries so static builds work
- Bugfix: Need to ensure __BIG_ENDIAN__ is defined before including uthash.h
- Bugfix: Stratum: When destroying cURL easy handle, be sure to clear pool
stratum_curl pointer
- Bugfix: bitforce: Fix warning
- Bugfix: Stratum: Properly handle non-integer "id" for client.get_version
requests
- json_dumps_ANY utility function to portably implement json_dumps(..., ... |
JSON_ENCODE_ANY)
- Bugfix: bitforce: Free old name when updating it on reinitialization
- Stratum: Include pool number in send/recv protocol logging
- Include pool number in stratum thread name
- API always report failed send() replies
- API.java allow partial reads
- Bugfix: Stratum: Use curl_easy_cleanup to close connection, so cURL
understands what is going on
- Bugfix: hash_pop: If a work should be rolled, use a clone of it rather than
consume a rollable work
- openwrt: Move Makefile into a bfgminer subdirectory to avoid symlinking issues
- openwrt: Use --with-curses=ncurses to avoid ncursesw dependency
- configure: Support --with-curses=FOO to look for curses implementation in
libFOO
- Set pool socket to INVSOCK after closing connection, just in case
- Clean up compiler warnings
- Bugfix: Check that pool is active one last time before selecting it
- Bugfix: Trim whitespace (like newlines) off the end of debug info from
libcurl
- Bugfix: submit_nonce: Backup the original work->blk.nonce since the miner
code uses it to track work consumption
- Bugfix: Scheduler needs to unpause disabled devices, even if it isn't waking
them up
- Bugfix: Use SOCKETTYPE for notifiers, to avoid potential overflow on Win64
- Bugfix: Some versions of MingW define localtime_r, but don't handle the
timeval.tv_sec case that we use; so undef any preexisting one and use our own
- Bugfix: reinit_gpu: Remember the selected device to correctly change
properties of
- Bugfix: cpu: reinit_device hasn't worked since 93b284d, so just remove it
entirely instead of letting it screw with thread 0
- Document necessity to run ldconfig and possibly configure ld.so
- Bugfix: Complete startup after just one pool is found active, no need to wait
for the rest
- Bugfix: Update links
- miner.php: Replace PGA dev number with concatenated device ID
- Bugfix: miner.php: Display devices with aligned columns instead of assuming
they come out of the RPC aligned
- Bugfix: miner.php: Silence PHP "local timezone" warning
- Bugfix: api-example: Try to use BSD sockets on any non-Windows platform
- Bugfix: stratum: Delay mining.get_transactions request until after auth has
succeeded, so its failure doesn't abort the connection (also avoids any delay
from a large result)
- --no-getwork option to disable getwork protocol support
- Clarify dependencies with Debian/Ubuntu package names
BFGMiner Version 2.10.5 - February 8, 2013
- Bugfix: Actually increment template_nonce when we use it
- Change file modes.
- Fix logic fail on partial writes with stratum send that was leading to corrupt
message submissions.
BFGMiner Version 2.10.4 - February 7, 2013
- New platform ports: OpenWrt and Win64
- Update official Windows build compiler and libraries:
- - Upgrade GCC from 4.6.3 to 4.7.2
- - Upgrade libusbx from 1.0.10 to 1.0.14
- - Upgrade jansson from 2.3.1 to 2.4
- - Upgrade libcurl from 7.26.0 to 7.28.1
- - Upgrade pthreads-win32 from 2.8.0 to 2.9.1
- Bugfix: Release libudev handle when ID_MODEL doesn't match what we're looking
for
- openwrt: Script to build for multiple platforms easily
- openwrt: Bitstreams should be "all" arch
- Working OpenWrt Buildroot Makefile
- Do not enable the pool disable on reject feature unless explicitly enabled
with --disable-rejecting.
- Check for calloc failure for completeness in gen_stratum_work.
- Cache the coinbase length to speed up stratum work generation.
- Cache the header length when generating stratum work to avoid calculating it
on every work generation, and to only need one alloc+sprintf, speeding up work
generation.
- Use heap ram for coinbase in gen_stratum_work, zeroing it before use.
- Provide a wrapper for aligning lengths of size_t to 4 byte boundaries.
- Bugfix: ztex: While 1.15y can finish highspeed FPGA config immediately, at
least 1.15x needs some delay
- Use CURLOPT_OPENSOCKETFUNCTION to intercept the socket being created for
stratum, in order to workaround CURLINFO_LASTSOCKET breakage on Win64
- make-release: Update for Win64 and bfgminer-rpc.exe
- Use localtime_r instead of localtime, including a Windows implementation that
handles Win64's broken struct timeval.tv_sec
- Use standard execv arg type on Win64
- Bugfix: Correct various size mismatches
- Ensure winsock2.h is always included before windows.h
- Bugfix: Add necessary Winsock library to bfgminer-rpc linking
- Bugfix: Remove dependencies of compat.h on miner.h for Windows (moves
timersub/timeradd to compat.h where it belongs)
- modminer: Raise default/maximum clocks to 210 and 250 respectively
- modminer: Use better-performing X6500 overclocker bitstream
- Disable libusb linkage/usage when neither X6500 nor ZTEX support is desired
- Add support for "--scan-serial all" via simply globbing /dev
- fpgautils: serial_autodetect implementation using sysfs
- fpgautils: Unified serial_autodetect function to find a serial device
regardless of the underlying method
- fpgautils: Look for bitstreams in ../share/bfgminer/ too
- Bugfix: Ensure curses library is always linked in NCURSES_LIBS, to avoid
unnecessary dependencies for (non-curses) tools
- Bugfix: GBT: work->data is always little-endian, but libblkmaker wants the
nonce in native-endian
- Bugfix: cpu: Corrections necessary to get 'c' and 'cryptopp' algorithms
working on big endian
- Bugfix: Sanity check for bits exponent in real_block_target
- Bugfix: cpu: Increment nonce after checking (rather than before), to avoid
skipping the first nonce of each scanhash call
- cpu: via: Only swap back the nonce, rather than all data
- cpu: Minor optimization by checking H==0 before calling fulltest
- Bugfix: Skip yasm check when building for non-x86 platforms
- Allow --scantime alias to --scan-time
- Build bfgminer-rpc program from api-example.c
- Bugfix: Remove miner.h include from api-example.c since it isn't needed and
pulls in libblkmaker
- Make wrapping consistent at 79-80 characters per line
- Bugfix: Correct numerous misspellings, typos, etc
- Bugfix: Prefer using a non-frozen mining thread for watchdog
- Bugfix: x6500: Expose x6500_fpga_data even if JTAG reset/detect fail, since
it is still used to store temperature info if the other FPGA initializes
- Adding ZTEX Windows guide from Jason Snell
BFGMiner Version 2.10.3 - January 22, 2013
- Revert "x6500: Whenever we get a hardware error, purge buffers just in case
of read/write desync"
- Bugfix: libblkmaker: Check that zero-padding on base58check input matches
output (needed to properly reject addresses with too many or too few prefix/pad
'1's)
- Bugfix: Free bin2hex output in __update_block_title
- Bugfix: Allocate space for the terminating null byte on new current_hash
- Display tail end of prevblock hash rather than start+32bits
- Try to extract block height from coinbase scriptSig, when mining stratum
- Display next block height when using GBT
- Use suffixes for target-difficulty also, in share accept/reject loglines
- Bugfix: Implement common target_diff function, fixing scrypt-specific bugs in
and simplifying common code shared by set_blockdiff, calc_diff, and share_diff
- Set DISPLAY to :0 by default (on non-Windows)
- Bugfix: Reset pool bytes received when zeroing stats
- miner.php trim trailing zeros on some of the STATS numbers
- Semi-Cherrypick: API stats - include pool network bytes + in miner.php
- Best Share readme
- API zero - zero statistics - all or bestshare - with optional on screen
summary
- api.c pgaenable not re-enabling the device - plus related debug
- diffexactone pool diff1 used for share value calculation is ffffffff... not
100000000... :P
- miner.php user/pass fix 'usr' is readonly
- miner.php optional user/pass login restrictions
- zero (most) API stats
- Remember best share per pool and return in API pools
- ztex: precheck the secondary solutions to avoid hw errors the ztex bitstreams
gives back the latest checked nonce and its hash7 value and two possible
solutions.
- Bugfix: configure: if blocks require at least one command, so fill with true
- Bugfix: Only log stratum resume if it was actually "idle" before
- Zero the best share string memory when zeroing stats.
- Change the pool stratum socket buffer to new cgminer implementation, to
allocate it in a grow-only fashon and reduce virtual memory fragmentation at
the expense of CPU time.
- Differentiate socket full from sock full.
- Allow stratum to startup without notify but check it is valid before creating
stratum work.
- Do not try to generate stratum work unless the notify command has succeeded.
- Document Mac OS X configure usage with Homebrew pkg-config path
- Clean up post-configure display of compile environment
- Bugfix: If native ncurses detection fails, print "none?" result before moving
on to try AC_SEARCH_LIBS scan
- Fix more printf-format non-compatibilities
- Update windows-build.txt
BFGMiner Version 2.10.2 - December 27, 2012
- Update documentation to include block difficulty
- Reset all stats when requested
- Reset total diff1 shares when zeroing stats as well to show correct work
utility.
- Update documentation.
- Parse anything in the stratum socket if it's full without waiting. Empty the
socket even if a connection is not needed in case there are share returns.
- Provide a mechanism to zero all the statistics from the menu.
- Display the current pool diff in the status line.
- Display block diff in status line.
- Generalise the code for solving a block to enable block solve detection with
scrypt mining.
- Generate the output hash for scrypt as well and use the one function to set
share_diff.
- Use one size for scratchbuf as a macro in scrypt.c
- Remove the unused sha224 functions.
- Check staged_rollable under staged lock, when cloning available work.
- scrypt_diff uses a uint64_t as well.
- Correct target for stratum support with scrypt mining.
- Bugfix: Ensure nonces are put in data as little-endian in test_nonce*
- Add low-level debugging info for data_buffer (some only enabled with
-DDEBUG_DATABUF)
- Make all_data_cb fwrite-compliant by returning nmembs, and check for unlikely
overflows
- Bugfix: Need to do extract_sockaddr before trying to initiate stratum
(erroneous http URI usage, except at startup)
- Bugfix: Update last GBT work in pool_active before staging it, since otherwise
it could possibly be consumed before we copy it
- Bugfix: Address Windows-specific formatting issues (including lack of support
for %ll*)
- Bugfix: ztex: Correct formatting for reset failure error
- ztex: Fix formatting in a debug message
- cairnsmore: Don't bother timing dynclock detection, since there's no standard
way to log it accurately
- Correct formatting in FPGA drivers
- opencl/adl: Fix formatting to fit strict rules
- Explicitly cast all_data.buf to char* for debug printing
- Follow strict time_t handling rules
- Use GNU format-checking attribute when available for applog
BFGMiner Version 2.10.1 - December 21, 2012
- libztex: fixed a typo
- libztex: check returnvalue of libusb_claim_interface() and release the
interface in case of early exit
- Bugfix: submissions: Skip FD_ISSET when fd==-1 (let the next select setup deal
with cleaning them out)
- Bugfix: Remove sws from write_sws list when discarding it due to pre-send
stratum disconnection
- Bugfix: Shutdown stratum socket when initiate fails, so it doesn't linger
- Bugfix: Clear stratum receive buffer when initializing, in case there was
extra unprocessed data in it from a previous connection
- Stop all work from the current pool if it's a stratum pool once it is
disconnected since it will be invalid upon reconnecting.
- Discard all staged work from stratum pools as well as the shares upon
disconnection since all the work becomes invalid.
- Use correct cbreak after 15 second delay when no pool is found alive.
- modminer: Set default clock frequency to user request so it sticks better
- modminer: Make valid frequency range consistent: 2-230
- Allow stratum to work with scrypt.
- MMQ add api pgaset for clock
- API V1.23 - new pgaset command, to be used soon
- Protect the best_share/best_diff values under control lock.
- Bugfix: modminer: Return failure to change frequency when device reports it
- opencl: Look in the right place for OpenCL library on Mac OS X
- Bugfix: AC_C_BIGENDIAN is reported to have problems, and invasive even if
buried in a conditional, so don't use it
- Bugfix: Check for bswap_* first, to avoid redefinition based on other variants
- Bugfix: autoheader isn't smart enough to figure out variable defines, so use
AH_TEMPLATE for each possible header
- Check a stratum pool hasn't gone dead while being a backup pool and missed
having its idle flag cleared.
- Fix null pointer issue when one chip on an X6500 is not initialized yet when
reading temperature.
- Hot-patch broken libcurl pkgconfig CFLAGS found in libcurl's Windows binaries
- Update OpenCL 1.2 headers from http://www.khronos.org/registry/cl/api/1.2/
- Reorganize detection of platform byteswap macros and endian to be more robust
using autoconf
- Move new bandwidth-based Efficiency to status line
- Replace work-based efficiency with new bandwidth-based efficiency
- Bugfix: Pull out GBT request collapsing since it is no longer needed with new
get_work main loop
- Bugfix: Free unused work when waiting on external GBT request
- README: Explicitly mention automake dependency
- README: Update AMD APP SDK URIs
- Bugfix: Free shares discarded before beginning submission
- Bugfix: Discard stratum shares waiting for a writable socket, if the pool
disconnects in the meantime
- Bugfix: Always let watchpool thread handle dead pool recovery (including for
stratum-only pools)
- Bugfix: Avoid lingering stratum_auth when connection is lost
- API-README explain custom page extensions in miner.php
- miner.php add a sample group pool report
- miner.php allow where,group,having on cumstom pages
- Bugfix: Hook CURLOPT_DEBUGFUNCTION to count actual bytes sent/received by
libcurl
- Bugfix: Reset pool transparency_time when connecting to stratum
- Bugfix: Immediately discard shares found on disconnected stratum pools, since
there is no way to submit them
- Bugfix: Decrement total_submitting when stale shares are discarded before any
submission attempts
- Bugfix: Only try to compare stratum job_id for work that has a job_id (ie,
ones that came from stratum)
- Bugfix: Recheck has_stratum even if the pool hasn't changed, in case pool has
switched to another protocol in the process; also only delay 5 seconds before
retry if pool is the same
- Bugfix: Try GBT if no pool protocol is known (can occur in the process of
stratum failover to GBT)
- Bugfix: Correctly track discarded stratum shares, and log them as "disconnect"
in sharelog
- Check for EWOULDBLOCK when supported in send and recv as well.
- Use the raw send() command instead of curl_easy_send since curl raw socket
usage introduces random bugs on windows.
- Use raw recv() command in place of curl_easy_recv since the curl
implementation introduces random bugs on windows builds when the recv fails.
- miner.php when displaying a single rig, add prev/next rig buttons if they
exist, next to refresh
- miner.php allow custom page joins for STATS
- miner.php - include windows easyphp link
- driver-ztex: use the correct size for the swap array
- API stats - display pool byte transfer stats
- Pool store data transfer stats
- Benchmark incorrect work size
- ChangeLog refer to NEWS
- driver-ztex: search the complete noncerange based on the actual speed
- API-README update
- api use a dynamic io buffer, truncated before it reaches the current ~64k
limit
BFGMiner Version 2.10.0 - December 11, 2012
- Bugfix: Free work before replacing it with clone
- Bugfix: Since we are using pipes for select notifier on *nix, we need to use
read/write there
- Bugfix: Winsock needs send/recv for sockets, not write/read
- Bugfix: opencl: Initialize pc_data to avoid clean_work checking uninitialized
pointers
- Bugfix: Correct parenthesis in bind() call in Windows notifier_init
- Include Windows error messages in notifier_init errors
- Include prctl header for thread renaming to work.
- Set tv_idle time if a pool is not active when input from the menu.
- minor unlikely zero pointer test
- BeaverCreek doesn't like BFI INT patching.
- Only stratum pools that are idle need to be kicked via cnx_needed.
- Do not do any setup if opt_api_listen is disabled in api.c.
- libztex: in case the selectFpga() failed set the selected fpga to unknown
- Only set the lagging flag for select_pool() on failed getwork if we're not in
opt_fail_only mode.
- driver-ztex: support for broken fpga on a multifpga board
- libztex: use a function for the twice called firmware reset code
- libztex: removed an unused struct member (ztex->valid)
- Set the pool lagging flag on startup to avoid it being shown initially, and
only unset it once the maximum number of staged work items has been reached.
- libztex: Include compat.h for substitute libusb_error_name (on older libusb
versions missing it)
- Suppress warning about "succeeded" not being used in finish_req_in_progress
for now
- Bugfix: Always give the get_work thread a curl, regardless of other
outstanding curls in use
- Bugfix: Failover after even a single job-request failure (or else it takes
too long on timeouts)
- Bugfix: Need to remove and re-add curl easy handles from multi to start a new
request
- Access total_submitting under mutex lock to avoid any potential races, and
increment it as soon as we queue the submission up
- Just leave the submit_work thread running persistently
- Bugfix: Restore work->pool after prepare_rpc_req since clean_work now clears
it
- Bugfix: Now that stage_work is trying to manipulate staged_work in the same
thread, clone_available needs to stage it outside of its own lock
- Make main() the getwork scheduler once everything is set up, so that all app
exits use the kill_work and quit paths.
- Set successful connect to true on auth stratum to allow summary on exit from
single stratum pool.
- Hash_pop should signal further waiters on its own pthread conditional in case
there are multiple waiters.
- Check the job_id has not changed on stratum work when deciding if the work is
stale as might occur across disconnections.
- Perform pool_resus on getwork pool that generates work in getwork_thread.
- Set pool lagging message for getwork pool that falls to zero staged in getwork
thread.
- Stage extra work when the primary pool is a getwork pool without rolltime.
- Do not try to clean up twice if kill message is given.
- Only recalculate total_staged in getwork thread if required.
- Include the correct config header in libztex and include it before other
includes.
- Implement a completely new getwork scheduler. Stage all work from the one
thread, making it possible to serialise all requests minimising the number of
getworks requested or local work generated. Use a pthread conditional to wake up
the thread whenever work is removed to generate enough work to stay above the
watermark set by opt_queue. Remove all remnants of the old queueing mechanism,
deleting the now defunct queued count.
- Bugfix: Clean up share hashing and target checks, fixing share difficulty
calculation for above-target would-be-shares
- Use templates from pool_active and longpolls without fetching more
unnecessarily
- Try to avoid requesting GBT jobs when there is already a request in progress
that will likely provide sufficient work
- Reuse most recent GBT job if in get_work_thread if it isn't stale
- libztex: fixed some warnings and removed some whitespaces
- Remove all references to the now unused workio_cmd structure.
- Remove the old workio command queue thread, replacing it with a kill
conditional to exit the program.
- Remove getwork command from workio_cmd queues and do them directly from
queue_request.
- Begin tearing down the old workio command queues by removing submit commands
from there and submit them asynchronously via their own threads.
- driver-ztex: changed two pairs of malloc()/memset() to calloc()
- libztex: Read bitstream file in 2kb blocks with simpler and faster code
- Added the binary versions of ztex_ufm1_15d4.ihx and ztex_ufm1_15y1.ihx
- libztex: Add firmware download support for ZTEX 1.15d and 1.15x
- libztex: Factor out local version of libusb_get_string_descriptor_ascii()
- libztex: Don't return error when a bitstream was already configured
- libztex: Read bitstream file in 64kb blocks with simpler and faster code
- libztex: Verify that the mining firmware is not a dummy firmware
- libztex: Match mining firmware ZTEX descriptor against the dummy firmware
- libztex: Start download sequence only after reading in the new firmware
- libztex: Download mining firmware to all devices with dummy firmware
- Update windows build instructions.
- Set pool probed to true on successful authorisation with stratum to avoid it
being pinged later.
- Style changes.
- Allow pool active to be called on stratum or disabled pools in the watchpool
thread if the pool has not been probed.
- lock (most of) the threaded statistics updates
- README stats don't add up
- Rearrange summary lines and include count of active submissions in progress
- Defer submissions instead of blocking in pop_curl_entry
- Run a single share submission thread asynchronously submitting all shares in
parallel
- Handle share submissions asynchronously, one at a time (still threaded)
- Split up json_rpc_call so it can be used asynchronously in libcurl-multi
- Split submit_upstream_work into _request and _completed stages, pulling out
json_rpc_call
- Bugfix: Adjust USB_* variables to new LIBUSB_* names
- Bugfix: Avoid double-free due to realloc_strcat moving memory around
- Bugfix: Stratum connections might be needed for share submissions up to a
minute after the last time they are used to generate work
- Bugfix: Clean work before trying to generate new stratum work on top of it
- Bugfix: modminer: Get rid of useless usbutils include
- Make need connection return true if a pool is idle.
- New --skip-security-checks option to allow miners to skip checks when it
saves bandwidth
- Skip stratum transaction download when there are no transactions
- API add Best Share to summary
- API lock access to some summary statistics (and copy them)
- Enable backup stratum connections for getwork when the primary pool doesn't
have longpoll aka solo mining.
- Check for correct absence of opt_fail_only in cnx_needed.
- Remove unused variable.
- The specification for stratum has been elaborated to say that a changed diff
applies only to new work so do not retarget when submitting shares.
- Suspend stratum connections to backup pools when there is no requirement to
potentially grab work from them.
- Rename rename_thr to RenameThread to match cgminer
- modminer: Adopt symbolic command names from kanoi
- Make gen_stratum_work more robust by using a dynamically allocated array for
the header in case bogus data is sent by the pool to avoid overflowing a static
array.
- scrypt_diff now returns a uint64_t
- Support monitoring and reporting much higher diffs for scrypt mining,
truncating irrelevant zeroes from displayed hash.
- Pass ostate values around in scrypt to be able to extract full hashes if
needed later on.
- Revert "Handle crash exceptions by trying to restart cgminer unless the
--no-restart option is used."
- Provide helper function realloc_strcat to extend arbitrary length arrays
based on string length.
- Use base_work for comparison just for cleanness in __copy_work
- Remove all static work structs, using the make and free functions.
- Add pool no. to stale share detected message.
- Add info about which pool share became stale while resubmitting.
- Reduce extra slots in the max backlog for ztex to minimise memory waste.
- Get rid of unused last_work in opencl thread data.
- Do away with the flaky free_work api in the driver code which would often lose
the work data in opencl and simply flush it before exiting the opencl scanhash.
- Minor work handling restructure, including moving some stratum data from
fixed-size buffers to their own heap allocations.
- opencl: Use new dev_error function for REASON_DEV_NOSTART
- Provide rudimentary support for the balancing failover strategies with stratum
and GBT by switching pools silently on getwork requests.
- Convert remaining modminer and bfl uses of usleep to nmsleep.
- Convert libztex to nmsleep where possible.
- Convert unreliable usleep calls to nmsleep calls in ztex driver.
- Tidy up device error counts
- Only increase gpu engine speed by a larger step if the temperature is below
hysteresis instead of increasing it to max speed.
- Convert pool not responding and pool alive message on backup pools to verbose
level only since they mean a single failed getwork.
- Use stratum block change from backup pools as an alternative to longpoll for
pools that don't support LP.
- Round some more static string arrays to 4 byte boundaries.
- There is no need for the static arrays to be larger than required, so long as
they're 4 byte aligned to appease ARM.
- Hash1 is only used by the CPU mining code and never changes so remove it from
the work struct and bypass needing to process the value for all other mining.
BFGMiner Version 2.9.5 - December 11, 2012
- Bugfix: Copy share hash to work->hash before doing 4-byte flip required by
fulltest
- driver-ztex: libztex_setFreq() must be called before ztex_releaseFpga()
- libztex: Make log messages say bitstream when refering to bitstreams
- Increase FD_SETSIZE to 4096 on Windows
- Bugfix: Use AC_PROG_CPP in libusb include subdirectory detection for improved
portability
- Bugfix: Free input memory after prioritising pools in TUI
- Bugfix: Free filename entry for writing config file when done with it
- Bugfix: Free stratum nonce1 before replacing it with new value on reconnect
BFGMiner Version 2.9.4 - December 4, 2012
- Update libblkmaker to 0.2.1
- Count template number, and append it to the coinbase of templates without any
cbtxn
- Bugfix: bitforce: Always increment global hw error counter when incrementing
device hwe
- Bugfix: Correct order of printf-style arguments in cbappend fail
- Bugfix: Capitalize "MHz" correctly
- ztex: Correctly release mutex and reset FPGA if configuration fails
- ztex: Harmonize low-speed FPGA configuration code with high-speed code
- libztex: Silence warning: comparison between signed and unsigned
- Count longpoll decodes as queued work since the count otherwise remains
static.
- Bugfix: Assign header-based rolltime before decoding work, so GBT expires
overrides it properly
- Look for libusb_init in -lusb, since FreeBSD has it there
- Bugfix: Use pkgconfig for libusb when available, and try to guess the include
path if not
- Bugfix: FPGA-README: Correct idVendor in example MMQ udev rule
- fixes target calc for mips openwrt
- Bugfix: clear_work: Whether the template is in fact being freed or not, the
work reference to it needs to be
- libztex: Work around ZTEX USB firmware bug exposed by the FreeBSD libusb
- README: Document solo mining usage
- README: Update dependencies
- Bugfix: We should never roll stale work
- Ubuntu: Removing erroneous libssl dep again. GITHUB#94
- Bugfix: Clear out stratum share work before freeing it
- Provide rudimentary support for literal ipv6 addresses when parsing stratum
URLs.
- Do not attempt to remove the stratum share hash after unsuccessful submission
since it may already be removed by clear_stratum_shares.
BFGMiner Version 2.9.3 - November 16, 2012
- Bugfix: Properly process new stratum jobs through test_work_current, even if
old shares are still accepted, and copy submit_old flag correctly
- Ensure pdiff 1 is always caught regardless of bdiff precision, and ceil all
other cases to ensure we never lose valid shares
- Check against a double for current pool diff.
- Support for fractional diffs and the classic just-below-1 share all FFs diff
target.
- Check share target diff for best_share to be calculated when solo mining.
- Store the full stratum url information in rpc_url for correct configuration
file saving.
- Put in a hack to prevent dud work from sneaking into test_work_current being
seen as a new block.
- Reset the work->longpoll flag where it will affect stratum work items as
well.
- Bugfix: Stratum does not guarantee notify messages every minute, so extend
timeout to 2 full minutes
- Bugfix: Always honour libblkmaker time limits
- Always (debug)log when stratum template is updated by the pool
- Bugfix: When a stratum connection is interrupted, ensure all work/shares for
it are considered stale
- Bugfix: clear_sock should return on socket errors
- Bugfix: Force calculation of work_difficulty since set_work_target fails to
consider the pdiff<bdiff difference