Skip to content
This repository was archived by the owner on Sep 1, 2024. It is now read-only.

Commit

Permalink
fix: conflict issue on insight_api
Browse files Browse the repository at this point in the history
  • Loading branch information
renesweet24 committed Jun 4, 2024
1 parent b698b73 commit 82f1f39
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 31 deletions.
2 changes: 1 addition & 1 deletion insights/api/insight_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import yaml

import numpy as np
from typing import List, Dict, Tuple, Union, Any
from protocols.chat import ChatMessageRequest, ChatMessageResponse, ChatMessageVariantRequest, ContentType
from fastapi.middleware.cors import CORSMiddleware
from starlette.requests import Request
Expand Down Expand Up @@ -154,7 +155,6 @@ def __init__(
wallet: None,
subtensor: None,
metagraph: None,
scores: None,
):
"""
API can be invoked while running a validator.
Expand Down
61 changes: 31 additions & 30 deletions neurons/validators/utils/uids.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,11 @@ def check_uid_availability(
# Available otherwise.
return True

def get_top_miner_uids(
metagraph: "bt.metagraph.Metagraph", top_rate: float = 1, exclude: List[int] = None, vpermit_tao_limit: int = 4096
) -> np.int64:
async def get_top_miner_uids(metagraph: "bt.metagraph.Metagraph",
wallet: "bt.wallet.Wallet",
top_rate: float = 1,
vpermit_tao_limit: int = 4096) -> np.int64:

"""Returns the available top miner UID from the metagraph.
Args:
metagraph (bt.metagraph.Metagraph): Metagraph object
Expand All @@ -52,41 +54,40 @@ def get_top_miner_uids(
"""

dendrite = bt.dendrite(wallet=wallet)
try:
miner_candidate_uids = []
for uid in range(metagraph.n.item()):
uid_is_available = check_uid_availability(
metagraph, uid, vpermit_tao_limit
)

if uid_is_available:
miner_candidate_uids.append(uid)

miner_healthy_uids, _ = await ping_uids(dendrite, metagraph, miner_candidate_uids)

ips = []
miner_ip_filtered_uids = []
for uid in miner_healthy_uids:
if metagraph.axons[uid].ip not in ips:
ips.append(metagraph.axons[uid].ip)
miner_ip_filtered_uids.append(uid)
miner_candidate_uids = []
for uid in range(metagraph.n.item()):
uid_is_available = check_uid_availability(
metagraph, uid, vpermit_tao_limit
)

# Consider both of incentive and trust score
values = [(uid, metagraph.I[uid] * metagraph.trust[uid]) for uid in miner_ip_filtered_uids]
if uid_is_available:
miner_candidate_uids.append(uid)

# Consider only incentive
# values = [(uid, metagraph.I[uid]) for uid in candidate_uids]
miner_healthy_uids, _ = await ping_uids(dendrite, metagraph, miner_candidate_uids)

ips = []
filtered_uids = []
for uid, _ in sorted_values:
miner_ip_filtered_uids = []
for uid in miner_healthy_uids:
if metagraph.axons[uid].ip not in ips:
ips.append(metagraph.axons[uid].ip)
filtered_uids.append(uid)
miner_ip_filtered_uids.append(uid)

# Consider both of incentive and trust score
values = [(uid, metagraph.I[uid] * metagraph.trust[uid]) for uid in miner_ip_filtered_uids]

# # Consider only incentive
# # values = [(uid, metagraph.I[uid]) for uid in candidate_uids]

# ips = []
# filtered_uids = []
# for uid, _ in sorted_values:
# if metagraph.axons[uid].ip not in ips:
# ips.append(metagraph.axons[uid].ip)
# filtered_uids.append(uid)

values = [(uid, metagraph.I[uid] * metagraph.trust[uid]) for uid in filtered_uids]
# values = [(uid, metagraph.I[uid] * metagraph.trust[uid]) for uid in filtered_uids]
sorted_values = sorted(values, key=lambda x: x[1], reverse=True)
top_rate_num_items = max(1, int(top_rate * len(filtered_uids)))
top_rate_num_items = max(1, int(top_rate * len(miner_ip_filtered_uids)))
top_miner_uids = np.array([uid for uid, _ in sorted_values[:top_rate_num_items]])
return top_miner_uids

Expand Down

0 comments on commit 82f1f39

Please sign in to comment.