Add a step to remove stale generated data

This commit is contained in:
Prathamesh Musale 2025-08-14 14:11:50 +05:30
parent cea8e660cd
commit bb9da4c68c
6 changed files with 47 additions and 19 deletions

View File

@ -242,6 +242,12 @@ Now that all the deployment directories are setup, we are ready to run the simul
### Step 1: Simulated Token Genesis Event
Remove any existing data from previous runs:
```bash
rm -rf <path/to/zenith-stack>/generated
```
Following command generates the simulated participants with respective point lockup events. It also creates a base genesis file with treasury initialized with the participants data:
```bash
@ -258,7 +264,7 @@ This will generate following files in `<path/to/zenith-stack>/generated`:
└── watcher-events.json # Simulated lockdrop contract events
```
And a base genesis file at `<path/to/zenith-stack>/base-genesis-file/genesis.json`
And a base genesis file at `<path/to/zenith-stack>/base-genesis-file/genesis.json`.
Note the path to `<path/to/zenith-stack>/generated` directory as it will be required in [Step 4](#step-4-run-lockdrop-distribution-notebook).

View File

@ -219,7 +219,7 @@ Since we've placed existing generated data in zenith-stack, following command sk
zenith-ansible -i ./inventories/development/hosts.yml tge-site.yml -e "mode=simulate-lockdrop"
```
This will generate a base genesis file at `<path/to/zenith-stack>/base-genesis-file/genesis.json`
This will generate a base genesis file at `<path/to/zenith-stack>/base-genesis-file/genesis.json`.
Note the path to `<path/to/zenith-stack>/generated` directory as it will be required in [Step 4](#step-4-run-lockdrop-distribution-notebook).
@ -366,12 +366,12 @@ Now we can run the comprehensive test suite to validate that the zenithd node's
After running the tests, compare your output from the tests above to output from the chosen test run (eg. `test-runs/run1/output.log`):
- `test_allocations`: The allocations comparisons (`Star Allocations Comparison`, `Galaxy Allocations Comparison` and `Total Allocations Comparison`) should match exactly as the TGE process is time-invariant
- `test_unlock_schedule`:
- Allocations: The allocations comparisons (`STAR ALLOCATIONS COMPARISON`, `GALAXY ALLOCATIONS COMPARISON` and `TOTAL ALLOCATIONS COMPARISON`) should match exactly as the TGE process is time-invariant
- Token unlock schedules:
- Since the chain from your run starts at a later time than that from the original test run, the effective calculated unlock schedule for points will be different
- In `Unlock Blocks Comparison`, the `Expected Blocks` (your run) should be `<` `Expected Blocks` (test run)
- In `Initial Unlock Amounts Comparison`, the `Expected ($sZ)` (your run) should be `>` `Expected ($sZ)` (test run)
- `test_accrual_state`: Since this checks accrual state at time of running the test, `Expected ($sZ)` will be different across runs
- In `UNLOCK BLOCKS COMPARISON`, the `Expected Blocks` (your run) should be `<` `Expected Blocks` (test run)
- In `INITIAL UNLOCK AMOUNTS COMPARISON`, the `Expected ($sZ)` (your run) should be `>` `Expected ($sZ)` (test run)
- Accrual states: Since this checks accrual state at time of running the test, in `TOTAL UNLOCKED AT BLOCK X`, the `Expected ($sZ)` will be different across runs
If all the tests pass and above conditions hold, it confirms that the simulation produces consistent results.

View File

@ -3,7 +3,7 @@ LOCKDROP ALLOCATION COMPARISON TESTS
================================================================================
test_0_star_allocations (test_allocations.AllocationTest.test_0_star_allocations)
Test star allocations for all lock periods ...
Star Allocations Comparison:
STAR ALLOCATIONS COMPARISON
+---------------+---------+-----------------------------------------------+--------------------+--------------------+--------------+
| Lock Period | Point | Zenith Address | Notebook ($sZ) | zenithd ($sZ) | Difference |
+===============+=========+===============================================+====================+====================+==============+
@ -17,10 +17,12 @@ Star Allocations Comparison:
+---------------+---------+-----------------------------------------------+--------------------+--------------------+--------------+
| 5 years | ~tortyp | zenith1udqej93xhavjrpaxeazkgtz4m2x4tr7l07ptcj | 12,780,607,328,988 | 12,780,607,328,988 | 0 |
+---------------+---------+-----------------------------------------------+--------------------+--------------------+--------------+
ok
test_1_galaxy_allocations (test_allocations.AllocationTest.test_1_galaxy_allocations)
Test galaxy allocations for all lock periods ...
Galaxy Allocations Comparison:
GALAXY ALLOCATIONS COMPARISON
+---------------+---------+-----------------------------------------------+-------------------+-------------------+--------------+
| Lock Period | Point | Zenith Address | Notebook ($sZ) | zenithd ($sZ) | Difference |
+===============+=========+===============================================+===================+===================+==============+
@ -34,10 +36,12 @@ Galaxy Allocations Comparison:
+---------------+---------+-----------------------------------------------+-------------------+-------------------+--------------+
| 5 years | ~byl | zenith1udqej93xhavjrpaxeazkgtz4m2x4tr7l07ptcj | 8,205,775,018,378 | 8,205,775,018,378 | 0 |
+---------------+---------+-----------------------------------------------+-------------------+-------------------+--------------+
ok
test_2_total_allocations (test_allocations.AllocationTest.test_2_total_allocations)
Test total allocations for all participants ...
Total Allocations Comparison:
TOTAL ALLOCATIONS COMPARISON
+------------+--------------------------+
| Source | Total Allocation ($sZ) |
+============+==========================+
@ -47,10 +51,12 @@ Total Allocations Comparison:
+------------+--------------------------+
| Difference | 0 |
+------------+--------------------------+
ok
test_unlock_schedule_calculation (test_unlock_schedule.UnlockScheduleTest.test_unlock_schedule_calculation)
Test unlock schedule calculations for all lock periods ...
Unlock Blocks Comparison:
UNLOCK BLOCKS COMPARISON
+---------+---------------+---------------------+-------------------+------------------+--------------+
| Point | Lock Period | Start Time | Expected Blocks | zenithd Blocks | Difference |
+=========+===============+=====================+===================+==================+==============+
@ -75,7 +81,7 @@ Unlock Blocks Comparison:
| ~byl | 5 years | 2025-07-07T14:43:58 | 77,287,464 | 77,287,464 | 0 |
+---------+---------------+---------------------+-------------------+------------------+--------------+
Initial Unlock Amounts Comparison:
INITIAL UNLOCK AMOUNTS COMPARISON
+---------+---------------+---------------------+------------------+-----------------+--------------+
| Point | Lock Period | Start Time | Expected ($sZ) | zenithd ($sZ) | Difference |
+=========+===============+=====================+==================+=================+==============+
@ -99,10 +105,12 @@ Initial Unlock Amounts Comparison:
+---------+---------------+---------------------+------------------+-----------------+--------------+
| ~byl | 5 years | 2025-07-07T14:43:58 | 167,096,014,588 | 167,096,014,588 | 0 |
+---------+---------------+---------------------+------------------+-----------------+--------------+
ok
test_accrual_state_calculation (test_accrual_state.AccrualStateTest.test_accrual_state_calculation)
Test accrual state calculations after some blocks ...
Total Unlocked at Block 612:
TOTAL UNLOCKED AT BLOCK 612
+---------+---------------+----------------+--------------------+------------------+-----------------+--------------+
| Point | Lock Period | Block Height | Last Unlocked At | Expected ($sZ) | zenithd ($sZ) | Difference |
+=========+===============+================+====================+==================+=================+==============+
@ -126,6 +134,8 @@ Total Unlocked at Block 612:
+---------+---------------+----------------+--------------------+------------------+-----------------+--------------+
| ~byl | 5 years | Block 612 | Block 600 | 167,158,420,664 | 167,158,420,664 | 0 |
+---------+---------------+----------------+--------------------+------------------+-----------------+--------------+
ok
----------------------------------------------------------------------

View File

@ -6,6 +6,10 @@ from base_test import BaseAllocationTest
class AccrualStateTest(BaseAllocationTest):
"""Test accrual state calculations"""
def tearDown(self):
# Blank line after each test
print("\n")
def test_accrual_state_calculation(self):
"""Test accrual state calculations after some blocks"""
# Get latest block height for testing
@ -88,7 +92,7 @@ class AccrualStateTest(BaseAllocationTest):
f"Diff={difference:+,} $sZ")
# Print table
print(f"\nTotal Unlocked at Block {test_block_height}:")
print(f"\nTOTAL UNLOCKED AT BLOCK {test_block_height}")
headers = ["Point", "Lock Period", "Block Height", "Last Unlocked At", "Expected ($sZ)", "zenithd ($sZ)", "Difference"]
print(tabulate(accrual_data, headers=headers, tablefmt="grid"))

View File

@ -6,6 +6,10 @@ from base_test import BaseAllocationTest
class AllocationTest(BaseAllocationTest):
"""Test allocation comparisons between notebook and zenithd"""
def tearDown(self):
# Blank line after each test
print("\n")
def test_0_star_allocations(self):
"""Test star allocations for all lock periods"""
@ -50,7 +54,7 @@ class AllocationTest(BaseAllocationTest):
f"zenithd={api_allocation:,} $sZ, "
f"Diff={difference:+,} $sZ")
print("\nStar Allocations Comparison:")
print("\nSTAR ALLOCATIONS COMPARISON")
print(tabulate(table_data, headers=headers, tablefmt="grid"))
def test_1_galaxy_allocations(self):
@ -97,7 +101,7 @@ class AllocationTest(BaseAllocationTest):
f"zenithd={api_allocation:,} $sZ, "
f"Diff={difference:+,} $sZ")
print("\nGalaxy Allocations Comparison:")
print("\nGALAXY ALLOCATIONS COMPARISON")
print(tabulate(table_data, headers=headers, tablefmt="grid"))
def test_2_total_allocations(self):
@ -126,7 +130,7 @@ class AllocationTest(BaseAllocationTest):
]
headers = ["Source", "Total Allocation ($sZ)"]
print("\nTotal Allocations Comparison:")
print("\nTOTAL ALLOCATIONS COMPARISON")
print(tabulate(table_data, headers=headers, tablefmt="grid"))
self.assertEqual(notebook_total, api_total,

View File

@ -7,6 +7,10 @@ from base_test import BaseAllocationTest, SECONDS_PER_YEAR, BLOCK_DURATION_SECON
class UnlockScheduleTest(BaseAllocationTest):
"""Test unlock schedule calculations"""
def tearDown(self):
# Blank line after each test
print("\n")
def test_unlock_schedule_calculation(self):
"""Test unlock schedule calculations for all lock periods"""
@ -97,11 +101,11 @@ class UnlockScheduleTest(BaseAllocationTest):
f"Diff={unlock_diff:+,} $sZ")
# Print tables
print("\nUnlock Blocks Comparison:")
print("\nUNLOCK BLOCKS COMPARISON")
unlock_blocks_headers = ["Point", "Lock Period", "Start Time", "Expected Blocks", "zenithd Blocks", "Difference"]
print(tabulate(unlock_blocks_data, headers=unlock_blocks_headers, tablefmt="grid"))
print("\nInitial Unlock Amounts Comparison:")
print("\nINITIAL UNLOCK AMOUNTS COMPARISON")
initial_unlock_headers = ["Point", "Lock Period", "Start Time", "Expected ($sZ)", "zenithd ($sZ)", "Difference"]
print(tabulate(initial_unlock_data, headers=initial_unlock_headers, tablefmt="grid"))