Releases: onflow/flow-go
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
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