Skip to content

Commit ca9f129

Browse files
committed
[FAB-15488] Refactor gossip_service.go init func
Refactor InitGossipService function in ./fabric/gossip/service gossip_service.go. Passing in both obtain both gossipConfig and serviceConfig in peer/node/start and passing into gossip via function parameters. All unit tests changed accordinly. Change-Id: If99a1b364f0f7d2be69c8081a6bab7ed4a7de940 Signed-off-by: Chongxin Luo <Chongxin.Luo@ibm.com>
1 parent 991f4e6 commit ca9f129

File tree

5 files changed

+40
-22
lines changed

5 files changed

+40
-22
lines changed

core/peer/peer_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ import (
2828
"github.com/hyperledger/fabric/core/ledger/mock"
2929
ledgermocks "github.com/hyperledger/fabric/core/ledger/mock"
3030
"github.com/hyperledger/fabric/core/transientstore"
31+
"github.com/hyperledger/fabric/gossip/gossip"
3132
gossipmetrics "github.com/hyperledger/fabric/gossip/metrics"
33+
"github.com/hyperledger/fabric/gossip/service"
3234
gossipservice "github.com/hyperledger/fabric/gossip/service"
3335
peergossip "github.com/hyperledger/fabric/internal/peer/gossip"
3436
"github.com/hyperledger/fabric/internal/peer/gossip/mocks"
@@ -66,18 +68,20 @@ func NewTestPeer(t *testing.T) (*Peer, func()) {
6668
defaultDeliverClientDialOpts,
6769
comm.ClientKeepaliveOptions(comm.DefaultKeepaliveOptions)...,
6870
)
71+
gossipConfig, err := gossip.GlobalConfig("localhost:0", nil)
6972

7073
gossipService, err := gossipservice.New(
7174
signer,
7275
gossipmetrics.NewGossipMetrics(&disabled.Provider{}),
7376
"localhost:0",
7477
grpc.NewServer(),
75-
nil,
7678
messageCryptoService,
7779
secAdv,
7880
defaultSecureDialOpts,
7981
nil,
8082
defaultDeliverClientDialOpts,
83+
gossipConfig,
84+
&service.ServiceConfig{},
8185
)
8286
require.NoError(t, err, "failed to create gossip service")
8387

core/scc/cscc/configure_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"github.com/hyperledger/fabric/core/policy"
2929
"github.com/hyperledger/fabric/core/scc/cscc/mocks"
3030
"github.com/hyperledger/fabric/core/transientstore"
31+
"github.com/hyperledger/fabric/gossip/gossip"
3132
gossipmetrics "github.com/hyperledger/fabric/gossip/metrics"
3233
"github.com/hyperledger/fabric/gossip/service"
3334
"github.com/hyperledger/fabric/internal/configtxgen/configtxgentest"
@@ -224,18 +225,21 @@ func TestConfigerInvokeJoinChainCorrectParams(t *testing.T) {
224225
defaultDeliverClientDialOpts,
225226
comm.ClientKeepaliveOptions(comm.DefaultKeepaliveOptions)...,
226227
)
228+
gossipConfig, err := gossip.GlobalConfig(peerEndpoint, nil)
229+
assert.NoError(t, err)
227230

228231
gossipService, err := service.New(
229232
signer,
230233
gossipmetrics.NewGossipMetrics(&disabled.Provider{}),
231234
peerEndpoint,
232235
grpcServer,
233-
nil,
234236
messageCryptoService,
235237
secAdv,
236238
defaultSecureDialOpts,
237239
nil,
238240
defaultDeliverClientDialOpts,
241+
gossipConfig,
242+
&service.ServiceConfig{},
239243
)
240244
assert.NoError(t, err)
241245

gossip/service/gossip_service.go

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -209,30 +209,20 @@ func New(
209209
gossipMetrics *gossipmetrics.GossipMetrics,
210210
endpoint string,
211211
s *grpc.Server,
212-
certs *gossipcommon.TLSCertificates,
213212
mcs api.MessageCryptoService,
214213
secAdv api.SecurityAdvisor,
215214
secureDialOpts api.PeerSecureDialOpts,
216215
credSupport *corecomm.CredentialSupport,
217216
deliverClientDialOpts []grpc.DialOption,
218-
bootPeers ...string,
217+
gossipConfig *gossip.Config,
218+
serviceConfig *ServiceConfig,
219219
) (*GossipService, error) {
220220
serializedIdentity, err := peerIdentity.Serialize()
221221
if err != nil {
222222
return nil, err
223223
}
224224

225-
serviceConfig := GlobalConfig()
226-
if serviceConfig.Endpoint != "" {
227-
endpoint = serviceConfig.Endpoint
228-
}
229-
230-
gossipConfig, err := gossip.GlobalConfig(endpoint, certs, bootPeers...)
231-
if err != nil {
232-
return nil, err
233-
}
234-
235-
logger.Infof("Initialize gossip with endpoint %s and bootstrap set %v", endpoint, bootPeers)
225+
logger.Infof("Initialize gossip with endpoint %s", endpoint)
236226

237227
gossipComponent := gossip.New(
238228
gossipConfig,

gossip/service/gossip_service_test.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,18 +88,21 @@ func TestInitGossipService(t *testing.T) {
8888
messageCryptoService := peergossip.NewMCS(&mocks.ChannelPolicyManagerGetter{}, signer, mgmt.NewDeserializersManager())
8989
secAdv := peergossip.NewSecurityAdvisor(mgmt.NewDeserializersManager())
9090
dialOpts := defaultDeliverClientDialOpts()
91+
gossipConfig, err := gossip.GlobalConfig(endpoint, nil)
92+
assert.NoError(t, err)
9193

9294
gossipService, err := New(
9395
signer,
9496
gossipmetrics.NewGossipMetrics(&disabled.Provider{}),
9597
endpoint,
9698
grpcServer,
97-
nil,
9899
messageCryptoService,
99100
secAdv,
100101
nil,
101102
comm.NewCredentialSupport(),
102103
dialOpts,
104+
gossipConfig,
105+
&ServiceConfig{},
103106
)
104107
assert.NoError(t, err)
105108

@@ -867,18 +870,21 @@ func TestInvalidInitialization(t *testing.T) {
867870
mockSignerSerializer.SerializeReturns(api.PeerIdentityType("peer-identity"), nil)
868871
secAdv := peergossip.NewSecurityAdvisor(mgmt.NewDeserializersManager())
869872
dialOpts := defaultDeliverClientDialOpts()
873+
gossipConfig, err := gossip.GlobalConfig(endpoint, nil)
874+
assert.NoError(t, err)
870875

871876
gossipService, err := New(
872877
mockSignerSerializer,
873878
gossipmetrics.NewGossipMetrics(&disabled.Provider{}),
874879
endpoint,
875880
grpcServer,
876-
nil,
877881
&naiveCryptoService{},
878882
secAdv,
879883
nil,
880884
comm.NewCredentialSupport(),
881885
dialOpts,
886+
gossipConfig,
887+
&ServiceConfig{},
882888
)
883889
assert.NoError(t, err)
884890
gService := gossipService
@@ -908,18 +914,21 @@ func TestChannelConfig(t *testing.T) {
908914
mockSignerSerializer.SerializeReturns(api.PeerIdentityType("peer-identity"), nil)
909915
secAdv := peergossip.NewSecurityAdvisor(mgmt.NewDeserializersManager())
910916
dialOpts := defaultDeliverClientDialOpts()
917+
gossipConfig, err := gossip.GlobalConfig(endpoint, nil)
918+
assert.NoError(t, err)
911919

912920
gossipService, err := New(
913921
mockSignerSerializer,
914922
gossipmetrics.NewGossipMetrics(&disabled.Provider{}),
915923
endpoint,
916924
grpcServer,
917-
nil,
918925
&naiveCryptoService{},
919926
secAdv,
920927
nil,
921928
nil,
922929
dialOpts,
930+
gossipConfig,
931+
&ServiceConfig{},
923932
)
924933
assert.NoError(t, err)
925934
gService := gossipService

internal/peer/node/start.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ import (
7575
"github.com/hyperledger/fabric/discovery/support/config"
7676
"github.com/hyperledger/fabric/discovery/support/gossip"
7777
gossipcommon "github.com/hyperledger/fabric/gossip/common"
78+
gossipgossip "github.com/hyperledger/fabric/gossip/gossip"
7879
gossipmetrics "github.com/hyperledger/fabric/gossip/metrics"
80+
"github.com/hyperledger/fabric/gossip/service"
7981
gossipservice "github.com/hyperledger/fabric/gossip/service"
8082
peergossip "github.com/hyperledger/fabric/internal/peer/gossip"
8183
"github.com/hyperledger/fabric/internal/peer/version"
@@ -1013,7 +1015,7 @@ func initGossipService(
10131015
peerServer *comm.GRPCServer,
10141016
signer msp.SigningIdentity,
10151017
credSupport *comm.CredentialSupport,
1016-
peerAddr string,
1018+
peerAddress string,
10171019
deliverClientDialOpts []grpc.DialOption,
10181020
) (*gossipservice.GossipService, error) {
10191021

@@ -1037,18 +1039,27 @@ func initGossipService(
10371039
secAdv := peergossip.NewSecurityAdvisor(mgmt.NewDeserializersManager())
10381040
bootstrap := viper.GetStringSlice("peer.gossip.bootstrap")
10391041

1042+
serviceConfig := service.GlobalConfig()
1043+
if serviceConfig.Endpoint != "" {
1044+
peerAddress = serviceConfig.Endpoint
1045+
}
1046+
gossipConfig, err := gossipgossip.GlobalConfig(peerAddress, certs, bootstrap...)
1047+
if err != nil {
1048+
return nil, errors.Wrap(err, "failed obtaining gossip config")
1049+
}
1050+
10401051
return gossipservice.New(
10411052
signer,
10421053
gossipmetrics.NewGossipMetrics(metricsProvider),
1043-
peerAddr,
1054+
peerAddress,
10441055
peerServer.Server(),
1045-
certs,
10461056
messageCryptoService,
10471057
secAdv,
10481058
secureDialOpts(credSupport),
10491059
credSupport,
10501060
deliverClientDialOpts,
1051-
bootstrap...,
1061+
gossipConfig,
1062+
serviceConfig,
10521063
)
10531064
}
10541065

0 commit comments

Comments
 (0)