Releases: onflow/flow-go
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
v0.15.3
v0.15.2
- Update Cadence to v0.14.4 (#574) @Kay-Zee
- [FVM] Patch for program cache to support contract upgrades (#572) @ramtinms
- Validate collection guarantees based on reference block (#502) @jordanschalm
- access node: passing a list of fixed execution node ids to choose from (#560) @vishalchangrani
- [FVM] Updating program cache handler to always clean up state stack (#567) @ramtinms
v0.15.1
- Batch storage for Execution Receipts (#534) @m4ksio
- Update to properly handle unknown status from historical access node (#564) @Kay-Zee
- [Verification] Yahya/5400-resolve-interface-mismatch-consumer (#558) @yhassanzadeh13
- [Verification] Yahya/5353-finalized-block-reader (#548) @yhassanzadeh13
- New test: Checker heavy contract deployment (#359) @janezpodhostnik
- More data on the storage reporter (#531) @janezpodhostnik
- Cache Transaction Results (#532) @zhangchiqing
- Fail tx if storage limiter fails (#544) @ramtinms
- Remove unused closer from noop tracer (#555) @jordanschalm
- Fix the load testing tool for localnet (#475) @zhangchiqing
- [Refactoring] Chain traversing refactoring (#542) @durkmurder
- Storage limit flag (#536) @janezpodhostnik
- access node: skipping the call to the execution node if the transacti… (#402) @vishalchangrani
- [Epoch] Epoch aware/unstaked execution node (#400) @m4ksio
- adding block ID to TransactionResult response (#533) @vishalchangrani
- Panics in script execution are handled (#495) @m4ksio
- Update finalize cmd (#512) @zhangchiqing
- #1361 Freeze accounts (#329) @m4ksio
🛠 Improvements
- 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
Mainnet 7 - March 31 Spork
- Cadence cache tracking (#525) @m4ksio
- Test for missing execution receipt (#530) @m4ksio
- Support bootstrapping protocol state from snapshot (#209) @jordanschalm
- [Ledger] Reduce mem usage when exporting a root checkpoint (#518) @ramtinms
- [Exec node] View Read Cache (#489) @ramtinms
- Bootstrap scaffold/localnet/testnet from snapshot (#527) @jordanschalm
- Improve logic for managing own execution receipt as execution node (#528) @zhangchiqing
- [FVM] update fvm state to support child/merge (#490) @ramtinms
- Consensus: require multiple receipts to seal (#450) @AlexHentschel
- Porting the change on v0.14 to 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
🛠 Improvements
- Update to Cadence v0.14.1, implement new Account Key API (#529) @turbolent
🐞 Bug Fixes
- Fix Crypto.ECDSA_Secp256k1 (#510) @turbolent
Mainnet 6 - March 10 Spork
Mainnet 6 - Spork
March 10th, 2021
State Migrations
There are no state migrations as part of the spork.
Improvements
This Spork will be updating the Mainnet from v0.14.1 to v0.14.8
The main items being added are:
Bug fixes
- Fix Transaction execution checking crash
- Fix Script execution crash
Logging, monitoring and tracing improvements
- Remove unnecessary logs from Execution nodes
- Adding additional logs to Access nodes
- Improve tracing of the FVM
Performance related improvements
- Cadence checker Cache
- Optimized SHA3 custom implementation
Changes since v0.14.1
v0.14.2
- Minor logging changes (#422) @zhangchiqing
- Temporarily disabling SPoCKs generation (#421) @Kay-Zee
v0.14.3
- Add multi receipt requirement for sealing (#423) @AlexHentschel
- Add retry logic for Transaction Cadence code checking (#426) @ramtinms
v0.14.4
- Multi receipt requirement improvements (#444)
- Replace AST cache with in-memory program storage, and updating Cadence to v0.13.0 (#456) @turbolent
v0.14.5
- Update Cadence to v0.13.1 (#458) @turbolent
- Add tracing improvements for the FVM (#459) @ramtinms
- Use optimized custom SHA3 (#455 + #461) @tarakby
v0.14.6
- Fix transaction signature ordering (#468) @psiemens
- Disable tracing by default (#471) @ramtinms
- Add fork aware Cadence cache (#473) @m4ksio
- Delay contract updating contract contents while executing tx (#469) @ramtinms
- Add access node gRPC timeout to Execution and Collection node gRPC connections (#463) @vishalchangrani
- Update Cadence to v0.13.3 (#483) @turbolent
- Adds collection indexing fix on Access nodes (#480)
v0.14.7
v0.14.8
- Update max address index to 10 million (#499) @jordanschalm
- Additional verification node logging (#500 + #501) @ramtinms @yhassanzadeh13
- Access node rate limiting (#503) @vishalchangrani
- Access node preferred Execution Node flag (#504) @vishalchangrani
Mainnet 5 - February 16th Spork
Mainnet 5 - Spork
February 16th, 2021
State Migrations
There are no state migrations as part of the spork. However, core contracts will be updated to be compatible with the new Cadence version
Core Contract Updates
The core contracts, including the service account, will need to undergo upgrades in order to properly operate
Core Contracts
e467b9dd11fa00df
: Service Accountf233dcee88fe0abe
: Fungible Token1654653399040a61
Flow Tokenf919ee77447b7497
: Flow Fees
Additional Contracts
8d0e87b65159ae63
: Locked Tokens62430cf28c26d095
: Staking Proxy
Improvements
To see a full list of changes made since mainnet4, please take a look a v0.14.0
Changes since v0.14.0
v0.14.0
Dependencies
Version Bumps
- Update to Cadence v0.12.6 and Go SDK v0.14.3 (#360) @turbolent
- Update to Cadence v0.12.5 and Go SDK v0.14.2 (#316) @turbolent
- Update to core contracts v0.7.1 (#299) @turbolent
- Update to Go SDK v0.14.1 (#298) @turbolent
- Upgrading libp2p to v0.13.0 (#296) @vishalchangrani
- Update to Cadence v0.12.3 and Go SDK v0.14.0 (#297) @turbolent
- Update to Cadence v0.12.1 and Go SDK v0.13.0 (#271) @turbolent
- Update to Cadence v0.10.5 and Go SDK v0.12.3 (#277) @turbolent
⭐ Features
Epochs
- Epoch transition test flakyness (#293) @vishalchangrani
- Epoch test (#266) @vishalchangrani
- Handle joining network Pt 2: Epochmgr engine (#238) @jordanschalm
- Handle joining network Pt 1: Ingest Engine (#235) @jordanschalm
Storage Fees
- Storage reporter upgrade (#324) @janezpodhostnik
- Storage fees storage capacity from resource (#208) @janezpodhostnik
- Storage Capacity and Limit (#282) @janezpodhostnik
Sealing and Verification
- revised scheduling of sealing check (#362) @AlexHentschel
- Fixed error: payload includes invalid receipt (#342) @AlexHentschel
- reduced logging of re-requesting receipts (#337) @AlexHentschel
- Simplify checking sealing lock (#338) @zhangchiqing
- Validation of multiple receipts in payload (#323) @durkmurder
- New sealing phase 2-b (#310) @arrivets
- emergency sealing (#305) @arrivets
- Only request approvals from missing verifiers (#306) @arrivets
- Emergency sealing (#301) @durkmurder
- Enforce maxReceiptCount in block builder (#300) @arrivets
- New sealing phase 2 update (#270) @durkmurder
- Rerequest approvals (#263) @arrivets
- Seal validation (#264) @durkmurder
- Public assignment polishing (#273) @durkmurder
- Command line flags (#285) @durkmurder
- New sealing phase 2 (#247) @durkmurder
- Handle being unstake verification node (#245) @yhassanzadeh13
🛠 Improvements
- Network: Add engine processing time metric (#356) @yhassanzadeh13
- Improve tx tracer (#336) @ramtinms
- Service events (#86) @m4ksio
- Network: topology refactor (#328) @yhassanzadeh13
- Add tests to validate multiple receipts (#320) @zhangchiqing
- Skipping corrupted checkpoints (#286) @m4ksio
- adding block id,execution id index to execution receipt; modifying ac… (#313) @vishalchangrani
- Skip persisting execution state delta (#303) @zhangchiqing
- Checkpoint upgrades (#186) @m4ksio
- Network: Add topology cache (#308) @yhassanzadeh13
- Network: Deduplicate channels part 2 (#302) @yhassanzadeh13
- Network: Deduplicate channels part 1 (#289) @yhassanzadeh13
- Consensus Matching engine cleanup (#267) @zhangchiqing
- FVM: Improve parsing/checking safety check (#284) @turbolent
- Access node grpc metrics (#257) @Kay-Zee
- Randomized topology update (#253) @yhassanzadeh13
- Add check to skip copying in
finalize
(#214) @danuio - Allow querying older access nodes for tx results (#181) @Kay-Zee
- Crypto: DKG updates (#161) @tarakby
- Crypto: more DKG edge cases tests (#311) @tarakby
- Fix payload Indexing (#283) @zhangchiqing
- Crypto: update the minimum threshold (#226) @tarakby
- Crypto: audit updates (#207) @tarakby
- Cluster state refactoring (#261) @durkmurder
- Adding limits for ledger key/value size and interaction (#188) @ramtinms
🐞 Bug Fixes
- Storage reporter output directory fix (#353) @janezpodhostnik
- Incorporated Receipts form tree (without gaps) (#321) @AlexHentschel
- Move Signatures field from ExecutionResult to ExecutionReceipt (#319) @AlexHentschel
- FVM: Improve parsing/checking safety check (#284) @turbolent
- Fix Node Restart (#276) @zhangchiqing
- Disable event emission for non-transactions and improve FVM errors (#275) @turbolent
- Hotfix for transaction limits (#256) @Kay-Zee
📖 Documentation
- Network: Topology Readme (#260) @yhassanzadeh13
- Incorporated Receipts form tree (without gaps) (#321) @AlexHentschel
- Doc update: Hotstuff state machine (#294) @AlexHentschel
Misc
- Close database when using badger cli (#350) @zhangchiqing
- Added transaction fee as bootstrap parameter (#325) @janezpodhostnik
- Disable temp logging for fvm get contract code (#314) @ramtinms
- increasing msg size limits (#290) @vishalchangrani
- Merge v0.13 to master (#265) @zhangchiqing
- Flakey mesh engine test (#281) @yhassanzadeh13
- Remove old tools (#232) @zhangchiqing
- Added go version 1.15 to version check in Makefile (#126) @jpzk
- Add GCR Docker push on Tag (#262) @Kay-Zee
- Docker 20 compatibility (#252) @Kay-Zee
- Upgrade to Debian 10 - Buster (#255) @Kay-Zee
- Disable state sync test for now (#254) @Kay-Zee
- Update collection size limit to 1.75mb (#213) @Kay-Zee
- Relaxing the gas limit for service account transactions (#198) @ramtinms
v0.13.1 Access Node update
This is an Access node upgrade only release.
🛠 Improvements
- Access node now chooses an execution node for a block ID based on the execution receipt received earlier, when serving the GRPC API calls that involve communicating with an execution node.
v0.13.1
Mainnet 4 - Spork
December 16th, 2020
This is the first mainnet spork with intended for rewards. Participating nodes must register with the staking contract.
State Migrations
State migrations are used to transition the execution state to be compatible with breaking changes in Cadence and the Flow virtual machine. In exceptional cases, state migrations may be used to make state changes required for the continued functioning of the protocol.
Storage Usage Tracking
We will be tracking the storage usage, and keeping info about used storage inside the users account. This requires us to modify the account storage model slightly. This migration will make this addition to all existing accounts
Improvements
- Disable State Sync (#246) @zhangchiqing
- Stop verifying already sealed results (#250) @zhangchiqing
- Do not broadcast Execution Receipts if executed block is already sealed (#248) @zhangchiqing
- Extend safety check in FVM (#241) @ramtinms
- Add tool to remove Exe Fork (#243) @zhangchiqing
- Adding event limit per transaction (#128) @ramtinms