Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions compare_relaxed_8y_gang.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#!/usr/bin/env bash

set -euo pipefail

PREVIEW=preview_relaxed_8y_gang.json
REFERENCE=neurons-that-qualify-for-relaxed-8y-gang-right-after-first-induction.json

# neuron_id (string) -> preview eight_year_gang_bonus_base_e8s
jq 'map({key: (.neuron_id | tostring), value: .eight_year_gang_bonus_base_e8s}) | from_entries' \
"$PREVIEW" >/tmp/preview_index.json

# neuron_id (string) -> expected bonus base computed from reference fields
jq 'map({
key: .id[0].id,
value: (
(.cached_neuron_stake_e8s | tonumber)
- (.neuron_fees_e8s | tonumber)
+ ((.staked_maturity_e8s_equivalent[0] // "0") | tonumber)
)
}) | from_entries' "$REFERENCE" >/tmp/reference_index.json

echo "=== In preview but NOT in reference ==="
jq --slurpfile ref /tmp/reference_index.json '
[.[] |
select(
(.neuron_id | tostring)
| in($ref[0])
| not
)
| .neuron_id]
' "$PREVIEW"

echo
echo "=== In reference but NOT in preview ==="
jq --slurpfile prev /tmp/preview_index.json '
[.[]
| .id[0].id
| select(in($prev[0]) | not)
]
' "$REFERENCE"

echo
echo "=== In both where preview > 1.0001x reference ==="
echo "See discrepencies.json"
jq --null-input \
--slurpfile prev /tmp/preview_index.json \
--slurpfile ref /tmp/reference_index.json '
[$prev[0]
| to_entries[]
| .key as $id
| .value as $preview_val
| $ref[0][$id] as $ref_val
| select($ref_val != null)
| select($preview_val > ($ref_val * 1.0001))
| {
neuron_id: ($id | tonumber),
preview_bonus_base: $preview_val,
reference_bonus_base: $ref_val
}]
| sort_by(if .reference_bonus_base == 0 then 1e308 else (.preview_bonus_base / .reference_bonus_base) end)
| reverse
' >discrepencies.json
echo "$(jq '. | length' discrepencies.json) discrepencies..."
14 changes: 14 additions & 0 deletions filter_relaxed_8y_gang_preview.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env bash

set -euo pipefail

bazel test \
--test_env=SSH_AUTH_SOCK \
--test_output=streamed \
--test_arg=--nocapture \
--nocache_test_results \
//rs/nns/integration_tests:upgrade_canisters_with_golden_nns_state \
| grep PREVIEW_RELAXED_EIGHT_YEAR_GANG \
| sed 's/.*PREVIEW_RELAXED_EIGHT_YEAR_GANG //' \
| jq -s '.' \
>preview_relaxed_8y_gang.json
4 changes: 4 additions & 0 deletions rs/nns/governance/src/storage/neurons.rs
Original file line number Diff line number Diff line change
Expand Up @@ -818,6 +818,10 @@ where
.cached_neuron_stake_e8s
.saturating_sub(abridged_neuron.neuron_fees_e8s)
.saturating_add(abridged_neuron.staked_maturity_e8s_equivalent.unwrap_or(0));

let result = abridged_neuron.eight_year_gang_bonus_base_e8s;
let neuron_id = neuron_id.id;
println!(r#"PREVIEW_RELAXED_EIGHT_YEAR_GANG {{"neuron_id": {neuron_id}, "eight_year_gang_bonus_base_e8s": {result} }}"#);
})
.expect("Failed to set relaxed eight year gang bonus base for neuron");
}
Expand Down
4 changes: 3 additions & 1 deletion rs/nns/integration_tests/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,9 @@ rust_ic_test(
aliases = ALIASES,
crate_root = "src/upgrade_canisters_with_golden_nns_state.rs",
data = DEV_DATA,
env = DEV_ENV,
env = DEV_ENV | {
"NNS_CANISTER_UPGRADE_SEQUENCE": "governance",
},
proc_macro_deps = MACRO_DEPENDENCIES + MACRO_DEV_DEPENDENCIES,
tags = [
"nns_tests_nightly", # Run this test in the nns-tests-nightly GitHub Action job.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ fn vote_yes_with_well_known_public_neurons(state_machine: &StateMachine, proposa

#[test]
fn test_upgrade_canisters_with_golden_nns_state() {
/*
// Step 0: Read configuration. To wit, what canisters does the user want to upgrade in this
// test? To do this, they set the NNS_CANISTER_UPGRADE_SEQUENCE environment variable.

Expand Down Expand Up @@ -251,8 +252,10 @@ fn test_upgrade_canisters_with_golden_nns_state() {
{
nns_canister_upgrade_sequence.push_str(",node-rewards");
}
*/

let mut nns_canister_upgrade_sequence = nns_canister_upgrade_sequence
let mut nns_canister_upgrade_sequence = "governance"
.to_string()
.split(',')
.map(NnsCanisterUpgrade::new)
.collect::<Vec<NnsCanisterUpgrade>>();
Expand Down Expand Up @@ -358,6 +361,7 @@ fn test_upgrade_canisters_with_golden_nns_state() {

perform_sequence_of_upgrades(&nns_canister_upgrade_sequence);

/*
// Modify all WASMs, but preserve their behavior.
for nns_canister_upgrade in &mut nns_canister_upgrade_sequence {
nns_canister_upgrade.modify_wasm_but_preserve_behavior();
Expand All @@ -368,6 +372,7 @@ fn test_upgrade_canisters_with_golden_nns_state() {
sanity_check::fetch_and_check_metrics_after_advancing_time(&state_machine, metrics_before);

check_canisters_are_all_protocol_canisters(&state_machine);
*/
}

// Check that all canisters in the NNS subnet (except for exempted ones) are protocol canisters. If
Expand Down
Loading