forked from ckolivas/cgminer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
7114 lines (6594 loc) · 342 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
Version 4.9.2 - 12th June 2015
- Only blacklist devices on iManufacturer if they don't have an iProduct
- Simplify the pool work choice switching now that only local work generation is
supported
- Check for absense of stratum notify on stratum pools to see if they're usable
- Remove getwork support
- Remove test for localgen since all work will be
- Deprecate failover only option in anticipation of removing getwork
- Deprecate expiry option and fix it to 10 minutes, replacing all deprecated
config calls in the API with a deprecated message
- Deprecate scan-time which is irrelevant with ASIC speed mining
- Deprecate opt_queue since all mining is now local work generation which is
rapid and it serves no useful purpose to generate work that is potentially
stale, increasing CPU usage to check it before using it
- Change default au3 voltage to 775 to more reliably run at default frequency
- Set correct timeout for AU3 in icarus_detect_one though it won't affect
functioning
- Blacklist LIX device which doesn't exist
- Round up fail time to next highest integer on icarus
- AntS3 - set default work delay
- add pool block quality to api
- AntS3 - redo work send/stats and add a tuning option - not yet tuned
- Ant - ignore useless options in case they are passed
- AntS3 - initial S3 merge basic support
- Ant voltage isn't S1
- API - restore IPv4 address .0 padding and update copyright dates
- ants2 - separate freq from options
- ants2 - make it compile :p
- ants2 - add voltage
- ants2 - remove libusb/udev dependency since it doesn't use USB
- AntS1 ensure correct endian and correct wid
- libsystemd: Notify watchdog
- libsystemd: Notify run state and status line
- Catch SIGABRT signal and exit gracefully
- Add libsystemd configure option (default disabled)
- Document --with-system-jansson configure option
- SP30: Fix logging to use applog over printf calls
- Allow building with system jansson
- Set request ID in validateaddress JSON-RPC request.
- Cope with reconnect being sent a port number as an integer or string
- Added syslog mask to limit amount of output
- regressed with "BAL" little-jalapenos
- Add yet more whitelisting of BMA devices, removing the case insensitive match
for manufacturer
- Fix detection of no mining device configuration.
- Remove LT_INIT from configure which breaks ltmain.sh detection for some
automagic reason
- Add missing hashtable_seed file
- Add missing file
- Speed up shutdown by decreasing usb poll time to 100ms and using no timeout on
exit
- Cope with attempted reuse of strings in input_pool
- Manage failed URL entry at startup more gracefully, adding stratum+tcp://
automatically if http:// isn't specified
- Fix various symbol size change warnings
- Import jansson updates from ckpool
- Check for attempts to copy to/from null in cg_memcpy
- Use cg_memcpy throughtout bitfury driver
- Use cg_memcpy throughout cgminer.c and util.c
- Use alloc helper in miner.h
- Use alloc helpers in bitfury driver
- Use alloc helpers in spondoolies drivers
- Use alloc helpers in bflsc driver
- Align_len in all alloc helper calls
- Use align_len in all alloc helpers
- Use alloc helpers in usbutils
- Use alloc helpers in icarus driver
- Use alloc helpers in avalon4 driver
- Use alloc helpers in api.c
- Use the alloc helpers in util.c
- Convert all users of alloc to use the helpers in cgminer.c
- Add helper functions to various alloc functions that automatically check for
failure
- Fix rare dereference error on pool stratum queue
Version 4.9.1 - 3rd February 2015
- Fix various unused warnings
- Fix avalon4 warnings
- Display notice if pool successfully negotiates stratum resume
- Support auto adjust voltage individually
- Don't keep retrying to connect to a pool that has been removed
- Null the actual pointer used to call discard and free_work and safely handle
being called with a null pointer, giving a verbose warning about the call site
- Fix off by one error when running out of queued IDs in bflsc28_queue_full
- Uninit BET driver when it fails to initialise any boards
- Fix detection of butterfly labs sc 65nm devices with the addition of the 28nm
device imanufacturers trumping their detection
- Remove compilation warnings. Cast overly-specific #def'd values to the
destination type, unsigned int.
- Basic ability to compile and run on FreeBSD 10. Only tested compilation with
avalon, avalon2, bflsc, and icarus; only tested functionality of bflsc and
icarus.
Version 4.9.0 - 16th December 2014
- Minor fix
- Fix MM41 voltage setting
- Fix the default settings of new module
- Count non matching stratum as a hw error on ava4
- Fix ava4 build incompatibilites and missing write config parameters
- Use strcasecmp for device matching in usbutils in case of subtle manufacturer
changes
- Add manufacturer and product definitions for ava4
- Cosmetic ava4 change
- Cosmetic ava4 message fixes
- Add sanity check for NULL data being passed to usb_perform_transfer
- All write errors should be treated as fatal for ava4 devices
- Change initial fan start speed, mins and max for avalon4 to ensure fan starts
spinning but can go lower RPM
- Disable zero length packets on ava4 before trying to init
- Add a cgpu device option to disable zero length packets and enable it for
avalon4
- Display ava4 stats consistent with other devices
- Add ava4 to udev rules file
- Fix build warnings on ava4
- Fix ava4 build
- Add Avalon4 support
- Filter duplicate stratum shares from being submitted upstream
- Do rudimentary detection of duplicate shares per device
Version 4.8.0 - 25th November 2014
- Allow forcing of building driver combinations with --enable-forcecombo
- Put spaces between name and id in avalon2 and icarus
- Relax detection of a failing ava2 to more than 1 minute and perform the test
after polling for results
- Cap maximum diff on ava2 in order to still get shares
- Put space between device name and id to prevent device names with numbers in
them confusing the display
- USB write errors are always fatal so they should be treated as such on ava2
- Issue a usb reset for ava2 that is not returning valid shares and then drop it
if it persists for over a minute
- Process share results without a result value
- Damp out hashrate displayed for antminer USBs
- Add voltage and speed where relevant to antminer USBs
- Don't estimate time on any antminer usb during a timeout
- Return icarus nonce ok only when the nonce size matches the device or more
- Don't discard old workids until we cycle back to them on antusb and look for
more nonces in the buffer
- Adjust ant usb timing for queued work
- Use a cyclical list for the ant queued work
- Mask and limit workid for antusb and dont clear buffer
- Check the nonce on the worked item, not the submitted work
- Skip over unfinished work that we can't free in ant usb
- Use a workid and array if possible for the small ant usb work queue
- Create an array for antworks for antminer usb devices
- On U3 calculate hashrate purely on shares, not timeouts
- Add switches for AU3
- Adjust icarus wait timeout according to device
- Differentiate U3 from U1/2 as a separate driver with different parameters and
adjust timing accordingly
- Skip ANUs detected in rock detect
- Try U3 after trying other icarus options
- Add rudimentary ANU voltage setting support for U3
- Fix ignoring unprefixed v6 address in api allow list
- Fix minor typos in Spondoolies SP10 and SP30 drivers
- Implement a basic rock_flush function to discard the base work we are rolling
work from.
- Task_no for rockminer from the nonce bin should simply be masked
- Change rbox default correction times to 5 in a revised frequency order
- Change default frequency on T1 to 330
- Reinstate last received check and resend in rockminer, being more lenient at 2
seconds to allow for dither errors at 1
- Roll work for the rbox when possible
Version 4.7.1 - 4th November 2014
- Selectively yield on dropping a lock only on single CPU platforms
- Make it impossible to configure in more than one device that is meant to be
standalone. Add more information to configure help, along with comments for new
drivers.
- Add warning against system libusb in configure help
- stratum_rthread sleep only 3s when all the pool have disconnected
- Filter responses that don't have a result
- Implement support for pool ping and json integers of zero in getversion and
ping
- Fix segfault when writing config with hashratio built in
- Save pools in priority order at time of writing config
- Set the correct flag for close on exec for sockets
- Suspend stratum on removing a pool
- Set CLOEXEC on sockets on linux
- Drivers that take a diff should specify a max diff or it is assumed they don't
support one so set max_diff to 1 if unset
- Send hfa generic frame only if voltage was specified on the command line for
that device
- Set hashfast voltage settings only when really needed
- Hashfast voltage support
- Increase max diff on sp30 to 1024
- Reset ipv6 flag to false in every api-allow loop
- undeclared identifier 'IPV6_ADD_MEMBERSHIP' fix for apple
- two back temps spondoolies2
- two back temps spondoolies
- correct suggest_difficulty json rpc call
- Add more usb3 hub identifiers for windows
- Set driver max diff to large value if unset
- Wake gws on get queued
- Implement blacklisting of attempting to match known products from ones without
identifiers
- Fix hfa driver building without libcurl
- Enable building libusb without udev
- Fix off by one calculation error in sp30 leading zeroes
- Send correct diff work to sp30 for hashmeter to be correct
- Do the sleep in spondoolies_queue_full_sp30 after dropping the lock
- Minor tidy in sp30 driver
- Fix sp30 warnings
Version 4.7.0 - 14th October 2014
- Implement generic inet_pton for windows
- Fix warnings
- Fix bulk of remaining style in blockerupter.c
- Tidy style in blockerupter.h
- Tidy bulk of style in blockerupter.c
- Fix missing minimum diff setting for blockerupter
- Fix unused variable warnings
- remove unnecessary sleep; fix potenital div by 0 errs; use min_diff in driver
definition
- Fix coding style
- Make the sp30 hashrate meter based on valid share generation
- Change default max queue back to 1 in line with speed of most current asic
controllers
- Change diff limits to values suitable for sp30
- Add pool number to response from addpool to the API
- Make the restart and quit API commands valid json responses
- Fix number of nos
- Add option to set clock ('--bet-clk X' actual clock is (X+1)*10 )
- compatible with X24 board
- Fix error when using v6 without mask in api-allow
- Support ipv6 multicast
- Set min_diff to 1
- Allow arbitrary clamping of lower device diffs for slow controllers by driver
- Don't set default fan to max on hashratio
- The 2nd read never gets anything on ava2 so remove it entirely and just return
an error if we are out of sync
- Implement support for mining.suggest_difficulty
- Fix client ip address output
- Free addrinfo garbage
- Remove the brackets when using v6 pool address
- Add ipv6 support for api listen
- Avalon Nano: Add support Avalon Nano usb miner
- fix bug in setdiff
- limit minimum diff to 64
- Add BlockErupter Driver
- Avalon2: display currect max temperature on statline
- Remove unused variable
Version 4.6.1 - 20th September 2014
- Throttle bflsc28 devices when they hit the overheat limit
- Add whitelisting of firmware used in final bflsc28 products
- API.java - remove lowercase of all data sent
- Avalon2: Add 3 bytes nonce2 support
- Avalon2: MM needs n2size length <= 4
- Use fan min as fan speed when run with --avalon2-fixed-speed
- Clear the pool submit fail bool after adding shares to the stratum hashtable
to minimise window the share is not in the table
- api-example unlimited socket works
- Add custom strcasestr and use custom gnu type functions in bflsc
- Fix windows build of bflsc driver
- Fix possible deref in bflsc28
Version 4.6.0 - 7th September 2014
- We should not be checking for pool_unworkable in cnx_needed as it is keeping
stratum connections open on unused pools
- Properly handle lack of input when adding pool via menu
- Allow workers without passwords
- minion - increase max chip number
- Avalon2: add more comments on Avalon2 options
- Avalon2: add polling delay option, long coinbase support, LED status on API,
change overheat from 88 to 98
- minion - add a ' before non-zero core error counts
- minion - hidden optional per core nonce stats
- bflsc28 - clock is hex
- bflsc28 - allow setting clock and volt from the API ascset command
- bflsc28 - add chip count to stats
- bflsc28 stats
- Simplehacks to better serve bflsc28
- Only use one hashtable for bflsc28 work queued
- Copy back the buffer after we've stripped the inprocess field on bflsc
- Parse results for BMA based on uid and remove work from the queue when found
- Strip out the inprocess details from bflsc results if it exists
- Create a hashtable of work by uid as it's accepted by BMA
- Add some rudimentary values for BMA sleep times
- Fix various errors in queueing work for bflsc28 and limit job queueing to 10
to fit within a usb frame
- Create preliminary work queueing for bflsc28 using jobs of up to 20 at a time
by rolling work where possible
- Convert all bflsc transfers to the full 512 bytes
- Don't mistake bflsc28 for fpga
- Do initial detection of bflsc28 devices
Version 4.5.0 - 29th July 2014
- Fix windows build for hashratio and ava2
- Demote bad checksum message in cointerra driver but allow message to still be
parsed since it won't allow existing firmwares to work otherwise
- Reorder and document the configure options
- Merge https://github.com/KnCMiner/cgminer into knc
- Change default voltage on ava2 to 0.666V because Satan
- Enable combined building of avalon2 and hashratio
- Fix stratum embedded fpgas to not duplicate work with other devices
- Implement smarter PID type fan control for ava2 allowing more generous
temperatures and far lower fan speeds for optimal power and noise usage. Adjust
default frequency to 450 as per recommendation.
- Fix various warnings in ava2
- Go back to polling design since async will not work for ava2 and fix various
read design errors
- Fix error in 2nd read functions for av2 and hro
- Correct init and read sequence for ava2, and convert from a polling mechanism
to a separate read thread
- Initial commit of ava2 conversion to direct USB
- Display frequency and voltage with ava2 on the statline
- Store fan percentage and display temp and fan percent for ava2
- Set avalon2 frequency and voltage to appropriate defaults if none are
specified on the command line
- Demote some ava2 messages that don't need to be errors and remove unused works
array
- Fix broken fan logic for ava2
- Fix hexdump on 64bit
- rockminer frequency is between 200 and 400 MHz
- fix jansson include path in cgminer-api compile instructions
- Remove requirement for ifndefs for avalon2 from the generic driver work
function
- Fix hashratio device name
- Make submit_nonce2_nonce return whether the share was valid or not
- Reinstate missing necessary init sequence for hashratio
- Handle disconnected hashratio devices
- Add hashratio frequency command line
- Fix stratum updates not being passed to hashratio devices and clean up
- Move to updated avalon2 type driver model for hashratio device
- Initial import and conversion of hashratio driver to direct USB
- Increase the internal buffer for API response, as "stats" command response
can grow greater than 8K
- Detach test pool thread only if we have a blocking startup
Version 4.4.2 - 17th July 2014
- Remove the use of the pthread_tryjoin_np which is currently unimplemented on
many platforms
- Fix processarg parameters loaded from a config file not being saveable
- We only use the jansson in our source tree so no need for special case
handling of older versions
- Upgrade jansson to 2.6
- Only clear sockbuf if it's been allocated
- Fix missing osm-led-mode support in write config
- Deal with nanosecond overflow in both directions on both addition and
subtration of timespecs
- Rename sp10 driver internally from spondoolies to sp10
- minion - add a 2nd (optional - disabled) reset test
- production stats added, reset queue added
- minion - correct led ghs2 choice
- minion - correct ghs2 display
- minion - reset the led counter when doing a chip RSTN full reset
- minion - don't reset the led counter for an SPI reset
- minion - led per chip and use all time average
- minion - report spi error counts and settings in stats
- minion - undeclared fix
- minion - chip power cycle option
- minion - record 0xff error history and reduce screen output
- minion - reset on result or fifo 0xff
- minion - clarify the 0 value of spireset
- minion - make SPI reset more configurable
- minion - make the SPI reset ms sleep a parameter and API settable
- sp10 sensors
- sp30
- minion - led+more api setting
- Avoid blocking all pool testing if one pool fails to ever init
- There is no point storing the hints addrinfo in struct pool
- minion - 'reset' SPI when getting errors
- initialise more pool values in benchmark
- minion - auto adjust freq
- merge upstream frequency changes
- icarus - timing history in its own function
- rbox - add lotsa stats, tidy up a bit more
- Fix an off-by-one.
- icarus - detect stat should be LOG_DEBUG
- icarus - tidy up rbox code, remove statics, and add rocketbox
- minion - do an early reset to clear the chip status
- minion - use descriptive names for the list types
- Avalon2: automatic adjust fan speed, using crc16 on job_id compare, turn on
the led by API, detect twice when start, remember the last stratum message
increase the hashrate, add cutoff option
- fix AntS1 breakages from AntS2 changes
- minion - disable dup nonce check
- minion - add an ioseq number for each ioctl to simplify work ordering
- minion - redo old work expiry based on txrx order
- minion - more work stats, minimise queued work, free flushed queued work
- minion - allow resetting a chip via the API
- minion - correct 'WQue Count' in stats
- minion - delay after reset, reset history also, add dups to api stats
- noncedup - give access to the internal stats
- minion - increase reset to 75%
- minion - dup checking, disable reread by default and extra ioctl debugging
- minion - always check the chip queue before queuing new work
Version 4.4.1 - 21st June 2014
- Move icarus driver to being seen as an asic
- Clear usb reads on each pass through icarus detect to hopefully prevent false
positives for detecting rboxes
- Clean up pool failure and failover code for stratum
Version 4.4.0 - 16th June 2014
- Tidy unused rockminer variables
- Tidy rockminer defines
- Make rockminer driver compatible with other icarus drivers being present
- Import basic rbox driver
- minion - add optional (on) GPIO chip selection
- Clear the pool idle flag in the pool test thread
- CoreFmatch in cointerra should be a uint16
- Display error message if we receive one on share rejects
- Allow zero length strings to be passed to valid_hex
- delete unused roundl definition
Version 4.3.5 - 10th June 2014
- Cointerra driver updates.
- Sleep before retrying in the test pool thread after a pool has died
- Use valid_ascii testing for job_id since it need not be hex only
- Only show slow/down message till pool is flagged idle
- Do some random sanity checking for stratum message parsing
- Keep looking for when a pool comes to life at startup and touch the logwin so
the message is not invisible
- Fix no libcurl build
- Added Drillbit Thumb to udev rules.
- Avoid dereference on getting API stats on partially initialised HFA instances
- A1: add support for updated product variants, small fixes
- Add one more usbutils fix
- Convert uses of usbutils memcpy to cg_memcpy
- Add a sanity checking memcpy function which checks for overflows
- minion - count force use reread
- minion - add a disabled ioctl() test
- minion - add more checking of SPI results for corruption
- minion - optional (disabled) ioctl() debug
- Increase S1 overheat to 75 degrees C
- Add ruby api-example to API-README
- minion - allow core selection at runtime
- API - lcd all-in-one brief summary
Version 4.3.4 - 25th May 2014
- Add support for 2 nonces per block in spond driver
- Increase timeout on reset in cta driver to 5 seconds
- Increase max diff on spondoolies driver slightly to be well below spi comms
limitations
- Use the active contents lock and safe list iteration within the linux usbfs
code
- Add Ruby Api Example
- Automatic detect the small miners
- Update default modules from 3 to 4
- Fix the temp max. we should use currect max temp
- add avalon2-cutoff options
- Enable the cutofftemp to Avalon2. ignore longer coinbase and longer merkles
stratum
- Fix the diff value used on MM firmware
- Mark pool as idle if stratum restart is failed
- Add hacky workaround for double list removal race in libusb
- Make the work given in benchmark mode deterministic on a per-device basis
- Rework the benchmarking code to use a deterministic set of work items with a
known number of diff share nonces at regular spaced intervals
- minion - restrict nonce read result size to ioctl() limit
- minion - must check temp when overheated
- minion - idle chips that hit >100C until back to 80C
- minion - report the chip/reg when aborting due to an invalid ioctl() size
- minion - all freq in Mhz but only convert when used
- minion - remove unused ioctl debug
- minion - command queue is now larger
- minion - check rolled in stale work cleanup
- Work stats should be based on device_diff not work_difficulty since non-shares
haven't been filtered out yet
- Prevent a segfault when writing a config file containing 'rotate' option
- minion - comment out HW debug message
- minion - roll work to reduce CPU
- minion - report init_freq in stats
- api - howoldsec is only used for USB
- minion - allow setting the frequency
- minion - disable iostats by default since it slows down mining
- minion - define frequency value table
- minion - report temp/cores/freq and handle temp formatting
- minion - item is undefined
- Rationalise diffs stored in the work struct and document them to avoid further
confusion
- Add basic API stats for nfu drivers to see how many submits each chip returns
- Add output direction for the EN0 pin on nfu driver
- Support power management optimisations in newer nf* firmware
- Support variable numbers of chips with NFU and BXM drivers
- Identify number of chips in nanofury devices and change name accordingly
- Rename nf1 driver to nfu in anticipation of support for more chips
- Make hashfast reset counter rise on old instances when inheriting the value on
new ones
Version 4.3.3 - 3rd May 2014
- Fix typo
- Work should be freed when aged, fixing a massive memory leak for bxf devices
- miner.php fix single rig summary/config field formatting
- miner.php fix single rig total formatting
Version 4.3.2 - 2nd May 2014
- Fix accounting bug with nrolltime drivers
Version 4.3.1 - 2nd May 2014
- upgrade some int to int64_t to avoid overflows in reporting
- Make reconnection messages more explanatory
- Stratum client.reconnect require matching URL
- Fix memory leak in submit_noffset_nonce
- Clean up any work that may not have been used in the work scheduler
- Avoid unnecessary deref now that it's done within discard_work
- Clean work pointers after one way usage functions
- Avoid unnecessary total_work_inc in generating local work
- Cosmetic fixes
- Fix idle bug, when redirected client can't auth
- Rename spond temp rate to asics total rate
- Build fixes
- Set the unique id only for usb devices with serial strings longer than 4 chars
long
- Use usb serial strings as unique id if devices have them
- Discretely identify the onestring miners as OSM
- Add bxf debugging option and osm led modes
- A1: modularize board selector / add initial CCR support
- A1: cleanup tca9535 logging
- A1: fix and extend PLL parameters
- A1: clean up compile warnings
- A1: use real level in hexdump
- Add identification for onestring miner variants
- Avalon2: Parser the power good signal
- driver-avalon2: this functions used on detect, which don't have thr setup yet
Version 4.3.0 - 18th April 2014
- Put sleep in spond hash instead of queue full function
- Remove unused function for when compiled without curses
- Fix typo
- Add temperature rate, front, rear and device temperature to spond API output
- Limit bxf sleep in bxf_scan to 100ms minimum for strings of many chips
- -Werror=format-security error on driver-bitmain.c
- Fix parameters passed with getblockhash
- Check the block hash with the proper command when looking for orphan chains
- syslog requires a facility ... in more than one place
- Shuffle windows headers included
- Adjust the bxf sleep time according to the number of chips detected
- Fix off by one error in bxf chip count when adjusting device size
- Recalloc correct pointer
- Make instructions associated with winusb error even more explicit
- Add midsing headers to cgminer source in Makefile
- Trivial style changes to mg proto parser
- Trivial style and warning clean ups on spondoolies driver
- Merge spondoolies driver patch
- Call any BXF device with 3-6 chips reported HXF
- Avoid derefrence when calling statline before on hfa device during init
sequence
- Calloc the info structures even on failed hfa reset to prevent later possible
dereference
- Load all hfa devices based on identification alone and defer init sequence
till mining thread init sequence to allow all devices to be recognised rapidly
but each device initialisation not delay others
- Do not do thread shutdown unless thread init succeeded
- Remove unnecessary check for thread_prepare function
- Recognise variations on BXF based on chip value returned in responses
- Provide helper function for recallocing memory
- syslog requires a facility
Version 4.2.3 - 3rd April 2014
- Decay the per device hashrates when only the watchdog is calling the hashmeter
- Fix parsing of config files failing on custom parsing
- Allow an arbitrary number of chips in the BXF driver, showing results from
each chip in the API and identify the hexfury, naming it HXF
- Disable toggling display by default and offer a --widescreen option to have
all the information on an extra wide display.
- Use OPT_WITH_CBARG for all custom parsing functions to allow their values to
be written generically when writing the config file from the menu.
- Provide a ccan variant OPT_WITH_CBARG that assigns the arguments passed as a
string and then performs the callback function on the string.
- Define strings to store special option parsing parameters leaving no
OPT_WITH_ARG missing args
- Correct the writing of special case options to the config file
- Provide support for writing anu freq from menu write option
- Update to diver-avalon2.c
- Generalise a lot more of the command line options simplifying the write config
function and making it write far more values unaided
- Use the general opt_set_charp functions for setting api parameters
- Json escape any strings written to the config file
- Store standard charp options when writing config files
- Add support for all the integer range options when writing the config file
from the menu
- Remove the --device and --remove-disabled options which don't work in a
meaningful way any more
- Make the bxf bits configurable on the command line
- Provide a --btc-sig option to optionally add a custom signature to the solo
mining coinbsae
- Compact gbt solo extra data and store the length, allowing it to be variable,
leaving room for a signature
- miner.php - Kano summary Pool Acc/Rej should be only work submitted
- miner.php add best share and gen formatting for pool summary
- miner.php - remove BGEN/GEN eval() errors from the web log
- miner.php allow optional fields when gen is disabled
- miner.php dont format missing gen fields
- miner.php make Summary a custompage
- miner.php allow uers and system lists of customsummarypages and add more
examples
- Fix getwork share submission
- Cosmetic fix to udev rules
- Put WU on the hashrate status to compact lines further
- miner.php show api/rig errors at the top of a customsummarypage
Version 4.2.2 - 29th March 2014
- Minor correctness fix for unnecessary free
- Clean up various curl build issues
- allow url based config files
- Frequency only needs 3 digits for cointerra statline
- Use the serial number as unique_id for cta display
- Make it possible to enable/disable the status window from switching via the
display menu
- We should not update the tv hashmeter time unless we're updating the hashrates
- Add cointerra devices to udev rules.
- Use hashfast unique id instead of number since the unique id is displayed
- Remove displayed space
- Left align the displayed unique id
- Use the hashfast opname as its unique identifier
- Display BF1 serial number as its unique identifier
- Display a unique identifier instead of a number if the device has one
- Use an alternating status display to return to a compact width of 80
characters, allowing more information to be displayed.
- No need for looking for khash hashrates in summary any more
- Fix two potential minor mem leaks
- Fix memory leaks in setup and generate work for gbt solo.
- Fix off by one malloc size error
- Fix memory leak in update_gbt_solo
- Put sanity check on decay_time to prevent updates with no time
- Add 3 rolling average hashrates to API output for summary and devs.
- Use the extra status screen real estate better, displaying rolling 1/5/15min
average hashrates as well.
- Revamp the ageing crufty hashmeter code to have proper exponential decaying
values and store rolling 1/5/15min hashrates.
- Increment total_work under control lock.
- Trivial variable reuse
- Add support for other usb3 hubs on windows
Version 4.2.1 - 24th March 2014
- Fix various ava2 build issues generically
- Minimise the amount of heap memory allocations/frees when submitting gbt
shares.
- Make varint in gbt submission a stack object.
- Fix big endian problems with gbt submissions.
- Fix 32bit overflow on relative diff shown.
- ants1 - stop results read hard looping
- ants1 - slow down mining if overheat occurs
- miner.php allow gen before (bgen) and after (gen) grouping
- Change default solo mining to failing when no btc address is specified.
- Use upgrade cglock variants in get_gbt_curl
- Provide a cg_uilock to unlock the intermediate variant of cglocks.
- Use the one curl instance for all gbt solo operations, protecting its use with
a bool set under gbt lock.
- Only start block detection with gbt solo if setup succeeded
- One less block detection message
- Toss out the curl handle after each solo poll
- Don't reuse any curl handles for solo mining and break out of the lp thread if
the pool is removed.
- Make sure to only start the lognpoll thread once on gbt solo.
- Don't keep RPC connections open for solo mining since bitcoind doesn't like
having many persistent connections.
- GBT solo pools should be considered localgen pools.
- miner.php - speed up formatting and allow calc on gen fields
- Always show the address we're solo mining to to avoid confusion for when no
address is set.
Version 4.2.0 - 18th March 2014
- Fix missing htobe16 on windows and meaningless >u32 string warning.
- Software ntime roll for all hashfast devices.
- Silence harmless warning.
- Drop a failed restart icarus device to allow it to be rehotplugged if
possible.
- Work with more than one transaction.
- Kill gbt solo pools that don't respond to the gbt request 5 times
sequentially.
- Fix ser_number for no remaining val byte.
- Create a work item and stage it when updating the gbt solo template to allow
new block detection and restart code to work.
- Test block hash as well as block height when solo mining to ensure we haven't
been mining on an orphan branch.
- Fix transaction processing for gbt solo.
- Encode height using integer varint format.
- Make new block detection message not show in gbt solo from test_work_current
- Add block detection via getblockcount polling in gbt solo and update gbt
template every 60 seconds.
- Iterate over transactions twice to malloc only once when copying all the
transaction data.
- Update solo coinbase regularly and submit as gbt work
- Only show merkle hashes for solo mining in debug mode.
- Set correct flag for solo work.
- Generate gbt solo work emulating stratum work construction.
- Set the diff as a double sdiff from gbt solo data.
- Move swork.diff out of the stratum work section to be shared as sdiff.
- Generate a header bin from gbt solo as per the cached stratum one.
- Store strings similar to stratum's when decoding gbt solo
- Avoid allocing and freeing stratum strings that should be fixed length.
- Run parser through detect_stratum after stratum+tcp:// is force added
- Remove unnecessary header length calculation for stratum header binary and
only binary convert the correct length of the header.
- Share more fields between stratum and gbt
- Share coinbase_len variable b/w stratum and gbt and setup more gbt solo
parameters.
- Generate a valid coinbase and set nonce2offset for gbt solo
- Move scriptsig header bin conversion to setup gbt solo
- Create our own custom scriptsig base.
- Add helper functions for creating script signature templates and beging
building template.
- Do gbt solo decoding under gbt lock.
- Add more gbt variable decoding from gbt solo information.
- Store all the transaction data in binary form when using GBT
- When setting up solo mining, check validity of bitcoin address against
bitcoind
- Make pooled GBT mining use merkle bin optimisations slated for solo mining.
- Abstract out the merkle bin calculation for gbt solo
- Implement efficient merkle tree base from solo GBT information.
- miner.php custom formatting and row counter '#'
- Drillbit: Fix for underestimating hash rate from Bitfury devices
- Send per-core hashrates at regular ~5min intervals back to cta devices.
- Calculate the cta per core hashrate at 5 minute intervals.
- Check the bits of the correct core in cta bit count.
- Display the bit count along with the bitmap for each cta core in the API stats
output.
- Store and display the per core hashrate on cta relative to each work restart.
- Decrease the time we wait for unsetting a core on the cta bitmap to correspond
with the lower max diff of 32.
- Set max diff on cointerra devices to 32 which is still only 11 shares per
second but allows for earlier confirmation of per core hashrates.
- Keep track of when the last restart and work updates were triggered and
provide helper functions for knowing the time since then.
- hashfast make api stats field names unique
- Fix gcc longjmp warning in api.c
- Add a per-core hashrate to the cta API stats.
- miner.php support edevs and estats
- API - put edevstatus where it was supposed to be
- Icarus - allow timing mode to work with ANU and not slow it down
- drillbit - remove warnings
- drillbit - minor code tidy up
- Drillbit: Change language around 'void' to warning about limiter disabled
- Drillbit: Fix accidental over-counting of HW errors
- Drillbit: --drillbit-auto parameter for tweakable custom tuning of ASIC speeds
- Drillbit: Output warning if board reports void warranty
- Drillbit: Add Avalon & drillbit-autotune notes to ASIC-README
- Drillbit: Limit work sent out to 8 units in a single pass, was DoSing a full
double scroll
- Drillbit: Move drillbit_empty_buffer calls to only when errors occur, were
limiting performance on Windows
- Fix Windows bug with libusb_reset_device returning SUCCESS for disconnected
device
- Drillbit: Fix some warnings
- Drillbit: Add --drillbit-autotune option for device to dynamically alter clock
speed
- Drillbit: Fix typo in previous commit
- Drillbit: Remove default config in cgminer, rely on defaults in firmware
- Drillbit: Combine split USB transfer for sending new work, reduce overhead
- Drillbit: Add support for protocol V4, with device-agnostic board
configuration data
- Drillbit driver: Add support for Avalon-based Drillbit miners
- API - add edevs and estats - to only show enabled devices
- Check device data exists on a hfa instance before trying to reinit it.
- Print off what quadrant regulator failed if known in hfa driver.
- Reset all the stats on autovoltage complete in cta driver.
- Use correct diff instead of diffbits in cta driver.
- Whitelist all firmwares <= 0.5 on hfa for software rolling of ntime.
- Avoid a memory leak by reusing the ntime field when rolling stratum work.
- Clear the pipe bitmap on cta only when no share has occurred for 2 hours
instead of 1.
- Cta share_hashes should be added, and we can base it on device wdiff instead
of pool work difficulty for more accurate hashrates.
- Since the device runtime is now reset, the Raw hashrate entry in the cta API
output is no longer meaningful.
- Look for autovoltage returning to zero on cta driver and reset stats at that
point since the hashrate is unreliable till then.
- ants1 - cgminerise applog calls
- Default to stratum+tcp:// on any urls that don't have a prefix instead of
http.
- Trivial cta style changes.
- ants1 - fix/enable temperature checking and remove unneeded temp_old
- ants1 - move local cgpu variables to info structure
- ants1 use a klist to store work and copied work
- Simplify dramatically the cross-process cgminer locking through use of flock
instead of sysv semaphores.
Version 4.1.0 - 8th March 2014
- Correct fix for dev start time being adjusted for stat zeroing.
- Make per device stats work for average after a stat zeroing.
- Add an hfa-options command line that allows the clockspeed to be chosen per
device by name comma separated, with a function that can be expanded with more
options in the future.
- Off by one drv_rolllimit check against jobs
- Free the work that may be lost, leaking memory, in a failed hfa_send_frame
- Roll the ntime for work within the hfa driver for firmware we know doesn't do
it internally as an optimisation.
- Export the roll_work function to be usable by driver code and make it
compatible with rolling stratum work.
- Make opt_queue be respected as a maximum value for staged items.
- Disable mistakenly enabled lock tracking.
- api version update for HEX32
- api.c - HEX32 type needs quotes
- Disable the MAX_CLOCK_DIFF check for newer hashfast firmwares since it's not
required.
- Store the hardware and firmware revision in the info struct for easy use in
the hfa driver.
- Only decrease the hfa clock rate if the device has been running for less than
an hour before dying.
- Change lack of op name response message in hfa driver
- Check for lost devices at every write/read in hfa_detect_common
- Make bxm bits configurable.
- Move avalon2 options to ~alphabetic position in help.
- Do a shutdown routine on bxm close.
- Provide support for 2 chips in libbitfury sendhashdata and enable the 2nd chip
on BXM devices.
- Remove unnecessary opayload and newbuf members of bitfury info struct.
- Add an spi add fasync command.
- Cope with older hfa firmware not even responding to op_name.
- Forcibly kill everything silently with an exit code of 1 should we fail to
cleanly shut down and use a completion timeout for the __kill_work in
app_restart.
- Make __kill_work itself also be a completion timeout.
- Generalise more of libbitfury for more reuse in both nf1 and bxm drivers.
- Remove redundant init components of bxm driver.
- Set default osc6 bits on bxm to 50
- Enable the transaction translator emulator for bxm devices and use a dummy spi
tx the size of a normal payload.
- Store usb11 and tt flags as booleans in cgusbdev allowing them to be
discretely enabled as well as detected by the device data.
- Add bxm scan function and check spi txrx returns only as much as sent.
- Add init sequence to bxm detect one.
- Add a bxm specific txrx function for spi transfers.
- Add bxm close to bitfury shutdown switch.
- Add reset/purge/cshigh/low sequence to bxm init
- Add bitmode init to bxm open sequence.
- Add initial bxm opening sequence for detect one.
- Add identifiers for bxm bitfury devices.
- Clean up parse_method
- More gracefully break out of parse_notify on a corrupted hex string error,
checking the return value of all hex2bin conversions and being consistent with
using stack memory. Fix an unlocking error in cases of failure.
- AntS1 - add detection information to usbutils
- Enable Bitmain Ant S1 code and make it conform to cgminer requirements
- Make the cointerra displayed hashrate based on valid share generation.
- Convert and update values shown in the cointerra api output.
- Export the api_add_int16 function.
- Use a custom mystrstr function in cointerra driver.
- Add api_add_int16 to API functions.
- Add support for Bitmain Multi Chain and Single Chain and optimize the
efficiency
- Add support for bitmain devices
- Perfect function of BitMain Multi Chain
- Add support for Bitmain Multi Chain and Single Chain and optimize the
efficiency
- Add support for bitmain devices
Version 4.0.1 - 28th February 2014
- Refresh the log window on pool failure message at startup.
- Rework the pool fail to connect at startup to not get stuck indefinitely
repeatedly probing pools with new threads and to exit immediately when any key
is pressed.
- Use an early_quit function for shutting down when we have not successfully
initialised that does not try to clean up.
- Add more information to a hfa bad sequence tail event.
- Increase the work queue at the top end if we've hit the bottom as well.
- Set the work generation thread high priority, not the miner threads.
- Bringing each hfa device online takes a lot of work generation so only ever do
one at a time.
- Increase the opt_queue if we can hit the maximum amount asked for but are
still bottoming out.
- Keep the old hfa device data intact with a clean thread shutdown to allow it
to be re-hotplugged with the old information.
- Cope with the API calling hfa on partially initialised devices having no info.
- Show only as many digits as are required to display the number of devices.
- Cold plug only one hashfast device to get started, and then hotplug many to
minimise startup delays and possible communication delays causing failed first
starts.
- Send a shutdown and do a usb_nodev if hfa_reset fails.
- Null a device driver should thread prepare fail.
- Add a function for making all driver functions noops.
- Don't try to reinit a device that's disabled.
- Disable a device that fails to prepare.
- Check for lack of thread in watchdog thread for a failed startup.
- Make all device_data dereferences in the hfa driver safe by not accessing it
in statline before when it's non-existent.
- Add an option to disable dynamic core shedding on hashfast devices.
- Do not remove the info struct on a failure to hfa prepare.
- Detect an hfa device purely on the basis of getting a valid header response to
an OP_NAME query, leaving init to hfa_prepare which will allow multiple devices
to start without holding each other up at startup.
- Store the presence and validity of opname in the hfa info.
- api - buffer size off by 1 for joined commands
- minion - clean up statline
- Only break out of usb_detect_one when a new device is found.
- Use usb_detect_one in the hfa driver.
- Provide a usb_detect_one wrapper which only plugs one device at a time,
breaking out otherwise.
- Issue a usb_nodev on a bad work sequence tail in hfa
- Read in hfa stream until we get a HF_PREAMBLE
- Add shed count to hfa API stats output.
- Display the base clockrate for hfa devices with a different name to per die
clockrates to be able to easily distinguish them.
- Use op_name if possible first with hfa devices to detect old instances and be
able to choose the starting clockspeed before sending an init sequence,
reverting to setting op name and serial number as fallbacks.
- Make hfa resets properly inherit across a shutdown.
- Don't break out of hfa_old_device early if there's no serial number.
- Fix harmless warning.
- Allow the drop in MHz per hfa failure to be specified on the command line.
- Icarus - ignore HW errors in hash rate ... and fix detection of them
- Enable the hfa shed supported feature by default.
- Add to udev rules hfa devices for firmware writing.
- Remove ENV from hashfast udev rules.
- Add a --hfa-name command that allows one to specify the unique opname for a
hashfast device.
- Ava2 decode the voltage, get the temp_max
- Set the clock rate with a work restart instead of an init when changing to old
clocks for hfa
- Set opname on hfa devices without a serial number to a hex value based on time
to not overflow the field.
- Add op name to hfa API stats output if it exists.
- Set the actual op_name in hfa devices if cgminer is choosing it itself due to
it being invalid.
- Re-init an hfa device to its old data before setting up info structures as
their sizes may change.
- Remove the usb device whenever we do a running shutdown on hfa and do a
shutdown as the imitated reinit to allow it to hotplug again.
- Reset opt hfa dfu boot after it's used.
- Comment out windows only transfer on hfa startup.
- Clean up structures unused in case of all failures in hfa detect common
- Clear all structures should we fail to hfa reset on adjusting clock on a
hotplug.
- Set master and copy cgpu hash clock rate for hfa when dropping it on a
restart.
- Set the master hfa clock speed to lower when shutting down a copy.
- Do a clear readbuf on any hfa reset in case the device has not yet cleanly
shut down.
- Increase hfa fanspeed slightly more when it's rising in the optimal range than
falling.
- Always decrease hfa clock speed on a running shutdown and don't try sending an
init frame since it will be dropped regardless.
- Match hfa devices to old ones based on OP_NAME values before serial numbers if
possible.
- Read off the OP_NAME if it exists and is supported on hfa devices, setting it
to the device serial number or a timestamp if it is invalid.
- Updated hf protocol
- Check for an amount along with no error in hfa clear readbuf
- Hfa clear readbuf can return a nonsense amount when there's a return error so
ignore the amount.
- Running resets always cause a shutdown on hfa meaning the device will
disappear with modern firmware so always kill off the threads to allow
re-hotplugging.
- Reset the hfa hash clock rate to the old one if we find an old instance, only
setting the device id in hfa_prepare
- Keep the device_id on the original zombie thread for HFA in case of further
resets.
- Break out of hfa inherit if there is no device data.
- Inherit the hfa zombie instance after the device id has been allocated.
- The list_for_each_cgpu macro will dereference when there are no mining threads
yet.
- Make hfa hotplug inherit some parameters from a previous instance if the
serial number exists and is matching, avoiding dropping the clock on all
devices.
- Per device last getwork won't work if the device stops asking for work.
- Use the share_work_tdiff function in the driver watchdogs.
- Provide a helper function for determining time between valid share and getwork
per device.
- Store last_getwork time on a per-device basis.
- Limit the decrease of hfa clock rate on reset to the default clockrate.
- Base the hfa failure time on the current expected hashrate instead of a static