Skip to content

Commit 94590aa

Browse files
committed
v3.0.0-rc1 release commit
Signed-off-by: David Enyeart <[email protected]>
1 parent c069c69 commit 94590aa

File tree

1 file changed

+141
-0
lines changed

1 file changed

+141
-0
lines changed

release_notes/v3.0.0-rc1.md

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
v3.0.0-rc1 Release Notes - September 17, 2024
2+
=============================================
3+
4+
New features
5+
------------
6+
7+
**Byzantine Fault Tolerant (BFT) ordering service**
8+
9+
Hyperledger Fabric has utilized a Raft crash fault tolerant (CFT) ordering service since version v1.4.1.
10+
A Byzantine Fault Tolerant (BFT) ordering service can withstand not only crash failures, but also a subset of nodes behaving maliciously.
11+
Fabric v3.0.0 provides a BFT ordering service based on the [SmartBFT](https://arxiv.org/abs/2107.06922) [consensus library](https://github.com/hyperledger-labs/SmartBFT).
12+
Consider using the BFT orderer if true decentralization is required, where up to and not including a third of the parties running the orderers may not be trusted due to malicious intent or being compromised.
13+
Channel capability `V3_0` must be enabled to utilize SmartBFT consensus.
14+
For more details of the BFT ordering service and other recent features, see the [What's New documentation](https://hyperledger-fabric.readthedocs.io/en/latest/whatsnew.html).
15+
16+
**Query all approved chaincodes on a channel**
17+
18+
The updated `peer lifecycle chaincode queryapproved` command allows you to pass only a channel name.
19+
The command will return all approved chaincodes on the channel.
20+
21+
**Support for Ed25519**
22+
23+
Ed25519 cryptographic algorithm is now supported in addition to ECDSA for MSP functions including transaction signing and verification.
24+
Channel capability `V3_0` must be enabled to utilize certificates with Ed25519 keys.
25+
26+
27+
Improvements and Fixes
28+
----------------------
29+
30+
All improvements and fixes as of v2.5.9 have also been included in v3.0.0.
31+
32+
33+
Dependencies
34+
------------
35+
Fabric v3.0.0 has been tested with the following dependencies:
36+
* Go 1.23.1
37+
* CouchDB v3.3.3
38+
39+
Fabric docker images on dockerhub utilize Ubuntu 22.04.
40+
41+
42+
Changes
43+
-------
44+
45+
**peer.gossip.pvtData.transientstoreMaxBlockRetention default value increased from 1000 to 20000**
46+
47+
`peer.gossip.pvtData.transientstoreMaxBlockRetention` specifies the number of blocks to keep uncommitted private data
48+
in the transient store before it is purged. Increasing the value provides more tolerance for delayed commits
49+
before the data is purged.
50+
51+
**TimeWindowCheck for proposal timestamps**
52+
53+
New `TimeWindowCheck` endorsement authFilter configured at `peer.handlers.authFilters.name` checks the timestamp of a proposal request against endorsing peer time,
54+
using the time window configured at `peer.authentication.timewindow`.
55+
This check helps to ensure that the proposal timestamp that eventually gets committed in a transaction is accurate relative to the endorsing peers.
56+
57+
**peer.deliveryclient.blockGossipEnabled default value changed to false**
58+
59+
Block dissemination via gossip is deprecated and may be removed in a future release,
60+
therefore `peer.deliveryclient.blockGossipEnabled` now defaults to false.
61+
Fabric peers should be configured to receive blocks directly from an ordering service
62+
node, and not gossip blocks, by using the following configuration:
63+
```
64+
peer.gossip.orgLeader: true
65+
peer.gossip.useLeaderElection: false
66+
peer.gossip.state.enabled: false
67+
peer.deliveryclient.blockGossipEnabled: false
68+
```
69+
70+
Removals
71+
--------
72+
73+
**Support for ordering service system channel has been removed**
74+
75+
v2.3 introduced the ability to manage an ordering service without a system channel.
76+
Managing an ordering service without a system channel has privacy, scalability, and operational benefits.
77+
The system channel is removed in Fabric v3.0, as well as the concept of a 'consortium' of organizations that can create channels.
78+
If you used the system channel in prior releases, you must remove the system channel and migrate to the channel participation API before upgrading to v3.x.
79+
For information about removal of the system channel, see the [Create a channel without system channel documentation](https://hyperledger-fabric.readthedocs.io/en/release-2.5/create_channel/create_channel_participation.html).
80+
81+
**Support for 'Solo' consensus ordering service has been removed**
82+
83+
The 'Solo' consensus type was intended for test environments only in prior releases and has never been supported for production environments.
84+
Support for 'Solo' consensus has been removed in Fabric v3.0.
85+
For trial environments you can utilize a single node Raft ordering service as demonstrated in the [test network tutorial](https://hyperledger-fabric.readthedocs.io/en/latest/test_network.html).
86+
87+
**Support for 'Kafka' consensus ordering service has been removed**
88+
89+
The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred production Crash Fault Tolerant consensus type.
90+
Support for 'Kafka' consensus has been removed in Fabric v3.0.
91+
If you used Kafka consensus in prior releases, you must migrate to Raft consensus prior to upgrading to v3.x.
92+
For details about the migration process, see the [Migrating from Kafka to Raft documentation](https://hyperledger-fabric.readthedocs.io/en/release-2.5/kafka_raft_migration.html).
93+
94+
**Legacy chaincode lifecycle has been removed**
95+
96+
The legacy chaincode lifecycle from Fabric v1.x is removed in v3.x.
97+
Prior to upgrading peers to v3.x, you must update all channels to utilize the v2.x lifecycle
98+
by setting the channel application capability to either V2_0 or V2_5,
99+
and redeploying all chaincodes using the v2.x lifecycle. The new
100+
chaincode lifecycle provides a more flexible and robust governance model
101+
for chaincodes. For more details see the
102+
[documentation for enabling the new lifecycle](https://hyperledger-fabric.readthedocs.io/en/release-2.5/enable_cc_lifecycle.html).
103+
104+
**Support for specifying orderer endpoints at the `OrdererAddresses` global level in channel configuration has been removed when using V3_0 channel capability**
105+
106+
Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead.
107+
Configuring orderer endpoints at the organization level accommodates
108+
scenarios where orderers are run by different organizations. Using
109+
this configuration ensures that only the TLS CA certificates of that organization
110+
are used for orderer communications; in contrast to the global channel level endpoints which
111+
would cause an aggregation of all orderer TLS CA certificates across
112+
all orderer organizations to be used for orderer communications.
113+
Remove the `OrdererAddresses` global configuration prior to enabling the `V3_0` channel capability.
114+
115+
**Support for configtxgen flag `--outputAnchorPeersUpdate` has been removed**
116+
117+
The former `--outputAnchorPeersUpdate` mechanism for updating anchor peers has always had
118+
limitations (for instance, it only works the first time anchor peers are updated).
119+
Instead, anchor peer updates should be performed through channel configuration updates.
120+
121+
**The fabric-tools docker image is no longer available**
122+
123+
The fabric-tools docker image is no longer published for Fabric releases.
124+
Instead of using the fabric-tools docker image, users should utilize the
125+
published Fabric binaries. The Fabric binaries can be used to make client calls
126+
to Fabric runtime components, regardless of where the Fabric components are running.
127+
128+
Deprecated features
129+
-------------------
130+
131+
**Block dissemination via gossip is deprecated and may be removed**
132+
133+
Block dissemination via gossip is deprecated and may be removed in a future release.
134+
Fabric peers can be configured to receive blocks directly from an ordering service
135+
node, and not gossip blocks, by using the following configuration:
136+
```
137+
peer.gossip.orgLeader: true
138+
peer.gossip.useLeaderElection: false
139+
peer.gossip.state.enabled: false
140+
peer.deliveryclient.blockGossipEnabled: false
141+
```

0 commit comments

Comments
 (0)