Skip to content

Commit 44dd66f

Browse files
committed
Enhance orderer channel configuration in mainchannel_controller
- Added methods to set various EtcdRaft options including ElectionInterval, HeartbeatTick, TickInterval, SnapshotIntervalSize, and MaxInflightBlocks in the updateOrdererChannelConfigTx function. - Improved error handling for each configuration setting to ensure robust updates. These changes facilitate better control over the orderer channel's Raft consensus parameters, enhancing overall system reliability. Signed-off-by: David VIEJO <[email protected]>
1 parent 47482ee commit 44dd66f

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

controllers/mainchannel/mainchannel_controller.go

+31
Original file line numberDiff line numberDiff line change
@@ -1427,6 +1427,36 @@ func updateOrdererChannelConfigTx(currentConfigTX configtx.ConfigTx, newConfigTx
14271427
}
14281428
}
14291429
}
1430+
err = currentConfigTX.Orderer().EtcdRaftOptions().SetElectionInterval(
1431+
newConfigTx.Orderer.EtcdRaft.Options.ElectionTick,
1432+
)
1433+
if err != nil {
1434+
return errors.Wrapf(err, "failed to set election interval")
1435+
}
1436+
err = currentConfigTX.Orderer().EtcdRaftOptions().SetHeartbeatTick(
1437+
newConfigTx.Orderer.EtcdRaft.Options.HeartbeatTick,
1438+
)
1439+
if err != nil {
1440+
return errors.Wrapf(err, "failed to set heartbeat tick")
1441+
}
1442+
err = currentConfigTX.Orderer().EtcdRaftOptions().SetTickInterval(
1443+
newConfigTx.Orderer.EtcdRaft.Options.TickInterval,
1444+
)
1445+
if err != nil {
1446+
return errors.Wrapf(err, "failed to set tick interval")
1447+
}
1448+
err = currentConfigTX.Orderer().EtcdRaftOptions().SetSnapshotIntervalSize(
1449+
newConfigTx.Orderer.EtcdRaft.Options.SnapshotIntervalSize,
1450+
)
1451+
if err != nil {
1452+
return errors.Wrapf(err, "failed to set snapshot interval size")
1453+
}
1454+
err = currentConfigTX.Orderer().EtcdRaftOptions().SetMaxInflightBlocks(
1455+
newConfigTx.Orderer.EtcdRaft.Options.MaxInflightBlocks,
1456+
)
1457+
if err != nil {
1458+
return errors.Wrapf(err, "failed to set max inflight blocks")
1459+
}
14301460
} else if newConfigTx.Orderer.OrdererType == orderer.ConsensusTypeBFT {
14311461
err = currentConfigTX.Orderer().SetConfiguration(newConfigTx.Orderer)
14321462
if err != nil {
@@ -1583,6 +1613,7 @@ func updateOrdererChannelConfigTx(currentConfigTX configtx.ConfigTx, newConfigTx
15831613
if err != nil {
15841614
return errors.Wrapf(err, "failed to set preferred max bytes")
15851615
}
1616+
15861617
err = currentConfigTX.Orderer().SetBatchTimeout(newConfigTx.Orderer.BatchTimeout)
15871618
if err != nil {
15881619
return errors.Wrapf(err, "failed to set batch timeout")

0 commit comments

Comments
 (0)