40 Commits

Author SHA1 Message Date
johnny9
407881c8e4 main: send mining.configure before mining.authorize and parse the result
This reverts commit e5009e14ab3f81d22ed2dd594712ed49da5257ea.

Fixes #50
2023-11-29 22:07:51 -05:00
johnny9
706ee510ba main: Determine ASIC model from NVS
This adds more hardware information to the example config.cvs.
If the model can't be determined at startup, the device will abort.
2023-09-23 14:27:11 -04:00
Ben
79430f6d3a reformat entire c project 2023-08-26 12:28:17 -04:00
Benjamin Wilson
9bc0671563
Ultra (#15)
Pull BM1366 work into main
2023-08-20 13:09:55 -04:00
johnny9
bc326499ea stratum: parse version-rolling config result 2023-07-01 14:23:35 -04:00
johnny9
c7de2c0795 bm1397: add multiple midstates using version mask
Job packets can have more that 1 midstate. If the stratum supports
version-rolling, calculate additional midstates by incrementing
the version with the version_mask provided by the stratum server.
Currently does 4 midstates for each extranonce2.
2023-07-01 14:23:35 -04:00
Ben
2171e55e14 reorder STRATUM_V1_submit_share params to fit api 2023-07-01 14:23:35 -04:00
Ben
8755a8fcbc rervet changes - stratum messages must have unique id 2023-07-01 14:23:35 -04:00
Ben
35358e0e44 cleaning and optimizing stratum_task/stratum_api 2023-07-01 14:23:35 -04:00
Ben
c3301aab30 move queue 2023-07-01 14:23:35 -04:00
Skot Croshere
b14f21c697 added the beginning of stratum result parsing. 2023-07-01 14:21:40 -04:00
Ben
18d0f651e8 hashrate calc, WIP 2023-07-01 14:20:48 -04:00
Ben
02e4b0d76d ticket_mask 2023-07-01 14:20:48 -04:00
johnny9
471c53c817 stratum: configure version-rolling and parse version mask 2023-07-01 14:20:48 -04:00
Skot Croshere
552795d61e tighten up the serial_rx loop for collecting nonces. tried to fix the ckpool diff issue -- still broken 2023-07-01 14:20:48 -04:00
johnny9
b9858777b0 stratum: move prettyHex and flip32 into utils 2023-07-01 14:19:51 -04:00
johnny9
d23a106a65 mining: add test to check nonce diff
Test unconvered issues in the construction of the header
when hashing as well as issues with converting the hash to
a double.
2023-07-01 14:19:51 -04:00
johnny9
6bac906333 mining: fix extranonce_2_generate function definition 2023-07-01 14:19:51 -04:00
johnny9
b7a18871a7 Revert "cleaned up debug messages and hex printing a bit. still not checking nonces right"
This reverts commit ea0d14966264e9bc15630419e79f6283e30af40c.
2023-07-01 14:19:51 -04:00
johnny9
e27d9e32c8 Revert "added nonce checking fixes from @johnny9"
This reverts commit 2b06b3f4d7e290452fd082fdc1387246677ba860.
2023-07-01 14:19:51 -04:00
Skot Croshere
de237e1d34 added nonce checking fixes from @johnny9 2023-07-01 14:19:51 -04:00
Skot Croshere
61ed3c1c97 cleaned up debug messages and hex printing a bit. still not checking nonces right 2023-07-01 14:19:51 -04:00
Skot Croshere
ccb094a916 fix some warnings. trying to check nonce diff -- it's not working. 2023-07-01 14:19:51 -04:00
Skot Croshere
9927e2995b added suggest_difficulty 2023-07-01 14:19:51 -04:00
johnny9
9c9c1ad540 stratum: add method to free bm_job struct 2023-07-01 14:19:51 -04:00
johnny9
8cf78d58cc stratum: add methods for extranonce_2 generation 2023-07-01 14:19:51 -04:00
johnny9
e246a84c86 stratum: add mining.set_difficulty message parse 2023-07-01 14:19:51 -04:00
Skot Croshere
4cf368864e added a midstate sha256 function 2023-07-01 14:18:41 -04:00
johnny9
27b24d3c3e bm1397: integrate with stratum WIP 2023-07-01 14:18:41 -04:00
johnny9
bad72d638a mining: swap endianess of prevblockhash when computing midstate 2023-07-01 14:18:41 -04:00
johnny9
f80805f53a stratum_api: add method to check if previous work should be abandoned 2023-07-01 14:18:41 -04:00
johnny9
bbd2ebe249 mining: fix endianness of the block header version 2023-07-01 14:18:41 -04:00
johnny9
901d2da341 stratum_api: parse the uint32_t values from the mining.notify message 2023-07-01 14:18:41 -04:00
johnny9
ca827ee4b5 mining: construct a job for bm13xx 2023-07-01 14:18:41 -04:00
johnny9
812e4213c1 stratum_api: cleanup notify parsing
Split parsing into two steps, one for the method and one for the
params themselves. Currently it is up to the miner task to grab
the parameters in the format it needs.
2023-07-01 14:18:41 -04:00
johnny9
f98cbf208b mining: fix merkle root calculation and add unit test 2023-07-01 14:18:41 -04:00
johnny9
23e588c94e utils: add double sha256 method 2023-07-01 14:18:41 -04:00
johnny9
10fc3d017e mining: add method to construct coinbase tx 2023-07-01 14:18:41 -04:00
johnny9
799d00dc2b stratum: parse extranonce and extranonce2_len from subscribe result 2023-07-01 14:18:41 -04:00
johnny9
3066edb7f1 Make stratum module testable and introduce first unit test 2023-07-01 14:18:41 -04:00