File size: 1,778 Bytes
471a6f6
 
1664117
471a6f6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8365907
 
471a6f6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import bittensor as bt
import json
subtensor = bt.subtensor(network = "ws://80.209.241.45:9944")
bt.logging.info("Connected to subtensor")



# stake = subtensor.get_stake(hotkey_ss58="")
def get_miner_uids(metagraph: bt.metagraph) -> list:
    miner_uids = []
    for i, axon in enumerate(metagraph.axons):
        v_trust = metagraph.validator_trust[i].item()
        
        if v_trust > 0.0:
            continue
        miner_uids.append((i, metagraph.incentive[i].item()))
    # sort miner_uids by incentive
    miner_uids = sorted(miner_uids, key=lambda x: x[1], reverse=True)
    
    return miner_uids


def validator_info():
    metagraph = subtensor.metagraph(netuid = 6)
    all_weights = subtensor.weights(netuid=6)
    axons = metagraph.axons
    weight_list = []
    for validator_uid, weights in all_weights:
        total_weight = sum([weight for validator_uid, weight in weights])
        validator_stake = metagraph.stake[validator_uid].item()
        vtrust = metagraph.validator_trust[validator_uid].item()
        temp_list = {}
        for miner_uid, weight in weights:
            # temp_list.append((miner_uid, weight/total_weight * validator_stake))
            temp_list[miner_uid] = weight/total_weight
        weight_list.append({'uid': validator_uid, 'miners_weight': temp_list, 'validator_stake': int(validator_stake), 'vtrust': vtrust})
        # weight_list[validator_uid] = {'miners_weight': temp_list, 'validator_stake': validator_stake, 'vtrust': vtrust}
    # Sort weight_list by validator_stake
    weight_list = sorted(weight_list, key=lambda x: x['validator_stake'], reverse=True)
    bt.logging.info(f"weights:{weight_list}")
    miners = get_miner_uids(metagraph)
    return weight_list, miners

# print(miners_sorted_by_incentive)