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

Update atree inlining cadence v1.0 #6187

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
eb592d8
Add development.md
Kay-Zee Sep 13, 2023
029c5f7
Apply suggestions from code review
peterargue Sep 15, 2023
a658d97
Update DEVELOPMENT.md
Kay-Zee Sep 15, 2023
1eea54f
Apply suggestions from code review
Kay-Zee Sep 15, 2023
2454c5f
Update DEVELOPMENT.md
Kay-Zee Sep 15, 2023
2fe85c6
Update DEVELOPMENT.md
Kay-Zee Sep 15, 2023
4b213f0
[Access] Reduce logging for script executions
peterargue May 21, 2024
a21d2f3
fix unittest
peterargue May 21, 2024
087b11e
undo error formatting change
peterargue May 21, 2024
0509790
Merged with master
UlyanaAndrukhiv Jun 6, 2024
a7055e8
Refactored implemening execption data pruner for observer node
UlyanaAndrukhiv Jun 11, 2024
8a64787
Added blobs tracking for AN and ON, fixed creating blob record key fo…
UlyanaAndrukhiv Jun 17, 2024
f72ff61
Merge branch 'master' into UlyanaAndrukhiv/6002-exec-data-pruning
UlyanaAndrukhiv Jun 17, 2024
50bd1c4
Merge branch 'master' into UlyanaAndrukhiv/6002-exec-data-pruning
UlyanaAndrukhiv Jun 18, 2024
6adaad1
Merge branch 'master' into UlyanaAndrukhiv/6002-exec-data-pruning
UlyanaAndrukhiv Jun 19, 2024
170327e
Merge branch 'master' into UlyanaAndrukhiv/6002-exec-data-pruning
UlyanaAndrukhiv Jun 20, 2024
473d2f5
Merge branch 'master' into UlyanaAndrukhiv/6002-exec-data-pruning
UlyanaAndrukhiv Jun 21, 2024
fa5fc2e
Updated according to comments, added additional test for tracker storage
UlyanaAndrukhiv Jun 24, 2024
55fb3fa
Merge branch 'master' into UlyanaAndrukhiv/6002-exec-data-pruning
UlyanaAndrukhiv Jun 25, 2024
1cac1dd
capture cadence arch calls
ramtinms Jun 25, 2024
ffce3ee
improve captured precompiled calls
ramtinms Jun 26, 2024
d67fcdc
refactor precompiled calls
ramtinms Jun 26, 2024
aabcaca
fix test
ramtinms Jun 26, 2024
4da2633
improve naming
ramtinms Jun 26, 2024
9120c3c
typo
ramtinms Jun 26, 2024
b52e585
hot fix
ramtinms Jun 26, 2024
5ac3140
adding test for capture functionality
ramtinms Jun 26, 2024
cdae2b6
adding test for precompile encoding
ramtinms Jun 26, 2024
9e68923
add go docs
ramtinms Jun 26, 2024
2a1eff8
lazy allocate captures
ramtinms Jun 26, 2024
f7ab5c7
minor improvements
ramtinms Jun 26, 2024
749efdd
improve performance
ramtinms Jun 26, 2024
3af685e
add test for emulator precompiled contract
ramtinms Jun 26, 2024
3972802
add precompile tracking test
ramtinms Jun 26, 2024
d7b68ee
fix linter
ramtinms Jun 26, 2024
010dbf7
Merge branch 'master' into ramtin/6152-capture-arch-calls
ramtinms Jun 26, 2024
d348cbf
Update DEVELOPMENT.md
vishalchangrani Jun 26, 2024
30d2b42
Merge branch 'master' into kan/add-development-md
vishalchangrani Jun 26, 2024
604590f
Merge pull request #4712 from onflow/kan/add-development-md
vishalchangrani Jun 26, 2024
2a06113
typo
ramtinms Jun 26, 2024
0fb3c40
typo
ramtinms Jun 26, 2024
95dddc0
Merge branch 'master' into ramtin/6152-capture-arch-calls
ramtinms Jun 26, 2024
40be3c7
add balance after in attoflow
ramtinms Jun 27, 2024
e8b00eb
fix test
ramtinms Jun 27, 2024
39d7a17
add tests
ramtinms Jun 27, 2024
5bc375e
update tests
ramtinms Jun 27, 2024
58d6e8d
add utility for flow token event decoding
ramtinms Jun 27, 2024
926a48a
improve tests
ramtinms Jun 27, 2024
956f730
update branching strategy
vishalchangrani Jun 27, 2024
7967d91
update
vishalchangrani Jun 27, 2024
7d2bd86
update
vishalchangrani Jun 27, 2024
ee2da81
update
vishalchangrani Jun 27, 2024
0795e5c
update state commit due to evm contract changes
ramtinms Jun 27, 2024
5d63313
apply PR feedbacks part 1
ramtinms Jun 28, 2024
0240602
small improvements
ramtinms Jun 28, 2024
3100730
Merge pull request #6162 from onflow/vishal/update_branching_strategy
vishalchangrani Jun 28, 2024
b2c0ca0
use cadence byte array instead of string
ramtinms Jun 28, 2024
581ebaf
Merge pull request #6160 from onflow/ramtin/6117-adding-balance-after…
ramtinms Jul 1, 2024
fd4804e
change random source to bytes32
sideninja Jul 1, 2024
a310d32
change random source return value
sideninja Jul 1, 2024
0481370
update test for random source
sideninja Jul 1, 2024
dd44b26
update evm test
sideninja Jul 1, 2024
0080378
Merge branch 'master' into ramtin/6152-capture-arch-calls
ramtinms Jul 1, 2024
63b76a1
state commit update due to EVM contract changes
ramtinms Jul 1, 2024
b7a7d15
Merge pull request #6157 from onflow/ramtin/6152-capture-arch-calls
ramtinms Jul 1, 2024
837aa9d
Merge branch 'master' into gregor/random-source-size
sideninja Jul 3, 2024
6e5a379
expose constant for random source lenght
sideninja Jul 3, 2024
ca95d82
use constant as source length
sideninja Jul 3, 2024
c5bfc47
Add support for JSONL report format
fxamacker Jul 3, 2024
ab87266
Merge pull request #5959 from onflow/petera/less-logging-script-exec
peterargue Jul 5, 2024
a7e3595
link checkpoint on bootstrapping
zhangchiqing Jun 28, 2024
2a85477
tidy
zhangchiqing Jul 3, 2024
30b5831
Merge branch 'master' into gregor/random-source-size
ramtinms Jul 5, 2024
b292e24
Merge pull request #6169 from onflow/gregor/random-source-size
ramtinms Jul 5, 2024
bfb4f89
Merge pull request #6109 from The-K-R-O-K/UlyanaAndrukhiv/6002-exec-d…
peterargue Jul 5, 2024
acbcf4a
Merge pull request #6176 from onflow/fxamacker/support-jsonl-migratin…
fxamacker Jul 8, 2024
1ee8e35
Update to Cadence v1.0.0-preview.36
turbolent Jul 8, 2024
1436e61
Merge pull request #6173 from onflow/leo/6167-link-checkpoint
zhangchiqing Jul 8, 2024
7be15fb
Merge pull request #6186 from onflow/auto-update-onflow-cadence-v1.0.…
turbolent Jul 8, 2024
0d27d25
Merge branch 'master' into bastian/update-atree-inlining-cadence-v1.0-12
turbolent Jul 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Development

## Feature Release Flow

### Branching Strategy

#### The [master](https://github.com/onflow/flow-go/tree/master) branch

- The `master` branch is intended to only contain features for the immediately upcoming release, whether it is a [Height Coordinated Upgrade (HCU) or a Spork](https://developers.flow.com/networks/node-ops/node-operation/hcu#hcu-versus-spork).

#### HCU or Spork specific branches

- For every HCU and spork, a branch will be created from master. This branch will be tagged and used to update testnet and then mainnet.
- Only non-breaking changes (see: [breaking change classification](#breaking-change-classifications)) can be committed to these HCU or spork specific branches.

#### Feature branches
- During development, all features should live on a feature branch.
- For small features, this will be a simple working branch. These branches have the naming scheme `<contributor>/<issue #>-<short description>, for example `kan/123-fix-known-issue`
- For larger features, this may be a shared feature branch with other team members. Feature branches have the naming scheme `feature/<name>`.

### Upgrade Path Eligibility

- When a feature branch is ready to be merged, the desired upgrade path onto Mainnet must be determined (if any). The options are:
- Height Coordinated Upgrade (HCU)
- No protocol-level breaking changes
- No state migrations
- Changes to how Execution state/path are handled are allowed if they are
- Backwards compatible, or
- Brand new additions
- Resource optimizations are okay
- Cadence upgrades which could cause execution state fork (likely any Cadence upgrade except for trivial changes)
- Spork
- Protocol level breaking change
- State migrations required
- All HCU upgrades can go directly into the `master` branch
- All spork upgrades must live on their own feature branch until the last HCU before the spork has been performed (usually approximately 1 month before the Spork).
- It is the responsibility of the DRI to keep this feature branch in a mergeable state.
- If the spork is scheduled to occur within a month, all the feature branches can be merged into `master`. However, if the exact spork date has not been decided then a special spork branch may be created from master to merge all the feature branches. This is to consolidate all the feature branches while accommodating any additional HCUs that may occur between then and the spork date.
- Suggestion: once a sprint, merge `master` into the feature branch. More frequent merges are easier, as they avoid complex conflict resolutions


### End of Release Cycle

- At the end of every release cycle, we will tag a commit that includes all desired features to be released
- This commit will be tagged according to [semantic versioning guidelines](https://dapperlabs.notion.site/Changes-to-handling-git-tags-5e39af7c723a428a915bd88901fc1274)
- Release notes must be written up, describing all features included in this tag

### Benchmark Testing

[Benchmarking](https://www.notion.so/Benchmarking-e3d89e3aadb44b0787da9bb7703b0dae?pvs=21)

- All features on the release candidate tag must undergo testing on `benchmarknet`

### Testnet

- The current schedule is the Wednesday two weeks before the corresponding Mainnet spork
- Features should aim to live on Testnet for at least two weeks before making it to Mainnet

### Mainnet

- Features must live on Testnet for two week before making it to Mainnet
- The current schedule is the Wednesday two weeks after the Testnet Spork

## Breaking Change Classifications

### Acceptable Changes for HCU

- All backward compatible changes
- Breaking changes only pertaining to the execution of future transactions
- Many Cadence related breaking changes would fall in this category
- FVM changes may also fall here
- Breaking changes only pertaining to the verification of future transactions

### Spork only changes

- Any change that requires a state migration
- i.e. something changing in how the historical state will be read and interacted with
- Any change that would break the communication contract between nodes
- e.g. Addition of a new REQUIRED field in a message structure
- Removal of a REQUIRED channel in libp2p
- Removal of a REQUIRED field in a message structure
- Generally, *all* the fields in our node-to-node messages are required.
- For BFT reasons we avoid optional fields, as they add surface for spamming attacks, impose additional consistency requirements, and they often add security vulnerabilities w.r.t. the message hash/ID.
- Most changes of the core protocol outside of execution, such as changes in the consensus algorithm, verification-and-sealing pipeline, or collector mechanics.
- For any protocol-related changes, you need to have a solid argument for why this change is non-breaking (absence of a counter-example is not sufficient).
- Changes in the [Service Events](https://www.notion.so/Service-Events-54e5edb7515445f293dff36ade910ad7?pvs=21) that are emitted by the Execution environment and ingested by the protocol
- Change in the reading of Protocol state that is not backwards compatible
- e.g. If the way the node interprets identities loaded from storage is changed so that identities stored before an upgrade is no longer recognized after the upgrade, this is not acceptable for an HCU
Loading
Loading