Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Genesis] Migration tools for genesis from legacy accounts #1237

Merged
merged 42 commits into from
Feb 23, 2023

Conversation

0o-de-lally
Copy link
Collaborator

@0o-de-lally 0o-de-lally commented Feb 12, 2023

This is the tool which allows for a "kitchen sink" network upgrade, that is, one that requires a halt and a new genesis from backed up data.

Genesis tools for migration

  • Refactor account recovery to use the vm session in vm-genesis/lib.rs (quite gross work)
  • Remove daemon, file fetcher, swarm, which are not useful in the case of a single V6 upgrade.
  • Add test scaffold, to create a default test node config, and replace with current genesis.

Tests:

  • e2e tests where a test node goes up
  • parsing snapshot tests
  • exporting json tests
  • creating genesis from json
  • test with production snapshots

A separate and future issue would be how to properly test this in Forge and Smoke tests. Hard-ish problem.

@0o-de-lally 0o-de-lally changed the base branch from main to v6 February 12, 2023 23:24
…session from fake data to be able to apply migrations from Move system contracts.
implement functional tests for:
- exporting db backup to json
- creating genesis blob from json
- creating genesis blob in one shot from db backup

TODO: launch test node from from genesis.blob
TODO: e2e tests from a fixture file
@0o-de-lally 0o-de-lally marked this pull request as ready for review February 16, 2023 21:59
Comment on lines +39 to +42
move-binary-format = { git = "https://github.com/OLSF/move-0L", rev = "94e1039c9fdf1472c2c7775de43135d28dafc955" }
move-vm-runtime = { git = "https://github.com/OLSF/move-0L", rev = "94e1039c9fdf1472c2c7775de43135d28dafc955" }
move-bytecode-utils = { git = "https://github.com/OLSF/move-0L", rev = "94e1039c9fdf1472c2c7775de43135d28dafc955" }
move-vm-types = { git = "https://github.com/OLSF/move-0L", rev = "94e1039c9fdf1472c2c7775de43135d28dafc955" }
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should these point to the new org url?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes thanks for pointing out. The URL does redirect though

@sirouk
Copy link
Contributor

sirouk commented Feb 23, 2023

LGTM 👍

@sirouk sirouk merged commit c1578ff into 0LNetworkCommunity:v6 Feb 23, 2023
0o-de-lally added a commit to 0o-de-lally/libra that referenced this pull request Feb 23, 2023
…Community#1237)

* For 0L genesis tools for hard forks, and migrations: create a MoveVm session from fake data to be able to apply migrations from Move system contracts.

* wip testing fakeexector for account migrations

* Scaffolding tests for v6 genesis fork. first cleanup deprecated modules.

* add fixtures for testing recovery genesis

* cleanup fixtures
implement functional tests for:
- exporting db backup to json
- creating genesis blob from json
- creating genesis blob in one shot from db backup

TODO: launch test node from from genesis.blob
TODO: e2e tests from a fixture file

* integration test using blob from fixture to start a diem-node in test mode

* patch github actions tests

* full e2e test from db backup to starting a node

* Add diem_logger as per @corythian plus comments.

* query nodes to check if onchain state is the same as recovery.

* - include db reader util to inspect a genesis.blob.
- refactor recovery tests

* test to check validator count. cleanup test utlis

* cleanup tests

* stub a "check" feature, to check a json file agains the output genesis.blob

* finish balance comparison with error list.

* clean

* test to create single validator and check output.

* skip comparing system zero address.

* cargo fix

* cargo fmt

* create function to start a vm executor, and uses a function pointer to transform legacy data to Move arguments.

* experimenting with alternative way of starting a vm genesis session

* runs

* cleanup

* need to explicitly set the validators at genesis

* test to confirm genesis validator set, is the same as defined set.

* tests for validator set and balance passing

* change fixtures, make node start from command line

* can start a test node from genesis blob

* can genesis tools test can start a node from a genesis and query for an accounts resources

* make ol version of swarm config generator in ol/smoke_tests

* wip

* move legacyRecovery to ol/types. So now we can run the user migrations in the vm_genesis::lib. First draft builds

* create GenesisMigration user migration test. Builds.

* ol/genesis-tools builds with refactor

* refactored with clean build

* minor refactors

* can migrate the balance of end users with new design

* migration successfully migrates balances of users, validators, and operators.

* cleanup unused files. clippy,

* tests passing

* whitespace to trigger ci
0o-de-lally added a commit to 0o-de-lally/libra that referenced this pull request Feb 24, 2023
commit 26607be
Merge: c395a71 c1578ff
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 23 13:44:51 2023 -0500

    Merge branch 'v6' into v6-0d-proof-of-fee

commit c395a71
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 23 11:15:52 2023 -0500

    test for set and retract

commit a7d6e06
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 23 11:05:13 2023 -0500

    txs transaction apis for setting and retracting bids.

commit 958758e
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 19:30:41 2023 -0500

    All transactional tests passing!

commit 31556f3
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 19:22:54 2023 -0500

    continue patching tests and removing deprecated scenarios

commit 7df1ace
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 18:21:56 2023 -0500

    patch all reconfig test fixtures. remove deprecated burn tests.

commit a177f09
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 17:22:41 2023 -0500

    adjust fixtures for reconfiguration tests, deprecate some tests, patch jailing

commit 861ff0e
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 16:27:55 2023 -0500

    Clean up Cases.move. Patch Vouch tests fixtures

commit f70e875
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 15:22:19 2023 -0500

    patch seating failover

commit e0ff590
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 13:16:33 2023 -0500

    covered all proof of fee functions, tests for all common scenarios of fill_seats, patch logic issues, all proof of fee tests passing!

commit c2be0b0
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 12:01:36 2023 -0500

    audit tests for vouch, expired bids, no_funds

commit c0aedc9
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 11:34:46 2023 -0500

    Jailing mechanism needs update after deprecating Towers. Proposing here that a Voucher is the only one to unjail, since there is no other practical hurdle.

commit 23ef787
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 11:19:09 2023 -0500

    deprecate Audit.move, and create tests for qualifications in Proofoffee.move

commit 52d5393
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 14 15:57:48 2023 -0500

    tests for thermostat increase/decrease

commit 03f25e8
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 14 15:04:56 2023 -0500

    add unit tests for thermostat. Patch a couple bugs

commit 68e566e
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 14 14:10:50 2023 -0500

    add test fixtures, modify some APIs "tell don't ask" pattern. Add several tests.

commit 6d86a28
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 14 11:45:16 2023 -0500

    consolidate validator audits, check for the case that there are fewer bidders than the stated val set.

commit a75ad4d
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 13 18:29:54 2023 -0500

    test

commit 4e53184
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 13 18:10:10 2023 -0500

    more tests for fill_seats, and thermostat. patches

commit 26ea59e
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 13 15:51:43 2023 -0500

    patch bug in thermostat

commit ca72274
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 13 15:24:55 2023 -0500

    genesis init fee baseline

commit b94cf69
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Fri Feb 10 15:00:01 2023 -0500

    reward thermostat initial implementation

commit 71d1306
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Fri Feb 10 13:41:46 2023 -0500

    burn excess fees than needed for validators

commit 86cff9c
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Fri Feb 10 13:28:08 2023 -0500

    add bid restrictions, and checking upon seating

commit e3e62ac
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 21:43:01 2023 -0500

    patch issue with failover

commit 58022cd
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 18:16:33 2023 -0500

    epoch reconfiguration meta tests passing. PoF bid initialization unit tests passing. Validator meta sanity tests passing

commit 0d6a20a
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 16:59:41 2023 -0500

    initialize val account with a PoF struct

commit 494b6a2
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 16:33:00 2023 -0500

    filter for vouches on proof of fee

commit dfbd7e1
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 16:22:33 2023 -0500

    make epoch boundry _meta_epoch.move pass

commit 6990356
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 15:49:27 2023 -0500

    refactor jail function at epoch boundary

commit 21e39aa
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 15:41:08 2023 -0500

    cleanup  validator set proposal functions

commit 24f9fb9
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 15:10:45 2023 -0500

    all validators are charged fee at epoch boundary

commit cc047a8
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 15:00:39 2023 -0500

    implement vm function to pay fee from user account

commit a08280d
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Fri Jan 27 20:03:40 2023 -0500

    builds

commit ef6ca83
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 22:54:25 2023 -0500

    patch

commit 89d99c2
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 22:53:10 2023 -0500

    patch

commit e3c56b6
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 22:46:09 2023 -0500

    implement seat filling algo, which considers the 1/3 unproven node limit on epoch changes

commit 8e5ea07
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 19:59:01 2023 -0500

    initial scaffold of proof-of-fee auction. Borrows code from NodeWeight. Includes tranaction api.

commit 6707f06
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 23 13:18:44 2023 -0500

    [Genesis] Migration tools for genesis from legacy accounts (0LNetworkCommunity#1237)

    * For 0L genesis tools for hard forks, and migrations: create a MoveVm session from fake data to be able to apply migrations from Move system contracts.

    * wip testing fakeexector for account migrations

    * Scaffolding tests for v6 genesis fork. first cleanup deprecated modules.

    * add fixtures for testing recovery genesis

    * cleanup fixtures
    implement functional tests for:
    - exporting db backup to json
    - creating genesis blob from json
    - creating genesis blob in one shot from db backup

    TODO: launch test node from from genesis.blob
    TODO: e2e tests from a fixture file

    * integration test using blob from fixture to start a diem-node in test mode

    * patch github actions tests

    * full e2e test from db backup to starting a node

    * Add diem_logger as per @corythian plus comments.

    * query nodes to check if onchain state is the same as recovery.

    * - include db reader util to inspect a genesis.blob.
    - refactor recovery tests

    * test to check validator count. cleanup test utlis

    * cleanup tests

    * stub a "check" feature, to check a json file agains the output genesis.blob

    * finish balance comparison with error list.

    * clean

    * test to create single validator and check output.

    * skip comparing system zero address.

    * cargo fix

    * cargo fmt

    * create function to start a vm executor, and uses a function pointer to transform legacy data to Move arguments.

    * experimenting with alternative way of starting a vm genesis session

    * runs

    * cleanup

    * need to explicitly set the validators at genesis

    * test to confirm genesis validator set, is the same as defined set.

    * tests for validator set and balance passing

    * change fixtures, make node start from command line

    * can start a test node from genesis blob

    * can genesis tools test can start a node from a genesis and query for an accounts resources

    * make ol version of swarm config generator in ol/smoke_tests

    * wip

    * move legacyRecovery to ol/types. So now we can run the user migrations in the vm_genesis::lib. First draft builds

    * create GenesisMigration user migration test. Builds.

    * ol/genesis-tools builds with refactor

    * refactored with clean build

    * minor refactors

    * can migrate the balance of end users with new design

    * migration successfully migrates balances of users, validators, and operators.

    * cleanup unused files. clippy,

    * tests passing

    * whitespace to trigger ci

commit 6149591
Author: Zoz <97761083+0xzoz@users.noreply.github.com>
Date:   Thu Feb 16 20:20:40 2023 -0800

    Update ci.yaml (0LNetworkCommunity#1239)

commit bc23fce
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 19:22:30 2023 -0500

    PoF requires all nodes to have equal weight in consensus per the paper.

commit 0908511
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 16 14:49:11 2023 -0500

    tests passing

commit a2fe6c5
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 16 11:28:40 2023 -0500

    cleanup unused files. clippy,

commit e80ea3c
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 13 12:12:21 2023 -0500

    migration successfully migrates balances of users, validators, and operators.

commit 67dd432
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 18:23:07 2023 -0500

    can migrate the balance of end users with new design

commit a9d59cb
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 17:51:10 2023 -0500

    minor refactors

commit f96281a
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 16:23:42 2023 -0500

    refactored with clean build

commit e88bdfa
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 16:04:04 2023 -0500

    ol/genesis-tools builds with refactor

commit 682c017
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 15:58:45 2023 -0500

    create GenesisMigration user migration test. Builds.

commit 478a270
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 15:26:18 2023 -0500

    move legacyRecovery to ol/types. So now we can run the user migrations in the vm_genesis::lib. First draft builds

commit 204ef91
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 11:55:15 2023 -0500

    wip

commit de04d53
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 10:20:16 2023 -0500

    make ol version of swarm config generator in ol/smoke_tests

commit 20590e0
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 19:20:34 2023 -0500

    can genesis tools test can start a node from a genesis and query for an accounts resources

commit 979e811
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 19:01:35 2023 -0500

    can start a test node from genesis blob

commit e1c43b0
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 15:38:31 2023 -0500

    change fixtures, make node start from command line

commit fded61e
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 14:07:41 2023 -0500

    tests for validator set and balance passing

commit 395568c
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 13:32:26 2023 -0500

    test to confirm genesis validator set, is the same as defined set.

commit 6cbe210
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 12:39:36 2023 -0500

    need to explicitly set the validators at genesis

commit f0b6c3b
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 7 19:00:01 2023 -0500

    cleanup

commit 1766888
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 7 17:47:58 2023 -0500

    runs

commit 886bec0
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 7 17:40:36 2023 -0500

    experimenting with alternative way of starting a vm genesis session

commit 6a4f3d6
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 7 14:51:20 2023 -0500

    create function to start a vm executor, and uses a function pointer to transform legacy data to Move arguments.

commit 6da792c
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 20:08:15 2023 -0500

    cargo fmt

commit 6156a0b
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 20:08:03 2023 -0500

    cargo fix

commit 6bc8809
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 20:07:25 2023 -0500

    skip comparing system zero address.

commit 12e6479
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 20:04:19 2023 -0500

    test to create single validator and check output.

commit 7c43037
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 18:39:55 2023 -0500

    clean

commit 203ac54
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 18:35:47 2023 -0500

    finish balance comparison with error list.

commit 66c4ffe
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 17:40:13 2023 -0500

    stub a "check" feature, to check a json file agains the output genesis.blob

commit e7df8b6
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 16:55:32 2023 -0500

    cleanup tests

commit c5b9fa4
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 14:57:58 2023 -0500

    test to check validator count. cleanup test utlis

commit 270f569
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 14:07:08 2023 -0500

    - include db reader util to inspect a genesis.blob.
    - refactor recovery tests

commit 1e5f1c6
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 1 18:57:54 2023 -0500

    query nodes to check if onchain state is the same as recovery.

commit 19bd78f
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 1 16:43:15 2023 -0500

    Add diem_logger as per @corythian plus comments.

commit 757648c
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 19:08:39 2023 -0500

    full e2e test from db backup to starting a node

commit e1b75c6
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 23:05:01 2023 -0500

    patch github actions tests

commit 8ca37d0
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 20:44:42 2023 -0500

    integration test using blob from fixture to start a diem-node in test mode

commit 074636d
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 19:29:33 2023 -0500

    cleanup fixtures
    implement functional tests for:
    - exporting db backup to json
    - creating genesis blob from json
    - creating genesis blob in one shot from db backup

    TODO: launch test node from from genesis.blob
    TODO: e2e tests from a fixture file

commit d5b72e1
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 16:59:25 2023 -0500

    add fixtures for testing recovery genesis

commit 4e1b6cb
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 16:42:56 2023 -0500

    Scaffolding tests for v6 genesis fork. first cleanup deprecated modules.

commit 4c5e0d2
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 1 19:37:43 2023 -0500

    wip testing fakeexector for account migrations

commit 1b18a7a
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 16:02:08 2023 -0500

    For 0L genesis tools for hard forks, and migrations: create a MoveVm session from fake data to be able to apply migrations from Move system contracts.
0o-de-lally added a commit to 0o-de-lally/libra that referenced this pull request Feb 27, 2023
Squashed commit of the following:

commit 26607be
Merge: c395a71 c1578ff
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 23 13:44:51 2023 -0500

    Merge branch 'v6' into v6-0d-proof-of-fee

commit c395a71
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 23 11:15:52 2023 -0500

    test for set and retract

commit a7d6e06
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 23 11:05:13 2023 -0500

    txs transaction apis for setting and retracting bids.

commit 958758e
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 19:30:41 2023 -0500

    All transactional tests passing!

commit 31556f3
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 19:22:54 2023 -0500

    continue patching tests and removing deprecated scenarios

commit 7df1ace
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 18:21:56 2023 -0500

    patch all reconfig test fixtures. remove deprecated burn tests.

commit a177f09
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 17:22:41 2023 -0500

    adjust fixtures for reconfiguration tests, deprecate some tests, patch jailing

commit 861ff0e
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 16:27:55 2023 -0500

    Clean up Cases.move. Patch Vouch tests fixtures

commit f70e875
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 15:22:19 2023 -0500

    patch seating failover

commit e0ff590
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 13:16:33 2023 -0500

    covered all proof of fee functions, tests for all common scenarios of fill_seats, patch logic issues, all proof of fee tests passing!

commit c2be0b0
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 12:01:36 2023 -0500

    audit tests for vouch, expired bids, no_funds

commit c0aedc9
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 11:34:46 2023 -0500

    Jailing mechanism needs update after deprecating Towers. Proposing here that a Voucher is the only one to unjail, since there is no other practical hurdle.

commit 23ef787
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 15 11:19:09 2023 -0500

    deprecate Audit.move, and create tests for qualifications in Proofoffee.move

commit 52d5393
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 14 15:57:48 2023 -0500

    tests for thermostat increase/decrease

commit 03f25e8
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 14 15:04:56 2023 -0500

    add unit tests for thermostat. Patch a couple bugs

commit 68e566e
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 14 14:10:50 2023 -0500

    add test fixtures, modify some APIs "tell don't ask" pattern. Add several tests.

commit 6d86a28
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 14 11:45:16 2023 -0500

    consolidate validator audits, check for the case that there are fewer bidders than the stated val set.

commit a75ad4d
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 13 18:29:54 2023 -0500

    test

commit 4e53184
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 13 18:10:10 2023 -0500

    more tests for fill_seats, and thermostat. patches

commit 26ea59e
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 13 15:51:43 2023 -0500

    patch bug in thermostat

commit ca72274
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 13 15:24:55 2023 -0500

    genesis init fee baseline

commit b94cf69
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Fri Feb 10 15:00:01 2023 -0500

    reward thermostat initial implementation

commit 71d1306
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Fri Feb 10 13:41:46 2023 -0500

    burn excess fees than needed for validators

commit 86cff9c
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Fri Feb 10 13:28:08 2023 -0500

    add bid restrictions, and checking upon seating

commit e3e62ac
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 21:43:01 2023 -0500

    patch issue with failover

commit 58022cd
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 18:16:33 2023 -0500

    epoch reconfiguration meta tests passing. PoF bid initialization unit tests passing. Validator meta sanity tests passing

commit 0d6a20a
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 16:59:41 2023 -0500

    initialize val account with a PoF struct

commit 494b6a2
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 16:33:00 2023 -0500

    filter for vouches on proof of fee

commit dfbd7e1
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 16:22:33 2023 -0500

    make epoch boundry _meta_epoch.move pass

commit 6990356
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 15:49:27 2023 -0500

    refactor jail function at epoch boundary

commit 21e39aa
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 15:41:08 2023 -0500

    cleanup  validator set proposal functions

commit 24f9fb9
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 15:10:45 2023 -0500

    all validators are charged fee at epoch boundary

commit cc047a8
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 15:00:39 2023 -0500

    implement vm function to pay fee from user account

commit a08280d
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Fri Jan 27 20:03:40 2023 -0500

    builds

commit ef6ca83
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 22:54:25 2023 -0500

    patch

commit 89d99c2
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 22:53:10 2023 -0500

    patch

commit e3c56b6
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 22:46:09 2023 -0500

    implement seat filling algo, which considers the 1/3 unproven node limit on epoch changes

commit 8e5ea07
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 19:59:01 2023 -0500

    initial scaffold of proof-of-fee auction. Borrows code from NodeWeight. Includes tranaction api.

commit 6707f06
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 23 13:18:44 2023 -0500

    [Genesis] Migration tools for genesis from legacy accounts (0LNetworkCommunity#1237)

    * For 0L genesis tools for hard forks, and migrations: create a MoveVm session from fake data to be able to apply migrations from Move system contracts.

    * wip testing fakeexector for account migrations

    * Scaffolding tests for v6 genesis fork. first cleanup deprecated modules.

    * add fixtures for testing recovery genesis

    * cleanup fixtures
    implement functional tests for:
    - exporting db backup to json
    - creating genesis blob from json
    - creating genesis blob in one shot from db backup

    TODO: launch test node from from genesis.blob
    TODO: e2e tests from a fixture file

    * integration test using blob from fixture to start a diem-node in test mode

    * patch github actions tests

    * full e2e test from db backup to starting a node

    * Add diem_logger as per @corythian plus comments.

    * query nodes to check if onchain state is the same as recovery.

    * - include db reader util to inspect a genesis.blob.
    - refactor recovery tests

    * test to check validator count. cleanup test utlis

    * cleanup tests

    * stub a "check" feature, to check a json file agains the output genesis.blob

    * finish balance comparison with error list.

    * clean

    * test to create single validator and check output.

    * skip comparing system zero address.

    * cargo fix

    * cargo fmt

    * create function to start a vm executor, and uses a function pointer to transform legacy data to Move arguments.

    * experimenting with alternative way of starting a vm genesis session

    * runs

    * cleanup

    * need to explicitly set the validators at genesis

    * test to confirm genesis validator set, is the same as defined set.

    * tests for validator set and balance passing

    * change fixtures, make node start from command line

    * can start a test node from genesis blob

    * can genesis tools test can start a node from a genesis and query for an accounts resources

    * make ol version of swarm config generator in ol/smoke_tests

    * wip

    * move legacyRecovery to ol/types. So now we can run the user migrations in the vm_genesis::lib. First draft builds

    * create GenesisMigration user migration test. Builds.

    * ol/genesis-tools builds with refactor

    * refactored with clean build

    * minor refactors

    * can migrate the balance of end users with new design

    * migration successfully migrates balances of users, validators, and operators.

    * cleanup unused files. clippy,

    * tests passing

    * whitespace to trigger ci

commit 6149591
Author: Zoz <97761083+0xzoz@users.noreply.github.com>
Date:   Thu Feb 16 20:20:40 2023 -0800

    Update ci.yaml (0LNetworkCommunity#1239)

commit bc23fce
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 19:22:30 2023 -0500

    PoF requires all nodes to have equal weight in consensus per the paper.

commit 0908511
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 16 14:49:11 2023 -0500

    tests passing

commit a2fe6c5
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 16 11:28:40 2023 -0500

    cleanup unused files. clippy,

commit e80ea3c
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 13 12:12:21 2023 -0500

    migration successfully migrates balances of users, validators, and operators.

commit 67dd432
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 18:23:07 2023 -0500

    can migrate the balance of end users with new design

commit a9d59cb
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 17:51:10 2023 -0500

    minor refactors

commit f96281a
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 16:23:42 2023 -0500

    refactored with clean build

commit e88bdfa
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 16:04:04 2023 -0500

    ol/genesis-tools builds with refactor

commit 682c017
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 15:58:45 2023 -0500

    create GenesisMigration user migration test. Builds.

commit 478a270
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Sun Feb 12 15:26:18 2023 -0500

    move legacyRecovery to ol/types. So now we can run the user migrations in the vm_genesis::lib. First draft builds

commit 204ef91
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 11:55:15 2023 -0500

    wip

commit de04d53
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Feb 9 10:20:16 2023 -0500

    make ol version of swarm config generator in ol/smoke_tests

commit 20590e0
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 19:20:34 2023 -0500

    can genesis tools test can start a node from a genesis and query for an accounts resources

commit 979e811
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 19:01:35 2023 -0500

    can start a test node from genesis blob

commit e1c43b0
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 15:38:31 2023 -0500

    change fixtures, make node start from command line

commit fded61e
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 14:07:41 2023 -0500

    tests for validator set and balance passing

commit 395568c
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 13:32:26 2023 -0500

    test to confirm genesis validator set, is the same as defined set.

commit 6cbe210
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 8 12:39:36 2023 -0500

    need to explicitly set the validators at genesis

commit f0b6c3b
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 7 19:00:01 2023 -0500

    cleanup

commit 1766888
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 7 17:47:58 2023 -0500

    runs

commit 886bec0
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 7 17:40:36 2023 -0500

    experimenting with alternative way of starting a vm genesis session

commit 6a4f3d6
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Tue Feb 7 14:51:20 2023 -0500

    create function to start a vm executor, and uses a function pointer to transform legacy data to Move arguments.

commit 6da792c
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 20:08:15 2023 -0500

    cargo fmt

commit 6156a0b
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 20:08:03 2023 -0500

    cargo fix

commit 6bc8809
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 20:07:25 2023 -0500

    skip comparing system zero address.

commit 12e6479
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 20:04:19 2023 -0500

    test to create single validator and check output.

commit 7c43037
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 18:39:55 2023 -0500

    clean

commit 203ac54
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 18:35:47 2023 -0500

    finish balance comparison with error list.

commit 66c4ffe
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 17:40:13 2023 -0500

    stub a "check" feature, to check a json file agains the output genesis.blob

commit e7df8b6
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 16:55:32 2023 -0500

    cleanup tests

commit c5b9fa4
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 14:57:58 2023 -0500

    test to check validator count. cleanup test utlis

commit 270f569
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Mon Feb 6 14:07:08 2023 -0500

    - include db reader util to inspect a genesis.blob.
    - refactor recovery tests

commit 1e5f1c6
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 1 18:57:54 2023 -0500

    query nodes to check if onchain state is the same as recovery.

commit 19bd78f
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 1 16:43:15 2023 -0500

    Add diem_logger as per @corythian plus comments.

commit 757648c
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Thu Jan 26 19:08:39 2023 -0500

    full e2e test from db backup to starting a node

commit e1b75c6
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 23:05:01 2023 -0500

    patch github actions tests

commit 8ca37d0
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 20:44:42 2023 -0500

    integration test using blob from fixture to start a diem-node in test mode

commit 074636d
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 19:29:33 2023 -0500

    cleanup fixtures
    implement functional tests for:
    - exporting db backup to json
    - creating genesis blob from json
    - creating genesis blob in one shot from db backup

    TODO: launch test node from from genesis.blob
    TODO: e2e tests from a fixture file

commit d5b72e1
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 16:59:25 2023 -0500

    add fixtures for testing recovery genesis

commit 4e1b6cb
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 16:42:56 2023 -0500

    Scaffolding tests for v6 genesis fork. first cleanup deprecated modules.

commit 4c5e0d2
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Feb 1 19:37:43 2023 -0500

    wip testing fakeexector for account migrations

commit 1b18a7a
Author: 0o-de-lally <1364012+0o-de-lally@users.noreply.github.com>
Date:   Wed Jan 25 16:02:08 2023 -0500

    For 0L genesis tools for hard forks, and migrations: create a MoveVm session from fake data to be able to apply migrations from Move system contracts.
0o-de-lally added a commit to 0o-de-lally/libra that referenced this pull request Apr 5, 2023
* For 0L genesis tools for hard forks, and migrations: create a MoveVm session from fake data to be able to apply migrations from Move system contracts.

* wip testing fakeexector for account migrations

* Scaffolding tests for v6 genesis fork. first cleanup deprecated modules.

* add fixtures for testing recovery genesis

* cleanup fixtures
implement functional tests for:
- exporting db backup to json
- creating genesis blob from json
- creating genesis blob in one shot from db backup

TODO: launch test node from from genesis.blob
TODO: e2e tests from a fixture file

* integration test using blob from fixture to start a diem-node in test mode

* patch github actions tests

* full e2e test from db backup to starting a node

* Add diem_logger as per @corythian plus comments.

* query nodes to check if onchain state is the same as recovery.

* - include db reader util to inspect a genesis.blob.
- refactor recovery tests

* test to check validator count. cleanup test utlis

* cleanup tests

* stub a "check" feature, to check a json file agains the output genesis.blob

* finish balance comparison with error list.

* clean

* test to create single validator and check output.

* skip comparing system zero address.

* cargo fix

* cargo fmt

* create function to start a vm executor, and uses a function pointer to transform legacy data to Move arguments.

* experimenting with alternative way of starting a vm genesis session

* runs

* cleanup

* need to explicitly set the validators at genesis

* test to confirm genesis validator set, is the same as defined set.

* tests for validator set and balance passing

* change fixtures, make node start from command line

* can start a test node from genesis blob

* can genesis tools test can start a node from a genesis and query for an accounts resources

* make ol version of swarm config generator in ol/smoke_tests

* wip

* move legacyRecovery to ol/types. So now we can run the user migrations in the vm_genesis::lib. First draft builds

* create GenesisMigration user migration test. Builds.

* ol/genesis-tools builds with refactor

* refactored with clean build

* minor refactors

* can migrate the balance of end users with new design

* migration successfully migrates balances of users, validators, and operators.

* cleanup unused files. clippy,

* tests passing

* PoF requires all nodes to have equal weight in consensus per the paper.

* Update ci.yaml (0LNetworkCommunity#1239)

* [Genesis] Migration tools for genesis from legacy accounts (0LNetworkCommunity#1237)

* For 0L genesis tools for hard forks, and migrations: create a MoveVm session from fake data to be able to apply migrations from Move system contracts.

* wip testing fakeexector for account migrations

* Scaffolding tests for v6 genesis fork. first cleanup deprecated modules.

* add fixtures for testing recovery genesis

* cleanup fixtures
implement functional tests for:
- exporting db backup to json
- creating genesis blob from json
- creating genesis blob in one shot from db backup

TODO: launch test node from from genesis.blob
TODO: e2e tests from a fixture file

* integration test using blob from fixture to start a diem-node in test mode

* patch github actions tests

* full e2e test from db backup to starting a node

* Add diem_logger as per @corythian plus comments.

* query nodes to check if onchain state is the same as recovery.

* - include db reader util to inspect a genesis.blob.
- refactor recovery tests

* test to check validator count. cleanup test utlis

* cleanup tests

* stub a "check" feature, to check a json file agains the output genesis.blob

* finish balance comparison with error list.

* clean

* test to create single validator and check output.

* skip comparing system zero address.

* cargo fix

* cargo fmt

* create function to start a vm executor, and uses a function pointer to transform legacy data to Move arguments.

* experimenting with alternative way of starting a vm genesis session

* runs

* cleanup

* need to explicitly set the validators at genesis

* test to confirm genesis validator set, is the same as defined set.

* tests for validator set and balance passing

* change fixtures, make node start from command line

* can start a test node from genesis blob

* can genesis tools test can start a node from a genesis and query for an accounts resources

* make ol version of swarm config generator in ol/smoke_tests

* wip

* move legacyRecovery to ol/types. So now we can run the user migrations in the vm_genesis::lib. First draft builds

* create GenesisMigration user migration test. Builds.

* ol/genesis-tools builds with refactor

* refactored with clean build

* minor refactors

* can migrate the balance of end users with new design

* migration successfully migrates balances of users, validators, and operators.

* cleanup unused files. clippy,

* tests passing

* whitespace to trigger ci

* initial scaffold of proof-of-fee auction. Borrows code from NodeWeight. Includes tranaction api.

* implement seat filling algo, which considers the 1/3 unproven node limit on epoch changes

* patch

* patch

* builds

* implement vm function to pay fee from user account

* all validators are charged fee at epoch boundary

* cleanup  validator set proposal functions

* refactor jail function at epoch boundary

* make epoch boundry _meta_epoch.move pass

* filter for vouches on proof of fee

* initialize val account with a PoF struct

* epoch reconfiguration meta tests passing. PoF bid initialization unit tests passing. Validator meta sanity tests passing

* patch issue with failover

* add bid restrictions, and checking upon seating

* burn excess fees than needed for validators

* reward thermostat initial implementation

* genesis init fee baseline

* patch bug in thermostat

* more tests for fill_seats, and thermostat. patches

* test

* consolidate validator audits, check for the case that there are fewer bidders than the stated val set.

* add test fixtures, modify some APIs "tell don't ask" pattern. Add several tests.

* add unit tests for thermostat. Patch a couple bugs

* tests for thermostat increase/decrease

* deprecate Audit.move, and create tests for qualifications in Proofoffee.move

* Jailing mechanism needs update after deprecating Towers. Proposing here that a Voucher is the only one to unjail, since there is no other practical hurdle.

* audit tests for vouch, expired bids, no_funds

* covered all proof of fee functions, tests for all common scenarios of fill_seats, patch logic issues, all proof of fee tests passing!

* patch seating failover

* Clean up Cases.move. Patch Vouch tests fixtures

* adjust fixtures for reconfiguration tests, deprecate some tests, patch jailing

* patch all reconfig test fixtures. remove deprecated burn tests.

* continue patching tests and removing deprecated scenarios

* All transactional tests passing!

* txs transaction apis for setting and retracting bids.

* test for set and retract

* cleanup prints

* add struct in TransactionFee to track origin of fees FeeMaker

* refactor Burn to consider the preference of the user FeeMaker

* cleanup

* init FeeMaker on account creation

* patch tests to remove `print`

* patch epoch boundary burn ratios

* all tests passing

---------

Co-authored-by: Zoz <97761083+0xzoz@users.noreply.github.com>
0o-de-lally added a commit to 0o-de-lally/libra that referenced this pull request Apr 11, 2023
* For 0L genesis tools for hard forks, and migrations: create a MoveVm session from fake data to be able to apply migrations from Move system contracts.

* wip testing fakeexector for account migrations

* Scaffolding tests for v6 genesis fork. first cleanup deprecated modules.

* add fixtures for testing recovery genesis

* cleanup fixtures
implement functional tests for:
- exporting db backup to json
- creating genesis blob from json
- creating genesis blob in one shot from db backup

TODO: launch test node from from genesis.blob
TODO: e2e tests from a fixture file

* integration test using blob from fixture to start a diem-node in test mode

* patch github actions tests

* full e2e test from db backup to starting a node

* Add diem_logger as per @corythian plus comments.

* query nodes to check if onchain state is the same as recovery.

* - include db reader util to inspect a genesis.blob.
- refactor recovery tests

* test to check validator count. cleanup test utlis

* cleanup tests

* stub a "check" feature, to check a json file agains the output genesis.blob

* finish balance comparison with error list.

* clean

* test to create single validator and check output.

* skip comparing system zero address.

* cargo fix

* cargo fmt

* create function to start a vm executor, and uses a function pointer to transform legacy data to Move arguments.

* experimenting with alternative way of starting a vm genesis session

* runs

* cleanup

* need to explicitly set the validators at genesis

* test to confirm genesis validator set, is the same as defined set.

* tests for validator set and balance passing

* change fixtures, make node start from command line

* can start a test node from genesis blob

* can genesis tools test can start a node from a genesis and query for an accounts resources

* make ol version of swarm config generator in ol/smoke_tests

* wip

* move legacyRecovery to ol/types. So now we can run the user migrations in the vm_genesis::lib. First draft builds

* create GenesisMigration user migration test. Builds.

* ol/genesis-tools builds with refactor

* refactored with clean build

* minor refactors

* can migrate the balance of end users with new design

* migration successfully migrates balances of users, validators, and operators.

* cleanup unused files. clippy,

* tests passing

* PoF requires all nodes to have equal weight in consensus per the paper.

* Update ci.yaml (0LNetworkCommunity#1239)

* [Genesis] Migration tools for genesis from legacy accounts (0LNetworkCommunity#1237)

* For 0L genesis tools for hard forks, and migrations: create a MoveVm session from fake data to be able to apply migrations from Move system contracts.

* wip testing fakeexector for account migrations

* Scaffolding tests for v6 genesis fork. first cleanup deprecated modules.

* add fixtures for testing recovery genesis

* cleanup fixtures
implement functional tests for:
- exporting db backup to json
- creating genesis blob from json
- creating genesis blob in one shot from db backup

TODO: launch test node from from genesis.blob
TODO: e2e tests from a fixture file

* integration test using blob from fixture to start a diem-node in test mode

* patch github actions tests

* full e2e test from db backup to starting a node

* Add diem_logger as per @corythian plus comments.

* query nodes to check if onchain state is the same as recovery.

* - include db reader util to inspect a genesis.blob.
- refactor recovery tests

* test to check validator count. cleanup test utlis

* cleanup tests

* stub a "check" feature, to check a json file agains the output genesis.blob

* finish balance comparison with error list.

* clean

* test to create single validator and check output.

* skip comparing system zero address.

* cargo fix

* cargo fmt

* create function to start a vm executor, and uses a function pointer to transform legacy data to Move arguments.

* experimenting with alternative way of starting a vm genesis session

* runs

* cleanup

* need to explicitly set the validators at genesis

* test to confirm genesis validator set, is the same as defined set.

* tests for validator set and balance passing

* change fixtures, make node start from command line

* can start a test node from genesis blob

* can genesis tools test can start a node from a genesis and query for an accounts resources

* make ol version of swarm config generator in ol/smoke_tests

* wip

* move legacyRecovery to ol/types. So now we can run the user migrations in the vm_genesis::lib. First draft builds

* create GenesisMigration user migration test. Builds.

* ol/genesis-tools builds with refactor

* refactored with clean build

* minor refactors

* can migrate the balance of end users with new design

* migration successfully migrates balances of users, validators, and operators.

* cleanup unused files. clippy,

* tests passing

* whitespace to trigger ci

* initial scaffold of proof-of-fee auction. Borrows code from NodeWeight. Includes tranaction api.

* implement seat filling algo, which considers the 1/3 unproven node limit on epoch changes

* patch

* patch

* builds

* implement vm function to pay fee from user account

* all validators are charged fee at epoch boundary

* cleanup  validator set proposal functions

* refactor jail function at epoch boundary

* make epoch boundry _meta_epoch.move pass

* filter for vouches on proof of fee

* initialize val account with a PoF struct

* epoch reconfiguration meta tests passing. PoF bid initialization unit tests passing. Validator meta sanity tests passing

* patch issue with failover

* add bid restrictions, and checking upon seating

* burn excess fees than needed for validators

* reward thermostat initial implementation

* genesis init fee baseline

* patch bug in thermostat

* more tests for fill_seats, and thermostat. patches

* test

* consolidate validator audits, check for the case that there are fewer bidders than the stated val set.

* add test fixtures, modify some APIs "tell don't ask" pattern. Add several tests.

* add unit tests for thermostat. Patch a couple bugs

* tests for thermostat increase/decrease

* deprecate Audit.move, and create tests for qualifications in Proofoffee.move

* Jailing mechanism needs update after deprecating Towers. Proposing here that a Voucher is the only one to unjail, since there is no other practical hurdle.

* audit tests for vouch, expired bids, no_funds

* covered all proof of fee functions, tests for all common scenarios of fill_seats, patch logic issues, all proof of fee tests passing!

* patch seating failover

* Clean up Cases.move. Patch Vouch tests fixtures

* adjust fixtures for reconfiguration tests, deprecate some tests, patch jailing

* patch all reconfig test fixtures. remove deprecated burn tests.

* continue patching tests and removing deprecated scenarios

* All transactional tests passing!

* txs transaction apis for setting and retracting bids.

* test for set and retract

* cleanup prints

* add struct in TransactionFee to track origin of fees FeeMaker

* refactor Burn to consider the preference of the user FeeMaker

* cleanup

* init FeeMaker on account creation

* patch tests to remove `print`

* patch epoch boundary burn ratios

* all tests passing

---------

Co-authored-by: Zoz <97761083+0xzoz@users.noreply.github.com>
0o-de-lally added a commit that referenced this pull request Jul 5, 2023
* For 0L genesis tools for hard forks, and migrations: create a MoveVm session from fake data to be able to apply migrations from Move system contracts.

* wip testing fakeexector for account migrations

* Scaffolding tests for v6 genesis fork. first cleanup deprecated modules.

* add fixtures for testing recovery genesis

* cleanup fixtures
implement functional tests for:
- exporting db backup to json
- creating genesis blob from json
- creating genesis blob in one shot from db backup

TODO: launch test node from from genesis.blob
TODO: e2e tests from a fixture file

* integration test using blob from fixture to start a diem-node in test mode

* patch github actions tests

* full e2e test from db backup to starting a node

* Add diem_logger as per @corythian plus comments.

* query nodes to check if onchain state is the same as recovery.

* - include db reader util to inspect a genesis.blob.
- refactor recovery tests

* test to check validator count. cleanup test utlis

* cleanup tests

* stub a "check" feature, to check a json file agains the output genesis.blob

* finish balance comparison with error list.

* clean

* test to create single validator and check output.

* skip comparing system zero address.

* cargo fix

* cargo fmt

* create function to start a vm executor, and uses a function pointer to transform legacy data to Move arguments.

* experimenting with alternative way of starting a vm genesis session

* runs

* cleanup

* need to explicitly set the validators at genesis

* test to confirm genesis validator set, is the same as defined set.

* tests for validator set and balance passing

* change fixtures, make node start from command line

* can start a test node from genesis blob

* can genesis tools test can start a node from a genesis and query for an accounts resources

* make ol version of swarm config generator in ol/smoke_tests

* wip

* move legacyRecovery to ol/types. So now we can run the user migrations in the vm_genesis::lib. First draft builds

* create GenesisMigration user migration test. Builds.

* ol/genesis-tools builds with refactor

* refactored with clean build

* minor refactors

* can migrate the balance of end users with new design

* migration successfully migrates balances of users, validators, and operators.

* cleanup unused files. clippy,

* tests passing

* PoF requires all nodes to have equal weight in consensus per the paper.

* Update ci.yaml (#1239)

* [Genesis] Migration tools for genesis from legacy accounts (#1237)

* For 0L genesis tools for hard forks, and migrations: create a MoveVm session from fake data to be able to apply migrations from Move system contracts.

* wip testing fakeexector for account migrations

* Scaffolding tests for v6 genesis fork. first cleanup deprecated modules.

* add fixtures for testing recovery genesis

* cleanup fixtures
implement functional tests for:
- exporting db backup to json
- creating genesis blob from json
- creating genesis blob in one shot from db backup

TODO: launch test node from from genesis.blob
TODO: e2e tests from a fixture file

* integration test using blob from fixture to start a diem-node in test mode

* patch github actions tests

* full e2e test from db backup to starting a node

* Add diem_logger as per @corythian plus comments.

* query nodes to check if onchain state is the same as recovery.

* - include db reader util to inspect a genesis.blob.
- refactor recovery tests

* test to check validator count. cleanup test utlis

* cleanup tests

* stub a "check" feature, to check a json file agains the output genesis.blob

* finish balance comparison with error list.

* clean

* test to create single validator and check output.

* skip comparing system zero address.

* cargo fix

* cargo fmt

* create function to start a vm executor, and uses a function pointer to transform legacy data to Move arguments.

* experimenting with alternative way of starting a vm genesis session

* runs

* cleanup

* need to explicitly set the validators at genesis

* test to confirm genesis validator set, is the same as defined set.

* tests for validator set and balance passing

* change fixtures, make node start from command line

* can start a test node from genesis blob

* can genesis tools test can start a node from a genesis and query for an accounts resources

* make ol version of swarm config generator in ol/smoke_tests

* wip

* move legacyRecovery to ol/types. So now we can run the user migrations in the vm_genesis::lib. First draft builds

* create GenesisMigration user migration test. Builds.

* ol/genesis-tools builds with refactor

* refactored with clean build

* minor refactors

* can migrate the balance of end users with new design

* migration successfully migrates balances of users, validators, and operators.

* cleanup unused files. clippy,

* tests passing

* whitespace to trigger ci

* initial scaffold of proof-of-fee auction. Borrows code from NodeWeight. Includes tranaction api.

* implement seat filling algo, which considers the 1/3 unproven node limit on epoch changes

* patch

* patch

* builds

* implement vm function to pay fee from user account

* all validators are charged fee at epoch boundary

* cleanup  validator set proposal functions

* refactor jail function at epoch boundary

* make epoch boundry _meta_epoch.move pass

* filter for vouches on proof of fee

* initialize val account with a PoF struct

* epoch reconfiguration meta tests passing. PoF bid initialization unit tests passing. Validator meta sanity tests passing

* patch issue with failover

* add bid restrictions, and checking upon seating

* burn excess fees than needed for validators

* reward thermostat initial implementation

* genesis init fee baseline

* patch bug in thermostat

* more tests for fill_seats, and thermostat. patches

* test

* consolidate validator audits, check for the case that there are fewer bidders than the stated val set.

* add test fixtures, modify some APIs "tell don't ask" pattern. Add several tests.

* add unit tests for thermostat. Patch a couple bugs

* tests for thermostat increase/decrease

* deprecate Audit.move, and create tests for qualifications in Proofoffee.move

* Jailing mechanism needs update after deprecating Towers. Proposing here that a Voucher is the only one to unjail, since there is no other practical hurdle.

* audit tests for vouch, expired bids, no_funds

* covered all proof of fee functions, tests for all common scenarios of fill_seats, patch logic issues, all proof of fee tests passing!

* patch seating failover

* Clean up Cases.move. Patch Vouch tests fixtures

* adjust fixtures for reconfiguration tests, deprecate some tests, patch jailing

* patch all reconfig test fixtures. remove deprecated burn tests.

* continue patching tests and removing deprecated scenarios

* All transactional tests passing!

* txs transaction apis for setting and retracting bids.

* test for set and retract

* cleanup prints

* add struct in TransactionFee to track origin of fees FeeMaker

* refactor Burn to consider the preference of the user FeeMaker

* cleanup

* init FeeMaker on account creation

* patch tests to remove `print`

* patch epoch boundary burn ratios

* all tests passing

---------

Co-authored-by: Zoz <97761083+0xzoz@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants