Guest User

Untitled

a guest
Oct 25th, 2022
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.60 KB | None | 0 0
  1. // get a and b from previous script
  2. print(len(a))
  3. print(len(b))
  4.  
  5.  
  6. import requests
  7. import pprint
  8. import json
  9. from collections import defaultdict
  10. from statistics import mean
  11. from statistics import median
  12.  
  13.  
  14.  
  15. validator_category = defaultdict(int)
  16. validator_category_index = defaultdict(list)
  17.  
  18. for i in a.keys():
  19.     if a[i] >= 20000:
  20.         validator_category["Stakewise"] += 1
  21.         validator_category_index["Stakewise"].extend(b[i])
  22.     elif a[i] >= 10000:
  23.         validator_category["Kleros"] += 1
  24.         validator_category_index["Kleros"].extend(b[i])
  25.     elif a[i] >= 4096:
  26.         validator_category["xDAI"] += 1
  27.         validator_category_index["xDAI"].extend(b[i])    
  28.     elif a[i] >= 4000:
  29.         validator_category["Gnosis"] += 1
  30.         validator_category_index["Gnosis"].extend(b[i])    
  31.     elif a[i] >= 1000:
  32.         validator_category["Large"] += 1
  33.         validator_category_index["Large"].extend(b[i])
  34.     elif a[i] >= 100:
  35.         validator_category["Medium"] += 1
  36.         validator_category_index["Medium"].extend(b[i])
  37.     elif a[i] >= 5:
  38.         validator_category["Small"] += 1
  39.         validator_category_index["Small"].extend(b[i])
  40.     else:
  41.         validator_category["Subsidy"] += 1
  42.         validator_category_index["Subsidy"].extend(b[i])
  43. print(validator_category)
  44. print("")
  45. print("Stakewise: " + str(len(validator_category_index["Stakewise"])))
  46. print("Kleros: " + str(len(validator_category_index["Kleros"])))
  47. print("xDAI: " + str(len(validator_category_index["xDAI"])))
  48. print("Gnosis: " + str(len(validator_category_index["Gnosis"])))
  49. print("Large: " + str(len(validator_category_index["Large"])))
  50. print("Medium: " + str(len(validator_category_index["Medium"])))
  51. print("Small: " + str(len(validator_category_index["Small"])))
  52. print("Subsidy: " + str(len(validator_category_index["Subsidy"])))
  53. print("")
  54.  
  55. import numpy as np
  56. import random
  57.  
  58. for j in ["Stakewise","Kleros","xDAI","Gnosis","Large","Medium","Small", "Subsidy"]:
  59.  
  60.  
  61.     validator_index_string = ""
  62.     random.shuffle(validator_category_index[j])
  63.     for i in validator_category_index[j][:100]:
  64.         validator_index_string += str(i)+","
  65.     #print(validator_index_string)
  66.     response = requests.get("https://beacon.gnosischain.com/api/v1/validator/" + validator_index_string[:-1] + "/performance")
  67.  
  68.     #pprint.pprint(response.content)
  69.     parsed = json.loads(response.content)
  70.     perf1day = []
  71.     perf7day = []
  72.     #print(parsed)
  73.     for i in parsed["data"]:
  74.         #print(i)
  75.         perf1day.append(i["performance1d"])
  76.         perf7day.append(i["performance7d"])
  77.  
  78.     print(j + " Mean:" + str(mean(perf1day) *365/32000000000))
  79.     print(j + " Median:" + str(median(perf1day) *365/32000000000))
  80.     a = np.array(perf1day)
  81.     print(j + " bottom 5%: " + str(np.percentile(a, 5) *365/32000000000))
  82.     print(j + " bottom 10%: " + str(np.percentile(a, 10) *365/32000000000))
  83.     print(j + " bottom 15%: " + str(np.percentile(a, 15) *365/32000000000))
  84.     print(j + " top 10%: " + str(np.percentile(a, 90) *365/32000000000))
  85.  
  86.     print()
  87.     print(j + " Mean7:" + str(mean(perf7day)/7 *365/32000000000))
  88.     print(j + " Median7:" + str(median(perf7day)/7 *365/32000000000))
  89.     a = np.array(perf7day)
  90.     print(j + " bottom 5%7: " + str(np.percentile(a, 5)/7 *365/32000000000))
  91.     print(j + " bottom 10%7: " + str(np.percentile(a, 10)/7 *365/32000000000))
  92.     print(j + " bottom 15%7: " + str(np.percentile(a, 15)/7 *365/32000000000))
  93.     print(j + " top 10%7: " + str(np.percentile(a, 90)/7 *365/32000000000))
  94.     print()
  95.  
  96. #print(json.dumps(parsed, indent=4, sort_keys=True))
  97. #print(parsed["data"])
Advertisement
Add Comment
Please, Sign In to add comment