instance.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. from lottery import *
  2. import os
  3. import numpy
  4. from strategy import LinearStrategy
  5. os.system("rm f.hist; rm leads.hist")
  6. RUNNING_TIME = int(input("running time:"))
  7. NODES=100
  8. if __name__ == "__main__":
  9. darkies = []
  10. egalitarian = ERC20DRK/NODES
  11. darkies = []
  12. for id in range(int(NODES)):
  13. darkie = Darkie(random.gauss(egalitarian, egalitarian*0.1), strategy=random_strategy(EPOCH_LENGTH), apy_window=EPOCH_LENGTH)
  14. darkies += [darkie]
  15. #TODO try rpid with 0mint
  16. #darkies += [Darkie(0, strategy=LinearStrategy(EPOCH_LENGTH)) for _ in range(NODES)]
  17. airdrop = ERC20DRK
  18. effective_airdrop = 0
  19. for darkie in darkies:
  20. effective_airdrop+=darkie.stake
  21. print("network airdrop: {}, staked token: {}/{}% on {} nodes".format(airdrop, effective_airdrop, effective_airdrop/airdrop*100, len(darkies)))
  22. dt = DarkfiTable(airdrop, RUNNING_TIME, CONTROLLER_TYPE_DISCRETE, kp=-0.010399999999938556, ki=-0.0365999996461878, kd=0.03840000000000491, r_kp=-0.42, r_ki=2.71, r_kd=-0.239)
  23. for darkie in darkies:
  24. dt.add_darkie(darkie)
  25. acc, avg_apy, avg_reward, stake_ratio = dt.background_with_apy(rand_running_time=False)
  26. sum_zero_stake = sum([darkie.stake for darkie in darkies[NODES:]])
  27. print('acc: {}, avg(apy): {}, avg(reward): {}, stake_ratio: {}'.format(acc, avg_apy, avg_reward, stake_ratio))
  28. print('total stake of 0mint: {}, ration: {}'.format(sum_zero_stake, sum_zero_stake/ERC20DRK))
  29. dt.write()