Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
ab332a4
updated miner_predictions table and code for it
parkhomenko Dec 31, 2024
79ae4f3
added new miner_scores table
parkhomenko Dec 31, 2024
23a67da
updated get_values method
parkhomenko Dec 31, 2024
78f540d
updated code for validator according to the new data model
parkhomenko Dec 31, 2024
8374699
temporarily stopped saving responses from miners
parkhomenko Jan 2, 2025
c78f679
fixed error in the get_latest_prediction query
parkhomenko Jan 2, 2025
0faead8
returned back miner_predictions updates
parkhomenko Jan 2, 2025
fd42811
reworked database schema
parkhomenko Jan 3, 2025
f285279
udpated database model
parkhomenko Jan 3, 2025
652aaf6
removed unused import
parkhomenko Jan 3, 2025
c58f123
subnet api fixes
parkhomenko Jan 3, 2025
dacb939
increased validator running check
parkhomenko Jan 4, 2025
8e6aff8
added config to bt.wallet
parkhomenko Jan 6, 2025
f49ba89
specified the wallet name
parkhomenko Jan 6, 2025
2adc31a
wallet fixes
parkhomenko Jan 6, 2025
ccc1779
wallet fixes
parkhomenko Jan 6, 2025
ab29253
fixed the network name
parkhomenko Jan 6, 2025
e241e54
logs
parkhomenko Jan 6, 2025
c6e9f4f
added logs for metagraph
parkhomenko Jan 7, 2025
bca8c2e
added logs
parkhomenko Jan 7, 2025
3b7f017
added metagraph_history table
parkhomenko Jan 7, 2025
f633307
fixed numpy float issue
parkhomenko Jan 7, 2025
8fd6e13
added custom moving_average calculation
parkhomenko Jan 8, 2025
8b5adf0
fixed timeformat error
parkhomenko Jan 8, 2025
6bf6484
logging
parkhomenko Jan 8, 2025
5a68d15
disabled saving in the db
parkhomenko Jan 8, 2025
93eb81a
added logging
parkhomenko Jan 8, 2025
4515d87
returned rewards calculation
parkhomenko Jan 8, 2025
6ce9711
added updated_at column
parkhomenko Jan 8, 2025
67d3478
database schema adjustments
parkhomenko Jan 8, 2025
436ec37
updated code with black formatter
parkhomenko Jan 10, 2025
faa48f6
Merge branch 'main' into validator-db-updates
parkhomenko Jan 10, 2025
502124d
fixed unit tests
parkhomenko Jan 11, 2025
5d5093b
fixed formatting
parkhomenko Jan 11, 2025
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
4 changes: 2 additions & 2 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ jobs:
run: |
black --line-length 79 --exclude '(env|venv|.eggs|.git)' --check .

# - name: Run unit tests
# run: python -m unittest discover tests
- name: Run unit tests
run: pytest ./tests/
37 changes: 37 additions & 0 deletions alembic/versions/11691bf7d981_add_validator_requests_table.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
"""add validator_requests table

Revision ID: 11691bf7d981
Revises: 09dc2532fe57
Create Date: 2024-12-31 17:10:42.389003

"""

from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = "11691bf7d981"
down_revision: Union[str, None] = "09dc2532fe57"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
op.create_table(
"validator_requests",
sa.Column("id", sa.BigInteger, primary_key=True),
sa.Column("start_time", sa.DateTime(timezone=True), nullable=False),
sa.Column("asset", sa.String, nullable=True),
sa.Column("time_increment", sa.Integer, nullable=True),
sa.Column("time_length", sa.Integer, nullable=True),
sa.Column("num_simulations", sa.Integer, nullable=True),
)
op.create_index("ix_start_time", "validator_requests", ["start_time"])


def downgrade() -> None:
op.drop_index("ix_start_time", table_name="validator_requests")
op.drop_table("validator_requests")
51 changes: 51 additions & 0 deletions alembic/versions/64c3f718c191_create_metagraph_hisotry_table.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
"""create metagraph_hisotry table

Revision ID: 64c3f718c191
Revises: f45a0fe27a22
Create Date: 2025-01-07 14:54:29.448230

"""

from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = "64c3f718c191"
down_revision: Union[str, None] = "f45a0fe27a22"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
op.create_table(
"metagraph_history",
sa.Column("id", sa.BigInteger, primary_key=True, nullable=False),
sa.Column("neuron_uid", sa.Integer, nullable=False),
sa.Column("incentive", sa.Float, nullable=True),
sa.Column("rank", sa.Float, nullable=True),
sa.Column("stake", sa.Float, nullable=True),
sa.Column("trust", sa.Float, nullable=True),
sa.Column("emission", sa.Float, nullable=True),
sa.Column("coldkey", sa.String, nullable=True),
sa.Column("hotkey", sa.String, nullable=True),
sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False),
)
op.create_index(
"ix_metagraph_history_updated_at", "metagraph_history", ["updated_at"]
)
op.create_index(
"ix_metagraph_history_neuron_uid", "metagraph_history", ["neuron_uid"]
)


def downgrade() -> None:
op.drop_index(
"ix_metagraph_history_neuron_uid", table_name="metagraph_history"
)
op.drop_index(
"ix_metagraph_history_updated_at", table_name="metagraph_history"
)
op.drop_table("metagraph_history")
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
"""add scored_time to miner_scores table

Revision ID: 6778da854170
Revises: a9177927599a
Create Date: 2025-01-03 19:31:06.787524

"""

from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = "6778da854170"
down_revision: Union[str, None] = "a9177927599a"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
op.add_column(
"miner_scores",
sa.Column("scored_time", sa.DateTime(timezone=True), nullable=True),
)
op.create_index(
"ix_miner_scores_scored_time", "miner_scores", ["scored_time"]
)


def downgrade() -> None:
op.drop_index("ix_miner_scores_scored_time", table_name="miner_scores")
op.drop_column("miner_scores", "scored_time")
68 changes: 68 additions & 0 deletions alembic/versions/7eeae448469e_create_miner_rewards_table.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
"""create miner_rewards table

Revision ID: 7eeae448469e
Revises: 64c3f718c191
Create Date: 2025-01-08 13:01:03.520594

"""

from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects.postgresql import JSONB, JSON


# revision identifiers, used by Alembic.
revision: str = "7eeae448469e"
down_revision: Union[str, None] = "64c3f718c191"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
# remove old table
op.drop_index(
"ix_miner_rewards_validation_time", table_name="miner_rewards"
)
op.drop_index("ix_miner_rewards_miner_uid", table_name="miner_rewards")
op.drop_table("miner_rewards")

# create new table
op.create_table(
"miner_rewards",
sa.Column("id", sa.BigInteger, primary_key=True, nullable=False),
sa.Column("miner_uid", sa.Integer, nullable=False),
sa.Column("smoothed_score", sa.Float, nullable=False),
sa.Column("reward_weight", sa.Float, nullable=False),
sa.Column("updated_at", sa.DateTime(timezone=True), nullable=False),
)
op.create_index(
"ix_miner_rewards_updated_at", "miner_rewards", ["updated_at"]
)
op.create_index(
"ix_miner_rewards_miner_uid", "miner_rewards", ["miner_uid"]
)


def downgrade() -> None:
op.drop_index("ix_miner_rewards_miner_uid", table_name="miner_rewards")
op.drop_index("ix_miner_rewards_updated_at", table_name="miner_rewards")
op.drop_table("miner_rewards")

op.create_table(
"miner_rewards",
sa.Column("id", sa.BigInteger, primary_key=True, nullable=False),
sa.Column("miner_uid", sa.Integer, nullable=False),
sa.Column("scored_time", sa.TIMESTAMP(timezone=True), nullable=False),
sa.Column("reward_details", JSONB, nullable=False),
sa.Column("reward", sa.Float, nullable=True),
sa.Column("real_prices", JSON, nullable=True),
sa.Column("prediction", JSON, nullable=True),
)
op.create_index(
"ix_miner_rewards_scored_time", "miner_rewards", ["scored_time"]
)
op.create_index(
"ix_miner_rewards_miner_uid", "miner_rewards", ["miner_uid"]
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
"""create new miner_predictions table

Revision ID: 9425131da02a
Revises: 9468ab71357e
Create Date: 2024-12-31 18:12:53.722356

"""

from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects.postgresql import JSON


# revision identifiers, used by Alembic.
revision: str = "9425131da02a"
down_revision: Union[str, None] = "9468ab71357e"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
op.create_table(
"miner_predictions",
sa.Column("id", sa.BigInteger, primary_key=True),
sa.Column("validator_requests_id", sa.BigInteger, nullable=False),
sa.Column("miner_uid", sa.Integer, nullable=False),
sa.Column("prediction", JSON, nullable=False),
)
op.create_foreign_key(
constraint_name="fk_miner_predictions_validator_requests_id",
source_table="miner_predictions",
referent_table="validator_requests",
local_cols=["validator_requests_id"],
remote_cols=["id"],
ondelete="RESTRICT",
)


def downgrade() -> None:
op.drop_constraint(
"fk_miner_predictions_validator_requests_id",
"miner_predictions",
type_="foreignkey",
)
op.drop_table("miner_predictions")
33 changes: 33 additions & 0 deletions alembic/versions/9468ab71357e_rename_tables_and_columns.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
"""rename tables and columns

Revision ID: 9468ab71357e
Revises: 11691bf7d981
Create Date: 2024-12-31 17:56:40.448935

"""

from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = "9468ab71357e"
down_revision: Union[str, None] = "11691bf7d981"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
op.rename_table("miner_predictions", "miner_predictions_old")
op.alter_column(
"miner_rewards", "start_time", new_column_name="scored_time"
)


def downgrade() -> None:
op.alter_column(
"miner_rewards", "scored_time", new_column_name="start_time"
)
op.rename_table("miner_predictions_old", "miner_predictions")
33 changes: 33 additions & 0 deletions alembic/versions/a1ced3e8532d_miner_scores_column_renaming.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
"""miner_scores column renaming

Revision ID: a1ced3e8532d
Revises: 7eeae448469e
Create Date: 2025-01-08 18:19:58.848962

"""

from typing import Sequence, Union

from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision: str = "a1ced3e8532d"
down_revision: Union[str, None] = "7eeae448469e"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
op.alter_column("miner_scores", "reward", new_column_name="prompt_score")
op.alter_column(
"miner_scores", "reward_details", new_column_name="score_details"
)


def downgrade() -> None:
op.alter_column(
"miner_scores", "score_details", new_column_name="reward_details"
)
op.alter_column("miner_scores", "prompt_score", new_column_name="reward")
Loading
Loading