Releases: onflow/flow-go
v0.20.5 - Mainnet 12
Mainnet 12
Epochs
- Return transaction error to be checked for system chunk transaction (#1096) @kc1116
- Fix bugs with epoch phase & counter metrics (#1090) @jordanschalm
- Fixes
bootstrap key
Machine Account Key bug (#1092) @danuio - Epoch Deployment CLI (#985) @danuio
- Update default values for epoch, staking and DKG length (#1063) @kc1116
- Move seed func (#1022) @kc1116
- Export machine account file func (#1015) @kc1116
- Add exported wrapper funcs for random seed util (#1014) @kc1116
- add backoff to dkg broker retry (#1080) @jordanschalm
Access Layer Updates
- Create testable example for splitter / relay engine (#1081) @smnzhu
- Split into separate request and response processing components. (#1068) @smnzhu
- Defining AccessNodeConfig and default config values to allow for non-command line node startup (#1072) @vishalchangrani
- Adding shutdown signal (#1077) @smnzhu
- Implement proxy connection factory (#1024) @smnzhu
- Running an unstaked Access Node (#911) @vishalchangrani
- Implement unstaked conduit (#994) @smnzhu
Performance
- Eject fake random (#945) @jwinkler2083233
- Binstat efficient stats in bins (#891) @simonhf
📖 Documentation
Misc
- [Consensus] fix leader selection error (#1148) @zhangchiqing
- [Network] skip returning error is an identity address on chain cannot be parsed (#1136) @vishalchangrani
- [All] Extended events logging port to v0.20 (#1058) @jordanschalm
- [cadence] switching to the private cadence repo (#1082) @vishalchangrani
- [crypto] Add cross-testing of our BLS implementation with that of BLST (#934) @huitseeker
- [Verification] Refactors Chunk Data Pack (#968) @yhassanzadeh13
- [Consensus] Own sized leveled forest tech depth (#1046) @durkmurder
- [Crypto[ Non relic build fix (#1074) @janezpodhostnik
- [Verification] Adds type and value assertion for assigner tests (#1065) @yhassanzadeh13
- [Integration] Fixes loader chain ID (#1084) @yhassanzadeh13
- [Crypto] Remove Relic submodule from the repo (#975) @tarakby
- [All] Making scaffold ReadyDoneAware (#1067) @vishalchangrani
- [Execution] Increase ingestion engine test timeout (#1038) @smnzhu
- [Network] Refactor lifecycle manager (#1031) @smnzhu
- [Network] Making the network middleware peer manager and connection gating optional (#1040) @vishalchangrani
- [Network] Clean up DefaultServerTLSConfig & an unnecessary md5 (#990) @huitseeker
- [Execution] Adding more tests for verifiability of block execution (#969) @ramtinms
- [CMD] add make tool-transit to make file (#981) @zhangchiqing
- [Consensus] Hotfix: Fix synchornization handling response (#1001) @zhangchiqing
- [Network] Sychronize ready and done (#1026) @smnzhu
- [FVM] Simplify storage limit checker code (#950) @ramtinms
- [FVM] Separate script and transaction environments (#939) @ramtinms
- [Network] Fixing race conditions in middleware_test unit test (#1017) @vishalchangrani
- [FVM] Update
DefaultStorageMBPerFLOW
(#1013) @janezpodhostnik - [Access Node] Create relay engine (#984) @smnzhu
- [Consensus] Remove legary consensus protocol 'ColdStuff' (#1010) @AlexHentschel
- [Integration] Deploy StakingProxy, LockedTokens and StakingCollection (#997) @danuio
- [Consensus] Caching of non processable approvals (#776) @durkmurder
v0.19.2 - Mainnet 11
Mainnet 11
- Verifiable Events
- Sealing & Verification: various minor improvements and code cleanups
- Minor Crypto Upgrades (Relic)
Verifiable events
- Test execution matches verification + fix wrong transaction index for verified events [Verifiable events part 5] (#869) @m4ksio
- Compute event hashes in separate thread [Verifiable events part 4] (#868) @m4ksio
- Verify service events [Verifiable events part 3] (#804) @m4ksio
- Verify events hash [Verifiable events part 2] (#739) @m4ksio
- Hash events collection [Verifiable events part 1] (#734) @m4ksio
🛠 Improvements
- [Crypto] Update relic to 9206ae5 (#846) @huitseeker
- [Sealing] Phase 2c revisions of technical debt (#887) @durkmurder
- [Access] Update error codes in GetEventsForHeightRange (#923) @smnzhu
- [Sealing] Ejection logic for incorporated result seals mempool (#888) @durkmurder
- [FVM] Enable getAccountKeys for scripts (#933) @ramtinms
- [Consensus] Inbound Queues for
synchronization.Engine
(#910) @durkmurder - [Verification] Gracefully handle missing registers (#880) @ramtinms
- [Cadence] Cadence Update (#879) @turbolent
- [Crypto] optimize sha3 in the crypto library (#676) @tarakby
🐞 Bug Fixes
- [Integration] Fixes finalized block height with block state bug (#936) @yhassanzadeh13
- [Execution] Fix execution halt when reloading blocks (#924) @m4ksio
- [Sealing] Fix for emergency sealing panic (#899) @AlexHentschel
- [Execution] Disable fees for system transactions (#889) @janezpodhostnik
Misc
- Add Preserve label to stale bot exemption (#901) @Kay-Zee
- [VER] Patch verification integration code (#952) @ramtinms
- [crypto, chore, easy] Lint our scripts (#935) @huitseeker
- Fix cadence auto update CI not running (#941) @janezpodhostnik
- [Verification] Fixes flakey tests and race conditions (#919) @yhassanzadeh13
- [Execution] update execution metrics setup with proper histogram buckets (#931) @ramtinms
- [CI / build] Activate race-detection for those modules that are passing it (#898) @huitseeker
- [Verification] Cleans up the old verification architecture (#831) @yhassanzadeh13
- logging the libp2p protocol for which stream creation failed sure to … (#900) @vishalchangrani
- [crypto] Fix relic build script for ARM (#823) @huitseeker
- Add ability to automatically fix linting (#904) @m4ksio
- Update README installation instructions (#895) @smnzhu
- [execution mempool] Adds property testing for Seals store, fixes an edge case (#839) @huitseeker
Mainnet 10 - v0.18.4
⭐ Features
Improved and updated the Sealing and Verification logic to more fully involve the Verification nodes in the Sealing process
🛠 Improvements
Cadence Updates
- Update to Cadence v0.18.0 (#844) @turbolent
- Auto Cadence Update: Language Server NPM package: Add support for Node environment, add tests (#834) @turbolent
- Auto Cadence Update: Multiple PRs (#819) @turbolent
- Auto Cadence Update: Remove the result declaration kind (#827) @turbolent
- Auto Cadence Update: Fix AST walk for transaction declaration (#821) @turbolent
- Auto Cadence Update: Update for changes in Flowkit API (#815) @turbolent
- Auto Cadence Update: Disable the wasmtime VM for now (#812) @turbolent
- Add auto-cadence-upgrade branch to CI (#797) @janezpodhostnik
- Auto Cadence Update: Improve sync flow_go action (#796) @turbolent
- [FVM] Crypto Cadence updates (#795) @janezpodhostnik
- Update to Cadence v0.17.0 (#789) @turbolent
Crypto Updates
- Update the crypto lib version (#817) @tarakby
- Crypto update (#802) @tarakby
- And non relic bls stubs (#801) @janezpodhostnik
- Add additional crypto tests (#787) @janezpodhostnik
- BLS signature verification (#768) @janezpodhostnik
- KMAC hashing (#767) @janezpodhostnik
- add a sentinel error for invalid inputs (#753) @tarakby
Metrics and Monitoring
- [Verification] Logging block height on chunk processing pipeline (#856) @yhassanzadeh13
- [Execution] Expose more execution/fvm metrics (#813) @ramtinms
- [Networking] Adding logging around libp2p one-to-one stream management (#785) @vishalchangrani
- [Collection] Add Metric to Track Greatest Epoch Final View (#698) @danuio
General Improvments
- [Execution] Epoch service events (#799) @m4ksio
- [Execution] Add pause execution flag (#857) @zhangchiqing
- [Execution] Upgrade
flow-core-contracts
version (#829) @janezpodhostnik - [Consensus] Concurrent pruning (#828) @zhangchiqing
- [Verification] rolls-in persistent architecture (#728) @yhassanzadeh13
- [Consensus] Pruning sealing mempool by height (#818) @zhangchiqing
- [Execution] Report transaction computation usage (#667) @ramtinms
- [Networking] making the peer update interval configurable via a command line argum… (#803) @vishalchangrani
- [Networking] Skipping pruning of connections which have ongoing one-to-one traffic (#800) @vishalchangrani
- [FVM] Implement FVM ValidatePublicKey (#788) @janezpodhostnik
- [Networking] Upgrading libp2p to version v0.14.1 (#782) @vishalchangrani
- [Execution] Delivery chunk data pack response async (#771) @zhangchiqing
- [Consensus] Approval Processing Core -> Sealing Core (#736) @durkmurder
- [FVM] prefixed hashers and a few changes (#781) @tarakby
- [FVM] Move
create account
to direct function call (#749) @janezpodhostnik - [Consensus] Repopulating of assignment collectors tree (#765) @durkmurder
- [FVM] FVM refactor - blueprints (#713) @ramtinms
- [Verification] Adds integration test for retrying chunk data pack requests (#763) @yhassanzadeh13
- [Consensus] Approval processing engine suggestions (#769) @AlexHentschel
- [Consensus] Repopulating of execution tree on startup (#660) @durkmurder
- [Access] Removing node version from ping metric (#759) @vishalchangrani
- [Verification] adds checking chunk data response collection ID against block payload (#737) @yhassanzadeh13
- [Verification] extends integration tests for resource cleanup (#752) @yhassanzadeh13
- [FVM] Meta-transaction context refactor (#730) @janezpodhostnik
🐞 Bug Fixes
- [Networking] Fixing stream reset bug (#832) @vishalchangrani
- [Networking] Make unicast message timeout configurable via command line argument (#849) @vishalchangrani
- [Verification] Fixing notifier id at fetcher (#850) @yhassanzadeh13
- [Consensus] Fix QC generation in bootstrap when non-internal nodes are present (#755) @jordanschalm
- [Cadence] convert non UTF-8 cadence error to a UTF-8 error (#779) @vishalchangrani
Misc.
- Improve tagging logic if commit has more than 1 tag (#816) @Kay-Zee
- Ignore
coverage.txt
(#791) @jordanschalm - Integration test fix for PR 736 (#780) @AlexHentschel
- Cannot use -l as a flag, therefore just use --light (#764) @Kay-Zee
- Add coverage workflow (#709) @Kay-Zee
Mainnet 9 - v0.17.4
Changes since v0.16.2
⭐ Features
- Turn on storage limiting for mainnet (#750) @janezpodhostnik
- Add gzip flag to JSON state exporter (#627) @turbolent
- Added double-execution prevention for blocks (#635) @m4ksio
🛠 Improvements
- Update to Cadence v0.16.1 (#747) @turbolent
- [FVM] Remove fee deduction in meta-transactions (#729) @janezpodhostnik
- [Consensus] Compliance Engine to use Message Queue (#646) @zhangchiqing
- [FVM] Direct contract function call (#689) @janezpodhostnik
- [Verification] fix the logic that handles missing registers (#715) @ramtinms
- [FVM] Dynamic contract deployment authorization (#720) @ramtinms
- [Cadence version upgrade (#710) @janezpodhostnik
- [Node bootstrap] Remove unused identities parameter from GenesisFixture (#718) @jordanschalm
- [Verification] Adds metrics collector and tracer to requester and fetcher engines (#707) @yhassanzadeh13
- [Access] Added a new metric network_gossip_sealed_height to track sealed height for all nodes. (#712) @vishalchangrani
- [Verification] Add missing verification metrics (#714) @zhangchiqing
- [Access] Switching finalized block height to sealed block height in ping metric reporting (#711) @vishalchangrani
- [Access] Log long running scripts (#538) @m4ksio
- [FVM] environment refactor - part 1 - event handler (#669) @ramtinms
- [Epochs] Refactor cluster quorum certificate field in EpochCommit (#690) @jordanschalm
- [Exe Ledger] Further optimize sha3 for amd64 (#687) @tarakby
- [Exe Ledger] Switch hash slices to arrays (#514) @tarakby (with contributions of @AlexHentschel #514)
- [FVM] Disable signing without a transaction tag (#694) @janezpodhostnik
- [CMD] remove already applied data migrations (#701) @ramtinms
- [Verification] Adds happy path integration tests for new architecture (#686) @yhassanzadeh13
- [Access] Exposing GRPC server metrics for execution and collection nodes. (#684) @vishalchangrani
- [Access] Add block height to Ping info response (#696) @vishalchangrani
- [Execution] Add service account access in system chunk (#691) @m4ksio
- [Access] Adding retry logic to look for at least two execution receipts for a block when serving an access node api call that needs an upstream execution node call (#683) @vishalchangrani
- [Epochs] Define and enforce canonical ordering for DKG and protocol state (#678) @jordanschalm
- [Verification] adds exponential backoff mechanism for requesting chunk data packs (#674) @yhassanzadeh13
- [Access] Adding node software version info to Ping metrics. (#662) @vishalchangrani
- [CMD] Verify generated root state snapshot (#600) @zhangchiqing
- [Consensus] Mature Builder logic for selecting Seals for inclusion in the block (#551) @AlexHentschel
- [Consensus] Core business logic for concurrent processing of Verification Nodes' Result Approvals (#632) @durkmurder (with contributions of @AlexHentschel #670 and #675)
- [Epochs] Refactor EpochCommit service event model to include only DKG keys (#661) @jordanschalm
- [Execution] Update sequence number independent of transaction invocation result (#602) @ramtinms
🐛 Bug Fixes
- [Ledger] Fix a typo in copy function (#748) @sideninja
- Fix non atomic cache updates (#697) @zhangchiqing
- Fixed error return for storage layer when key was not found (#700) @zhangchiqing
- Fix job consumer memory leak (#656) @zhangchiqing
- Fix inconsistent RLP encoding for Identity (#673) @jordanschalm
❓ Miscellaneous
- Skip flakey tests (#677) @zhangchiqing
- Update go version check to support 1.13-1.16 (#708) @ramtinms
Breaking changes
Proposer Key Sequence Number (#602)
When running a transaction, the proposer key sequence number would always be incremented unless any of the following conditions occur:
- invalid transaction (transaction rejected by collection nodes)
- any of the transaction signatures are not valid
- the transaction is missing the signature(s) by the proposer
- the proposal sequence number is invalid (not match with the one stored on the chain)
In other words, the new behaviour increments the sequence number even if the transaction fails at runtime or any other condition that is not mentioned above. The new behaviour protects the network against some cases of spamming attacks and protects users from double transaction submission attacks.
Transaction Domain Tags (#694)
Transaction domain tags allow signers to identify which messages are intended to represent encoded transactions, and which are not. The Flow protocol has been updated (as of May 5th 2021) to both accept signatures produced from messages prepended with a transaction domain tag, and from messages that are not. This spork will strictly require all signatures for transactions to have been produced from messages prepended with a transaction domain tag.
This breaking change requires all users of Flow Client Library, the Flow JavaScript SDK and Flow Go SDK to update their versions to a version greater than or equal to the version that supports transaction domain tags.
FlowIDTableStaking Smart Contract Breaking Change
This change refactors certain functions to eliminate excessive gas usage and is a part of preparing the contract for new protocol contracts like FlowEpoch and StakingCollection and making the contract more efficient
BREAKING CHANGE: Consolidating node and delegator metadata into a single struct to make querying staking information more straightforward.
These changes do not affect any transactions or active interactions with the Staking contract
You only need to take action if you are using any fo the following:
-
scripts to query information from the staking contract:
-
calling any of these public functions:
- FlowIDTableStaking.getNodeCommittedBalanceWithoutDelegators()
- FlowIDTableStaking.getNodeCommittedBalanceWithDelegators()
- FlowIDTableStaking.getNodeStakedBalanceWithDelegators() You will need to update to the latest versions of the scripts in the PR mentioned below, which will be merged to master when we perform the upgrade. These scripts now use the consolidated NodeInfo and DelegatorInfo objects to query staking information, as all callers should use from now on.
Cadence: Signature Algorithm Name Update (#710)
The naming of the ECDSA secp256k1 signature algorithm was not consistent across different codebases.
To main change is to replace SignatureAlgorithm.ECDSA_Secp256k1
with SignatureAlgorithm.ECDSA_secp256k1
Devnet 23 - v0.17.3
Changes since v0.16.2
⭐ Features
- Add gzip flag to JSON state exporter (#627) @turbolent
- Added double-execution prevention for blocks (#635) @m4ksio
🛠 Improvements
- [FVM] Remove fee deduction in meta-transactions (#729) @janezpodhostnik
- [Consensus] Compliance Engine to use Message Queue (#646) @zhangchiqing
- [FVM] Direct contract function call (#689) @janezpodhostnik
- [Verification] fix the logic that handles missing registers (#715) @ramtinms
- [FVM] Dynamic contract deployment authorization (#720) @ramtinms
- [Cadence version upgrade (#710) @janezpodhostnik
- [Node bootstrap] Remove unused identities parameter from GenesisFixture (#718) @jordanschalm
- [Verification] Adds metrics collector and tracer to requester and fetcher engines (#707) @yhassanzadeh13
- [Access] Added a new metric network_gossip_sealed_height to track sealed height for all nodes. (#712) @vishalchangrani
- [Verification] Add missing verification metrics (#714) @zhangchiqing
- [Access] Switching finalized block height to sealed block height in ping metric reporting (#711) @vishalchangrani
- [Access] Log long running scripts (#538) @m4ksio
- [FVM] environment refactor - part 1 - event handler (#669) @ramtinms
- [Epochs] Refactor cluster quorum certificate field in EpochCommit (#690) @jordanschalm
- [Exe Ledger] Further optimize sha3 for amd64 (#687) @tarakby
- [Exe Ledger] Switch hash slices to arrays (#514) @tarakby (with contributions of @AlexHentschel #514)
- [FVM] Disable signing without a transaction tag (#694) @janezpodhostnik
- [CMD] remove already applied data migrations (#701) @ramtinms
- [Verification] Adds happy path integration tests for new architecture (#686) @yhassanzadeh13
- [Access] Exposing GRPC server metrics for execution and collection nodes. (#684) @vishalchangrani
- [Access] Add block height to Ping info response (#696) @vishalchangrani
- [Execution] Add service account access in system chunk (#691) @m4ksio
- [Access] Adding retry logic to look for at least two execution receipts for a block when serving an access node api call that needs an upstream execution node call (#683) @vishalchangrani
- [Epochs] Define and enforce canonical ordering for DKG and protocol state (#678) @jordanschalm
- [Verification] adds exponential backoff mechanism for requesting chunk data packs (#674) @yhassanzadeh13
- [Access] Adding node software version info to Ping metrics. (#662) @vishalchangrani
- [CMD] Verify generated root state snapshot (#600) @zhangchiqing
- [Consensus] Mature Builder logic for selecting Seals for inclusion in the block (#551) @AlexHentschel
- [Consensus] Core business logic for concurrent processing of Verification Nodes' Result Approvals (#632) @durkmurder (with contributions of @AlexHentschel #670 and #675)
- [Epochs] Refactor EpochCommit service event model to include only DKG keys (#661) @jordanschalm
- [Execution] Update sequence number independent of transaction invocation result (#602) @ramtinms
🐛 Bug Fixes
- Fix non atomic cache updates (#697) @zhangchiqing
- Fixed error return for storage layer when key was not found (#700) @zhangchiqing
- Fix job consumer memory leak (#656) @zhangchiqing
- Fix inconsistent RLP encoding for Identity (#673) @jordanschalm
❓ Miscellaneous
- Skip flakey tests (#677) @zhangchiqing
- Update go version check to support 1.13-1.16 (#708) @ramtinms
Breaking changes
Proposer Key Sequence Number (#602)
When running a transaction, the proposer key sequence number would always be incremented unless any of the following conditions occur:
- invalid transaction (transaction rejected by collection nodes)
- any of the transaction signatures are not valid
- the transaction is missing the signature(s) by the proposer
- the proposal sequence number is invalid (not match with the one stored on the chain)
In other words, the new behaviour increments the sequence number even if the transaction fails at runtime or any other condition that is not mentioned above. The new behaviour protects the network against some cases of spamming attacks and protects users from double transaction submission attacks.
Transaction Domain Tags (#694)
Transaction domain tags allow signers to identify which messages are intended to represent encoded transactions, and which are not. The Flow protocol has been updated (as of May 5th 2021) to both accept signatures produced from messages prepended with a transaction domain tag, and from messages that are not. This spork will strictly require all signatures for transactions to have been produced from messages prepended with a transaction domain tag.
This breaking change requires all users of Flow Client Library, the Flow JavaScript SDK and Flow Go SDK to update their versions to a version greater than or equal to the version that supports transaction domain tags.
FlowIDTableStaking Smart Contract Breaking Change
This change refactors certain functions to eliminate excessive gas usage and is a part of preparing the contract for new protocol contracts like FlowEpoch and StakingCollection and making the contract more efficient
BREAKING CHANGE: Consolidating node and delegator metadata into a single struct to make querying staking information more straightforward.
These changes do not affect any transactions or active interactions with the Staking contract
You only need to take action if you are using any fo the following:
-
scripts to query information from the staking contract:
-
calling any of these public functions:
- FlowIDTableStaking.getNodeCommittedBalanceWithoutDelegators()
- FlowIDTableStaking.getNodeCommittedBalanceWithDelegators()
- FlowIDTableStaking.getNodeStakedBalanceWithDelegators() You will need to update to the latest versions of the scripts in the PR mentioned below, which will be merged to master when we perform the upgrade. These scripts now use the consolidated NodeInfo and DelegatorInfo objects to query staking information, as all callers should use from now on.
Cadence: Signature Algorithm Name Update (#710)
The naming of the ECDSA secp256k1 signature algorithm was not consistent across different codebases.
To main change is to replace SignatureAlgorithm.ECDSA_Secp256k1
with SignatureAlgorithm.ECDSA_secp256k1
Mainnet 8 Patch
v0.16.1 - Mainnet 8 Spork
Mainnet 8 - Spork
April 28th, 2021
State Migrations
There will be an update to the Cadence storage format, requiring a migration of all trie values. This affect the state commitment hash.
Change Log since v0.16.0
Note that Mainnet 8 will include all changes in v0.16.0 as well.
⭐ Features
- Add state migration for new Cadence storage format v4 (#638) @turbolent
- Transactions domain tags (#606) @janezpodhostnik
🛠 Improvements
- Deterministically shuffle clusters when bootstrapping (#637) @jordanschalm
- Change storage defaults (#616) @janezpodhostnik
- Update to Cadence v0.15.1 and Go SDK v0.18.0, Add balance fields to AuthAccount and PublicAccount (#636) @janezpodhostnik
- Verification Node utilizes separation of results and receipts in block Payload (#546) @AlexHentschel
- [Verification] Chunk data request optimization (#626) @yhassanzadeh13
🐛 Bug Fixes
- [FVM] capture events of meta transactions (#641) @ramtinms
- [Exec] Update sequence number independent of transaction invocation result (#602) @ramtinms
❓ Miscellaneous
- Backport account freezing test (#651) @m4ksio
- Increase default distance between ledger checkpoints (#640) @ramtinms
- Backport of CHDP cache and cache resource name requirement (#622) @m4ksio
- Bootstrapping Generates Root Snapshot File (#424) @danuio
- Update bootstrap MVP integration test (#619) @jordanschalm
- Fixed Docker volume permissions issue with SELinux (#393) @awfm9
v0.16.0 - Canary 3 Spork
- Fix repeated block execution (#545) @m4ksio
- Event height range limit fix to master (#596) @jordanschalm
- switch cadence on master (#608) @zhangchiqing
- Update Access Nodes' EN selection logic for the default case (#623) (#628) @Kay-Zee
- [cmd] separate out export json functionality (#604) @ramtinms
- Fix cache missing metrics (#620) @zhangchiqing
- CON: Avoid propagating messages while un-staked (#592) @jordanschalm
- [Network] Increasing number of network inbound message queue workers (#612) @ramtinms
- Consensus On Epoch Boundaries (#565) @jordanschalm
- Update smart contract deployment limits (#601) @ramtinms
- [Consensus] payload receipts optimization (#462) @durkmurder
- [Exec] simultaneous collection execution and delta commits (#585) @ramtinms
- Parallel WAL write change (#570) @m4ksio
🛠 Improvements
🐞 Bug Fixes
- ProvidedSeqNumber getter on error (#618) @janezpodhostnik
v0.15.4
- Access RPC: GetEvents Performance Improvements (#587) @jordanschalm
- update bootstrap message (#566) @zhangchiqing
- [Verification] Adds receipts field to the CompletExecutionReceipt fixture (#586) @yhassanzadeh13
- Rename match engine to sealing engine (#584) @zhangchiqing
- FVM refactoring - part 1 - error handling (#563) @ramtinms
- [Verification] Adds integration test for the assigner fetcher pipeline (#573) @yhassanzadeh13
- [Verification] Adds chunk data pack requester interface (#577) @yhassanzadeh13
- Fix flaky tests (#583) @zhangchiqing
- Refactor WAL to be a separate component (#561) @m4ksio
- adding the access node sequence diagram to the access node readme (#576) @vishalchangrani
🛠 Improvements
v0.15.3 - Mainnet 7 - April 7 Spork
Mainnet 7 - Spork
April 7th, 2021
State Migrations
There will be an update for all accounts to get the minimum balance required for storage fees
Improvements
This Spork will be updating the Mainnet from v0.14.9 to v0.15.3
The main items being added are:
Bug fixes
- Fix more script execution crashes
- Crypto.ECDSA_Secp256k1 fix
Logging, monitoring and tracing improvements
- More improvements to tracing of the FVM
Performance related improvements
- Cadence interpreter optimizations
- Cadence contract value lazy loading
- TransactionResult and Event caching
New Features
- Enable storage limit
- Support Account Freezing
- Add block ID to TransactionResult response
Changes since v0.14.9
v0.15.0
- Cadence cache tracking (#525) @m4ksio
- Support bootstrapping protocol state from snapshot (#209) @jordanschalm
- Reduce ledger memory usage when exporting a root checkpoint (#518) @ramtinms
- Execution node view Read Cache (#489) @ramtinms
- Bootstrap scaffold/localnet/testnet from snapshot (#527) @jordanschalm
- Improved logic for execution nodes managing their own execution receipts (#528) @zhangchiqing
- Update fvm state to support child/merge (#490) @ramtinms
- Consensus requiring multiple receipts to seal (#450) @AlexHentschel
- Access node to consider at least 2 matching ER (#519) @vishalchangrani
- Add contract reporter to execution-state-extract (#429) @janezpodhostnik
- Move service events to execution receipt (#399) @jordanschalm
- Add proposer to finalized block count metric (#523) @jordanschalm
- Move read-badger and read-protocol-state to utils (#508) @zhangchiqing
- Update to Cadence v0.14.1, implement new Account Key API (#529) @turbolent
- Fix Crypto.ECDSA_Secp256k1 (#510) @turbolent
v0.15.1
- Batch storage for Execution Receipts (#534) @m4ksio
- Update to properly handle unknown status from historical access node (#564) @Kay-Zee
- Cache Transaction Results (#532) @zhangchiqing
- Fail transaction if storage limiter fails (#544) @ramtinms
- Remove unused closer from noop tracer (#555) @jordanschalm
- Chain traversing refactoring (#542) @durkmurder
- Enable storage limit flag (#536) @janezpodhostnik
- Epoch aware/unstaked execution node (#400) @m4ksio
- Add block ID to TransactionResult response (#533) @vishalchangrani
- Panics in script execution are handled (#495) @m4ksio
- Add freeze account support to FVM (#329) @m4ksio
- Enable contract update validation in the runtime (#549) @turbolent
- Update to Cadence v0.14.3 and SDK v0.17.0 (#550) @turbolent
- Upgrade to go 1.15 (#258) @Kay-Zee
v0.15.2
- Update Cadence to v0.14.4 (#574) @Kay-Zee
- FVM Patch for program cache to support contract upgrades (#572 + #567) @ramtinms
- Validate collection guarantees based on reference block (#502) @jordanschalm
- Adding a list of fixed execution node ids to choose from (#560) @vishalchangrani