@@ -44,7 +44,6 @@ import (
44
44
"github.com/spf13/cobra"
45
45
"github.com/spf13/viper"
46
46
"google.golang.org/grpc"
47
- "google.golang.org/grpc/credentials"
48
47
"google.golang.org/grpc/grpclog"
49
48
)
50
49
@@ -114,36 +113,34 @@ func serve(args []string) error {
114
113
grpclog .Fatalf ("Failed to listen: %v" , err )
115
114
}
116
115
117
- ehubLis , ehubGrpcServer , err := createEventHubServer ()
118
- if err != nil {
119
- grpclog .Fatalf ("Failed to create ehub server: %v" , err )
120
- }
121
-
122
116
logger .Infof ("Security enabled status: %t" , core .SecurityEnabled ())
123
117
124
- var opts []grpc.ServerOption
125
- if comm .TLSEnabled () {
126
- creds , err := credentials .NewServerTLSFromFile (viper .GetString ("peer.tls.cert.file" ),
127
- viper .GetString ("peer.tls.key.file" ))
128
-
129
- if err != nil {
130
- grpclog .Fatalf ("Failed to generate credentials %v" , err )
131
- }
132
- opts = []grpc.ServerOption {grpc .Creds (creds )}
118
+ //Create GRPC server - return if an error occurs
119
+ secureConfig := comm.SecureServerConfig {
120
+ UseTLS : viper .GetBool ("peer.tls.enabled" ),
121
+ }
122
+ grpcServer , err := comm .NewGRPCServerFromListener (lis , secureConfig )
123
+ if err != nil {
124
+ fmt .Println ("Failed to return new GRPC server: " , err )
125
+ return err
133
126
}
134
127
135
- grpcServer := grpc .NewServer (opts ... )
128
+ //TODO - do we need different SSL material for events ?
129
+ ehubGrpcServer , err := createEventHubServer (secureConfig )
130
+ if err != nil {
131
+ grpclog .Fatalf ("Failed to create ehub server: %v" , err )
132
+ }
136
133
137
- registerChaincodeSupport (grpcServer )
134
+ registerChaincodeSupport (grpcServer . Server () )
138
135
139
136
logger .Debugf ("Running peer" )
140
137
141
138
// Register the Admin server
142
- pb .RegisterAdminServer (grpcServer , core .NewAdminServer ())
139
+ pb .RegisterAdminServer (grpcServer . Server () , core .NewAdminServer ())
143
140
144
141
// Register the Endorser server
145
142
serverEndorser := endorser .NewEndorserServer ()
146
- pb .RegisterEndorserServer (grpcServer , serverEndorser )
143
+ pb .RegisterEndorserServer (grpcServer . Server () , serverEndorser )
147
144
148
145
// Initialize gossip component
149
146
bootstrap := viper .GetStringSlice ("peer.gossip.bootstrap" )
@@ -153,7 +150,7 @@ func serve(args []string) error {
153
150
panic (fmt .Sprintf ("Failed serializing self identity: %v" , err ))
154
151
}
155
152
156
- service .InitGossipService (serializedIdentity , peerEndpoint .Address , grpcServer , bootstrap ... )
153
+ service .InitGossipService (serializedIdentity , peerEndpoint .Address , grpcServer . Server () , bootstrap ... )
157
154
defer service .GetGossipService ().Stop ()
158
155
159
156
//initialize the env for chainless startup
@@ -202,7 +199,7 @@ func serve(args []string) error {
202
199
203
200
go func () {
204
201
var grpcErr error
205
- if grpcErr = grpcServer .Serve ( lis ); grpcErr != nil {
202
+ if grpcErr = grpcServer .Start ( ); grpcErr != nil {
206
203
grpcErr = fmt .Errorf ("grpc server exited with error: %s" , grpcErr )
207
204
} else {
208
205
logger .Info ("grpc server exited" )
@@ -215,8 +212,8 @@ func serve(args []string) error {
215
212
}
216
213
217
214
// Start the event hub server
218
- if ehubGrpcServer != nil && ehubLis != nil {
219
- go ehubGrpcServer .Serve ( ehubLis )
215
+ if ehubGrpcServer != nil {
216
+ go ehubGrpcServer .Start ( )
220
217
}
221
218
222
219
// Start profiling http endpoint if enabled
@@ -263,35 +260,25 @@ func registerChaincodeSupport(grpcServer *grpc.Server) {
263
260
pb .RegisterChaincodeSupportServer (grpcServer , ccSrv )
264
261
}
265
262
266
- func createEventHubServer () (net. Listener , * grpc. Server , error ) {
263
+ func createEventHubServer (secureConfig comm. SecureServerConfig ) (comm. GRPCServer , error ) {
267
264
var lis net.Listener
268
- var grpcServer * grpc.Server
269
265
var err error
270
266
lis , err = net .Listen ("tcp" , viper .GetString ("peer.events.address" ))
271
267
if err != nil {
272
- return nil , nil , fmt .Errorf ("failed to listen: %v" , err )
268
+ return nil , fmt .Errorf ("failed to listen: %v" , err )
273
269
}
274
270
275
- //TODO - do we need different SSL material for events ?
276
- var opts []grpc.ServerOption
277
- if comm .TLSEnabled () {
278
- creds , err := credentials .NewServerTLSFromFile (
279
- viper .GetString ("peer.tls.cert.file" ),
280
- viper .GetString ("peer.tls.key.file" ))
281
-
282
- if err != nil {
283
- return nil , nil , fmt .Errorf ("Failed to generate credentials %v" , err )
284
- }
285
- opts = []grpc.ServerOption {grpc .Creds (creds )}
271
+ grpcServer , err := comm .NewGRPCServerFromListener (lis , secureConfig )
272
+ if err != nil {
273
+ fmt .Println ("Failed to return new GRPC server: " , err )
274
+ return nil , err
286
275
}
287
-
288
- grpcServer = grpc .NewServer (opts ... )
289
276
ehServer := producer .NewEventsServer (
290
277
uint (viper .GetInt ("peer.events.buffersize" )),
291
278
viper .GetInt ("peer.events.timeout" ))
292
279
293
- pb .RegisterEventsServer (grpcServer , ehServer )
294
- return lis , grpcServer , err
280
+ pb .RegisterEventsServer (grpcServer . Server () , ehServer )
281
+ return grpcServer , nil
295
282
}
296
283
297
284
func writePid (fileName string , pid int ) error {
0 commit comments