Skip to content

Commit dfdb97b

Browse files
committed
Release commit for v3.1.0
Update docs and release notes for v3.1.0. Signed-off-by: David Enyeart <enyeart@us.ibm.com>
1 parent 4f14163 commit dfdb97b

File tree

5 files changed

+123
-3
lines changed

5 files changed

+123
-3
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
# - verify - runs unit tests for only the changed package tree
4747

4848
UBUNTU_VER ?= 22.04
49-
FABRIC_VER ?= 3.0.0
49+
FABRIC_VER ?= 3.1.0
5050

5151
# 3rd party image version
5252
# These versions are also set in the runners in ./integration/runners/

docs/source/raft_bft_migration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Nodes at v3.0.0 or higher allow for users who want to transition channels from using Raft-based ordering services to BFT-based ordering services.
44
This can be accomplished through a series of configuration update transactions on each channel in the network.
5-
To migrate, upgrade from version 2.x to version 3.0.0.
5+
To migrate, upgrade from version 2.x to version 3.x.
66

77
This tutorial will describe the migration process at a high level, calling out specific details where necessary.
88

docs/source/upgrading_your_components.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ To learn how to upgrade your Fabric CA server, click over to the [CA documentati
215215

216216
## Upgrade SDK clients
217217

218-
SDK applications can be upgraded separate from a general upgrade of your Fabric network. The `Fabric Gateway client API <https://github.com/hyperledger/fabric-gateway>`_ has been tested with Fabric v2.5 and v3.0. If you have not yet migrated to the Fabric Gateway client API, you can `migrate <https://hyperledger.github.io/fabric-gateway/migration/>`_ while using a Fabric v2.5 network, or after you have upgraded to a Fabric v3.0 network. The legacy SDKs are no longer maintained and are not compatible with new v3.0 Fabric features such as SmartBFT consensus.
218+
SDK applications can be upgraded separate from a general upgrade of your Fabric network. The [Fabric Gateway client API](https://github.com/hyperledger/fabric-gateway) has been tested with Fabric v2.5 and v3. If you have not yet migrated to the Fabric Gateway client API, you can [migrate](https://hyperledger.github.io/fabric-gateway/migration) while using a Fabric v2.5 network, or after you have upgraded to a Fabric v3 network. The legacy SDKs are no longer maintained and are not compatible with new v3 Fabric features such as SmartBFT consensus.
219219

220220
## Upgrading CouchDB
221221

docs/source/whatsnew.rst

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,48 @@
11
What's new in Hyperledger Fabric
22
================================
33

4+
What's New in Hyperledger Fabric v3.1
5+
-------------------------------------
6+
7+
Performance optimization - Batching of chaincode writes
8+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9+
10+
Chaincodes that write large numbers of keys were inefficient since each key write required communication between the chaincode and the peer.
11+
The new feature enables a chaincode developer to batch multiple writes into a single communication between the chaincode and the peer.
12+
A batch can be started by calling ``StartWriteBatch()``. The chaincode can then perform key writes as usual. Then when ``FinishWriteBatch()`` is called the writes
13+
will be sent to the peer. Batches over a configured size will be split into multiple batch segments.
14+
The batching approach significantly improves performance for chaincodes that write to many keys.
15+
Note that the batching only impacts the endorsement phase. The transaction itself, as well as the validation and commit phases, remains the same as previous versions.
16+
17+
The batch writes are configured with the following peer core.yaml chaincode properties:
18+
* ``chaincode.runtimeParams.useWriteBatch`` - boolean that indicates whether write batching is enabled on peer
19+
* ``chaincode.runtimeParams.maxSizeWriteBatch`` - integer that indicates the maximum number of keys written per batch segment.
20+
21+
The new feature requires chaincode to utilize fabric-chaincode-go v2.1.0 or higher.
22+
23+
Performance optimization - Batching of chaincode reads
24+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25+
26+
Chaincodes that read large numbers of keys were inefficient since each key read required communication between the chaincode and the peer.
27+
The new feature enables a chaincode developer to batch multiple reads into a single communication between the chaincode and the peer.
28+
Utilize the new ``GetMultipleStates()`` and ``GetMultiplePrivateData()`` chaincode functions to perform the batch reads.
29+
Batches over a configured size will be split into multiple batch segments.
30+
31+
The batch reads are configured with the following peer core.yaml chaincode properties:
32+
* ``chaincode.runtimeParams.useGetMultipleKeys`` - boolean that indicates whether read batching is enabled on peer
33+
* ``chaincode.runtimeParams.maxSizeGetMultipleKeys`` - integer that indicates the maximum number of keys read per batch segment
34+
35+
The new feature requires chaincode to utilize fabric-chaincode-go v2.2.0 or higher.
36+
37+
Query all composite keys in a chaincode
38+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
39+
40+
A new chaincode function ``GetAllStatesCompositeKeyWithPagination()`` is available so that all composite keys within a chaincode can be retrieved.
41+
This function is useful when performing bulk operations on all composite keys in a chaincode.
42+
43+
The new feature requires chaincode to utilize fabric-chaincode-go v2.3.0 or higher.
44+
45+
446
What's New in Hyperledger Fabric v3.0
547
-------------------------------------
648

@@ -56,6 +98,7 @@ The release notes provide more details about each release.
5698
Additionally, take a look at the announcements about changes and deprecations that are copied into each of the latest release notes.
5799

58100
* `Fabric v3.0.0 release notes <https://github.com/hyperledger/fabric/releases/tag/v3.0.0>`_.
101+
* `Fabric v3.1.0 release notes <https://github.com/hyperledger/fabric/releases/tag/v3.1.0>`_.
59102

60103
.. Licensed under Creative Commons Attribution 4.0 International License
61104
https://creativecommons.org/licenses/by/4.0/

release_notes/v3.1.0.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
v3.1.0 Release Notes - March 18, 2025
2+
=====================================
3+
4+
New features
5+
------------
6+
7+
**Performance optimization - Batching of chaincode writes**
8+
9+
Chaincodes that write large numbers of keys were inefficient since each key write required communication between the chaincode and the peer.
10+
The new feature enables a chaincode developer to batch multiple writes into a single communication between the chaincode and the peer.
11+
A batch can be started by calling `StartWriteBatch()`. The chaincode can then perform key writes as usual. Then when `FinishWriteBatch()` is called the writes
12+
will be sent to the peer. Batches over a configured size will be split into multiple batch segments.
13+
The batching approach significantly improves performance for chaincodes that write to many keys.
14+
Note that the batching only impacts the endorsement phase. The transaction itself, as well as the validation and commit phases, remains the same as previous versions.
15+
16+
The batch writes are configured with the following peer core.yaml chaincode properties:
17+
- `chaincode.runtimeParams.useWriteBatch` - boolean that indicates whether write batching is enabled on peer
18+
- `chaincode.runtimeParams.maxSizeWriteBatch` - integer that indicates the maximum number of keys written per batch segment.
19+
20+
The new feature requires chaincode to utilize fabric-chaincode-go v2.1.0 or higher.
21+
22+
**Performance optimization - Batching of chaincode reads**
23+
24+
Chaincodes that read large numbers of keys were inefficient since each key read required communication between the chaincode and the peer.
25+
The new feature enables a chaincode developer to batch multiple reads into a single communication between the chaincode and the peer.
26+
Utilize the new `GetMultipleStates()` and `GetMultiplePrivateData()` chaincode functions to perform the batch reads.
27+
Batches over a configured size will be split into multiple batch segments.
28+
29+
The batch reads are configured with the following peer core.yaml chaincode properties:
30+
- `chaincode.runtimeParams.useGetMultipleKeys` - boolean that indicates whether read batching is enabled on peer
31+
- `chaincode.runtimeParams.maxSizeGetMultipleKeys` - integer that indicates the maximum number of keys read per batch segment
32+
33+
The new feature requires chaincode to utilize fabric-chaincode-go v2.2.0 or higher.
34+
35+
**Query all composite keys in a chaincode**
36+
37+
A new chaincode function `GetAllStatesCompositeKeyWithPagination()` is available so that all composite keys within a chaincode can be retrieved.
38+
This function is useful when performing bulk operations on all composite keys in a chaincode.
39+
40+
The new feature requires chaincode to utilize fabric-chaincode-go v2.3.0 or higher.
41+
42+
43+
Improvements and Fixes
44+
----------------------
45+
46+
All improvements and fixes as of v2.5.12 have also been included in v3.1.0.
47+
48+
49+
Dependencies
50+
------------
51+
Fabric v3.1.0 has been tested with the following dependencies:
52+
* Go 1.24.0
53+
* CouchDB v3.4.2
54+
55+
Fabric docker images on docker.io and ghcr.io utilize Ubuntu 22.04.
56+
57+
58+
Changes and Removals
59+
--------------------
60+
61+
See the [v3.0.0 release notes](https://github.com/hyperledger/fabric/releases/tag/v3.0.0) for changes and removals between Fabric v2.x and Fabric v3.x.
62+
63+
64+
Deprecated features
65+
-------------------
66+
67+
**Block dissemination via gossip is deprecated and may be removed**
68+
69+
Block dissemination via gossip is deprecated and may be removed in a future release.
70+
Fabric peers can be configured to receive blocks directly from an ordering service
71+
node, and not gossip blocks, by using the following configuration:
72+
```
73+
peer.gossip.orgLeader: true
74+
peer.gossip.useLeaderElection: false
75+
peer.gossip.state.enabled: false
76+
peer.deliveryclient.blockGossipEnabled: false
77+
```

0 commit comments

Comments
 (0)