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

[Morse->Shannon Migration] Migration module #1034

Open
3 of 12 tasks
bryanchriswhite opened this issue Jan 20, 2025 · 0 comments · Fixed by #1032 or #1039 · May be fixed by #1059 or #1072
Open
3 of 12 tasks

[Morse->Shannon Migration] Migration module #1034

bryanchriswhite opened this issue Jan 20, 2025 · 0 comments · Fixed by #1032 or #1039 · May be fixed by #1059 or #1072
Assignees
Labels
consensus-breaking IMPORTANT! If the PR with this tag is merged, next release WILL HAVE TO BE an upgrade. on-chain On-chain business logic protocol General core protocol related changes

Comments

@bryanchriswhite
Copy link
Contributor

bryanchriswhite commented Jan 20, 2025

Objective

Enable account (identity and balances) state migration from Morse to Shannon. The design SHOULD separate the import of the canonical migration Morse starting state from operations which derive Shannon migrated state transitions are derived. This allows for forward compatibility with migration operations which weren't planned prior to importing the starting state.

Origin Document

https://www.notion.so/buildwithgrove/Technical-Migration-from-Morse-Shannon-173a36edfff6800689fad43fd15287cd

Goals

  • Enable on-chain commitment to Morse migration state
  • Enable self-claiming of Morse account identity
  • Enable self-claiming of Morse account balance(s)

Deliverables

Non-goals / Non-deliverables

  • On-chain validation or Morse import state.

General deliverables

  • Comments: Add/update TODOs and comments alongside the source code so it is easier to follow.
  • Testing: Add new tests (unit and/or E2E) to the test suite.
  • Makefile: Add new targets to the Makefile to make the new functionality easier to use.
  • Documentation: Update architectural or development READMEs; use mermaid diagrams where appropriate.

Creator: @bryanchriswhite
Co-Owners: @Olshansk

@bryanchriswhite bryanchriswhite added consensus-breaking IMPORTANT! If the PR with this tag is merged, next release WILL HAVE TO BE an upgrade. on-chain On-chain business logic protocol General core protocol related changes labels Jan 20, 2025
@bryanchriswhite bryanchriswhite self-assigned this Jan 20, 2025
@github-project-automation github-project-automation bot moved this to 📋 Backlog in Shannon Jan 20, 2025
@bryanchriswhite bryanchriswhite moved this from 📋 Backlog to 🏗 In progress in Shannon Jan 20, 2025
@bryanchriswhite bryanchriswhite linked a pull request Jan 20, 2025 that will close this issue
15 tasks
@bryanchriswhite bryanchriswhite linked a pull request Jan 20, 2025 that will close this issue
15 tasks
@bryanchriswhite bryanchriswhite linked a pull request Jan 22, 2025 that will close this issue
15 tasks
@bryanchriswhite bryanchriswhite linked a pull request Jan 27, 2025 that will close this issue
15 tasks
@Olshansk Olshansk moved this from 🏗 In progress to 👀 In review in Shannon Jan 28, 2025
@bryanchriswhite bryanchriswhite linked a pull request Jan 29, 2025 that will close this issue
12 tasks
@github-project-automation github-project-automation bot moved this from 👀 In review to ✅ Done in Shannon Feb 5, 2025
@bryanchriswhite bryanchriswhite linked a pull request Feb 5, 2025 that will close this issue
12 tasks
@bryanchriswhite bryanchriswhite moved this from ✅ Done to 🏗 In progress in Shannon Feb 5, 2025
bryanchriswhite added a commit that referenced this issue Feb 12, 2025
)

## Summary

Add `poktrolld migrate collect-morse-accounts` command to convert Morse
state export into a `MorseAccountState` for import into Shannon.

## Issue

- #1034

## Type of change

Select one or more from the following:

- [x] New feature, functionality or library
- [ ] Consensus breaking; add the `consensus-breaking` label if so. See
#791 for details
- [ ] Bug fix
- [ ] Code health or cleanup
- [ ] Documentation
- [ ] Other (specify)

## Testing

- [x] **Documentation**: `make docusaurus_start`; only needed if you
make doc changes
- [x] **Unit Tests**: `make go_develop_and_test`
- [ ] **LocalNet E2E Tests**: `make test_e2e`
- [ ] **DevNet E2E Tests**: Add the `devnet-test-e2e` label to the PR.

## Sanity Checklist

- [x] I have tested my changes using the available tooling
- [x] I have commented my code
- [x] I have performed a self-review of my own code; both comments &
source code
- [ ] I create and reference any new tickets, if applicable
- [x] I have left TODOs throughout the codebase, if applicable

---------

Co-authored-by: Daniel Olshansky <[email protected]>
Co-authored-by: red-0ne <[email protected]>
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in Shannon Feb 12, 2025
@bryanchriswhite bryanchriswhite moved this from ✅ Done to 🏗 In progress in Shannon Feb 12, 2025
bryanchriswhite added a commit that referenced this issue Feb 14, 2025
## Summary

Scaffold a new on-chain (persisted) map that will track the claimable
accounts from Morse. We want to store counts as normalized entities such
that we can leverage conventional data access paradigms (as opposed to
dumping a blob of Morse state on Shannon).

```bash
ignite scaffold map morse_claimable_account --no-message --module migration --index address public_key unstaked_balance:coin supplier_stake:coin application_stake:coin claimed_at_height:int64
```

Changes:
- Scaffold `MorseClaimableAccount`
- Update types & fix tests
- Refactor `poktrolld migrate collect-morse-accounts` to track balances
and stakes independently

## Issue

- Issue: #1034

## Type of change

Select one or more from the following:

- [x] New feature, functionality or library
- [ ] Consensus breaking; add the `consensus-breaking` label if so. See
#791 for details
- [ ] Bug fix
- [ ] Code health or cleanup
- [ ] Documentation
- [ ] Other (specify)

## Sanity Checklist

- [x] I have updated the GitHub Issue `assignees`, `reviewers`,
`labels`, `project`, `iteration` and `milestone`
- [ ] For docs, I have run `make docusaurus_start`
- [x] For code, I have run `make go_develop_and_test` and `make
test_e2e`
- [x] For code, I have added the `devnet-test-e2e` label to run E2E
tests in CI
- [ ] For configurations, I have update the documentation
- [x] I added TODOs where applicable

---------

Co-authored-by: Daniel Olshansky <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment