Skip to content

Releases: Consensys/quorum

v21.7.0

06 Aug 14:33
Compare
Choose a tag to compare

This release main highlight is the new consensus engine for the QBFT algorithm. It

  • is interoperable with Hyperleger Besu, enabling hybrid GoQuorum <> Besu networks running on a Byzantian Fault-Tolerant consensus
  • improves the stability of BFT networks (in particular it addresses a liveness issue of the IBFT implementation)

QBFT is available for

  • new networks
  • existing IBFT networks through a hard fork migration (as an ALPHA feature)

Enhancements

  • 🎉 [QBFT] Add QBFT consensus #1209
  • Add raftlogdir commandline option #1110
  • Add revert reason to transaction receipt #1215
  • [Geth-Upgrade] Go-Ethereum release from v1.9.21 to v1.9.24 #1211, #1214, #1217, #1219
  • Add cache on private state trie #1225
  • Update receipts encoding to faciliate usage of multiple receipts format #1227

Fixes

  • [MPS] fix merge/rebase issues #1197
  • Add logging to catch scenario when processing of transactions is aborted due to New Head event #1220
  • [QBFT] Check if sb.core is nil before processing NewBlockMsg #1229
  • [QBFT] Asynchronously call startNewRound() when transitioning from IBFT to QBFT #1232

Other

  • [Docker] Update docker tagging to the following convention: latest is the latest stable release (ie. v21.4.1 on this case) and develop is the latest snapshot release from the current development version (ie. created from master branch) #1171
  • [CI/CD] Add acceptance tests on PR and master #1230
  • [CI/CD] Add a scheduled job in order to check geth upgrades everyday #1205

Binaries

Filename SHA256 Hash
geth_v21.7.0_darwin_amd64.tar.gz 620983218ec8f4df894d4e93d2134a7cf39edf728c7f26d4a6f8b7a0a12a5c4f
geth_v21.7.0_linux_amd64.tar.gz 4ff6ac9dd778e1bd79275258413cc174d8dcdeba0f2820698939287a49789aa8

v21.4.2

18 May 16:22
1d7926a
Compare
Choose a tag to compare

This release mainly brings Phase 2 of Multi-Tenancy which allows the support for multiple private states.

With this new version of Multi-Tenancy each tenant gets access to a dedicated private state, enabling each tenant to get their own version of a private contract at a given address.

This implementation overrides the previous Alpha Release of Multi-Tenancy in GoQuorum v21.1.0

Enhancements

  • 🎉 [Multi-Tenancy] Final release that allows to serve multiple tenants from a single node #1163

Fixes

  • Use right block number when checking the current block number on gas estimation #1195
  • Do not log error if header data is missing in ancient or level db #1194

Other

  • [CI/CD] Fix MacOS binary build #1188
  • [Docs] Update checkIfExtensionComplete comment #1192
Filename SHA256 Hash
geth_v21.4.2_linux_amd64.tar.gz 89978f358c8d033a02fb8e97ced281016017a9d0de8ab28b6a02f86e66aad446
geth_v21.4.2_darwin_amd64.tar.gz 460798a3f02c26d325f2cd073830d8e547b8c046729611c5d82fceac89922b69

v21.4.1

30 Apr 11:19
9725264
Compare
Choose a tag to compare

This release is a maintenance release.

Important Note: Our official Quorum plugins package manager is now Cloudsmith.

  • For version 21.4.1 or later GoQuorum will lookup for the plugin on Cloudsmith by default. If you are using a custom baseURL, please check the new fields pluginDistPathTemplate and pluginSigPathTemplate to verify if a different template is needed.

  • For version 21.4.0 or earlier, you have to provide the new plugin download base URL at runtime (see Configure Plugin Central).

    {
        "central": {
            "baseURL": "https://provisional-plugins-repo.quorum.consensys.net",
            "publicKeyURI": ".pgp/Central.pgp.pk"
        }
    }

Enhancements

  • [Plugins] Update default plugin manager to Cloudsmith and allows to template the download URL through runtime configuration #1174

Fixes

  • Fix reading block headers from Ancient DB. #1182
  • [go.mod] Fix crypto/secp256k1 package replacement #1178

Documentation

  • Update readme with standardised logo #1167
  • Update GoQuorum documentation links on Readme #1162
  • Fix link to plugin documentation on readme #1173

Other

  • [Docker] Update docker tagging to the following convention: latest is the latest stable release (ie. v21.4.1 on this case) and develop is the latest snapshot release from the current development version (ie. created from master branch) #1171
  • [CI/CD] Fix dependency typo #1160
  • [CI/CD] Fix generation of Cloudsmith URLs #1159
  • [CI/CD] Attempt to fix release build of MacOS Binary. However, there are still issues and we are investigating. #1172
  • [CI/CD] Fix release build and upload to Cloudsmith #1187 #1186 #1185

Binaries

Filename SHA256 Hash
geth_v21.4.1_darwin_amd64.tar.gz 2a1afd5fc453e97b16ba2ea2f3b7b0f1346df62f331fcbb454ab576fb447e75c
geth_v21.4.1_linux_amd64.tar.gz 981a813486eada9d1b31c8b13ed84a0c5d062f444cd3fc9581c94bff49f3263b

v21.4.0

06 Apr 18:31
fb10484
Compare
Choose a tag to compare

This release mainly focuses on merging upgrades from go-ethereum (from version v1.9.7 up to v1.9.20). For a full rundown of the go-ethereum changes please consult this link.

⚠️ WARNING: some small breaking changes have been introduced so please carefully review the section below before upgrading.

Important Note: We changed the package manager for official GoQuorum binaries. We so far used Bintray which is sunsetting in May 2021. From now on you will be able to download GoQuorum official binaries from Cloudsmith (see section Breaking Changes below).

Enhancements

  • 🎉 [Geth Upgrade] Merge go-ethereum changes from v1.9.8 to v1.9.20. Some important changes are:
    • Node Discovery via DNS is enabled. #1121
    • Implementation of eth/65 - #1121
    • Persist the trie read cache on shutdown to speed up warm-up time after a reboot. #1146
    • Blockchain rewinding and chain repair, i.e. using the SetHead operation, now behave
      correctly in all cases. An extensive test suite for chain repair has been added. This closes issue #1117.
    • New --txlookuplimit flag which specifies the number of recent blocks you want to maintain the search index for (by default it's 0 = since genesis) - #1130/
    • The default value for --rpc.gascap is now 25M gas. It previously defaulted to unlimited gas. This applies to eth_call and will reject calls which request more gas than the cap - #1132
    • Renamed rpc flags to http. rpc flags are marked as Deprecated (for example, --rpc.port is now --http.port).
      #1130
    • Using Go Modules instead of Vendor folder - #1112
  • Enable to connect GoQuorum to the Privacy Transaction Manager (for example, Tessera)over http/https connection instead of the Unix socket. #1109
  • Enable support for multiple Ethereum sub-protocols. In particular, we added istanbul/100 sub-protocol for QBFT consensus messages. #1129

Others

  • [Debugging] Add new RPC API called debug_privateStateRoot. #1148
  • [CI/CD] Migration to Cloudsmith. #1151

Breaking Changes

  • [Database schema] Please note that reverting to GoQuorum v21.1.0 or prior version after upgrading to v21.4.0 is not possible without a resync because the blockchain database layout has changed. Contract code is now stored separately from state tree data in LevelDB.

    In case you have upgraded to v21.4.0 and you want to revert back to a previous version, you should use the following commands with the previous version:

      geth removedb --datadir <data dir>
      geth init ./genesis.json --datadir  <data dir>
      <start geth again>
    
  • [GraphQL flags] If you were using GraphQL previously, now it has moved to the HTTP RPC endpoint. The old --graphql.host and --graphql.port flags will not work any more. You might need to adjust your TOML config files accordingly too. #1146

  • [Cloudsmith Migration] All official GoQuorum binaries download URLs have been upgraded. For example, GoQuorum v21.1.0 for Linux AMD64 moved to https://artifacts.consensys.net/public/go-quorum/raw/versions/v21.1.0/geth_v21.1.0_linux_amd64.tar.gz (Cloudsmith).

    Old Bintray download URLs will remain available until May 1st 2021 later to this date you will have to download binaries from Cloudsmith

  • One small breaking change in the release is that eth_call will not default to your first account any more if you don't explicitly specify a sender. #1122

Binaries

Filename SHA256 Hash
geth_v21.4.0_darwin_amd64.tar.gz 063bb7325154a20cf00e0f2ea9d9b521b24d807afc6fad350302888a84d25f5f
geth_v21.4.0_linux_amd64.tar.gz 3592bfa58a348f46fdc7af0bf5bdb58cb464c931ee434a5223651480f494416e

v21.1.0

01 Feb 13:52
a21e1d4
Compare
Choose a tag to compare

Release format

Enhancements

  • 🎉 [Multi-Tenancy] Allow to serve multiple tenants from a single node #1105 ALPHA RELEASE
  • 🎉 [Permissioning] Add support for permissioning v2 compatible with EEA specs #1095
  • Add configurable ipc timeout #1100
  • Add new status and validator RPC APIs for IBFT and Clique #1113
  • change to golang version 1.15.5 #1114
  • params: update CHTs for v21.1.0 release #1119

Others

  • [CI/CD] Fix Github Actions workflows deprecation warnings #1097

Documentation

  • Update Web3 Labs GitHub URL (#1093)
Filename SHA256 Hash
geth_v21.1.0_linux_amd64.tar.gz b5aead4958a10cbd6cb69308930720a67cf6789d5f2c500b626fcb410871844f
geth_v21.1.0_darwin_amd64.tar.gz 2278a9fce0a5095f56ab8ef430a157e8aef3c48697e33256989ecfc758f499a2

v20.10.0

27 Oct 15:41
af75251
Compare
Choose a tag to compare

Release format

Quorum is moving its versioning convention scheme to Calendar Versioning (or CalVer) starting with 20.10.0 (f.k.a. 2.8.0) release.

Version scheme convention is YY.MM.Patch where

  • YY.MM stands for the year and month of the quarter when the release happens (starting with 20.10 for October 2020)
  • Patch stands for the number of the release within the quarter

Example

  • Next Quorum releases will be 20.10.1, 20.10.2, etc. (indifferently if they happen in October, November...)
  • When moving to the next quarter likely in February 2021, the version will increment to 21.02.0

Get to know more about ConsenSys Quorum CalVer!

Enhancements

  • 🎉 [Privacy] Add support for privacy enhancements (#1073)

    Introduce a new privacyFlag parameter to sendTransaction APIs enabling to define the mode for execution of a private transaction.

    • 0 - StandardPrivate (default): same retro-compatible mode for private transactions as available in prior versions of Quorum
    • 1 - PartyProtection: new mode allowing receiving parties in privateFor to validate that the sending party has access to all the affected private smart contracts affected by the transaction
    • 3 - StateValidation: new mode allowing all parties in a private transaction to ensure that their local private smart contract states have not diverged
  • [Privacy] Encapsulate private transaction arguments (#1044)

  • [Privacy] Formalize the usage of common.EncryptedPayloadHash (#1046)

  • [Plugin] Allow security plugin to opt out service implementation (#1052)

  • Add debug_dumpAddress API to fetch state of an account including balance, nonce, storage, etc. (#1072)

  • Update crypto/secp256k1 submodule path (#1077)

  • [Plugin] Expose the plugin@account API over clef's HTTP server (#1078)

  • Add a new Geth flag --vm.calltimeout to optionnaly override the 5 seconds default timeout on eth_call (#1085)

Bug fixes

  • [Istanbul] Fix VerifyHeaders() to error out all header verification request when the first one fails (#1042)
  • Fix tracing on public transaction (#1072)
  • Fix for "VM in read-only mode" error seen in logs in stress test of clique networks (#1076)
  • [Raft] Fix double addPeer, should also check self (#1080)

Tests

  • Add unit tests for common.EncryptedPayloadHash (#1045)

Others

  • [CI/CD] Publish Docker image to Docker Hub via GithubActions (#1079)
  • [CI/CD] Updates (#1082) (#1086)

Documentation

  • Add documentation for Tessera bootstrapNode config (#1016)
  • Add documentation for Hashicorp Vault account plugin (#1040)
  • Updated Readme.md (#1043)
  • Tessera config update for next release (#1047)
  • Update Quorum Profiling documentation (#1053)
  • Make plugin docs consistent (#1054)
  • Smart contracts security editorial updates (#1057)
  • Add documentation to clarify the use of bindingAddress in tessera config (#1060)
  • Removed docs files now included in doc.goquorum and doc.tessera repos (#1062)
  • Change links, emails and more (#1067)
Filename SHA256 Hash
geth_v20.10.0_linux_amd64.tar.gz 17bc1f46c7ae5be46989c9ac8750dfd95aa89dc1f41a75b416a3e0423235b25e
geth_v20.10.0_darwin_amd64.tar.gz bfe4d1155ed7829d7b028ee07827d2887d3c492dcd2658614702fd1d42065822

v2.7.0

15 Jul 23:25
Compare
Choose a tag to compare

Enhancements

  • 🎉 Support HashiCorp Vault for account management with account plugins (#1033) BETA RELEASE
  • 🎉 Support adding new members to private smart contracts, private contract state extension (#1030) BETA RELEASE
  • 🎉 Protect JSON RPC APIs via a plugin interface (#1019) BETA RELEASE
  • Create separate sub-module for crypto/secp256k1 package (#1036)
  • Apply upstream go-ethereum updates to Clef documentation (#1032)
  • Improve cache implementation for permissions (#961)
  • gha: automate release (#994)
  • gha: add Github Actions workflows (#984)
  • Created special PTM for public-only mode. (#968)
  • Adding checkpoint to log the time taken to process a transaction. (#988)

Fixes

  • cmd/geth: exit gradually when there's a failure in PluginManager (#1026)
  • Issue #1004 - prevent "Mining too far in future" message when using allowedfutureblocktime parameter (#1023)
  • change protocol name for clique consensus (#1031)
  • Apply upstream changes to prevent crash when keystore-specific methods are called but external signer used (#1028)
  • Apply upstream clef bug fixes and add clef documentation (#1009)
  • Remove java dependency from go tests (#1018)
  • raft: return error when block processing is aborted (#992)
  • eth_estimateGas failing when value is not passed as a part of arguments (#989)
  • Corrections to logged error messages (#997)
  • fix linting issues (#995)
  • Update genesis.md (#1027)
  • Static mkdocs version to prevent future dependency incompatibilities (#1025)
  • Documentation updates (#1022) (#1006) (#996) (#998)
  • Quorum Tessera HA Setup (#1015)
Filename SHA256 Hash
geth_v2.7.0_linux_amd64.tar.gz 06575a273b5541c770e29a9a0704fe70842863951dd23eee295f0e61b2cb3b5a
geth_v2.7.0_darwin_amd64.tar.gz 8e0321a379ed4dba3dc5040802c604e3af8f1b6629e973b60f920b98851373e3

v2.6.0

04 May 15:12
Compare
Choose a tag to compare

Important: Due to DB schema changes, once a node is migrated to this version, the node cannot be rolled back to prior version. Hence we recommend appropriate back ups and testing prior to migration.

This release upgrades Quorum's geth version to 1.9.7. geth v1.9.7 brings in the following key features:

  • Performance optimization: Optimization of account and storage trie access patterns across blocks, EVM opcode optimization, optimization of sync process
  • Transaction pool optimization for better throughput
  • Introduction of freezer db which allows moving historical blocks beyond certain threshold value out of LevelDB into a custom freezer db
  • Native GraphQL query capabilities for flexible querying
  • Clef: Standalone signer which segregates account management from geth
  • Monitoring: Can be integrated with Grafana with enhanced data dump

Please refer to Geth v1.9.0 for the complete list of features added in geth version 1.9.0

Please note the following while migrating to this version:

  • If you are using keystore based accounts, use --allow-insecure-unlock to bring up geth. Otherwise geth will crash while starting
  • Upon geth restart, any blocks which are below the default immutability threshold(3162240), will be moved to freezer db. If you do not want the blocks to move to freezer db, set the value of --immutabilitythreshold appropriately fo the network.

Please refer to this page for further details on migrating to this version.

Enhancements

  • Geth upgrade to 1.9.7 (#960)
  • Enable networks to change maxCodeSize multiple times (#975)
  • Add configurable threshold for 'future block' check for Istanbul & Clique (#800)
  • plugin: delegate JSON RPC calls to plugin (#956)
  • plugin: change signature file name and add test case for Bintray signer (#957)

Fixes

  • Fix issue with suborg id when node is added to sub orgs(#950)
  • Fix params number for debug.dumpBlock in web3ext (#944)

Documentation

  • Update genesis samples to reflect latest code updates (#952)
  • Update Compatibility table & adding Quorum 2 geth map (#959)
  • Add Kubernetes to quorum README.md / docs. (#970)
  • Add documentation for quorum wizard (#973)
  • Update Tessera encryption & Privacy Manager docs (#972)
  • Tessera API documentation update for 10.0.5 version (#977)

Others

Filename SHA256 Hash
geth_v2.6.0_linux_amd64.tar.gz b65605bb6c105c25a08092f451eefdac82f58fc22f7fb08b473d0657b96b33d6
geth_v2.6.0_darwin_amd64.tar.gz 07d18e1622aa3aa279fa919033cad8e55f68328ea3bac5310fcef22a90e7705d

v2.5.0

03 Mar 18:42
Compare
Choose a tag to compare

Enhancements

  • Framework to allow adding additional Quorum features as plugins (#923)
  • Support Quorum import/export chain (#946)

Fixes

  • Bloom filter fixes (#945)
  • Added a maxCodeSizeChangeBlock to track the block height when maxCodeSize changes from default value of 24K to the given value in genesis.json (#947)
  • Fix broken raft consensus link (#940)
  • IBFT private state commit issue in a single validator node network (#938)
  • Fix DNS issue in 2.4.0 (#937)
  • Raft raft.cluster api returns error if no leader is there in the network in version 2.4.0 (#934)
  • Remove duplicated flag group: ETHASH (#924)
  • Add Quorum eth namespace RPC methods to console (#922)
  • Raft: correct the setup sequence for applied index related test (#900)
  • Rename the transaction manager package to make it more neutral (#895)
Filename SHA256 Hash
geth_v2.5.0_linux_amd64.tar.gz 3c1c1db97b761510d32f020cedcaf7d54ee0ebfcf412b5e14dc8fcea5d831d36
geth_v2.5.0_darwin_amd64.tar.gz 02aaef045f2d359e39da69d749c0b4e352ed9e77bdf9d2170547278115f11588

v2.4.0

04 Dec 19:18
Compare
Choose a tag to compare

Enhancements

  • Quorum Raft upgrade v3.3.13 and add support for Raft Learner nodes(#887)
  • DNS support for static nodes (#885)
  • rpc: raise HTTP/WebSocket request size limit to 5MB (#898)

Fixes

  • p2p: fix connection leakage when peer is not authorized to connect (#897)
  • Update file descriptor limits for macOS to support go 1.12 (#892)
  • Allow Raft to recover state after non-graceful shutdown in non-archive mode (#860)
  • Raft applied index out of range (#880)
  • Premature abort during blocks processing for Raft (#881)
  • Restrict removed Raft node in p2p connection (#884)
  • Update for Raft stability (#886)
  • Overflow in parent tracking (cherrypicking go-ethereum#18165 pull) (#876)
  • Add check at startup to ensure transaction manager mode is specified. (#868)
  • debug.traceTransaction VM in read-only mode error for public tx (#875)
  • Optimize travis and fix flaky tests (#873)
  • Print TransactionSizeLimit and MaxCodeSize genesis config (#872)
  • Permissions service not starting upon restart of the node(#866)
  • Add block sealing information to IBFT API (#856)
  • eth.SignTransaction APIs: Set tx as private before signing (#864)
  • Add CORS configuration parameters (#858)
  • Check if message payload is signed by the message sender (#853)
  • Add documentation on IBFT parameters (#835)

Thanks to @antonydenyer @timmoreton @montyly for their contributions.

Filename SHA256 Hash
geth_v2.4.0_linux_amd64.tar.gz 6ee573052334a352d8bf9a47f8bdd44ea42eec441b029284a8ff20dd56dd124b
geth_v2.4.0_darwin_amd64.tar.gz 1007e2f388ed3cb719d0dd3bdf4fcd79eb9ce4ae546e36823c97f2d24482d00c