feat(prot): synchronize network accounts [AC-1586]
Closes AC-1586. Synchronizes network accounts:
- Adds a signature type, Internal, used for data entries created at genesis and for network account synchronization.
- Moves account update logic from UpdateKeyPage executor to
block.Executor.ProcessTransaction
. - Pushes updates whenever
dn/oracle
,dn/globals
, ordn/network
are changed. - Executes pushed key page updates via an internally produced transaction instead of directly.
- Creates BVN mirrors of
dn/oracle
,dn/globals
, anddn/network
. - Unconditionally uses a simple initiator hash for synthetic transactions.
Review Checklist
If any item is not complete, the merge request is not ready to be reviewed and must be marked Draft:
.
-
The merge request title is in the format <change type>(<change scope>): <short description> [<task id>]
- For example,
feat(cli): add QR code generation [AC-123]
- For details, see CONTRIBUTING.md
- For example,
-
The description includes Closes <jira task ID>
(or rarelyUpdates <jira task ID>
) -
The change is fully validated by tests that are run during CI - In most cases this means a test in "validate.sh"
- In some cases, a Go test may be acceptable
- Validation is not applicable to things like documentation updates
- Purely UI/UX changes can be manually validated, such as changes to human-readable output
- For all other changes, automated validation tests are an absolute requirement unless a maintainer specifically explains why they are not in a comment on this merge request
-
The change is marked with one of the validation labels - validationci/cd for changes validated by CI tests
- validationmanual for changes validated by hand
- validationdeferred for changes validated by a follow up merge request
- validationnot applicable for changes where validation is not applicable
Merge Checklist
-
CI is passing -
Merge conflicts are resolved -
All discussions are resolved
Related to AC-1586
Edited by Ethan Reesor