Compare commits
47 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bbc88e175c | ||
|
|
ff54bea0ed | ||
|
|
bcfa807e12 | ||
|
|
728e94f120 | ||
|
|
5f2832d632 | ||
|
|
59e5be280f | ||
|
|
e6424acf5f | ||
|
|
34389e9133 | ||
|
|
b0f7629607 | ||
|
|
6e50f1f769 | ||
|
|
708b506f6f | ||
|
|
673d63daf0 | ||
|
|
ea55fed8d1 | ||
|
|
f5fd539eba | ||
|
|
51a56f441c | ||
|
|
54310b1d79 | ||
|
|
cb30b761dc | ||
|
|
cb50a7cac8 | ||
|
|
738af245cb | ||
|
|
71e9af1b91 | ||
|
|
1cd2566d0a | ||
|
|
1f1e5f23a2 | ||
|
|
3394234e4f | ||
|
|
e9882124ff | ||
|
|
1e5b19c149 | ||
|
|
c9339fec2f | ||
|
|
018c09e84f | ||
|
|
46e7f9a569 | ||
|
|
996ab58252 | ||
|
|
04974d5287 | ||
|
|
1a8a5ccb0e | ||
|
|
4c61c4c345 | ||
|
|
a6d6bfe73d | ||
|
|
f159e9ccb4 | ||
|
|
8ae2932274 | ||
|
|
52786ba954 | ||
|
|
f5cc526e8a | ||
|
|
a616aaba04 | ||
|
|
15b4177ce4 | ||
|
|
5b382cdb0b | ||
|
|
16622099c8 | ||
|
|
a75434fe7b | ||
|
|
020558ed4d | ||
|
|
39a82d03bc | ||
|
|
41ecb5dbc6 | ||
|
|
2d057ca9f6 | ||
|
|
b71b23d2a0 |
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import ipaddress
|
import ipaddress
|
||||||
@@ -160,7 +162,7 @@ If you are sure you want to use this command please use API.send_command("{comma
|
|||||||
reader, writer = await asyncio.open_connection(str(self.ip), self.port)
|
reader, writer = await asyncio.open_connection(str(self.ip), self.port)
|
||||||
# handle OSError 121
|
# handle OSError 121
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
if getattr(e, "winerror") == "121":
|
if e.errno == 121:
|
||||||
logging.warning(
|
logging.warning(
|
||||||
f"{self} - ([Hidden] Send Bytes) - Semaphore timeout expired."
|
f"{self} - ([Hidden] Send Bytes) - Semaphore timeout expired."
|
||||||
)
|
)
|
||||||
@@ -171,9 +173,14 @@ If you are sure you want to use this command please use API.send_command("{comma
|
|||||||
writer.write(data)
|
writer.write(data)
|
||||||
logging.debug(f"{self} - ([Hidden] Send Bytes) - Draining")
|
logging.debug(f"{self} - ([Hidden] Send Bytes) - Draining")
|
||||||
await writer.drain()
|
await writer.drain()
|
||||||
|
ret_data = await asyncio.wait_for(reader.read(4096), timeout=timeout)
|
||||||
# instantiate data
|
try:
|
||||||
ret_data = b""
|
# Fix for stupid whatsminer bug, reboot/restart seem to not load properly in the loop
|
||||||
|
# have to receive, save the data, check if there is more data by reading with a short timeout
|
||||||
|
# append that data if there is more, and then onto the main loop.
|
||||||
|
ret_data += await asyncio.wait_for(reader.read(1), timeout=1)
|
||||||
|
except asyncio.TimeoutError:
|
||||||
|
return ret_data
|
||||||
|
|
||||||
# loop to receive all the data
|
# loop to receive all the data
|
||||||
logging.debug(f"{self} - ([Hidden] Send Bytes) - Receiving")
|
logging.debug(f"{self} - ([Hidden] Send Bytes) - Receiving")
|
||||||
@@ -242,6 +249,8 @@ If you are sure you want to use this command please use API.send_command("{comma
|
|||||||
str_data = str_data.replace("}{", "},{")
|
str_data = str_data.replace("}{", "},{")
|
||||||
# fix an error with a bmminer return having a specific comma that breaks json.loads()
|
# fix an error with a bmminer return having a specific comma that breaks json.loads()
|
||||||
str_data = str_data.replace("[,{", "[{")
|
str_data = str_data.replace("[,{", "[{")
|
||||||
|
# fix an error with a btminer return having a missing comma. (2023-01-06 version)
|
||||||
|
str_data = str_data.replace('""temp0', '","temp0')
|
||||||
# fix an error with Avalonminers returning inf and nan
|
# fix an error with Avalonminers returning inf and nan
|
||||||
str_data = str_data.replace("info", "1nfo")
|
str_data = str_data.replace("info", "1nfo")
|
||||||
str_data = str_data.replace("inf", "0")
|
str_data = str_data.replace("inf", "0")
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from pyasic.API import APIError, BaseMinerAPI
|
from pyasic.API import APIError, BaseMinerAPI
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.API import BaseMinerAPI
|
from pyasic.API import BaseMinerAPI
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import base64
|
import base64
|
||||||
@@ -245,17 +247,13 @@ class BTMinerAPI(BaseMinerAPI):
|
|||||||
try:
|
try:
|
||||||
data = await self._send_bytes(enc_command, timeout)
|
data = await self._send_bytes(enc_command, timeout)
|
||||||
except (asyncio.CancelledError, asyncio.TimeoutError) as e:
|
except (asyncio.CancelledError, asyncio.TimeoutError) as e:
|
||||||
if command["cmd"] in ["reboot", "restart"]:
|
if ignore_errors:
|
||||||
logging.info(
|
return {}
|
||||||
f"{self} - (reboot/restart) - Whatsminers currently break this. "
|
|
||||||
f"Ignoring exception. Command probably worked."
|
|
||||||
)
|
|
||||||
# FAKING IT HERE
|
|
||||||
data = b'{"STATUS": "S", "When": 1670966423, "Code": 131, "Msg": "API command OK", "Description": "Reboot"}'
|
|
||||||
else:
|
|
||||||
raise APIError("No data was returned from the API.")
|
raise APIError("No data was returned from the API.")
|
||||||
|
|
||||||
if not data:
|
if not data:
|
||||||
|
if ignore_errors:
|
||||||
|
return {}
|
||||||
raise APIError("No data was returned from the API.")
|
raise APIError("No data was returned from the API.")
|
||||||
data = self._load_api_data(data)
|
data = self._load_api_data(data)
|
||||||
|
|
||||||
@@ -542,6 +540,23 @@ class BTMinerAPI(BaseMinerAPI):
|
|||||||
self.pwd = new_pwd
|
self.pwd = new_pwd
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
async def net_config(
|
||||||
|
self,
|
||||||
|
ip: str = None,
|
||||||
|
mask: str = None,
|
||||||
|
gate: str = None,
|
||||||
|
dns: str = None,
|
||||||
|
host: str = None,
|
||||||
|
dhcp: bool = True,
|
||||||
|
):
|
||||||
|
if dhcp:
|
||||||
|
return await self.send_privileged_command("net_config", param="dhcp")
|
||||||
|
if None in [ip, mask, gate, dns, host]:
|
||||||
|
raise APIError("Incorrect parameters.")
|
||||||
|
return await self.send_privileged_command(
|
||||||
|
"net_config", ip=ip, mask=mask, gate=gate, dns=dns, host=host
|
||||||
|
)
|
||||||
|
|
||||||
async def set_target_freq(self, percent: int) -> dict:
|
async def set_target_freq(self, percent: int) -> dict:
|
||||||
"""Update the target frequency.
|
"""Update the target frequency.
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.API import BaseMinerAPI
|
from pyasic.API import BaseMinerAPI
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
from pyasic.API.bmminer import BMMinerAPI
|
from pyasic.API.bmminer import BMMinerAPI
|
||||||
from pyasic.API.bosminer import BOSMinerAPI
|
from pyasic.API.bosminer import BOSMinerAPI
|
||||||
from pyasic.API.btminer import BTMinerAPI
|
from pyasic.API.btminer import BTMinerAPI
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
@@ -243,7 +245,9 @@ class MinerConfig:
|
|||||||
fan_speed: Manual fan speed to run the fan at (only if temp_mode == "manual").
|
fan_speed: Manual fan speed to run the fan at (only if temp_mode == "manual").
|
||||||
asicboost: Whether or not to enable asicboost.
|
asicboost: Whether or not to enable asicboost.
|
||||||
autotuning_enabled: Whether or not to enable autotuning.
|
autotuning_enabled: Whether or not to enable autotuning.
|
||||||
|
autotuning_mode: Autotuning mode, either "wattage" or "hashrate".
|
||||||
autotuning_wattage: The wattage to use when autotuning.
|
autotuning_wattage: The wattage to use when autotuning.
|
||||||
|
autotuning_hashrate: The hashrate to use when autotuning.
|
||||||
dps_enabled: Whether or not to enable dynamic power scaling.
|
dps_enabled: Whether or not to enable dynamic power scaling.
|
||||||
dps_power_step: The amount of power to reduce autotuning by when the miner reaches dangerous temp.
|
dps_power_step: The amount of power to reduce autotuning by when the miner reaches dangerous temp.
|
||||||
dps_min_power: The minimum power to reduce autotuning to.
|
dps_min_power: The minimum power to reduce autotuning to.
|
||||||
@@ -264,7 +268,9 @@ class MinerConfig:
|
|||||||
asicboost: bool = None
|
asicboost: bool = None
|
||||||
|
|
||||||
autotuning_enabled: bool = True
|
autotuning_enabled: bool = True
|
||||||
autotuning_wattage: int = 900
|
autotuning_mode: Literal["power", "hashrate"] = None
|
||||||
|
autotuning_wattage: int = None
|
||||||
|
autotuning_hashrate: int = None
|
||||||
|
|
||||||
dps_enabled: bool = None
|
dps_enabled: bool = None
|
||||||
dps_power_step: int = None
|
dps_power_step: int = None
|
||||||
@@ -347,14 +353,20 @@ class MinerConfig:
|
|||||||
self.autotuning_enabled = data[key][_key]
|
self.autotuning_enabled = data[key][_key]
|
||||||
elif _key == "psu_power_limit":
|
elif _key == "psu_power_limit":
|
||||||
self.autotuning_wattage = data[key][_key]
|
self.autotuning_wattage = data[key][_key]
|
||||||
|
elif _key == "power_target":
|
||||||
|
self.autotuning_wattage = data[key][_key]
|
||||||
|
elif _key == "hashrate_target":
|
||||||
|
self.autotuning_hashrate = data[key][_key]
|
||||||
|
elif _key == "mode":
|
||||||
|
self.autotuning_mode = data[key][_key].replace("_target", "")
|
||||||
|
|
||||||
if key == "power_scaling":
|
if key in ["power_scaling", "performance_scaling"]:
|
||||||
for _key in data[key].keys():
|
for _key in data[key].keys():
|
||||||
if _key == "enabled":
|
if _key == "enabled":
|
||||||
self.dps_enabled = data[key][_key]
|
self.dps_enabled = data[key][_key]
|
||||||
elif _key == "power_step":
|
elif _key == "power_step":
|
||||||
self.dps_power_step = data[key][_key]
|
self.dps_power_step = data[key][_key]
|
||||||
elif _key == "min_psu_power_limit":
|
elif _key in ["min_psu_power_limit", "min_power_target"]:
|
||||||
self.dps_min_power = data[key][_key]
|
self.dps_min_power = data[key][_key]
|
||||||
elif _key == "shutdown_enabled":
|
elif _key == "shutdown_enabled":
|
||||||
self.dps_shutdown_enabled = data[key][_key]
|
self.dps_shutdown_enabled = data[key][_key]
|
||||||
@@ -389,8 +401,8 @@ class MinerConfig:
|
|||||||
pool_groups = []
|
pool_groups = []
|
||||||
for group in data["pool_groups"]:
|
for group in data["pool_groups"]:
|
||||||
pool_groups.append(_PoolGroup().from_dict(group))
|
pool_groups.append(_PoolGroup().from_dict(group))
|
||||||
for key in data.keys():
|
for key in data:
|
||||||
if getattr(self, key) and not key == "pool_groups":
|
if hasattr(self, key) and not key == "pool_groups":
|
||||||
setattr(self, key, data[key])
|
setattr(self, key, data[key])
|
||||||
self.pool_groups = pool_groups
|
self.pool_groups = pool_groups
|
||||||
return self
|
return self
|
||||||
@@ -479,8 +491,8 @@ class MinerConfig:
|
|||||||
cfg = {
|
cfg = {
|
||||||
"format": {
|
"format": {
|
||||||
"version": "1.2+",
|
"version": "1.2+",
|
||||||
"model": f"Antminer {model}",
|
"model": f"Antminer {model.replace('j', 'J')}",
|
||||||
"generator": "Upstream Config Utility",
|
"generator": "pyasic",
|
||||||
"timestamp": int(time.time()),
|
"timestamp": int(time.time()),
|
||||||
},
|
},
|
||||||
"group": [
|
"group": [
|
||||||
@@ -497,7 +509,17 @@ class MinerConfig:
|
|||||||
if self.autotuning_enabled or self.autotuning_wattage:
|
if self.autotuning_enabled or self.autotuning_wattage:
|
||||||
cfg["autotuning"] = {}
|
cfg["autotuning"] = {}
|
||||||
if self.autotuning_enabled:
|
if self.autotuning_enabled:
|
||||||
cfg["autotuning"]["enabled"] = self.autotuning_enabled
|
cfg["autotuning"]["enabled"] = True
|
||||||
|
else:
|
||||||
|
cfg["autotuning"]["enabled"] = False
|
||||||
|
if self.autotuning_mode:
|
||||||
|
cfg["format"]["version"] = "2.0"
|
||||||
|
cfg["autotuning"]["mode"] = self.autotuning_mode + "_target"
|
||||||
|
if self.autotuning_wattage:
|
||||||
|
cfg["autotuning"]["power_target"] = self.autotuning_wattage
|
||||||
|
elif self.autotuning_hashrate:
|
||||||
|
cfg["autotuning"]["hashrate_target"] = self.autotuning_hashrate
|
||||||
|
else:
|
||||||
if self.autotuning_wattage:
|
if self.autotuning_wattage:
|
||||||
cfg["autotuning"]["psu_power_limit"] = self.autotuning_wattage
|
cfg["autotuning"]["psu_power_limit"] = self.autotuning_wattage
|
||||||
|
|
||||||
@@ -523,6 +545,9 @@ class MinerConfig:
|
|||||||
if self.dps_power_step:
|
if self.dps_power_step:
|
||||||
cfg["power_scaling"]["power_step"] = self.dps_power_step
|
cfg["power_scaling"]["power_step"] = self.dps_power_step
|
||||||
if self.dps_min_power:
|
if self.dps_min_power:
|
||||||
|
if cfg["format"]["version"] == "2.0":
|
||||||
|
cfg["power_scaling"]["min_power_target"] = self.dps_min_power
|
||||||
|
else:
|
||||||
cfg["power_scaling"]["min_psu_power_limit"] = self.dps_min_power
|
cfg["power_scaling"]["min_psu_power_limit"] = self.dps_min_power
|
||||||
if self.dps_shutdown_enabled:
|
if self.dps_shutdown_enabled:
|
||||||
cfg["power_scaling"]["shutdown_enabled"] = self.dps_shutdown_enabled
|
cfg["power_scaling"]["shutdown_enabled"] = self.dps_shutdown_enabled
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import copy
|
import copy
|
||||||
import json
|
import json
|
||||||
@@ -401,6 +403,8 @@ class MinerData:
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def percent_ideal(self): # noqa - Skip PyCharm inspection
|
def percent_ideal(self): # noqa - Skip PyCharm inspection
|
||||||
|
if self.total_chips == 0 or self.ideal_chips == 0:
|
||||||
|
return 0
|
||||||
return round((self.total_chips / self.ideal_chips) * 100)
|
return round((self.total_chips / self.ideal_chips) * 100)
|
||||||
|
|
||||||
@percent_ideal.setter
|
@percent_ideal.setter
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from dataclasses import asdict, dataclass, fields
|
from dataclasses import asdict, dataclass, fields
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from typing import TypeVar
|
from typing import TypeVar
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from dataclasses import asdict, dataclass, fields
|
from dataclasses import asdict, dataclass, fields
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from dataclasses import asdict, dataclass, field, fields
|
from dataclasses import asdict, dataclass, field, fields
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from dataclasses import asdict, dataclass, field, fields
|
from dataclasses import asdict, dataclass, field, fields
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
class APIError(Exception):
|
class APIError(Exception):
|
||||||
@@ -27,6 +29,20 @@ class APIError(Exception):
|
|||||||
return "Incorrect API parameters."
|
return "Incorrect API parameters."
|
||||||
|
|
||||||
|
|
||||||
|
class PhaseBalancingError(Exception):
|
||||||
|
def __init__(self, *args):
|
||||||
|
if args:
|
||||||
|
self.message = args[0]
|
||||||
|
else:
|
||||||
|
self.message = None
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
if self.message:
|
||||||
|
return f"{self.message}"
|
||||||
|
else:
|
||||||
|
return "Failed to balance phase."
|
||||||
|
|
||||||
|
|
||||||
class APIWarning(Warning):
|
class APIWarning(Warning):
|
||||||
def __init__(self, *args):
|
def __init__(self, *args):
|
||||||
if args:
|
if args:
|
||||||
|
|||||||
336
pyasic/load/__init__.py
Normal file
336
pyasic/load/__init__.py
Normal file
@@ -0,0 +1,336 @@
|
|||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# 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. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
import asyncio
|
||||||
|
import logging
|
||||||
|
from typing import List, Union
|
||||||
|
|
||||||
|
# from pyasic.errors import PhaseBalancingError
|
||||||
|
from pyasic.errors import APIError
|
||||||
|
from pyasic.miners import AnyMiner
|
||||||
|
from pyasic.miners._backends import X19, BOSMiner, BTMiner
|
||||||
|
from pyasic.miners._types import S9, S17, T17, S17e, S17Plus, S17Pro, T17e, T17Plus
|
||||||
|
|
||||||
|
# from pprint import pprint as print
|
||||||
|
|
||||||
|
|
||||||
|
FAN_USAGE = 50 # 50 W per fan
|
||||||
|
|
||||||
|
|
||||||
|
class MinerLoadBalancer:
|
||||||
|
"""A load balancer for miners. Can be passed a list of `AnyMiner`, or a list of phases (lists of `AnyMiner`)."""
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
phases: Union[List[List[AnyMiner]], None] = None,
|
||||||
|
):
|
||||||
|
self.phases = [_MinerPhaseBalancer(phase) for phase in phases]
|
||||||
|
|
||||||
|
async def balance(self, wattage: int) -> int:
|
||||||
|
phase_wattage = wattage // len(self.phases)
|
||||||
|
setpoints = await asyncio.gather(
|
||||||
|
*[phase.get_balance_setpoints(phase_wattage) for phase in self.phases]
|
||||||
|
)
|
||||||
|
tasks = []
|
||||||
|
total_wattage = 0
|
||||||
|
for setpoint in setpoints:
|
||||||
|
wattage_set = 0
|
||||||
|
for miner in setpoint:
|
||||||
|
if setpoint[miner]["set"] == "on":
|
||||||
|
wattage_set += setpoint[miner]["max"]
|
||||||
|
tasks.append(setpoint[miner]["miner"].resume_mining())
|
||||||
|
elif setpoint[miner]["set"] == "off":
|
||||||
|
wattage_set += setpoint[miner]["min"]
|
||||||
|
tasks.append(setpoint[miner]["miner"].stop_mining())
|
||||||
|
else:
|
||||||
|
wattage_set += setpoint[miner]["set"]
|
||||||
|
tasks.append(
|
||||||
|
setpoint[miner]["miner"].set_power_limit(setpoint[miner]["set"])
|
||||||
|
)
|
||||||
|
total_wattage += wattage_set
|
||||||
|
await asyncio.gather(*tasks)
|
||||||
|
return total_wattage
|
||||||
|
|
||||||
|
|
||||||
|
class _MinerPhaseBalancer:
|
||||||
|
def __init__(self, miners: List[AnyMiner]):
|
||||||
|
self.miners = {
|
||||||
|
str(miner.ip): {
|
||||||
|
"miner": miner,
|
||||||
|
"set": 0,
|
||||||
|
"min": miner.fan_count * FAN_USAGE,
|
||||||
|
}
|
||||||
|
for miner in miners
|
||||||
|
}
|
||||||
|
for miner in miners:
|
||||||
|
if (
|
||||||
|
isinstance(miner, BTMiner)
|
||||||
|
and not (miner.model.startswith("M2") if miner.model else True)
|
||||||
|
) or isinstance(miner, BOSMiner):
|
||||||
|
if isinstance(miner, S9):
|
||||||
|
self.miners[str(miner.ip)]["tune"] = True
|
||||||
|
self.miners[str(miner.ip)]["shutdown"] = True
|
||||||
|
self.miners[str(miner.ip)]["max"] = 1400
|
||||||
|
elif True in [
|
||||||
|
isinstance(miner, x)
|
||||||
|
for x in [S17, S17Plus, S17Pro, S17e, T17, T17Plus, T17e]
|
||||||
|
]:
|
||||||
|
self.miners[str(miner.ip)]["tune"] = True
|
||||||
|
self.miners[str(miner.ip)]["shutdown"] = True
|
||||||
|
self.miners[str(miner.ip)]["max"] = 2400
|
||||||
|
else:
|
||||||
|
self.miners[str(miner.ip)]["tune"] = True
|
||||||
|
self.miners[str(miner.ip)]["shutdown"] = True
|
||||||
|
self.miners[str(miner.ip)]["max"] = 3600
|
||||||
|
elif isinstance(miner, X19):
|
||||||
|
self.miners[str(miner.ip)]["tune"] = False
|
||||||
|
self.miners[str(miner.ip)]["shutdown"] = True
|
||||||
|
self.miners[str(miner.ip)]["max"] = 3600
|
||||||
|
elif isinstance(miner, BTMiner):
|
||||||
|
self.miners[str(miner.ip)]["tune"] = False
|
||||||
|
self.miners[str(miner.ip)]["shutdown"] = True
|
||||||
|
self.miners[str(miner.ip)]["max"] = 3600
|
||||||
|
if miner.model:
|
||||||
|
if miner.model.startswith("M2"):
|
||||||
|
self.miners[str(miner.ip)]["tune"] = False
|
||||||
|
self.miners[str(miner.ip)]["shutdown"] = True
|
||||||
|
self.miners[str(miner.ip)]["max"] = 2400
|
||||||
|
else:
|
||||||
|
self.miners[str(miner.ip)]["tune"] = False
|
||||||
|
self.miners[str(miner.ip)]["shutdown"] = False
|
||||||
|
self.miners[str(miner.ip)]["max"] = 3600
|
||||||
|
self.miners[str(miner.ip)]["min"] = 3600
|
||||||
|
|
||||||
|
async def balance(self, wattage: int) -> int:
|
||||||
|
setpoint = await self.get_balance_setpoints(wattage)
|
||||||
|
wattage_set = 0
|
||||||
|
tasks = []
|
||||||
|
for miner in setpoint:
|
||||||
|
if setpoint[miner]["set"] == "on":
|
||||||
|
wattage_set += setpoint[miner]["max"]
|
||||||
|
tasks.append(setpoint[miner]["miner"].resume_mining())
|
||||||
|
elif setpoint[miner]["set"] == "off":
|
||||||
|
wattage_set += setpoint[miner]["min"]
|
||||||
|
tasks.append(setpoint[miner]["miner"].stop_mining())
|
||||||
|
else:
|
||||||
|
wattage_set += setpoint[miner]["set"]
|
||||||
|
tasks.append(
|
||||||
|
setpoint[miner]["miner"].set_power_limit(setpoint[miner]["set"])
|
||||||
|
)
|
||||||
|
await asyncio.gather(*tasks)
|
||||||
|
return wattage_set
|
||||||
|
|
||||||
|
async def get_balance_setpoints(self, wattage: int) -> dict:
|
||||||
|
# gather data needed to optimize shutdown only miners
|
||||||
|
dp = ["hashrate", "wattage", "wattage_limit"]
|
||||||
|
data = await asyncio.gather(
|
||||||
|
*[
|
||||||
|
self.miners[miner]["miner"].get_data(data_to_get=dp)
|
||||||
|
for miner in self.miners
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
for data_point in data:
|
||||||
|
if (not self.miners[data_point.ip]["tune"]) and (
|
||||||
|
not self.miners[data_point.ip]["shutdown"]
|
||||||
|
):
|
||||||
|
# cant do anything with it so need to find a semi-accurate power limit
|
||||||
|
if not data_point.wattage_limit == -1:
|
||||||
|
self.miners[data_point.ip]["max"] = int(data_point.wattage_limit)
|
||||||
|
self.miners[data_point.ip]["min"] = int(data_point.wattage_limit)
|
||||||
|
elif not data_point.wattage == -1:
|
||||||
|
self.miners[data_point.ip]["max"] = int(data_point.wattage)
|
||||||
|
self.miners[data_point.ip]["min"] = int(data_point.wattage)
|
||||||
|
|
||||||
|
max_tune_wattage = sum(
|
||||||
|
[miner["max"] for miner in self.miners.values() if miner["tune"]]
|
||||||
|
)
|
||||||
|
max_shutdown_wattage = sum(
|
||||||
|
[
|
||||||
|
miner["max"]
|
||||||
|
for miner in self.miners.values()
|
||||||
|
if (not miner["tune"]) and (miner["shutdown"])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
max_other_wattage = sum(
|
||||||
|
[
|
||||||
|
miner["max"]
|
||||||
|
for miner in self.miners.values()
|
||||||
|
if (not miner["tune"]) and (not miner["shutdown"])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
min_tune_wattage = sum(
|
||||||
|
[miner["min"] for miner in self.miners.values() if miner["tune"]]
|
||||||
|
)
|
||||||
|
min_shutdown_wattage = sum(
|
||||||
|
[
|
||||||
|
miner["min"]
|
||||||
|
for miner in self.miners.values()
|
||||||
|
if (not miner["tune"]) and (miner["shutdown"])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
# min_other_wattage = sum([miner["min"] for miner in self.miners.values() if (not miner["tune"]) and (not miner["shutdown"])])
|
||||||
|
|
||||||
|
# make sure wattage isnt set too high
|
||||||
|
if wattage > (max_tune_wattage + max_shutdown_wattage + max_other_wattage):
|
||||||
|
raise APIError(
|
||||||
|
f"Wattage setpoint is too high, setpoint: {wattage}W, max: {max_tune_wattage + max_shutdown_wattage + max_other_wattage}W"
|
||||||
|
) # PhaseBalancingError(f"Wattage setpoint is too high, setpoint: {wattage}W, max: {max_tune_wattage + max_shutdown_wattage + max_other_wattage}W")
|
||||||
|
|
||||||
|
# should now know wattage limits and which can be tuned/shutdown
|
||||||
|
# check if 1/2 max of the miners which can be tuned is low enough
|
||||||
|
if (max_tune_wattage / 2) + max_shutdown_wattage + max_other_wattage < wattage:
|
||||||
|
useable_wattage = wattage - (max_other_wattage + max_shutdown_wattage)
|
||||||
|
useable_miners = len(
|
||||||
|
[m for m in self.miners.values() if (m["set"] == 0) and (m["tune"])]
|
||||||
|
)
|
||||||
|
if not useable_miners == 0:
|
||||||
|
watts_per_miner = useable_wattage // useable_miners
|
||||||
|
# loop through and set useable miners to wattage
|
||||||
|
for miner in self.miners:
|
||||||
|
if (self.miners[miner]["set"] == 0) and (
|
||||||
|
self.miners[miner]["tune"]
|
||||||
|
):
|
||||||
|
self.miners[miner]["set"] = watts_per_miner
|
||||||
|
elif self.miners[miner]["set"] == 0 and (
|
||||||
|
self.miners[miner]["shutdown"]
|
||||||
|
):
|
||||||
|
self.miners[miner]["set"] = "on"
|
||||||
|
|
||||||
|
# check if shutting down miners will help
|
||||||
|
elif (
|
||||||
|
max_tune_wattage / 2
|
||||||
|
) + min_shutdown_wattage + max_other_wattage < wattage:
|
||||||
|
# tuneable inclusive since could be S9 BOS+ and S19 Stock, would rather shut down the S9, tuneable should always support shutdown
|
||||||
|
useable_wattage = wattage - (
|
||||||
|
min_tune_wattage + max_other_wattage + min_shutdown_wattage
|
||||||
|
)
|
||||||
|
for miner in sorted(
|
||||||
|
[miner for miner in self.miners.values() if miner["shutdown"]],
|
||||||
|
key=lambda x: x["max"],
|
||||||
|
reverse=True,
|
||||||
|
):
|
||||||
|
if miner["tune"]:
|
||||||
|
miner_min_watt_use = miner["max"] / 2
|
||||||
|
useable_wattage -= miner_min_watt_use - miner["min"]
|
||||||
|
if useable_wattage < 0:
|
||||||
|
useable_wattage += miner_min_watt_use - miner["min"]
|
||||||
|
self.miners[str(miner["miner"].ip)]["set"] = "off"
|
||||||
|
else:
|
||||||
|
miner_min_watt_use = miner["max"]
|
||||||
|
useable_wattage -= miner_min_watt_use - miner["min"]
|
||||||
|
if useable_wattage < 0:
|
||||||
|
useable_wattage += miner_min_watt_use - miner["min"]
|
||||||
|
self.miners[str(miner["miner"].ip)]["set"] = "off"
|
||||||
|
|
||||||
|
new_shutdown_wattage = sum(
|
||||||
|
[
|
||||||
|
miner["max"] if miner["set"] == 0 else miner["min"]
|
||||||
|
for miner in self.miners.values()
|
||||||
|
if miner["shutdown"] and not miner["tune"]
|
||||||
|
]
|
||||||
|
)
|
||||||
|
new_tune_wattage = sum(
|
||||||
|
[
|
||||||
|
miner["min"]
|
||||||
|
for miner in self.miners.values()
|
||||||
|
if miner["tune"] and miner["set"] == "off"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
useable_wattage = wattage - (
|
||||||
|
new_tune_wattage + max_other_wattage + new_shutdown_wattage
|
||||||
|
)
|
||||||
|
useable_miners = len(
|
||||||
|
[m for m in self.miners.values() if (m["set"] == 0) and (m["tune"])]
|
||||||
|
)
|
||||||
|
|
||||||
|
if not useable_miners == 0:
|
||||||
|
watts_per_miner = useable_wattage // useable_miners
|
||||||
|
# loop through and set useable miners to wattage
|
||||||
|
for miner in self.miners:
|
||||||
|
if (self.miners[miner]["set"] == 0) and (
|
||||||
|
self.miners[miner]["tune"]
|
||||||
|
):
|
||||||
|
self.miners[miner]["set"] = watts_per_miner
|
||||||
|
elif self.miners[miner]["set"] == 0 and (
|
||||||
|
self.miners[miner]["shutdown"]
|
||||||
|
):
|
||||||
|
self.miners[miner]["set"] = "on"
|
||||||
|
|
||||||
|
# check if shutting down tuneable miners will do it
|
||||||
|
elif min_tune_wattage + min_shutdown_wattage + max_other_wattage < wattage:
|
||||||
|
# all miners that can be shutdown need to be
|
||||||
|
for miner in self.miners:
|
||||||
|
if (not self.miners[miner]["tune"]) and (
|
||||||
|
self.miners[miner]["shutdown"]
|
||||||
|
):
|
||||||
|
self.miners[miner]["set"] = "off"
|
||||||
|
# calculate wattage usable by tuneable miners
|
||||||
|
useable_wattage = wattage - (
|
||||||
|
min_tune_wattage + max_other_wattage + min_shutdown_wattage
|
||||||
|
)
|
||||||
|
|
||||||
|
# loop through miners to see how much is actually useable
|
||||||
|
# sort the largest first
|
||||||
|
for miner in sorted(
|
||||||
|
[
|
||||||
|
miner
|
||||||
|
for miner in self.miners.values()
|
||||||
|
if miner["tune"] and miner["shutdown"]
|
||||||
|
],
|
||||||
|
key=lambda x: x["max"],
|
||||||
|
reverse=True,
|
||||||
|
):
|
||||||
|
# add min to useable wattage since it was removed earlier, and remove 1/2 tuner max
|
||||||
|
useable_wattage -= (miner["max"] / 2) - miner["min"]
|
||||||
|
if useable_wattage < 0:
|
||||||
|
useable_wattage += (miner["max"] / 2) - miner["min"]
|
||||||
|
self.miners[str(miner["miner"].ip)]["set"] = "off"
|
||||||
|
|
||||||
|
new_tune_wattage = sum(
|
||||||
|
[
|
||||||
|
miner["min"]
|
||||||
|
for miner in self.miners.values()
|
||||||
|
if miner["tune"] and miner["set"] == "off"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
useable_wattage = wattage - (
|
||||||
|
new_tune_wattage + max_other_wattage + min_shutdown_wattage
|
||||||
|
)
|
||||||
|
useable_miners = len(
|
||||||
|
[m for m in self.miners.values() if (m["set"] == 0) and (m["tune"])]
|
||||||
|
)
|
||||||
|
|
||||||
|
if not useable_miners == 0:
|
||||||
|
watts_per_miner = useable_wattage // useable_miners
|
||||||
|
# loop through and set useable miners to wattage
|
||||||
|
for miner in self.miners:
|
||||||
|
if (self.miners[miner]["set"] == 0) and (
|
||||||
|
self.miners[miner]["tune"]
|
||||||
|
):
|
||||||
|
self.miners[miner]["set"] = watts_per_miner
|
||||||
|
elif self.miners[miner]["set"] == 0 and (
|
||||||
|
self.miners[miner]["shutdown"]
|
||||||
|
):
|
||||||
|
self.miners[miner]["set"] = "on"
|
||||||
|
else:
|
||||||
|
raise APIError(
|
||||||
|
f"Wattage setpoint is too low, setpoint: {wattage}W, min: {min_tune_wattage + min_shutdown_wattage + max_other_wattage}W"
|
||||||
|
) # PhaseBalancingError(f"Wattage setpoint is too low, setpoint: {wattage}W, min: {min_tune_wattage + min_shutdown_wattage + max_other_wattage}W")
|
||||||
|
|
||||||
|
return self.miners
|
||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import ipaddress
|
import ipaddress
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import json
|
import json
|
||||||
@@ -25,7 +27,7 @@ from pyasic.miners._backends import BMMiner # noqa - Ignore access to _module
|
|||||||
from pyasic.settings import PyasicSettings
|
from pyasic.settings import PyasicSettings
|
||||||
|
|
||||||
|
|
||||||
class BMMinerX19(BMMiner):
|
class X19(BMMiner):
|
||||||
def __init__(self, ip: str, api_ver: str = "0.0.0") -> None:
|
def __init__(self, ip: str, api_ver: str = "0.0.0") -> None:
|
||||||
super().__init__(ip, api_ver=api_ver)
|
super().__init__(ip, api_ver=api_ver)
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
@@ -124,6 +126,13 @@ class BMMinerX19(BMMiner):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
|
data = await self.send_web_command("get_network_info")
|
||||||
|
if data:
|
||||||
|
return data["macaddr"]
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
async def get_errors(self) -> List[MinerErrorData]:
|
async def get_errors(self) -> List[MinerErrorData]:
|
||||||
errors = []
|
errors = []
|
||||||
data = await self.send_web_command("summary")
|
data = await self.send_web_command("summary")
|
||||||
@@ -172,3 +181,53 @@ class BMMinerX19(BMMiner):
|
|||||||
return round(ideal_rate, 2)
|
return round(ideal_rate, 2)
|
||||||
except (KeyError, IndexError):
|
except (KeyError, IndexError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
async def set_static_ip(
|
||||||
|
self,
|
||||||
|
ip: str,
|
||||||
|
dns: str,
|
||||||
|
gateway: str,
|
||||||
|
subnet_mask: str = "255.255.255.0",
|
||||||
|
hostname: str = None,
|
||||||
|
):
|
||||||
|
if not hostname:
|
||||||
|
hostname = await self.get_hostname()
|
||||||
|
payload = {
|
||||||
|
"ipAddress": ip,
|
||||||
|
"ipDns": dns,
|
||||||
|
"ipGateway": gateway,
|
||||||
|
"ipHost": hostname,
|
||||||
|
"ipPro": 2, # static
|
||||||
|
"ipSub": subnet_mask,
|
||||||
|
}
|
||||||
|
await self.send_web_command("set_network_conf", params=payload)
|
||||||
|
|
||||||
|
async def set_dhcp(self, hostname: str = None):
|
||||||
|
if not hostname:
|
||||||
|
hostname = await self.get_hostname()
|
||||||
|
payload = {
|
||||||
|
"ipAddress": "",
|
||||||
|
"ipDns": "",
|
||||||
|
"ipGateway": "",
|
||||||
|
"ipHost": hostname,
|
||||||
|
"ipPro": 1, # DHCP
|
||||||
|
"ipSub": "",
|
||||||
|
}
|
||||||
|
await self.send_web_command("set_network_conf", params=payload)
|
||||||
|
|
||||||
|
async def set_hostname(self, hostname: str):
|
||||||
|
cfg = await self.send_web_command("get_network_info")
|
||||||
|
dns = cfg["conf_dnsservers"]
|
||||||
|
gateway = cfg["conf_gateway"]
|
||||||
|
ip = cfg["conf_ipaddress"]
|
||||||
|
subnet_mask = cfg["conf_netmask"]
|
||||||
|
protocol = 1 if cfg["conf_nettype"] == "DHCP" else 2
|
||||||
|
payload = {
|
||||||
|
"ipAddress": ip,
|
||||||
|
"ipDns": dns,
|
||||||
|
"ipGateway": gateway,
|
||||||
|
"ipHost": hostname,
|
||||||
|
"ipPro": protocol,
|
||||||
|
"ipSub": subnet_mask,
|
||||||
|
}
|
||||||
|
await self.send_web_command("set_network_conf", params=payload)
|
||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .bmminer import BMMiner
|
from .bmminer import BMMiner
|
||||||
from .bosminer import BOSMiner
|
from .bosminer import BOSMiner
|
||||||
@@ -18,3 +20,5 @@ from .btminer import BTMiner
|
|||||||
from .cgminer import CGMiner
|
from .cgminer import CGMiner
|
||||||
from .cgminer_avalon import CGMinerAvalon
|
from .cgminer_avalon import CGMinerAvalon
|
||||||
from .hiveon import Hiveon
|
from .hiveon import Hiveon
|
||||||
|
from .vnish import VNish
|
||||||
|
from .X19 import X19
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import ipaddress
|
import ipaddress
|
||||||
import logging
|
import logging
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import ipaddress
|
import ipaddress
|
||||||
import json
|
import json
|
||||||
@@ -196,11 +198,8 @@ class BOSMiner(BaseMiner):
|
|||||||
return self.config
|
return self.config
|
||||||
if conn:
|
if conn:
|
||||||
async with conn:
|
async with conn:
|
||||||
logging.debug(f"{self}: Opening SFTP connection.")
|
# good ol' BBB compatibility :/
|
||||||
async with conn.start_sftp_client() as sftp:
|
toml_data = toml.loads((await conn.run("cat /etc/bosminer.toml")).stdout)
|
||||||
logging.debug(f"{self}: Reading config file.")
|
|
||||||
async with sftp.open("/etc/bosminer.toml") as file:
|
|
||||||
toml_data = toml.loads(await file.read())
|
|
||||||
logging.debug(f"{self}: Converting config file.")
|
logging.debug(f"{self}: Converting config file.")
|
||||||
cfg = MinerConfig().from_raw(toml_data)
|
cfg = MinerConfig().from_raw(toml_data)
|
||||||
self.config = cfg
|
self.config = cfg
|
||||||
@@ -217,6 +216,12 @@ class BOSMiner(BaseMiner):
|
|||||||
except (asyncssh.Error, OSError):
|
except (asyncssh.Error, OSError):
|
||||||
return None
|
return None
|
||||||
async with conn:
|
async with conn:
|
||||||
|
# BBB check because bitmain suxx
|
||||||
|
bbb_check = await conn.run("if [ ! -f /etc/init.d/bosminer ]; then echo '1'; else echo '0'; fi;")
|
||||||
|
|
||||||
|
bbb = bbb_check.stdout.strip() == "1"
|
||||||
|
|
||||||
|
if not bbb:
|
||||||
await conn.run("/etc/init.d/bosminer stop")
|
await conn.run("/etc/init.d/bosminer stop")
|
||||||
logging.debug(f"{self}: Opening SFTP connection.")
|
logging.debug(f"{self}: Opening SFTP connection.")
|
||||||
async with conn.start_sftp_client() as sftp:
|
async with conn.start_sftp_client() as sftp:
|
||||||
@@ -226,6 +231,14 @@ class BOSMiner(BaseMiner):
|
|||||||
logging.debug(f"{self}: Restarting BOSMiner")
|
logging.debug(f"{self}: Restarting BOSMiner")
|
||||||
await conn.run("/etc/init.d/bosminer start")
|
await conn.run("/etc/init.d/bosminer start")
|
||||||
|
|
||||||
|
# I really hate BBB, please get rid of it if you have it
|
||||||
|
else:
|
||||||
|
await conn.run("/etc/init.d/S99bosminer stop")
|
||||||
|
logging.debug(f"{self}: BBB sending config")
|
||||||
|
await conn.run("echo '" + toml_conf + "' > /etc/bosminer.toml")
|
||||||
|
logging.debug(f"{self}: BBB restarting bosminer.")
|
||||||
|
await conn.run("/etc/init.d/S99bosminer start")
|
||||||
|
|
||||||
async def set_power_limit(self, wattage: int) -> bool:
|
async def set_power_limit(self, wattage: int) -> bool:
|
||||||
try:
|
try:
|
||||||
cfg = await self.get_config()
|
cfg = await self.get_config()
|
||||||
@@ -481,10 +494,9 @@ class BOSMiner(BaseMiner):
|
|||||||
api_devs = d["devs"][0]
|
api_devs = d["devs"][0]
|
||||||
except (KeyError, IndexError):
|
except (KeyError, IndexError):
|
||||||
api_devs = None
|
api_devs = None
|
||||||
|
|
||||||
if api_temps:
|
if api_temps:
|
||||||
try:
|
try:
|
||||||
offset = 6 if api_temps["TEMPS"][0]["ID"] in [6, 7, 8] else 0
|
offset = 6 if api_temps["TEMPS"][0]["ID"] in [6, 7, 8] else 1
|
||||||
|
|
||||||
for board in api_temps["TEMPS"]:
|
for board in api_temps["TEMPS"]:
|
||||||
_id = board["ID"] - offset
|
_id = board["ID"] - offset
|
||||||
@@ -497,7 +509,7 @@ class BOSMiner(BaseMiner):
|
|||||||
|
|
||||||
if api_devdetails:
|
if api_devdetails:
|
||||||
try:
|
try:
|
||||||
offset = 6 if api_devdetails["DEVDETAILS"][0]["ID"] in [6, 7, 8] else 0
|
offset = 6 if api_devdetails["DEVDETAILS"][0]["ID"] in [6, 7, 8] else 1
|
||||||
|
|
||||||
for board in api_devdetails["DEVDETAILS"]:
|
for board in api_devdetails["DEVDETAILS"]:
|
||||||
_id = board["ID"] - offset
|
_id = board["ID"] - offset
|
||||||
@@ -509,7 +521,7 @@ class BOSMiner(BaseMiner):
|
|||||||
|
|
||||||
if api_devs:
|
if api_devs:
|
||||||
try:
|
try:
|
||||||
offset = 6 if api_devs["DEVS"][0]["ID"] in [6, 7, 8] else 0
|
offset = 6 if api_devs["DEVS"][0]["ID"] in [6, 7, 8] else 1
|
||||||
|
|
||||||
for board in api_devs["DEVS"]:
|
for board in api_devs["DEVS"]:
|
||||||
_id = board["ID"] - offset
|
_id = board["ID"] - offset
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import ipaddress
|
import ipaddress
|
||||||
import logging
|
import logging
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import ipaddress
|
import ipaddress
|
||||||
import logging
|
import logging
|
||||||
@@ -548,3 +550,25 @@ class BTMiner(BaseMiner):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
return self.light if self.light else False
|
return self.light if self.light else False
|
||||||
|
|
||||||
|
async def set_static_ip(
|
||||||
|
self,
|
||||||
|
ip: str,
|
||||||
|
dns: str,
|
||||||
|
gateway: str,
|
||||||
|
subnet_mask: str = "255.255.255.0",
|
||||||
|
hostname: str = None,
|
||||||
|
):
|
||||||
|
if not hostname:
|
||||||
|
hostname = await self.get_hostname()
|
||||||
|
await self.api.net_config(
|
||||||
|
ip=ip, mask=subnet_mask, dns=dns, gate=gateway, host=hostname, dhcp=False
|
||||||
|
)
|
||||||
|
|
||||||
|
async def set_dhcp(self, hostname: str = None):
|
||||||
|
if hostname:
|
||||||
|
await self.set_hostname(hostname)
|
||||||
|
await self.api.net_config()
|
||||||
|
|
||||||
|
async def set_hostname(self, hostname: str):
|
||||||
|
await self.api.set_hostname(hostname)
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import ipaddress
|
import ipaddress
|
||||||
import logging
|
import logging
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import ipaddress
|
import ipaddress
|
||||||
import logging
|
import logging
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import ipaddress
|
import ipaddress
|
||||||
|
|
||||||
|
|||||||
218
pyasic/miners/_backends/vnish.py
Normal file
218
pyasic/miners/_backends/vnish.py
Normal file
@@ -0,0 +1,218 @@
|
|||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# 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. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
import warnings
|
||||||
|
from typing import Optional, Union
|
||||||
|
|
||||||
|
import httpx
|
||||||
|
|
||||||
|
from pyasic.errors import APIError
|
||||||
|
from pyasic.miners._backends.bmminer import BMMiner
|
||||||
|
from pyasic.settings import PyasicSettings
|
||||||
|
|
||||||
|
|
||||||
|
class VNish(BMMiner):
|
||||||
|
def __init__(self, ip: str, api_ver: str = "0.0.0") -> None:
|
||||||
|
super().__init__(ip, api_ver)
|
||||||
|
self.api_type = "VNish"
|
||||||
|
self.uname = "root"
|
||||||
|
self.pwd = PyasicSettings().global_vnish_password
|
||||||
|
self.jwt = None
|
||||||
|
|
||||||
|
async def auth(self):
|
||||||
|
async with httpx.AsyncClient() as client:
|
||||||
|
try:
|
||||||
|
auth = await client.post(
|
||||||
|
f"http://{self.ip}/api/v1/unlock",
|
||||||
|
json={"pw": self.pwd},
|
||||||
|
)
|
||||||
|
except httpx.HTTPError:
|
||||||
|
warnings.warn(f"Could not authenticate web token with miner: {self}")
|
||||||
|
else:
|
||||||
|
if not auth.status_code == 200:
|
||||||
|
warnings.warn(
|
||||||
|
f"Could not authenticate web token with miner: {self}"
|
||||||
|
)
|
||||||
|
return None
|
||||||
|
json_auth = auth.json()
|
||||||
|
self.jwt = json_auth["token"]
|
||||||
|
return self.jwt
|
||||||
|
|
||||||
|
async def send_web_command(
|
||||||
|
self, command: str, data: Union[dict, None] = None, method: str = "GET"
|
||||||
|
):
|
||||||
|
if not self.jwt:
|
||||||
|
await self.auth()
|
||||||
|
if not data:
|
||||||
|
data = {}
|
||||||
|
async with httpx.AsyncClient() as client:
|
||||||
|
for i in range(PyasicSettings().miner_get_data_retries):
|
||||||
|
try:
|
||||||
|
auth = self.jwt
|
||||||
|
if command.startswith("system"):
|
||||||
|
auth = "Bearer " + self.jwt
|
||||||
|
if method == "GET":
|
||||||
|
response = await client.get(
|
||||||
|
f"http://{self.ip}/api/v1/{command}",
|
||||||
|
headers={"Authorization": auth},
|
||||||
|
timeout=5,
|
||||||
|
)
|
||||||
|
elif method == "POST":
|
||||||
|
if data:
|
||||||
|
response = await client.post(
|
||||||
|
f"http://{self.ip}/api/v1/{command}",
|
||||||
|
headers={"Authorization": auth},
|
||||||
|
timeout=5,
|
||||||
|
json=data,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
response = await client.post(
|
||||||
|
f"http://{self.ip}/api/v1/{command}",
|
||||||
|
headers={"Authorization": auth},
|
||||||
|
timeout=5,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
raise APIError("Bad method type.")
|
||||||
|
if not response.status_code == 200:
|
||||||
|
# refresh the token, retry
|
||||||
|
await self.auth()
|
||||||
|
continue
|
||||||
|
json_data = response.json()
|
||||||
|
if json_data:
|
||||||
|
return json_data
|
||||||
|
return True
|
||||||
|
except httpx.HTTPError:
|
||||||
|
pass
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
async def get_model(self, api_stats: dict = None) -> Optional[str]:
|
||||||
|
# check if model is cached
|
||||||
|
if self.model:
|
||||||
|
logging.debug(f"Found model for {self.ip}: {self.model} (VNish)")
|
||||||
|
return self.model + " (VNish)"
|
||||||
|
|
||||||
|
if not api_stats:
|
||||||
|
try:
|
||||||
|
api_stats = await self.api.stats()
|
||||||
|
except APIError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if api_stats:
|
||||||
|
try:
|
||||||
|
m_type = api_stats["STATS"][0]["Type"]
|
||||||
|
self.model = m_type.split(" ")[1]
|
||||||
|
return self.model
|
||||||
|
except (KeyError, IndexError):
|
||||||
|
pass
|
||||||
|
|
||||||
|
async def restart_backend(self) -> bool:
|
||||||
|
data = await self.send_web_command("mining/restart", method="POST")
|
||||||
|
return data
|
||||||
|
|
||||||
|
async def reboot(self) -> bool:
|
||||||
|
data = await self.send_web_command("system/reboot", method="POST")
|
||||||
|
return data
|
||||||
|
|
||||||
|
async def get_mac(self, web_summary: dict = None) -> str:
|
||||||
|
if not web_summary:
|
||||||
|
web_info = await self.send_web_command("info")
|
||||||
|
|
||||||
|
if web_info:
|
||||||
|
try:
|
||||||
|
mac = web_info["system"]["network_status"]["mac"]
|
||||||
|
return mac
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if web_summary:
|
||||||
|
try:
|
||||||
|
mac = web_summary["system"]["network_status"]["mac"]
|
||||||
|
return mac
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
async def get_hostname(self, web_summary: dict = None) -> str:
|
||||||
|
if not web_summary:
|
||||||
|
web_info = await self.send_web_command("info")
|
||||||
|
|
||||||
|
if web_info:
|
||||||
|
try:
|
||||||
|
hostname = web_info["system"]["network_status"]["hostname"]
|
||||||
|
return hostname
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if web_summary:
|
||||||
|
try:
|
||||||
|
hostname = web_summary["system"]["network_status"]["hostname"]
|
||||||
|
return hostname
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
async def get_wattage(self, web_summary: dict = None) -> Optional[int]:
|
||||||
|
if not web_summary:
|
||||||
|
web_summary = await self.send_web_command("summary")
|
||||||
|
|
||||||
|
if web_summary:
|
||||||
|
try:
|
||||||
|
wattage = web_summary["miner"]["power_usage"]
|
||||||
|
wattage = round(wattage * 1000)
|
||||||
|
return wattage
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
async def get_hashrate(self, api_summary: dict = None) -> Optional[float]:
|
||||||
|
# get hr from API
|
||||||
|
if not api_summary:
|
||||||
|
try:
|
||||||
|
api_summary = await self.api.summary()
|
||||||
|
except APIError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if api_summary:
|
||||||
|
try:
|
||||||
|
return round(
|
||||||
|
float(float(api_summary["SUMMARY"][0]["GHS 5s"]) / 1000), 2
|
||||||
|
)
|
||||||
|
except (IndexError, KeyError, ValueError, TypeError) as e:
|
||||||
|
print(e)
|
||||||
|
pass
|
||||||
|
|
||||||
|
async def get_wattage_limit(self, web_settings: dict = None) -> Optional[int]:
|
||||||
|
if not web_settings:
|
||||||
|
web_settings = await self.send_web_command("summary")
|
||||||
|
|
||||||
|
if web_settings:
|
||||||
|
try:
|
||||||
|
wattage_limit = web_settings["miner"]["overclock"]["preset"]
|
||||||
|
return int(wattage_limit)
|
||||||
|
except (KeyError, TypeError):
|
||||||
|
pass
|
||||||
|
|
||||||
|
async def get_fw_ver(self, web_summary: dict = None) -> Optional[str]:
|
||||||
|
if not web_summary:
|
||||||
|
web_summary = await self.send_web_command("summary")
|
||||||
|
|
||||||
|
if web_summary:
|
||||||
|
try:
|
||||||
|
fw_ver = web_summary["miner"]["miner_type"]
|
||||||
|
fw_ver = fw_ver.split("(Vnish ")[1].replace(")", "")
|
||||||
|
return fw_ver
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .antminer import *
|
from .antminer import *
|
||||||
from .avalonminer import *
|
from .avalonminer import *
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .S17 import S17
|
from .S17 import S17
|
||||||
from .S17_Plus import S17Plus
|
from .S17_Plus import S17Plus
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .S19 import S19
|
from .S19 import S19
|
||||||
from .S19_Pro import S19Pro
|
from .S19_Pro import S19Pro
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AntMiner
|
from pyasic.miners._types.makes import AntMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .S9 import S9
|
from .S9 import S9
|
||||||
from .S9i import S9i
|
from .S9i import S9i
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .X9 import *
|
from .X9 import *
|
||||||
from .X17 import *
|
from .X17 import *
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AvalonMiner
|
from pyasic.miners._types.makes import AvalonMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AvalonMiner
|
from pyasic.miners._types.makes import AvalonMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AvalonMiner
|
from pyasic.miners._types.makes import AvalonMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .A1026 import Avalon1026
|
from .A1026 import Avalon1026
|
||||||
from .A1047 import Avalon1047
|
from .A1047 import Avalon1047
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AvalonMiner
|
from pyasic.miners._types.makes import AvalonMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AvalonMiner
|
from pyasic.miners._types.makes import AvalonMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AvalonMiner
|
from pyasic.miners._types.makes import AvalonMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .A721 import Avalon721
|
from .A721 import Avalon721
|
||||||
from .A741 import Avalon741
|
from .A741 import Avalon741
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AvalonMiner
|
from pyasic.miners._types.makes import AvalonMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AvalonMiner
|
from pyasic.miners._types.makes import AvalonMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AvalonMiner
|
from pyasic.miners._types.makes import AvalonMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .A821 import Avalon821
|
from .A821 import Avalon821
|
||||||
from .A841 import Avalon841
|
from .A841 import Avalon841
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import AvalonMiner
|
from pyasic.miners._types.makes import AvalonMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .A921 import Avalon921
|
from .A921 import Avalon921
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .A7X import *
|
from .A7X import *
|
||||||
from .A8X import *
|
from .A8X import *
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import InnosiliconMiner
|
from pyasic.miners._types.makes import InnosiliconMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .T3H_Plus import InnosiliconT3HPlus
|
from .T3H_Plus import InnosiliconT3HPlus
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .T3X import *
|
from .T3X import *
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.base import BaseMiner
|
from pyasic.miners.base import BaseMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import WhatsMiner
|
from pyasic.miners._types.makes import WhatsMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .M20 import M20V10
|
from .M20 import M20V10
|
||||||
from .M20S import M20SV10, M20SV20, M20SV30
|
from .M20S import M20SV10, M20SV20, M20SV30
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
@@ -172,10 +174,7 @@ class M30SPlusPlusVH50(WhatsMiner): # noqa - ignore ABC method implementation
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
self.model = "M30S++ VH50"
|
self.model = "M30S++ VH50"
|
||||||
self.nominal_chips = 0
|
self.nominal_chips = 74
|
||||||
warnings.warn(
|
|
||||||
"Unknown chip count for miner type M30S++ VH50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
|
||||||
)
|
|
||||||
self.fan_count = 2
|
self.fan_count = 2
|
||||||
|
|
||||||
|
|
||||||
@@ -193,10 +192,7 @@ class M30SPlusPlusVH70(WhatsMiner): # noqa - ignore ABC method implementation
|
|||||||
super().__init__()
|
super().__init__()
|
||||||
self.ip = ip
|
self.ip = ip
|
||||||
self.model = "M30S++ VH70"
|
self.model = "M30S++ VH70"
|
||||||
self.nominal_chips = 0
|
self.nominal_chips = 70
|
||||||
warnings.warn(
|
|
||||||
"Unknown chip count for miner type M30S++ VH70, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
|
||||||
)
|
|
||||||
self.fan_count = 2
|
self.fan_count = 2
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import WhatsMiner
|
from pyasic.miners._types.makes import WhatsMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners._types.makes import WhatsMiner
|
from pyasic.miners._types.makes import WhatsMiner
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from .M30 import M30V10, M30V20
|
from .M30 import M30V10, M30V20
|
||||||
from .M30S import (
|
from .M30S import (
|
||||||
|
|||||||
@@ -1,16 +1,18 @@
|
|||||||
# Copyright 2022 Upstream Data Inc
|
# ------------------------------------------------------------------------------
|
||||||
#
|
# 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.
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
# You may obtain a copy of the License at
|
# 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
|
# -
|
||||||
#
|
# 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,
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
# See the License for the specific language governing permissions and
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
# limitations under the License.
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
import warnings
|
import warnings
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user