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

Atree Inlining & Deduplication with Cadence v0.42 (deprecated by PR #5736) #5349

Conversation

fxamacker
Copy link
Member

@fxamacker fxamacker commented Feb 2, 2024

Do not merge. This PR is to be used for building migration program needed by spork and running benchmarks.

This enables Atree Inlining & Deduplication with Cadence 0.42 in flow-go (e.g. atree migration program, etc.).

TODO:

  • Investigate flakey tests (flakes were unrelated to atree storage)
  • Fix compatibility of tests with atree inlining

OPTIONAL TODO:

UPDATES:

ramtinms and others added 30 commits January 25, 2024 10:56
Update event validation logic to account for the `evm.*` events
…ock-master

[Access] add config to limit script execution range - master
…t' of github.com:onflow/flow-go into ramtin/4961-evm-update-balance-in-cadence-smart-contract
fxamacker and others added 19 commits March 15, 2024 16:07
Added two flags to execution state extraction program:

--extract-payloads-by-address produces a file of payloads for
specified accounts or for all accounts instead of checkpoint files

--use-payload-as-input uses payload file as input instead of
checkpoint files

The two new flags don't affect migration and other existing
functionaly of state extraction program.  These two options
only affect input and output of state extraction program.

In other words, this can be used to extract migrated payloads
or extract as-is payloads for specified accounts.
Co-authored-by: Bastian Müller <bastian@turbolent.com>
Refactored payload file related functionality to be more reusable.

Added flags:
--input-payload-filename
--output-payload-filename
This utility can be used to create a subset of execution state
which can save time during development, testing, and
support/troubleshooting.
Co-authored-by: Leo Zhang <zhangchiqing@gmail.com>
This commit also added --allow-partial-state-from-payload-file flag
to execution-state-extract program.

User needs to specify this flag allow partial payload file as input
(e.g. not all accounts) in order to prevent accidental use of
partial state during real migration.

The primary use case for payload file is for development, testing,
and debugging of migrations because it allows migrating a subset
of payloads instead of all payloads.
Currently storage map key is assumed to be StringAtreeValue type.
However, storage domain cap_con uses Uint64AtreeValue as storage map key.

This commit supports both map key types during atree migration and
Cadence value validation.
This commit adds flag "continue-migration-on-validation-errors"
to continue migration even if validatino fails.

Validation errors are logged before continuing to the next account.

This feature should only be used for testing and debugging.
@fxamacker fxamacker changed the title Atree Inlining & Deduplication with Cadence v0.42 Atree Inlining & Deduplication with Cadence v0.42 (deprecated by PR #5736) Apr 18, 2024
@fxamacker
Copy link
Member Author

This PR was useful for fast updates to avoid workflow bottlenecks like unrelated test flakes, etc.

Closed by PR #5736 which will be easier for PR reviewers, etc.

@fxamacker fxamacker closed this Apr 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Execution Cadence Execution Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.