Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 1 addition & 8 deletions neurons/validator.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,19 +72,12 @@ def __init__(self, config=None):
self.load_state()

self.miner_data_handler = MinerDataHandler()
self.price_data_provider = PriceDataProvider()
self.price_data_provider = PriceDataProvider(self.asset_list)

self.scheduler = sched.scheduler(time.time, time.sleep)
self.miner_uids: list[int] = []
HIGH_FREQUENCY.softmax_beta = self.config.softmax.beta

self.assert_assets_supported()

def assert_assets_supported(self):
# Assert assets are all implemented in the price data provider:
for asset in self.asset_list:
assert asset in PriceDataProvider.TOKEN_MAP

def forward_validator(self):
"""
Validator forward pass. Consists of:
Expand Down
5 changes: 1 addition & 4 deletions synth/base/dendrite.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import sys
import traceback
from typing import List, Optional, Tuple, Type, Union
import time
import asyncio
Expand Down Expand Up @@ -268,5 +266,4 @@ def log_exception(exception: Exception):
# bt.logging.trace(f"{error_type}#{error_id}: {exception}")
pass
else:
bt.logging.error(f"{error_type}#{error_id}: {exception}")
traceback.print_exc(file=sys.stderr)
bt.logging.exception(f"{error_type}#{error_id}: {exception}")
3 changes: 1 addition & 2 deletions synth/base/miner.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import asyncio
import threading
import argparse
import traceback

import bittensor as bt

Expand Down Expand Up @@ -138,7 +137,7 @@ def run(self):

# In case of unforeseen errors, the miner will log the error and continue operations.
except Exception:
bt.logging.error(traceback.format_exc())
bt.logging.exception("Unknown error")

def run_in_background_thread(self):
"""
Expand Down
6 changes: 1 addition & 5 deletions synth/base/validator.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
# DEALINGS IN THE SOFTWARE.


import sys
import copy
import numpy as np
import asyncio
Expand All @@ -27,7 +26,6 @@
import bittensor as bt

from typing import List, Union
import traceback

from synth.base.dendrite import SynthDendrite
from synth.base.neuron import BaseNeuron
Expand Down Expand Up @@ -132,13 +130,11 @@ def run(self):
if not self.config.neuron.axon_off:
self.axon.stop()
bt.logging.success("Validator killed by keyboard interrupt.")
traceback.print_exc(file=sys.stderr)
exit()

# In case of unforeseen errors, the validator will log the error and continue operations.
except Exception as err:
bt.logging.error(f"Error during validation: {str(err)}")
traceback.print_exc(file=sys.stderr)
bt.logging.exception(f"Error during validation: {str(err)}")

def set_weights(self):
"""
Expand Down
44 changes: 18 additions & 26 deletions synth/validator/miner_data_handler.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
from datetime import datetime, timedelta
import traceback
import sys
import typing
import logging
import math
Expand Down Expand Up @@ -102,8 +100,7 @@ def get_latest_asset(self, time_length: int) -> str | None:

return str(result[0].asset)
except Exception as e:
bt.logging.error(f"in get_next_asset (got an exception): {e}")
traceback.print_exc(file=sys.stderr)
bt.logging.exception(f"in get_next_asset (got an exception): {e}")
return None

@retry(
Expand Down Expand Up @@ -180,8 +177,7 @@ def save_responses(
connection.execute(insert_stmt_miner_predictions)
return validator_requests_id # TODO: finish this: refactor to add the validator_requests_id in the score and reward table
except Exception as e:
bt.logging.error(f"in save_responses (got an exception): {e}")
traceback.print_exc(file=sys.stderr)
bt.logging.exception(f"in save_responses (got an exception): {e}")

@retry(
stop=stop_after_attempt(5),
Expand Down Expand Up @@ -260,8 +256,9 @@ def set_miner_scores(
)
connection.execute(insert_stmt_miner_scores)
except Exception as e:
bt.logging.error(f"in set_miner_scores (got an exception): {e}")
traceback.print_exc(file=sys.stderr)
bt.logging.exception(
f"in set_miner_scores (got an exception): {e}"
)

def get_miner_uid_of_prediction_request(
self, validator_request_id: int
Expand Down Expand Up @@ -291,10 +288,9 @@ def get_miner_uid_of_prediction_request(

return result
except Exception as e:
bt.logging.error(
bt.logging.exception(
f"in get_miner_uid_of_prediction_request (got an exception): {e}"
)
traceback.print_exc(file=sys.stderr)
return None

def get_miner_prediction(
Expand Down Expand Up @@ -333,10 +329,9 @@ def get_miner_prediction(

return result
except Exception as e:
bt.logging.error(
bt.logging.exception(
f"in get_miner_prediction (got an exception): {e}"
)
traceback.print_exc(file=sys.stderr)
return None

def get_validator_requests_to_score(
Expand Down Expand Up @@ -418,10 +413,9 @@ def get_validator_requests_to_score(

return results
except Exception as e:
bt.logging.error(
bt.logging.exception(
f"in get_latest_prediction_request (got an exception): {e}"
)
traceback.print_exc(file=sys.stderr)
return None

@retry(
Expand Down Expand Up @@ -456,8 +450,9 @@ def insert_new_miners(self, metagraph_info: list):
)
connection.execute(insert_stmt)
except Exception as e:
bt.logging.error(f"in insert_new_miners (got an exception): {e}")
traceback.print_exc(file=sys.stderr)
bt.logging.exception(
f"in insert_new_miners (got an exception): {e}"
)

def update_metagraph_history(self, metagraph_info: list):
try:
Expand All @@ -468,10 +463,9 @@ def update_metagraph_history(self, metagraph_info: list):
)
connection.execute(insert_stmt)
except Exception as e:
bt.logging.error(
bt.logging.exception(
f"in update_metagraph_history (got an exception): {e}"
)
traceback.print_exc(file=sys.stderr)

def get_miner_scores(
self,
Expand Down Expand Up @@ -515,8 +509,9 @@ def get_miner_scores(

return pd.DataFrame(result.fetchall(), columns=list(result.keys()))
except Exception as e:
bt.logging.error(f"in get_miner_scores (got an exception): {e}")
traceback.print_exc(file=sys.stderr)
bt.logging.exception(
f"in get_miner_scores (got an exception): {e}"
)
return pd.DataFrame()

def populate_miner_uid_in_miner_data(self, miner_data: list[dict]):
Expand All @@ -525,10 +520,9 @@ def populate_miner_uid_in_miner_data(self, miner_data: list[dict]):
with connection.begin():
miner_uid_map = self.get_miner_ids_map(connection)
except Exception as e:
bt.logging.error(
bt.logging.exception(
f"in populate_miner_uid_in_miner_data (got an exception): {e}"
)
traceback.print_exc(file=sys.stderr)
return None

for row in miner_data:
Expand All @@ -554,10 +548,9 @@ def update_miner_rewards(self, miner_rewards_data: list[dict]):
)
connection.execute(insert_stmt)
except Exception as e:
bt.logging.error(
bt.logging.exception(
f"in update_miner_rewards (got an exception): {e}"
)
traceback.print_exc(file=sys.stderr)

def update_weights_history(
self,
Expand Down Expand Up @@ -585,7 +578,6 @@ def update_weights_history(
)
connection.execute(insert_stmt)
except Exception as e:
bt.logging.error(
bt.logging.exception(
f"in update_weights_history (got an exception): {e}"
)
traceback.print_exc(file=sys.stderr)
8 changes: 8 additions & 0 deletions synth/validator/price_data_provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@ class PriceDataProvider:
"SOL": "Crypto.SOL/USD",
}

def __init__(self, asset_list: list[str] = []):
self.assert_assets_supported(asset_list)

def assert_assets_supported(self, asset_list: list[str]):
# Assert assets are all implemented in the price data provider:
for asset in asset_list:
assert asset in self.TOKEN_MAP

@retry(
stop=stop_after_attempt(5),
wait=wait_random_exponential(multiplier=7),
Expand Down