Advertisement
Guest User

Untitled

a guest
Oct 25th, 2022
194
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
Advertisement