feature: add support for M50S++VL30, update docs, fix hammer bug, and handle errors with data on unknown types of miners
This commit is contained in:
@@ -372,6 +372,13 @@
|
||||
show_root_heading: false
|
||||
heading_level: 4
|
||||
|
||||
## S19j Pro Dual (ePIC)
|
||||
::: pyasic.miners.antminer.epic.X19.S19.ePICS19jProDual
|
||||
handler: python
|
||||
options:
|
||||
show_root_heading: false
|
||||
heading_level: 4
|
||||
|
||||
## S19j Pro (Hive)
|
||||
::: pyasic.miners.antminer.hiveon.X19.S19.HiveonS19jPro
|
||||
handler: python
|
||||
|
||||
@@ -306,6 +306,7 @@ details {
|
||||
<li><a href="../whatsminer/M5X#m50s_1_1-vk10-stock">M50S++ VK10 (Stock)</a></li>
|
||||
<li><a href="../whatsminer/M5X#m50s_1_1-vk20-stock">M50S++ VK20 (Stock)</a></li>
|
||||
<li><a href="../whatsminer/M5X#m50s_1_1-vk30-stock">M50S++ VK30 (Stock)</a></li>
|
||||
<li><a href="../whatsminer/M5X#m50s_1_1-vl30-stock">M50S++ VL30 (Stock)</a></li>
|
||||
<li><a href="../whatsminer/M5X#m53-vh30-stock">M53 VH30 (Stock)</a></li>
|
||||
<li><a href="../whatsminer/M5X#m53s-vh30-stock">M53S VH30 (Stock)</a></li>
|
||||
<li><a href="../whatsminer/M5X#m53s-vj40-stock">M53S VJ40 (Stock)</a></li>
|
||||
@@ -566,6 +567,7 @@ details {
|
||||
<li><a href="../antminer/X19#s19j-pro_1-epic">S19j Pro+ (ePIC)</a></li>
|
||||
<li><a href="../antminer/X19#s19k-pro-epic">S19k Pro (ePIC)</a></li>
|
||||
<li><a href="../antminer/X19#s19-xp-epic">S19 XP (ePIC)</a></li>
|
||||
<li><a href="../antminer/X19#s19j-pro-dual-epic">S19j Pro Dual (ePIC)</a></li>
|
||||
</ul>
|
||||
</details>
|
||||
<details>
|
||||
|
||||
@@ -204,6 +204,13 @@
|
||||
show_root_heading: false
|
||||
heading_level: 4
|
||||
|
||||
## M50S++ VL30 (Stock)
|
||||
::: pyasic.miners.whatsminer.btminer.M5X.M50S_Plus_Plus.BTMinerM50SPlusPlusVL30
|
||||
handler: python
|
||||
options:
|
||||
show_root_heading: false
|
||||
heading_level: 4
|
||||
|
||||
## M53 VH30 (Stock)
|
||||
::: pyasic.miners.whatsminer.btminer.M5X.M53.BTMinerM53VH30
|
||||
handler: python
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from .hashrate.base import AlgoHashRateType
|
||||
from .hashrate.unit.base import AlgoHashRateUnitType
|
||||
from .hashrate.base import AlgoHashRateType, GenericHashrate
|
||||
from .hashrate.unit.base import AlgoHashRateUnitType, GenericUnit
|
||||
|
||||
|
||||
class MinerAlgoMeta(type):
|
||||
@@ -14,3 +14,10 @@ class MinerAlgoMeta(type):
|
||||
class MinerAlgoType(metaclass=MinerAlgoMeta):
|
||||
hashrate: type[AlgoHashRateType]
|
||||
unit: type[AlgoHashRateUnitType]
|
||||
|
||||
|
||||
class GenericAlgo(MinerAlgoType):
|
||||
hashrate: type[GenericHashrate] = GenericHashrate
|
||||
unit: type[GenericUnit] = GenericUnit
|
||||
|
||||
name = "Generic (Unknown)"
|
||||
|
||||
@@ -252,6 +252,7 @@ class WhatsminerModels(MinerModelType):
|
||||
M50SPlusPlusVK10 = "M50S++ VK10"
|
||||
M50SPlusPlusVK20 = "M50S++ VK20"
|
||||
M50SPlusPlusVK30 = "M50S++ VK30"
|
||||
M50SPlusPlusVL30 = "M50S++ VL30"
|
||||
M53VH30 = "M53 VH30"
|
||||
M53SVH30 = "M53S VH30"
|
||||
M53SVJ40 = "M53S VJ40"
|
||||
|
||||
@@ -229,7 +229,7 @@ class BlackMiner(StockFirmware):
|
||||
hashrate = boards[1].get(f"chain_rate{i}")
|
||||
if hashrate:
|
||||
hashboard.hashrate = self.algo.hashrate(
|
||||
rate=float(hashrate), unit=self.algo.unit.MH
|
||||
rate=float(hashrate), unit=self.algo.unit.GH
|
||||
).into(self.algo.unit.default)
|
||||
|
||||
chips = boards[1].get(f"chain_acn{i}")
|
||||
|
||||
@@ -24,6 +24,7 @@ from pyasic.data.device import DeviceInfo
|
||||
from pyasic.data.error_codes import MinerErrorData
|
||||
from pyasic.data.pools import PoolMetrics
|
||||
from pyasic.device.algorithm import MinerAlgoType
|
||||
from pyasic.device.algorithm.base import GenericAlgo
|
||||
from pyasic.device.algorithm.hashrate import AlgoHashRate
|
||||
from pyasic.device.firmware import MinerFirmware
|
||||
from pyasic.device.makes import MinerMake
|
||||
@@ -46,7 +47,7 @@ class MinerProtocol(Protocol):
|
||||
make: MinerMake = None
|
||||
raw_model: MinerModelType = None
|
||||
firmware: MinerFirmware = None
|
||||
algo: type[MinerAlgoType] = None
|
||||
algo: type[MinerAlgoType] = GenericAlgo
|
||||
|
||||
expected_hashboards: int = None
|
||||
expected_chips: int = None
|
||||
|
||||
@@ -42,3 +42,11 @@ class M50SPlusPlusVK30(WhatsMinerMake):
|
||||
expected_fans = 2
|
||||
expected_hashboards = 3
|
||||
algo = MinerAlgo.SHA256
|
||||
|
||||
|
||||
class M50SPlusPlusVL30(WhatsMinerMake):
|
||||
raw_model = MinerModel.WHATSMINER.M50SPlusPlusVL30
|
||||
|
||||
expected_fans = 2
|
||||
expected_hashboards = 3
|
||||
algo = MinerAlgo.SHA256
|
||||
|
||||
@@ -41,7 +41,12 @@ from .M50S import (
|
||||
M50SVJ30,
|
||||
)
|
||||
from .M50S_Plus import M50SPlusVH30, M50SPlusVH40, M50SPlusVJ30, M50SPlusVK20
|
||||
from .M50S_Plus_Plus import M50SPlusPlusVK10, M50SPlusPlusVK20, M50SPlusPlusVK30
|
||||
from .M50S_Plus_Plus import (
|
||||
M50SPlusPlusVK10,
|
||||
M50SPlusPlusVK20,
|
||||
M50SPlusPlusVK30,
|
||||
M50SPlusPlusVL30,
|
||||
)
|
||||
from .M53 import M53VH30
|
||||
from .M53S import M53SVH30, M53SVJ40
|
||||
from .M53S_Plus import M53SPlusVJ30
|
||||
|
||||
@@ -303,6 +303,7 @@ MINER_CLASSES = {
|
||||
"M50S++VK10": BTMinerM50SPlusPlusVK10,
|
||||
"M50S++VK20": BTMinerM50SPlusPlusVK20,
|
||||
"M50S++VK30": BTMinerM50SPlusPlusVK30,
|
||||
"M50S++VL30": BTMinerM50SPlusPlusVL30,
|
||||
"M53VH30": BTMinerM53VH30,
|
||||
"M53SVH30": BTMinerM53SVH30,
|
||||
"M53SVJ40": BTMinerM53SVJ40,
|
||||
|
||||
@@ -19,6 +19,7 @@ from pyasic.miners.device.models.whatsminer import ( # noqa - ignore _module im
|
||||
M50SPlusPlusVK10,
|
||||
M50SPlusPlusVK20,
|
||||
M50SPlusPlusVK30,
|
||||
M50SPlusPlusVL30,
|
||||
)
|
||||
|
||||
|
||||
@@ -32,3 +33,7 @@ class BTMinerM50SPlusPlusVK20(M50SPlusPlusVK20, M5X):
|
||||
|
||||
class BTMinerM50SPlusPlusVK30(M50SPlusPlusVK30, M5X):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50SPlusPlusVL30(M50SPlusPlusVL30, M5X):
|
||||
pass
|
||||
|
||||
@@ -50,6 +50,7 @@ from .M50S_Plus_Plus import (
|
||||
BTMinerM50SPlusPlusVK10,
|
||||
BTMinerM50SPlusPlusVK20,
|
||||
BTMinerM50SPlusPlusVK30,
|
||||
BTMinerM50SPlusPlusVL30,
|
||||
)
|
||||
from .M53 import BTMinerM53VH30
|
||||
from .M53S import BTMinerM53SVH30, BTMinerM53SVJ40
|
||||
|
||||
Reference in New Issue
Block a user