Releases: onflow/flow-go
v0.26.9 - Mainnet 18
Mainnet 18
Major Changes
- [Execution] upgrade cadence to secure-cadence-m9 (#2516) @j1010001
- [Consensus & Collection] Merge Signer-indices to master (#2414) @zhangchiqing
- [Access] Add execution data requester (#1895) @peterargue
Misc
- [Util CL] fix logging current statecommitment in execution state extraction (#2610) @zhangchiqing
- [Testing] localnet: switch from docker log driver to promtail (#2609) @SaveTheRbtz
- [Access] Use Connection Pool Logic (#2613) @lolpuddle
- Add ledger checkpoint status files to
gitignore
(#2607) @jordanschalm - [Logging] Fix implementation of script logging (#2528) @koko1123
- [util] update cmd to get seal for sealed block (#2587) @zhangchiqing
- [Tool] Export transactions for height range (#2442) @zhangchiqing
- [Access] Implement Connection Pooling for RPC Connections in AN (#2412) @lolpuddle
- [Networking] Downgrades libp2p pubsub version (#2592) @yhassanzadeh13
- [Crypto] performance improvement of SSWU map to curve (#2570) @tarakby
- sync engine optimization (#2548) @danielholmes839
- [State Sync] Lookup ExecutionResult directly instead of using index (#2566) @peterargue
- Update to Cadence v0.24.1 and Go SDK v0.26.1 (#2583) @turbolent
- [Protocol State] Index seal by sealed block id (#2551) @zhangchiqing
- [Testing] Moving convert fixtures to a namespace for test cases (#2533) @zhangchiqing
- [Util CLI] fix encoding in checkpoint-list-trie cmd (#2546) @zhangchiqing
- [Collection] Remove max account index (#2552) @jordanschalm
- [Testing] feat(localnet): use grafana, tempo, loki (#2510) @SaveTheRbtz
- [Testing] Fix flakey component job consumer test (#2538) @peterargue
- [Testing] chore(tests): cleanup TxTracker (#2520) @SaveTheRbtz
- [Testing] quarantine test - TestComponentConsumerSuite-runs_and_notifies_using_pre-notifier (#2555) @gomisha
- [Testing] chore(tests): cleanup worker and add tests (#2503) @SaveTheRbtz
- [Testing] chore(tests): cleanup TxStatsTracker and add tests (#2471) @SaveTheRbtz
- [Testing] chore(tests): move code back to contLoadGenerator.go (#2537) @SaveTheRbtz
- [Testing] feat(localnet): pass through tracing, extensive tracing, and cadence tracing flags (#2542) @SaveTheRbtz
- [Testing] chore(tests): cleanup worker stats tracker and add tests (#2504) @SaveTheRbtz
- Corruptible Conduit Framework Integration (#2397) @yhassanzadeh13
- [Fix] add explicit mapping of cluster prefix -> message codes (#2539) @kc1116
- PR Migrate ingestion engine to new Component interface (#2436) @danielholmes839
- chore(tests): remove unused batchLoadGenerator (#2519) @SaveTheRbtz
- chore(tests): do not go through the resolver for localhost (#2511) @SaveTheRbtz
- Add secure-cadence prefix as a tag to be pushed (#2167) @Kay-Zee
- [Crypto] improve flaky random test (#2509) @tarakby
- [All Nodes] upgrade flow to v0.3.1 (#2534) @zhangchiqing
- Exit validation early for empty collections (#2524) @jordanschalm
- Add BlockHeight to TransactionResultResponse (#2514) @lolpuddle
- Outdated blocks should not be logged as errors (#2372) @AlexHentschel
- Add Atree reporter to execution state extraction (#2461) @fxamacker
- Update to Cadence 8b113c539a2c, atree 525fbc26f40a, and CBOR ad2eae63303f (#2525) @turbolent
- add go workspace files to .dockerignore and .gitignore (#2469) @SaveTheRbtz
- [Signer Indices] Validate guarantors (#2462) @zhangchiqing
- Suggestion for PR #2462 (#2517) @AlexHentschel
- [Networking] Upgrades pubsub version of libp2p (#2515) @yhassanzadeh13
- Read memory limit from state (#2474) @robert-e-davidson3
- chore(tests): mark localnet and benchmarks owned by the performance team (#2512) @SaveTheRbtz
- add jobqueue README (#2373) @zhangchiqing
- upload log level for memory weights (#2493) @zhangchiqing
- chore(tests): fix init-light for localnet (#2508) @SaveTheRbtz
- Upgrade Cadence to secure-cadence-m8 (#2499) @janezpodhostnik
- flaky tests fix test async uploader - Test_AsyncUploader/stopping_component_stops_retrying (#2453) @gomisha
- [Fix] Adding sync request message as a cluster type message (#2495) @yhassanzadeh13
- Add tests to ensure mutations in scripts are discarded (#2482) @dsainati1
- chore(tests): cleanup unused fields from loader (#2470) @SaveTheRbtz
- [Component Manager] Fix race condition (#2349) @smnzhu
- Optimize MTrie reading single path by adding Ledger.GetSingleValue() to boost speed and reduce memory use (#2473) @fxamacker
- Optimize Ledger.Get() by making Forest.Read() use ~5x fewer allocs/op and run ~20% faster (#2477) @fxamacker
- Memory metrics (#2467) @dsainati1
- [BFT Testing] Corruptible Conduit Factory authenticating dictated messages. (#2441) @yhassanzadeh13
- Dan/1536 add cadence execution time metrics (#2394) @danielholmes839
- Upgrade linter to 1.46.2 (#2457) @zhangchiqing
- Remove unused travis yml (#2323) @Kay-Zee
- unquarantining 2 flaky tests that have been consistently passing in quarantine (#2455) @gomisha
- chore(tests): fix load test (#2454) @SaveTheRbtz
- chore(docker): fix parallel image builds (#2447) @SaveTheRbtz
- avoid race condition in validating blocks (#2427) @zhangchiqing
- Suggestion for PR #2414 (#2443) @AlexHentschel
- Memory limit exception for service account (#2437) @turbolent
- Add
util
command to retrieve snapshot at any height (#2429) @jordanschalm - Use go 1.18 to build and run binary (#2363) @Kay-Zee
- Secure Cadence (#2337) @janezpodhostnik
- Secure cadence master update (#2433) @m4ksio
- Separate permission setting of contract deploy/update and removal (#2390) @robert-e-davidson3
- Robust Transaction Deduplication (#2385) @jordanschalm
- add flaky skip reason so tests can run in cron job (#2410) @kc1116
- Secure Cadence upgrade to m7 (#2423) @janezpodhostnik
- Secure Cadence flow-go-sdk upgrade (#2417) @janezpodhostnik
- [FVM] Signing errors swapped fix (#2415) @janezpodhostnik
- Log MemoryUsed by transactions. (#2396) @dsainati1
- Allow disabling/enabling permissionless deployment with a transaction (#2376) @janezpodhostnik
- Secure Cadence - merge master (#2400) @janezpodhostnik
- [Execution State] Full search json dump (#1971) @m4ksio
- improve signer indices logging (#2408) @zhangchiqing
- [Crypto] fix race conditions in DKG tests (#2391) @tarakby
- Add new code space for Canary addresses (#2388) @tarakby
- rm duplicate code in getNextAncestryLevel (#1759) @zhiqiangxu
- log bootstrap cmd error (#2259) @zhangchiqing
- fix docker build loader (#2382) @zhangchiqing
- [FVM] Merge default execution/memory weights and state weights (#2374) @janezpodhostnik
- Add test for referencing non-existent address (#2256) @janezpodhostnik
- Update execution verification tests (#2007) @janezpodhostnik
- [FVM] Collapse FVM bench results (#2111) @janezpodhostnik
- Secure Cadence - revert removing addKey api v1 tests (#2344) @janezpodhostnik
- Khalil/1689 Add authorized sender pubsub topic validator (#2317) @kc1116
- Add checksum to signer indices (#2362) @zhangchiqing
- changing the block height range for GetEventsForBlockHeightRange REST… (#2379) @vishalchangrani
- Fix race detector issues. (#2293) @SaveTheRbtz
- Add weights for cadence values and types (#2358) @robert-e-davidson3
- [FVM] signature verification refactoring (#2171) @tarakby
- Add weights for array element overhead and map pre-allocated elements (#2375) @SupunS
- [Signer Indices] upgrade onflow/flow package (#2377) @zhangchiqing
- [Collection] Log collection proposer (#2381) @zhangchiqing
- Update cd.yml to ignore daily tags created through automation (#2368) @sjonpaulbrown
- Update localnet TARGET paths after recent dockerfile changes (#2361) @peterargue
- [BFT Testing] Integrating BFT testing framework with testnet (#2308) @yhassanzadeh13
- Don't push :latest tag by default (#2355) @m4ksio
- Fix linting error (#2356) @zhangchiqing
- Secure Cadence - add memory alloc metering (#2350) @janezpodhostnik
- Secure Cadence - Merge master (#2343) @janezpodhostnik
- Secure Cadence - upgrade to m5 (#2340) @janezpodhostnik
- Secure Cadence - integration test fix (#2338) @janezpodhostnik
- Add extraction report for usage within external tooling (#2239) @sjonpaulbrown
- [BFT Testing] implements wintermute attack orchestrator (#2291) @yhassanzadeh13
- [Tool] add rollback executed height (#2334) @zhangchiqing
- [REST API] Adding missing fields to the ExecutionResult object (#2311) @vishalchangrani
- [Access] update system chunk tx handling in GetTransactionResults API (#2329) @smnzhu
- Memory weight assignment from contract (#2305) @janezpodhostnik
- Smnzhu/system tx port (#2332) @smnzhu
- remove unused test util (#2331) @robert-e-davidson3
- Fixed some tests for AddPublicKey and RemoveePublicKey (#2327) @robert-e-davidson3
- Add observer support to localnet (#2320) @shawnflow
- Fix AN crash (#2326) @m4ksio
- Tx results by block id merged (#2314) @m4ksio
- Create GetTransactionResultsByBlockID API (#2303) @smnzhu
- [Access node] Add random en lookup on receipt lookup failure (#2321) @koko1123
- Fix bootstrap constraint check (#2233) @zhangchiqing
- Add config to limit caching of new proposals while syncing (#2294) @jordanschalm
- implement result reindexing tool (#2289) @smnzhu
- Retry on conflict inserting cluster blocks (#2270) @jordanschalm
- Use block ID from seal (#2287) @Kay-Zee
- Upgrade
go-retry
v0.1.0->v0.2.3
(#2258) @jordanschalm - Fix flakey test:
TestComponentShutdown
(#2269) @jordanschalm - Use block ID from seal (#2288) @smnzhu
- Fix er indexing on finalization (#2284) @koko1123
- Add mutex around script tracking map (#2283) @koko1123
- Improve DKG & QC contract logging (#2263) @kc1116
- Fix result indexing by block (#2276) @koko1123
- [FVM, EN] pass request context and add timeout for script execution (#2147) @ramtinms
- Merge v0.25 to master (#2266) @turbolent
- Update the private message struct: remove Orig from DKGMessage (#2238) @kc1116
- [Networking] Fixes unicast timeo...
v0.25.7
Mainnet 17
Major Changes
Updated to Cadence version v0.23.0, which contains a breaking change for the Public Key API
There has also been a lot of improvements made to the mTrie/merkle tree storage methods, specially made around the Write Ahead Log, and Checkpointing logic. The speed improvements here are mostly noticeable for node operations side and will not be DAPP facing.
There will be an internal concept change, which will better define the concept of "Weight" in the protocol. This changed required some renaming of Stake → Weight (Node level breaking change). This means that the read the new protocol state, it will require a matching node version that has the same conceptual understanding of Stake vs Weight.
Lastly, there is a change that will make to add the code necessary for Variable Transaction Fees, but this feature will not be enabled until a community vote has been held.
All Changes
💥 Breaking Changes
- Optimize MTrie Checkpoint (regCount & regSize): -9GB alloc/op, -110 milllion allocs/op, -4GB file size (#2126) @fxamacker
- Reduce checkpoint file size by using fewer bytes to encode length of encoded payload value (#2165) @fxamacker
- Update checkpoint file format version from v4 to v5 (#2174) @fxamacker
- Optimize MTrie checkpoint: 47x speedup (11.7 hours -> 15 mins), -431 GB alloc/op, -7.6 billion allocs/op, -6.9 GB file size (#1944) @fxamacker
- Rename
Stake
toWeight
(#2090) @jordanschalm - Cadence upgrade (#1975) @janezpodhostnik
Cadence & FVM
- [FVM] Variable Computation Metering (#1631) @janezpodhostnik
- [FVM] Change fee deduction logic (#2097) @janezpodhostnik
- [Execution] enable cadence runtime tracing given node level flag (#2108) @ramtinms
- [FVM] refactor computation and memory metering (#2129) @ramtinms
- [Migration] Migration for Ordered Map storage change (#1839) @dsainati1
- [FVM] relax tag conditions for ECDSA runtime signature verification (#1992) @ramtinms
- [FVM] Add bls crypto functions to transaction and script env (#1605) @dsainati1
- [FVM] Execution effort weights option for bootstrap (#2228) @janezpodhostnik
- [FVM] Move execution intensities debug logging (#2229) @janezpodhostnik
- [FVM] Fix metering limits (#2217) @janezpodhostnik
- [Cadence] update to Cadence v0.23.3 (#2247) @turbolent
- [FVM] Temporary fix for addressing storage used of a non-existing account (#2253) @janezpodhostnik
BFT Testing
- Implements attack network (#2144) @yhassanzadeh13
- Adds attacker implementation (#2121) @yhassanzadeh13
- Adds orchestrator interface and attack network (#2109) @yhassanzadeh13
- Implements Corruptible Conduits (#2033) @yhassanzadeh13
Access API
- Store and retrieve transaction results by EN RPC (#2166) @m4ksio
- Create transaction result by index api (#2159) @koko1123
- Add bootstrap command to generate observer networking key (#2087) @peterargue
- Create light block response as default for AN block lookup API (#2148) @koko1123
- Add Converters between RPC and flow-go Block with nested types (#2056) @koko1123
- Create unit test for gRPC ExecutionResult response structure (#2006) @koko1123
- Support running observer standalone using standard AN image (#2037) @peterargue
- Log unique cadence scripts in AN execution engine (#1934) @koko1123
- Add ExecutionDataId field in handler (#2010) @koko1123
- [HTTP API] Transaction success status (#2106) @sideninja
🛠 Node Improvements
-
[Execution] Log execution data ID (#2196)(#2055)(#2039) @smnzhu
-
[Execution] Add logging for CPU, RAM, and checkpoint (#2119)(#2187) @fxamacker
-
[Execution] Reduce default checkpoint distance flag from 40 to 20 to speedup EN startup (#2223) @fxamacker
-
[Execution] Remove transaction results from execution data (#2098) @smnzhu
-
[Consensus]
VoteAggregator
pruning (#2040)(#2110) @durkmurder -
[Consensus] Refactor epochs related contract deployments, use blueprints pattern (#2057) @kc1116
-
[Collection] Add message queue to transaction
ingest
engine (#2035) @jordanschalm -
[All Nodes] Root snapshot QC validation (#2038) @durkmurder
-
[All Nodes] Performance: improve the binary search speed (#1493) @jwinkler2083233
-
[All Nodes] Implement --profiler-mem-profile-rate= (#2059) @simonhf
-
[Consensus] DKG Messaging Improvements (#1950) @jordanschalm
-
[All Nodes] Performance: replace calls to Lookup with binsearch (#1513) @jwinkler2083233
-
[All Nodes] Add func that will check for snapshot validity (#1940) @kc1116
-
FVM error detection (#2028) @sideninja
🐞 Bug Fixes
- Fix for missing cache (#2043) @jwinkler2083233
- Fix bootstrap cluster qc generation (#1976) @jordanschalm
- Fix potential overflow in ledger metrics LatestTrieRegCountDiff() and LatestTrieMaxDepthDiff() (#2096) @fxamacker
- Fix race in epoch switchover handling (#1980) @jordanschalm
- [HTTP API] Authorizers bugfix (#2152) @sideninja
CI/CD
- Flaky Test Monitor - BigQuery update and full refactoring of unit tests (#2102) @gomisha
- Add observer as a separate docker image (#2113) @m4ksio
- Avoid setup/teardown cycle for skipped epoch integration tests; re-enable base Epoch Transition test (#1881) @jordanschalm
- Fix non-x86 linter issue (#1938) @tarakby
- changing go mod to point to the latest OpenAPI spec (#1962) @vishalchangrani
Misc
- Replace use of deprecated ioutil funcs in ledger (#2084) @fxamacker
- [Observability] Adds metrics for HeroCache (#2093)(#2218) @yhassanzadeh13 @smnzhu
- [Admin] GetIdentity command (#2191) @smnzhu
- Update sync protocol flip (#2123) @smnzhu
- Target westmere processor when compiling relic for better compatibility and performance (#1993) @yagop
- [Admin] Remove double instantiation of admin server for access node (#2141) @smnzhu
- [Util CLI] Removing transit push command; adding transit upload-transit-keys com… (#2122) @vishalchangrani
- [Admin] Add admin command to enable/disable profiler (#2076) @zhangchiqing
- [Admin] Define ToggleUploaderCommand (#2114) @smnzhu
- [Observability] Configurable metrics (#2095) @m4ksio
- Update flow-go/crypto dependency (#2107) @janezpodhostnik
- Protocol randomness use cleanup (#2001) @tarakby
- Include core contract changes in cadence-issue-1127 (#2103) @janezpodhostnik
- [Network] Add read and write deadlines for direct messages (#2079) @smnzhu
- [Util CLI] Partner node info generation tool (#1988) @kc1116
- [Network] add new metric to track number of Unicast calls in progress (#2077) @smnzhu
- [Network] add metrics and log to track blocked queue workers (#2069) @smnzhu
- [Admin] implement read execution data admin command (#1998) @smnzhu
- [Util CLI] fungible token tracker (#2012) @ramtinms
- [Logging] Fix TransactionContractFunctionInvoker error log (#2031) @janezpodhostnik
- [Logging] Make ContractHandler Commit produce deterministic errors (#2003) @janezpodhostnik
- [Logging] log vote's signer and block when vote is invalid (#1982) @zhangchiqing
- [Networking] Implements Pluggable Conduit Factory (#1986) @yhassanzadeh13
- [Util CLI]Fix account reporter (#1972) @zhangchiqing
- [Testing] Allow bench-net permissionless contract deployment (#1970) @janezpodhostnik
- Split CI integration job into categories (#2242) @smnzhu
- Update request size limit for sync engine (#2245) @smnzhu
- Fix incorrectly skipped test (#2241) @smnzhu
- Fix output of fungible token tracker test (#2237) @smnzhu
- Test monitor GitHub actions (#2151) @smnzhu
- [BFT Testing] Implements integration tests for corruptible conduit factory framework (#2203) @yhassanzadeh13
v0.24.4
Mainnet 16
Major Changes
No breaking changes for Cadence included in this update.
There are two major features included in this software upgrade:
- Consensus Voting V2: Protocol level optimization on how voting on blocks is performed, allowing more parallelism in vote processing
- Epoch Dynamic Node Addition: Adds ability to more easily adjust Protocol member list during Epoch transitions
There has also been a lot of improvements made to the mTrie/merkle tree implementation including a bug fix which will effect how the Payload hash is generated. There are also improvements to caching, such as adding a new cache type which we're currently calling HeroCache.
Lastly, there is a change that will make this software version relatively incompatible with previous Flow node software versions, which is adding the execution CID, in preparation for the improve state sync engine. This change adds an extra field to the ExecutionResult data structure, which will produce different hashes for the ExecutionResult compared to previous software versions
All Changes
Cadence & FVM
- Check and Use Contract Audit Vouchers (#1826) @tehranifar
- Fix LedgerGetRegister to avoid caching empty value (#1875) @fxamacker
- Improve error handling in MTrie checkpoint file creation (#1892) @fxamacker
- Support legacy Keccak 256 hashing algorithm (#1868) @ramtinms
- Backport: Ledger interaction error (#1878) @zhangchiqing
- Optimize Forest.Proofs() and add ValueSizes() to MTrie, Forest, and Ledger (#1870) @fxamacker
- Preallocate slices in MTrie (#1838) @fxamacker
- Update to Cadence v0.20.3 (#1829) @turbolent
- Add logs for MTrie checkpoint file creation (#1894) @fxamacker
- Update MTrie with some minor fixes and small improvements (#1801) @fxamacker
- Relaxing ledger interaction limit for service and system transactions (#1753) @ramtinms
- Tweak FVM bench to be more stable (#1722) @janezpodhostnik
Epoch and DKG Updates
- Dynamic Node Startup (#1893) @kc1116
- Improve handling of post-spork beacon key initialization (#1917) @jordanschalm
- Epochs integration test validation: consensus nodes (#1856) @kc1116
- Include staking auction length in
resetEpoch
(#1804) @jordanschalm - Update
deployEpoch
for new FlowEpoch function (#1854) @jordanschalm - Skip starting dkg reactor engine if node not part of dkg committee (#1849) @kc1116
- Enforce weight/ejection requirements in cluster committee (#1842) @jordanschalm
- Epochs test collection node validation (#1819) @kc1116
- Set epoch final view metrics on transition (#1806) @jordanschalm
- Epochs Integration testing: Verification node (#1763) @kc1116
- DKG Comments / Logging Changes (#1769) @jordanschalm
- DKG State (#1738) @jordanschalm
- DKG Storage Pt III: Check beacon key consistency atomically with epoch phase transition (#1732) @jordanschalm
- DKG Storage Pt II: Update components using
DKGState
storage (#1721) @jordanschalm - DKG Storage Pt. I: Update storage layer (#1720) @jordanschalm
- Epochs integration tests (#1728) @kc1116
- Epochs test for joining with dynamic container addition/removal (#1603) @kc1116
Networking
- Refactors DNS cache with HeroCache (#1888) @yhassanzadeh13
- Refactoring networking received cache to HeroCache (#1908) @yhassanzadeh13
General Node and Crypto Improvements
- Update state synchronization (#1930) @smnzhu
- Chacha20-based PRG (#1782) @tarakby
- Clean up BLST tests (#1754) @tarakby
Access Node
- adding status_code to transaction result reponse in the REST API (#1959 ) @vishalchangrani
- Report execution errors for cadence scripts as OK in Access Node RPC calls (#1905) @koko1123
- Add naive error logging for Access node downstream calls (#1883) @koko1123
- REST api implementation (#1666) @vishalchangrani
- REST: Stability improvements (#1809) @sideninja
Cosensus Hotstuff
- Consensus Voting V2 (#1916) @zhangchiqing
- Sealing Core: Allow unverifiable block references below root height (#1828) @jordanschalm
- Extend Sealing Segment Structure (#1755) @jordanschalm
Sporking process improvements
- Improve state extraction (#1859) @zhangchiqing
- Validate the saved root snapshot (#1832) @zhangchiqing
Execution
- Improve transaction execution log (#1869) @zhangchiqing
- Switch eventList hash to use a Merkle trie (#1834) @ramtinms
- Better printing for keys in errors (#1781) @m4ksio
- Properly escape user-input in error messages (#1863) @m4ksio
- Log epoch number on execution node startup (#1731) @janezpodhostnik
- Remove metering computation twice (#1724) @janezpodhostnik
State sync engine
- Add execution data cid (#1775) @smnzhu
- Execution data requester (#1582) @smnzhu
- Sync engine / core updates (#1697) @smnzhu
- Allow registering custom node shutdown handlers (#1907) @peterargue
- Make NodeBuilder return runnable Nodes (#1543) @peterargue
Build, CI & Tests
- Fix flow-go failing to cross compile (#1939) @janezpodhostnik
- Fix ledger-heavy load generator (#1933) @janezpodhostnik
- Emulator build without Relic + Enable crypto no-Relic tests (#1922) @tarakby
- Fix undefined: sha3State errors when building on arm64 (#1903) @peterargue
- Support arm64 when building flow docker containers and localnet (#1904) @peterargue
- Disable machine account balance checking on test networks (#1877) @jordanschalm
- Improve Topology Factory for integration tests (#1880) @yhassanzadeh13
- Fix crypto test flakiness in randomness test (#1879) @tarakby
- Replace deprecated go get with go install (#1860) @koko1123
- Fix loader backport (#1841) @zhangchiqing
- Fix localnet loader for transaction execution success (#1816) @simonhf
- Flaky Test Monitor - CI fix - updated level 1 script to use level 1 sub-directory (#1808) @gomisha
- Stream negotiation and fallback for integration tests (#1812) @yhassanzadeh13
- Add intensive resources flag to AN tests (#1817) @kc1116
- Flaky Test Monitor - Level 3 Summary (#1793) @gomisha
- Fix bug in transfer tokens transaction in integration load tests (#1789) @janezpodhostnik
- Flaky Test Monitor - Summary Level 2 (#1707) @gomisha
- Use debian 11 (bullseye) (#1768) @Kay-Zee
- Skip flaky test conditionally (#1535) @smnzhu
🛠 Misc Improvements
- Limit range queries for sync engine @m4ksio
- Remove sudo from crypto setup (#1945) @tarakby
- Remove the crypto replace and add a crypto setup script (#1742) @tarakby
- Remove unnecessary allocations (#1596) @jwinkler2083233
- Refactors Transactions mempool to HeroCache (#1902) @yhassanzadeh13
- Adding proof to the merkle trie (#1833) @ramtinms
- Optimizes All method of BackData (#1852) @yhassanzadeh13
- Payload Patricia Trie Security fixes (#1800) @AlexHentschel
- Implements GC-optimized cache (#1778) @yhassanzadeh13
- Improve efficiency of
Views
andHeights
gadgets (#1823) @jordanschalm - Make hex address parsing consistent with SDK (#1792) @jordanschalm
- Removing legacy
Identities
interface (#1777) @AlexHentschel - Refactor Merkle Patricia Tree used for payload hashing (#1678) @AlexHentschel
- Update min LN machine account balance (#1774) @jordanschalm
- Adding validation when constructing a Local module (#1704) @zhangchiqing
- Add readme for live debugger (#1716) @ramtinms
v0.23.3 - Mainnet 15
Mainnet 15
Two major items going out this release.
The first will be the introduction of the new Cadence Storage Layer. This new storage layer will make use of the atree, which will greatly improve the performance of storage interactions with extremly large storage paths. As part of this change, there is a breaking change in relation to the owner field. More on that in the forums
The second being automated Epoch transitions. Epochs will now auto transition once a week with an un-changing node operator list. The network will run the DKG and shuffle clusters each epoch, but node operator changes will not be enabled at epoch boundaries yet. Note that this does not yet include the reward payout, which will still be done manually until we are satisfied with the reliability of the auto epoch transitions.
Breaking Change
- bugfix for Cadence's resource owner field (link)(https://forum.onflow.org/t/breaking-change-bugfix-for-cadence-resource-owner-field/2576)
Cadence & FVM
- [Cadence] Bump Cadence to v0.20.2 (#1552)(#1676)(#1714) @SupunS @turbolent @Kay-Zee
- [Mtrie] Improve ledger write speed for newly allocated slabs (#1501) @ramtinms
- [FVM] Update ledger interaction limit for bootstrapping (#1648) @ramtinms
- [FVM] fix error messages (#1665) @tarakby
- [FVM] Recover ledger interaction error (#1625) @janezpodhostnik
- [Mtrie] Fix for Mtrie bug (#1633) @AlexHentschel
- [FVM] Clean up FVM (#1613) @turbolent
- [Mtrie] Trie pruning (#1578) @ramtinms
- [FVM] Interaction limit related issues(#1504)(#1592) @janezpodhostnik @ramtinms
- [Mtrie] On update trie pruning (complete ledger) (#1507) @ramtinms
- [FVM] Change meta script invocation to direct contract function calls (#1318) @janezpodhostnik
- [FVM] Fix fees not being deducted on gas limit reached (#1367) @janezpodhostnik
Epoch and DKG Updates
- [DKG] Do not crash for DKG failures (#1693) @tarakby
- [Epoch] Update AN builders and scaffold to use spork id (#1696) @kc1116
- [Epoch] Epoch counter reporter (#1691) @janezpodhostnik
- [DKG] Remove unnecessary fields from DKG Private Info (#1673) @tarakby
- [Epoch] Refactor fallback logic for qc voter & dkg broker (#1556) @kc1116
- [Epoch/DKG] Add jitter to all QC/DKG requests (#1637) @jordanschalm
- [Epoch] Update
reset-tx-args
command (#1615) @jordanschalm - [Epoch] Epoch Emergency Fallback Improvements (#1569) @jordanschalm
- [Epoch]
SporkID
andProtocolVersion
(#806)(#810) @jordanschalm - [Epoch] Extend root snapshot (#1533) @kc1116
- [Epoch] Use
SporkID
for network channel namespacing (#1474) @jordanschalm - [Epoch] Use latest finalized (not sealed) reference block (#1607) @jordanschalm
- [DKG] Fixes a bug where DKG validation would continue after encountering a fatal error (#1583) @jordanschalm
- [Epoch] Add func to set approved nodes list (#1478) @kc1116
- [Epoch] Remove redundant key generation code (#1469) @kc1116
Networking
- [Networking] Update libp2p-tls to fix issue with secured gRPC certificate (#1694) @peterargue
- [Networking] Stream negotiation and fallback (#1643) @yhassanzadeh13
- [Networking] Update connection manager implementation (#1516) @smnzhu
- [Networking] Unstaked node networking updates (#1506) @smnzhu
- [Networking] Tweak-able networking received cache size (#1529) @yhassanzadeh13
- [Networking] Changing multicast to use the filtered set of node ids (#1528) @vishalchangrani
- [Networking] Logging dial addresses (#1492) @yhassanzadeh13
- [Networking] Add bitswap API (#1356) @smnzhu
- [Networking] Middleware component (#1355) @smnzhu
- [Networking] Libp2p stream compression (#1349) @yhassanzadeh13
General Node and Crypto Improvements
- [Access] Adding a block height threshold to re-request missing collections (#1711) @vishalchangrani
- [Access] Adding middlewares to the REST API implementation (#1619) @vishalchangrani
- [Execution] Using valid descendents when loading unexecuted blocks (#1588) @zhangchiqing
- [Access] REST API implementation - GetBlockByID (#1524) @vishalchangrani
- [Verification] Removes less and swap methods of chunk list (#1608) @yhassanzadeh13
- [BFT] Error handling for engines (#1568) @durkmurder
- [State Sync] state serialization module (#1483) @smnzhu
- [Consensus] Continue recover block when hitting invalid block (#1564) @zhangchiqing
- [Consensus] sealing visualization (#1457) @smnzhu
- [Crypto] light SHA3 API (#1359) @tarakby
- [Crypto] Improve Invalid input errors (#1553) @tarakby
- [Consensus] Remove legacy code in Ingestion engine (#1532) @AlexHentschel
- [Consensus] Ingestion engine inbound messages queue (#1517) @durkmurder
- [Consensus] Fix potential mem-leak from hotstuff (#1514) @zhangchiqing
🛠 Misc. Improvements
- [Misc] Do not use pointer receiver for MarshalJSON (#1652) @SaveTheRbtz
- [Misc] Update minimum go version to 1.16, and default to 1.17 (#1692) @peterargue
- [Misc] Fix code ownership for access (#1653) @SaveTheRbtz
- [Metrics] Fix randomness in execution's example (#1651) @SaveTheRbtz
- [Misc] Reenable Reporters (#1410) @janezpodhostnik
- [Admin] Add commands for reading entities (#1549) @smnzhu
- [Admin] Update live debugger to include block header data (#1587) @ramtinms
- [Misc] Adds an additional error check (#1661) @Kay-Zee
- [Documentation] Updating broken links to node docs (#1558) @j1010001
- [Verification] makes verification node fork-aware (#1538) @yhassanzadeh13
- [Documentation] Adding section on playing with localnet (#1531) @j1010001
- [Metrics] Disable cache metrics (#1518) @zhangchiqing
- [Misc] removing rlp-encoded private key string to use flow.AccountPrivateKey (#1525) @j1010001
- [Documentation] Fixing broken links in access node docs (#1481) @j1010001
- [Misc] Clean up secondary result index (#1515) @Kay-Zee
- [Misc] Adding log tracer module for debugging purposes (#1496) @ramtinms
- [Admin] Adding rpc endpoint to get registers from exec nodes (#1460) @ramtinms
- [Admin] Adding transaction and script debugger using remote registers (#1468) @ramtinms
- [Admin] add log level customization command (#1362) @smnzhu
- [Misc] Simplify address conversion (#1422) @turbolent
- [Misc] Transaction model status bugfix (#1646) @sideninja
CI & Tests
- [CI] Fix localnet docker build caching (#1712) @simonhf
- [Tests] Unskipping the TestGhostNodeExample tests (#1670) @vishalchangrani
- [CI] Add github action to make a benchstat comparison of a PR with its base (#1579) @janezpodhostnik
- [CI] Flaky test monitor (#1495)(#1500)(#1526) @gomisha @smnzhu
- [Networking] fixes flakey stream closing test (#1600) @yhassanzadeh13
- [Tests] Fix flaky TestUnstakedAccessSuite/TestReceiveBlocks tests (#1551) @peterargue
- [Tests] Add test case for storage used (#1473) @SupunS
- [CI] fixes new line bug on verification integration tests (#1498) @yhassanzadeh13
- [CI] Run CI on PRs targetting version branches (#1443) @jordanschalm
- [Tests] Add more tests for value converter (Storage Migration V6) (#1401) @SupunS
v0.22.10 Mainnet-14
- disable cache metrics (#1518) @zhangchiqing
- removing rlp-encoded private key string to use flow.AccountPrivateKey (#1525) @j1010001
- Transaction fees enable fix - port to master (#1464) @janezpodhostnik
- Backport HotStuff view metric fixes from
v0.22-mainnet
(#1477) @jordanschalm - Fixing broken links in access node docs (#1481) @j1010001
- Kan/clean up secondary result index (#1515) @Kay-Zee
- Fix potential mem-leak from hotstuff (#1514) @zhangchiqing
- [Integration] fixes new line bug on verification integration tests (#1498) @yhassanzadeh13
- Update golangci, trying to fix lint (#1509) @Kay-Zee
- Flaky Test Monitor - moving result processing to main repo (#1500) @gomisha
- [Networking] logging dial addresses (#1492) @yhassanzadeh13
- add func to set approved nodes list (#1478) @kc1116
- [Networking] libp2p stream compression (#1349) @yhassanzadeh13
- Run CI on PRs targetting version branches (#1443) @jordanschalm
- [Verification] backports fix on crash loop of verification nodes upon an execution fork (#1416) @yhassanzadeh13
- remove redundant key generation code (#1469) @kc1116
- [Network] Middleware component (#1355) @smnzhu
- [Admin] add log level customization command (#1362) @smnzhu
- [FLIP] Component API (#1167) @smnzhu
- [Consensus] add hotstuff view to ping route (#1462) @zhangchiqing
- Khalil/1583 stake node util func (#1320) @kc1116
- Fix docs links (#1420) @mjudeikis
- [sync-engine, test-only] Model height management in tests of the sync engine (#1399) @huitseeker
- [FLIP] Network API change (#1306) @smnzhu
- Add blockID logging (#1408) @m4ksio
- add '*' default value for --access-node-ids flag for LN/SN nodes (#1426) @kc1116
- Fix Flakey DKG Tests (#1432) @jordanschalm
- implement pull root block and push root block vote (#1374) @smnzhu
- [Admin] simplify admin server implementation (#1364) @smnzhu
- [Bootstrap] split sign and upload into two steps (#1388) @smnzhu
- [Bootstrap] Extracted
rootblock
and updatedfinalize
(#1371) @durkmurder - [Consensus] Revert unsealed reason (#1332) @zhangchiqing
- [Consensus and Collection] Refactors guarantee dissemination (#1406) @yhassanzadeh13
- Khalil/5844 access node fallbacks (#1395) @kc1116
- [crypto] Test infra maintenance (#1368) @huitseeker
- Addition of AWS S3 uploader (#1276) @martingallagher
- [Consensus] fix startup time (#1402) @smnzhu
- [Flaky test] peer manager flakiness fix (#1392) @smnzhu
- Enable transaction fees on mainnet (#1360) @janezpodhostnik
- FVM Benchmarking (#1219) @janezpodhostnik
- [Synchronization] update HandleHeight logic (#1387) @smnzhu
- removing timeout when starting an node (#1237) @vishalchangrani
- Generate database encryption keys in bootstrap tooling (#1340) @jordanschalm
- Fix encoding user input in failed transaction message (#1376) @m4ksio
- Add jitter to DKG start and upon processing phase 1 broadcast messages (#1303) @jordanschalm
- fixing the rootblock.json download path (#1385) @vishalchangrani
- [consensus, synchronization] Fix forks preventing reception of blocks at same height (#1377) @huitseeker
- Back port state migration bug fix to master (#1336) @Kay-Zee
- Add Secrets Database (#1309) @jordanschalm
- Define error aware interface (#1275) @smnzhu
- [Network] enable subscription filter except ghost node (#1365) @smnzhu
- fixing makefile and other fixes (#1378) @vishalchangrani
- quarantine flaky test
TestStreamClosing
(#1351) @AlexHentschel - Extract Accounts into an interface for easier testing (#1338) @m4ksio
- [Execution] add logger to compactor and only log when we do something (#1350) @ramtinms
- documenting reason for skipping test
TestConsensus_LeaderForView
(after current epoch) (#1342) @AlexHentschel - [Consensus] Implement startup-time flag (#1304) @smnzhu
- [Network] improve error logging (#1345) @smnzhu
- Subscription filter (#1210) @smnzhu
- Khalil/async message handling (#1268) @kc1116
- Fixes some build issues when importing
flow-go
as a dependency (#1333) @jordanschalm - [Networking] Async DNS Update (#1216) @yhassanzadeh13
- Alex/5857 full fix (#1325) @AlexHentschel
- Reorder middleware error checking code (#1331) @smnzhu
- Return node builder initialization errors instead of throwing fatal errors (#1293) @peterargue
- Example for using irrecoverable and RunComponent (#1327) @peterargue
- fix nil dereference (#1330) @smnzhu
- [Consensus] Log verifier ids for missing approvals (#1324) @zhangchiqing
- FVM cleanup (#1169) @janezpodhostnik
- message validation (#1289) @smnzhu
- removed outdated lingering comment (#1311) @AlexHentschel
- Validate machine account config at startup (#1236) @jordanschalm
- [module] Suggestions for #1275 (#1308) @huitseeker
- Auto Cadence Update: Add limit on call stack depth (#1313) @turbolent
- Admin interface for node operators (#1222) @smnzhu
- [All] Entity-centric tracing (#1243) @ramtinms
- Fix matching engine (#1294) @zhangchiqing
- Update core-contracts version
v0.7.7->v0.7.9
(#1278) @jordanschalm - Added balance reporter (#1154) @janezpodhostnik
- [Consensus] lower emergency sealing threshold (#1301) @zhangchiqing
- performance: cache the ID for Header entities (#1279) @jwinkler2083233
- [FVM] let cadence runtime record generic traces (#1189) @ramtinms
- Auto Cadence Update: Add PublicAccount conversion during InvokeContractFunction (#1298) @turbolent
- Add random delay to periodic peer update thread (#1277) @jordanschalm
- Auto Cadence Update: Fix export errors by properly wrapping in runtime errors (#1287) @turbolent
- Auto Cadence Update: Remove obsolete script/transaction parameter check (#1283) @turbolent
- [Verification] Adds telemetry for outstanding chunk data pack requests (#1290) @yhassanzadeh13
- [Unstaked Access Node] Bootstrapping the unstaked access node from a root snapshot that does not contain node addresses (#1266) @vishalchangrani
- [Collection] Compliance engine message queues (#1270) @durkmurder
- CLI tool to validate machine account config (#1233) @jordanschalm
- Improve error handling in access node (#1280) @peterargue
🛠 Improvements
- Simplify address conversion (#1422) @turbolent
What's Changed
- v0.22 mainnet add hotstuff view by @zhangchiqing in #1470
- Enable fees and prepare nodes to activate fees on mainnet by @ramtinms in #1471
Full Changelog: v0.22.9...v0.22.10
v0.21.2 - Mainnet 13
Mainnet 13
Main contents of this release will be the Full Observer Node, previously refered to as the unstaked access node.
We will also be include many Cadence related updates, requiring a migration, due to needing static type information to be stored for ALL types.
There are also improvements and updates to general performance, the CI/CD and bootstrapping process, as well as further improvements to Epochs, pushing towards full Mainnet roll out.
There are no breaking changes for users (at the Access Layer level).
Full Observer Node
- Clamping sync requests (#1273) @smnzhu
- Fix indexing trie updates (#1272) @m4ksio
- Disable connection pruning for staked AN that supports unstaked AN (#1254) @vishalchangrani
- Topic validator for staked channels (#1225) @smnzhu
- Add block final state commitment (#1239) @m4ksio
- Make the Access node bind to the catch-all address (#1249) @huitseeker
- Refactoring the unstaked consensus follower integration test (#1246) @vishalchangrani
- Consensus follower storage (#1228) @vishalchangrani
- Identity Provider (#1133) @smnzhu
- Fix sync engine bug (#1241) @smnzhu
- Adding some grace time to the TestNoBackoffWhenCreatingStream test (#1234) @vishalchangrani
- Port of block data uploader (#1182) @m4ksio
- Key Generation for Unstaked Access Nodes (#1180) @huitseeker
Cadence
- Add storage migration to inject static types to cadence values (#1264) @SupunS
- Update to Cadence v0.19.0 (#1265) @SupunS
- [Storage Migration] Add a flag to cleanup storage during migration (#1120) @SupunS
- [Storage Migration] Improve static type inferring for arrays and dictionaries (#1245) @SupunS
- [Storage Migration] Remove broken contracts from storage (#1110) @SupunS
Performance
- [Networking] Rolls in DNS caching (#1263) @yhassanzadeh13
- [Performance] Update the loader to use gas limits (#1242) @jwinkler2083233
- [Networking] Adds DNS cache (#1086) @yhassanzadeh13
- [Networking, Crypto] Compressed serialization, key conversions and message signing (#1129) @huitseeker
Epoch and DKG Updates
- Continue building blocks as liveness fallback in case of epoch failure (#1250) @jordanschalm (with contributions of @AlexHentschel)
- Integrate secure GRPC client to DKG and QC clients (#1224) @kc1116
- Remove flags for seeding key generation tool (#1218) @jordanschalm
- Ensure that
--machine-account-address
flag is valid Flow address (#1226) @jordanschalm - Use the correct type in NewThresholdSigner (#1217) @jordanschalm
- Improve DKG logging (#1162) @tarakby
- Use account pub key encoding in machine account commands (#1181) @jordanschalm
- Fix Deploy Epoch helper utility (#1113) @jordanschalm
- Handle
nil
DKG Private Keyshares (#1094) @danuio - Improve epochs metrics (#1185) @kc1116
🛠 Misc. Improvements
- [Execution, Verification] Increase event size limit for system chunk (#1252) @ramtinms
- [Synchronization] Message queue for collection sync engine (#1248) @durkmurder
- [FVM] backport of rejecting transactions with zero gas limit (#1220) @ramtinms
- [FVM] revert changes to the storage multierror (#1223) @ramtinms
- [Sealing]
AssignmentCollectorTree
unit tests (#1134) @durkmurder - [Networking] removing host.Peerstore().ClearAddrs from libp2pNode (#1204) @vishalchangrani
- [Networking] Add retry logic to broadcast and forward message (#1172) @kc1116
- [Core Contracts] Update
core-contracts
tov0.7.7
(#1171) @jordanschalm - [Bootstrapping] Add Migration to Update Storage Used (#1033) @janezpodhostnik
- [Bootstrapping] adding secure-rpc-addr to access node systemd file (#1028) @vishalchangrani
- [Execution] Fixing Chunk Data Response Failure (#1135) @yhassanzadeh13
- [FVM] Deduct fees on failed transactions (#1012) @janezpodhostnik
- [Networking] Check the OriginID of a libp2p message corresponds to its authenticated source (#1163) @huitseeker
- [Networking] Check the originID in sendDirect too (#1170) @huitseeker
- [Networking] Skip connecting to invalid identities in the identity table and log error instead of fatal (#1138) @vishalchangrani
- [FVM] Fix checking storage over randomly ordered list (#1156) @janezpodhostnik
- [Execution] Add configurable cache sizes for guarantees and receipts (#649) @m4ksio
CI & Tests
- Added access-tests to local integration tests (#1257) @gomisha
- Activate CI for branches (#1232) @huitseeker
- Detect CPU arch and feed that info to blst (#1227) @huitseeker
- Update check_go_version (#1212) @huitseeker
- Fixing the flaky middleware unsubscribe test (#1173) @vishalchangrani
- Fix blst cross-tests & remove race in CI (#1166) @huitseeker
- New tag and job for blst tests (#1160) @tarakby
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