Public
Edited
May 10, 2023
Insert cell
Insert cell
EXBI = 2 ** 60
Insert cell
PIB = 2 ** 50
Insert cell
LAMBDA = Math.log(2) / (6.0 * 365)
Insert cell
FIL_BASE = 2_000_000_000.0
Insert cell
STORAGE_MINING = 0.55 * FIL_BASE
Insert cell
SIMPLE_ALLOC = 0.3 * STORAGE_MINING
Insert cell
BASELINE_ALLOC = 0.7 * STORAGE_MINING
Insert cell
GROWTH_RATE = Math.log(2) / 365.0
Insert cell
BASELINE_STORAGE = 2.88888888 * EXBI
Insert cell
cum_sum_simple_minting = (day) => SIMPLE_ALLOC * (1 - Math.exp(-LAMBDA * day))
Insert cell
network_time = (cum_capped_power) => {
const EXA_TO_EIB = 10 ** 18 / 2 ** 60;
const b0 = BASELINE_STORAGE * EXA_TO_EIB;
const g = GROWTH_RATE;
return (1 / g) * Math.log((g * cum_capped_power) / b0 + 1);
}
Insert cell
cum_baseline_reward = (network_time) =>
BASELINE_ALLOC * (1 - Math.exp(-LAMBDA * network_time))
Insert cell
compute_baseline_power_array = (start_date, end_date) => {
const arr_len = end_date - start_date;
const exponents = d3.range(0, arr_len); // TODO check arange
const init_baseline = get_storage_baseline_value(start_date);
const baseline_power_arr = init_baseline.map(
(d) => d * Math.exp(GROWTH_RATE * exponents)
);
return baseline_power_arr;
}
Insert cell
compute_minting_trajectory_df = (
start_date,
end_date,
rb_total_power_eib,
qa_total_power_eib,
qa_day_onboarded_power_pib,
qa_day_renewed_power_pib,
minting_base = "RBP"
) => {
const start_day = start_date - new Date(2020, 10, 15); // TODO get days
const end_day = end_date - new Date(2020, 10, 15);

minting_base = minting_base.toLowerCase();
const capped_power_reference =
minting_base === "rbp" ? "network_RBP" : "network_QAP";

df = {
days: d3.range(start_day, end_day),
network_RBP: rb_total_power_eib.map((d) => d * EXBI),
network_QAP: qa_total_power_eib.map((d) => d * EXBI),
day_onboarded_power_QAP: qa_day_onboarded_power_pib.map((d) => d * PIB),
day_renewed_power_QAP: qa_day_renewed_power_pib.map((d) => d * PIB)
};

df.cum_simple_reward = []
df.network_baseline = compute_baseline_power_array(start, end_date)
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more