The Bravo/Bahamas release includes features that add new tables and require table migrations. The updates that drive these migrations span several contract deployments and the full cycle must be tested in Devnet.
Base Install
...
Full Local Test Process
Added tests to:
fio - release/2.0.x-dev.test develop
bravo-migr-test.js:
Release delta (develop - migr2) - remove data from old tables (fioreqctxts, recordobts, fioreqstss)
Release echo (migr/final-rc1) - remove migrtrx action, remove references to old tables (fioreqctxts, recordobts, fioreqstss)
This tests the final migration contract. The general test process:
...
Load fio.devtools with:
fio - develop (Bahamas)
fio.contracts -
master (2.
3)
fio.test - develop
Run fio.test - release/2.2.x
fio.devtools - develop
Bravo update (fio.contracts Step 1)
Update all nodes to fio.contracts Bravo
Run JS tests
Run FIP-1.b migration scripts
Run FIP-1.b migration confirmation scripts
Run JS test
FIP-1.a table migration step 1 testing
Running migration test script
Run JS regression tests.
Load up State with known Request and OBT records that can be referenced after Bahamas update. (need to create this test)
. This does the migration of data.
Update fio.contracts to develop branch (migr2)
Build and load contracts with fio.devtools
In bravo-migr-test.js
Put a “skip” on:
Release v2.3.2 - fiotrxtss (NEW table) scripts
Delete “skip” from:
Release delta (develop - migr2) - remove data from old tables (fioreqctxts, recordobts, fioreqstss)
Rerun fio.test. Should run cleanly
Update fio.contracts to migr/final-rc1 branch (migr3)
Build and load contracts with fio.devtools
In bravo-migr-test.js
Put a “skip” on:
Release v2.3.2 - fiotrxtss (NEW table) scripts
Delete “skip” from:
Release echo (migr/final-rc1) - remove migrtrx action, remove references to old tables (fioreqctxts, recordobts, fioreqstss)
Rerun fio.test. Should run cleanly
Devnet test
Base Install
Devnet should be initialized with:
fio - release/2.0.x-dev
fio.contracts - master (2.3.2 - bravo)
Base Test
Run bravo-migr-test.js from fio.test develop. This will do the initial table migration.
Run full fio.test release/2.3.x - should run cleanly
Bahamas (fio chain) update
Fork testing
Ensure nodes are launching with History
Update 6 nodes to fio Bahamas and ensure no forking occursRun table migration test against both types of nodes (see below)
Update 15 nodes to fio Bahamas and ensure no forking occurs
Do NOT update remaining nodes to Bahamas
Run FIP-1.b migration confirmation scripts
Run JS regression tests against upgraded nodes.
Run JS regression tests against non-upgraded nodes.
FIP-1.a table migration testing
Use the same Request and OBT records to test FIO Request and OBT against a node on 2.0.0 and a node on Bahamas.
fio.test release/2.3.x against non-upgraded nodes - should run cleanly
Run fio.test develop tests against upgraded nodes - should run cleanly (you can comment out the migration tests)
Delta update (fio.contracts Step 2)
FIP-1.b
Update all nodes to fio.contracts Delta
Run JS tests
Run FIP-1.b migration confirmation scripts, confirm upgraded servers have correct, new data and non-upgraded servers do not
Run
migrtrx
to remove data from old tables. Confirm success
BD-2238 Add voter info to accounts table (Part 2)
develop (delta = migr2)
In bravo-migr-test.js
Put a “skip” on:
Release v2.3.2 - fiotrxtss (NEW table) scripts
Delete “skip” from:
Release delta (develop - migr2) - remove data from old tables (fioreqctxts, recordobts, fioreqstss)
Run fio.test develop - should run cleanly
This will delete the data from the old tables and show confirmation.
Echo update (fio.contracts Step 3)
FIP-1.b
Update all nodes to fio.contracts Delta
Run JS tests
Run FIP-1.b migration confirmation scripts, confirm upgraded servers have correct, new data and non-upgraded servers do not
Run
migrtrx
to remove data from old tables. Confirm successmigr/final-rc1 (echo = migr3)In bravo-migr-test.js
Put a “skip” on:
Release v2.3.2 - fiotrxtss (NEW table) scripts
Delete “skip” from:
Release echo (migr/final-rc1) - remove migrtrx action, remove references to old tables (fioreqctxts, recordobts, fioreqstss)
Run fio.test develop - should run cleanly
bravo-migr-test.js will confirm that tables no longer exist.