Compare commits

...

14 Commits

Author SHA1 Message Date
Upstream Data
41b5ebf0f0 version: bump version number 2024-12-10 12:28:43 -07:00
Upstream Data
5436bede29 bug: add chip count for avalon 1126 Pro 2024-12-10 12:28:25 -07:00
Upstream Data
c01b3958dc version: bump version number 2024-12-10 11:13:40 -07:00
Upstream Data
c16367285f feature: add support for avalonminer 1126 Pro 2024-12-10 11:13:24 -07:00
Upstream Data
17eae253e6 version: bump version number 2024-12-10 11:08:22 -07:00
Upstream Data
ab30988614 bug: fix incorrect scrypt unit base type 2024-12-10 11:08:03 -07:00
Upstream Data
9b8e547f86 version: bump version number 2024-12-10 11:02:24 -07:00
Upstream Data
3b8cbb9ff1 feature: add support for antminer L9 2024-12-10 11:02:02 -07:00
Upstream Data
d39d278296 version: bump version number 2024-12-10 10:51:58 -07:00
Upstream Data
ea8b922367 bug: fix hive default password 2024-12-10 10:51:46 -07:00
Upstream Data
0d1c8d80e0 version: bump version number 2024-12-10 10:46:44 -07:00
Upstream Data
494d25da97 feature: add support for hiveon S19 2024-12-10 10:46:23 -07:00
Upstream Data
0327d93a35 version: bump version number 2024-12-10 10:29:18 -07:00
Upstream Data
680584c468 bug: fix pydantic validation error with hashrate tuning 2024-12-10 10:28:55 -07:00
18 changed files with 142 additions and 11 deletions

View File

@@ -358,13 +358,20 @@
show_root_heading: false show_root_heading: false
heading_level: 4 heading_level: 4
## S19j Pro (Stock) ## S19j Pro (Hive)
::: pyasic.miners.antminer.hiveon.X19.S19.HiveonS19jPro ::: pyasic.miners.antminer.hiveon.X19.S19.HiveonS19jPro
handler: python handler: python
options: options:
show_root_heading: false show_root_heading: false
heading_level: 4 heading_level: 4
## S19 (Hive)
::: pyasic.miners.antminer.hiveon.X19.S19.HiveonS19
handler: python
options:
show_root_heading: false
heading_level: 4
## S19 (LuxOS) ## S19 (LuxOS)
::: pyasic.miners.antminer.luxos.X19.S19.LUXMinerS19 ::: pyasic.miners.antminer.luxos.X19.S19.LUXMinerS19
handler: python handler: python

View File

@@ -43,6 +43,13 @@
show_root_heading: false show_root_heading: false
heading_level: 4 heading_level: 4
## L9 (Stock)
::: pyasic.miners.antminer.bmminer.X9.L9.BMMinerL9
handler: python
options:
show_root_heading: false
heading_level: 4
## S9 (BOS+) ## S9 (BOS+)
::: pyasic.miners.antminer.bosminer.X9.S9.BOSMinerS9 ::: pyasic.miners.antminer.bosminer.X9.S9.BOSMinerS9
handler: python handler: python
@@ -50,7 +57,7 @@
show_root_heading: false show_root_heading: false
heading_level: 4 heading_level: 4
## T9 (Stock) ## T9 (Hive)
::: pyasic.miners.antminer.hiveon.X9.T9.HiveonT9 ::: pyasic.miners.antminer.hiveon.X9.T9.HiveonT9
handler: python handler: python
options: options:

View File

@@ -1,6 +1,13 @@
# pyasic # pyasic
## A11X Models ## A11X Models
## Avalon 1126 Pro (Stock)
::: pyasic.miners.avalonminer.cgminer.A11X.A1126.CGMinerAvalon1126Pro
handler: python
options:
show_root_heading: false
heading_level: 4
## Avalon 1166 Pro (Stock) ## Avalon 1166 Pro (Stock)
::: pyasic.miners.avalonminer.cgminer.A11X.A1166.CGMinerAvalon1166Pro ::: pyasic.miners.avalonminer.cgminer.A11X.A1166.CGMinerAvalon1166Pro
handler: python handler: python

View File

@@ -49,6 +49,7 @@ details {
<li><a href="../antminer/X9#s9i-stock">S9i (Stock)</a></li> <li><a href="../antminer/X9#s9i-stock">S9i (Stock)</a></li>
<li><a href="../antminer/X9#s9j-stock">S9j (Stock)</a></li> <li><a href="../antminer/X9#s9j-stock">S9j (Stock)</a></li>
<li><a href="../antminer/X9#t9-stock">T9 (Stock)</a></li> <li><a href="../antminer/X9#t9-stock">T9 (Stock)</a></li>
<li><a href="../antminer/X9#l9-stock">L9 (Stock)</a></li>
</ul> </ul>
</details> </details>
<details> <details>
@@ -377,6 +378,7 @@ details {
<details> <details>
<summary>A11X Series:</summary> <summary>A11X Series:</summary>
<ul> <ul>
<li><a href="../avalonminer/A11X#avalon-1126-pro-stock">Avalon 1126 Pro (Stock)</a></li>
<li><a href="../avalonminer/A11X#avalon-1166-pro-stock">Avalon 1166 Pro (Stock)</a></li> <li><a href="../avalonminer/A11X#avalon-1166-pro-stock">Avalon 1166 Pro (Stock)</a></li>
</ul> </ul>
</details> </details>
@@ -580,13 +582,14 @@ details {
<details> <details>
<summary>X9 Series:</summary> <summary>X9 Series:</summary>
<ul> <ul>
<li><a href="../antminer/X9#t9-stock">T9 (Stock)</a></li> <li><a href="../antminer/X9#t9-hive">T9 (Hive)</a></li>
</ul> </ul>
</details> </details>
<details> <details>
<summary>X19 Series:</summary> <summary>X19 Series:</summary>
<ul> <ul>
<li><a href="../antminer/X19#s19j-pro-stock">S19j Pro (Stock)</a></li> <li><a href="../antminer/X19#s19j-pro-hive">S19j Pro (Hive)</a></li>
<li><a href="../antminer/X19#s19-hive">S19 (Hive)</a></li>
</ul> </ul>
</details> </details>
</ul> </ul>

View File

@@ -252,9 +252,9 @@ class MiningModeHashrateTune(MinerConfigValue):
arbitrary_types_allowed = True arbitrary_types_allowed = True
mode: str = field(init=False, default="hashrate_tuning") mode: str = field(init=False, default="hashrate_tuning")
hashrate: int = None hashrate: int | None = None
algo: TunerAlgoType = field(default_factory=TunerAlgo.default) algo: TunerAlgoType = field(default_factory=TunerAlgo.default)
scaling: ScalingConfig = None scaling: ScalingConfig | None = None
@classmethod @classmethod
def from_dict(cls, dict_conf: dict | None) -> "MiningModeHashrateTune": def from_dict(cls, dict_conf: dict | None) -> "MiningModeHashrateTune":

View File

@@ -1,9 +1,9 @@
from __future__ import annotations from __future__ import annotations
from enum import IntEnum from .base import AlgoHashRateUnitType
class ScryptUnit(IntEnum): class ScryptUnit(AlgoHashRateUnitType):
H = 1 H = 1
KH = int(H) * 1000 KH = int(H) * 1000
MH = int(KH) * 1000 MH = int(KH) * 1000

View File

@@ -22,6 +22,7 @@ class AntminerModels(MinerModelType):
S9j = "S9j" S9j = "S9j"
T9 = "T9" T9 = "T9"
D9 = "D9" D9 = "D9"
L9 = "L9"
Z15 = "Z15" Z15 = "Z15"
Z15Pro = "Z15 Pro" Z15Pro = "Z15 Pro"
S17 = "S17" S17 = "S17"
@@ -295,6 +296,7 @@ class AvalonminerModels(MinerModelType):
Avalon1047 = "Avalon 1047" Avalon1047 = "Avalon 1047"
Avalon1066 = "Avalon 1066" Avalon1066 = "Avalon 1066"
Avalon1166Pro = "Avalon 1166 Pro" Avalon1166Pro = "Avalon 1166 Pro"
Avalon1126Pro = "Avalon 1126 Pro"
Avalon1246 = "Avalon 1246" Avalon1246 = "Avalon 1246"
AvalonNano3 = "Avalon Nano 3" AvalonNano3 = "Avalon Nano 3"

View File

@@ -0,0 +1,22 @@
# ------------------------------------------------------------------------------
# Copyright 2022 Upstream Data Inc -
# -
# Licensed under the Apache License, Version 2.0 (the "License"); -
# you may not use this file except in compliance with the License. -
# You may obtain a copy of the License at -
# -
# http://www.apache.org/licenses/LICENSE-2.0 -
# -
# Unless required by applicable law or agreed to in writing, software -
# distributed under the License is distributed on an "AS IS" BASIS, -
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
# See the License for the specific language governing permissions and -
# limitations under the License. -
# ------------------------------------------------------------------------------
from pyasic.miners.backends import AntminerModern
from pyasic.miners.device.models import L9
class BMMinerL9(AntminerModern, L9):
pass

View File

@@ -16,5 +16,6 @@
from .D9 import BMMinerD9 from .D9 import BMMinerD9
from .E9 import BMMinerE9Pro from .E9 import BMMinerE9Pro
from .L9 import BMMinerL9
from .S9 import BMMinerS9, BMMinerS9i, BMMinerS9j from .S9 import BMMinerS9, BMMinerS9i, BMMinerS9j
from .T9 import BMMinerT9 from .T9 import BMMinerT9

View File

@@ -0,0 +1,22 @@
# ------------------------------------------------------------------------------
# Copyright 2022 Upstream Data Inc -
# -
# Licensed under the Apache License, Version 2.0 (the "License"); -
# you may not use this file except in compliance with the License. -
# You may obtain a copy of the License at -
# -
# http://www.apache.org/licenses/LICENSE-2.0 -
# -
# Unless required by applicable law or agreed to in writing, software -
# distributed under the License is distributed on an "AS IS" BASIS, -
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
# See the License for the specific language governing permissions and -
# limitations under the License. -
# ------------------------------------------------------------------------------
from pyasic.miners.backends import AvalonMiner
from pyasic.miners.device.models import Avalon1126Pro
class CGMinerAvalon1126Pro(AvalonMiner, Avalon1126Pro):
pass

View File

@@ -14,4 +14,5 @@
# limitations under the License. - # limitations under the License. -
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
from .A1126 import CGMinerAvalon1126Pro
from .A1166 import CGMinerAvalon1166Pro from .A1166 import CGMinerAvalon1166Pro

View File

@@ -0,0 +1,27 @@
# ------------------------------------------------------------------------------
# Copyright 2022 Upstream Data Inc -
# -
# Licensed under the Apache License, Version 2.0 (the "License"); -
# you may not use this file except in compliance with the License. -
# You may obtain a copy of the License at -
# -
# http://www.apache.org/licenses/LICENSE-2.0 -
# -
# Unless required by applicable law or agreed to in writing, software -
# distributed under the License is distributed on an "AS IS" BASIS, -
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
# See the License for the specific language governing permissions and -
# limitations under the License. -
# ------------------------------------------------------------------------------
from pyasic.device.algorithm import MinerAlgo
from pyasic.device.models import MinerModel
from pyasic.miners.device.makes import AntMinerMake
class L9(AntMinerMake):
raw_model = MinerModel.ANTMINER.L9
expected_chips = 110
expected_hashboards = 3
expected_fans = 4
algo = MinerAlgo.SCRYPT

View File

@@ -16,5 +16,6 @@
from .D9 import D9 from .D9 import D9
from .E9 import E9Pro from .E9 import E9Pro
from .L9 import L9
from .S9 import S9, S9i, S9j from .S9 import S9, S9i, S9j
from .T9 import T9 from .T9 import T9

View File

@@ -0,0 +1,27 @@
# ------------------------------------------------------------------------------
# Copyright 2022 Upstream Data Inc -
# -
# Licensed under the Apache License, Version 2.0 (the "License"); -
# you may not use this file except in compliance with the License. -
# You may obtain a copy of the License at -
# -
# http://www.apache.org/licenses/LICENSE-2.0 -
# -
# Unless required by applicable law or agreed to in writing, software -
# distributed under the License is distributed on an "AS IS" BASIS, -
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
# See the License for the specific language governing permissions and -
# limitations under the License. -
# ------------------------------------------------------------------------------
from pyasic.device.algorithm import MinerAlgo
from pyasic.device.models import MinerModel
from pyasic.miners.device.makes import AvalonMinerMake
class Avalon1126Pro(AvalonMinerMake):
raw_model = MinerModel.AVALONMINER.Avalon1126Pro
expected_chips = 120
expected_fans = 4
expected_hashboards = 3
algo = MinerAlgo.SHA256

View File

@@ -15,4 +15,5 @@
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
from .A1126 import Avalon1126Pro
from .A1166 import Avalon1166Pro from .A1166 import Avalon1166Pro

View File

@@ -80,6 +80,7 @@ MINER_CLASSES = {
"ANTMINER S9I": BMMinerS9i, "ANTMINER S9I": BMMinerS9i,
"ANTMINER S9J": BMMinerS9j, "ANTMINER S9J": BMMinerS9j,
"ANTMINER T9": BMMinerT9, "ANTMINER T9": BMMinerT9,
"ANTMINER L9": BMMinerL9,
"ANTMINER Z15": CGMinerZ15, "ANTMINER Z15": CGMinerZ15,
"ANTMINER Z15 PRO": BMMinerZ15Pro, "ANTMINER Z15 PRO": BMMinerZ15Pro,
"ANTMINER S17": BMMinerS17, "ANTMINER S17": BMMinerS17,
@@ -339,6 +340,7 @@ MINER_CLASSES = {
"AVALONMINER 1026": CGMinerAvalon1026, "AVALONMINER 1026": CGMinerAvalon1026,
"AVALONMINER 1047": CGMinerAvalon1047, "AVALONMINER 1047": CGMinerAvalon1047,
"AVALONMINER 1066": CGMinerAvalon1066, "AVALONMINER 1066": CGMinerAvalon1066,
"AVALONMINER 1126PRO": CGMinerAvalon1126Pro,
"AVALONMINER 1166PRO": CGMinerAvalon1166Pro, "AVALONMINER 1166PRO": CGMinerAvalon1166Pro,
"AVALONMINER 1246": CGMinerAvalon1246, "AVALONMINER 1246": CGMinerAvalon1246,
"AVALONMINER NANO3": CGMinerAvalonNano3, "AVALONMINER NANO3": CGMinerAvalonNano3,
@@ -427,6 +429,7 @@ MINER_CLASSES = {
None: HiveonModern, None: HiveonModern,
"ANTMINER T9": HiveonT9, "ANTMINER T9": HiveonT9,
"ANTMINER S19JPRO": HiveonS19jPro, "ANTMINER S19JPRO": HiveonS19jPro,
"ANTMINER S19": HiveonS19,
}, },
MinerTypes.LUX_OS: { MinerTypes.LUX_OS: {
None: LUXMiner, None: LUXMiner,
@@ -873,7 +876,7 @@ class MinerFactory:
if miner_type in MINER_CLASSES: if miner_type in MINER_CLASSES:
if miner_model is not None: if miner_model is not None:
warnings.warn( warnings.warn(
f"Partially supported miner found: {miner_model}, please open an issue with miner data " f"Partially supported miner found: {miner_model}, type: {miner_type}, please open an issue with miner data "
f"and this model on GitHub (https://github.com/UpstreamData/pyasic/issues)." f"and this model on GitHub (https://github.com/UpstreamData/pyasic/issues)."
) )
return MINER_CLASSES[miner_type][None](ip) return MINER_CLASSES[miner_type][None](ip)

View File

@@ -37,7 +37,7 @@ _settings = { # defaults
"default_goldshell_web_password": "123456789", "default_goldshell_web_password": "123456789",
"default_auradine_web_password": "admin", "default_auradine_web_password": "admin",
"default_epic_web_password": "letmein", "default_epic_web_password": "letmein",
"default_hive_web_password": "admin", "default_hive_web_password": "root",
"default_iceriver_web_password": "12345678", "default_iceriver_web_password": "12345678",
"default_antminer_ssh_password": "miner", "default_antminer_ssh_password": "miner",
"default_bosminer_ssh_password": "root", "default_bosminer_ssh_password": "root",

View File

@@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "pyasic" name = "pyasic"
version = "0.65.0" version = "0.65.7"
description = "A simplified and standardized interface for Bitcoin ASICs." description = "A simplified and standardized interface for Bitcoin ASICs."
authors = ["UpstreamData <brett@upstreamdata.ca>"] authors = ["UpstreamData <brett@upstreamdata.ca>"]
repository = "https://github.com/UpstreamData/pyasic" repository = "https://github.com/UpstreamData/pyasic"