ethereum-economic-model
ethereum-economic-model copied to clipboard
WIP: Extension 5 - Pool Compounding
Still have some unanswered questions about some of the results, and some documentation and plotting cleanups to do.
PR Overview
Implements a pool compounding mechanism as described in no.5 of the model extension roadmap
Experiments set an avg_pool_size
parameter which establishes the initial AVG pool size across all pool validator environments. Pool sizes increase as the pool initialises new shared validator instances by pooling returns. New validators from validator-process
assemble new pools, as opposed to joining existing pools. See these and additional assumptions in 4_validator_pool_compounding
notebook_
NOTE: simulation times are relatively slow as Deepcopy (default_experiment
) is currently set to true as it was affecting simulation behaviour (@BenSchZA, perhaps you may be able to assist here? miss those quick simulation times!)
Experiments (WIP) The experiment notebook is currently presented mainly as a 'control panel', to plot data related to the mechanism, for debugging purposes.
It configures and produces two simulations:
- Extended time-domain analysis
- Sweep of pool size (e.g. pool size v.s. yields)
Current status
The expected results are increased yields for larger initial pool sizes, as larger pools are able to initialise shared validators at a higher rate than smaller pools. However, current plots (e.g. AVG Cumulative Profit Yields (%) per pool
) show only a modest increase in cumulative yields. The mechanism and/or yield calculations need to be validated further.
**Annomolies / issues **
- Modest / negligible increase in yields with larger initial pool sizes
- saw-tooth-like pattern in eth_staked per pool, especially with higher
avg_pool_size
(see plot)
Key files
Notebooks:
-
4_validator_pool_compounding
Model
-
validators.py
-
system_metrics.py
Policy functions
validators.py
-
policy_validators
: Receivesshared_validator_instances
frompolicy_shared_validators
and allocates them to their respective validator environments.
system_metrics.py
-
policy_shared_validators
: Disaggregates validator profits at current timestep to pool level & calculates new shared validator instances based on the min stake requirement. -
policy_pool_yields
: - Calculates yield metrics at the individual pool level