@@ -86,12 +86,11 @@ func Main() {
86
86
87
87
prettyPrintStruct (conf )
88
88
89
- bootstrapBlock := extractBootstrapBlock (conf )
90
-
91
89
cryptoProvider := factory .GetDefault ()
92
90
93
- if err := ValidateBootstrapBlock (bootstrapBlock , cryptoProvider ); err != nil {
94
- logger .Panicf ("Failed validating bootstrap block: %v" , err )
91
+ signer , signErr := loadLocalMSP (conf ).GetDefaultSigningIdentity ()
92
+ if signErr != nil {
93
+ logger .Panicf ("Failed to get local MSP identity: %s" , signErr )
95
94
}
96
95
97
96
opsSystem := newOperationsSystem (conf .Operations , conf .Metrics )
@@ -100,19 +99,6 @@ func Main() {
100
99
}
101
100
defer opsSystem .Stop ()
102
101
metricsProvider := opsSystem .Provider
103
-
104
- lf , _ , err := createLedgerFactory (conf , metricsProvider )
105
- if err != nil {
106
- logger .Panicf ("Failed in creating ledger factory: %v" , err )
107
- }
108
- sysChanLastConfigBlock := extractSysChanLastConfig (lf , bootstrapBlock )
109
- clusterBootBlock := selectClusterBootBlock (bootstrapBlock , sysChanLastConfigBlock )
110
-
111
- signer , signErr := loadLocalMSP (conf ).GetDefaultSigningIdentity ()
112
- if signErr != nil {
113
- logger .Panicf ("Failed to get local MSP identity: %s" , signErr )
114
- }
115
-
116
102
logObserver := floggingmetrics .NewObserver (metricsProvider )
117
103
flogging .SetObserver (logObserver )
118
104
@@ -124,38 +110,58 @@ func Main() {
124
110
clientRootCAs : serverConfig .SecOpts .ClientRootCAs ,
125
111
}
126
112
113
+ lf , _ , err := createLedgerFactory (conf , metricsProvider )
114
+ if err != nil {
115
+ logger .Panicf ("Failed to create ledger factory: %v" , err )
116
+ }
117
+
118
+ var clusterBootBlock * cb.Block
127
119
// configure following artifacts properly if orderer is of cluster type
128
120
var r * replicationInitiator
129
121
clusterServerConfig := serverConfig
130
122
clusterGRPCServer := grpcServer // by default, cluster shares the same grpc server
131
123
var clusterClientConfig comm.ClientConfig
132
124
var clusterDialer * cluster.PredicateDialer
133
-
134
- var reuseGrpcListener bool
135
- typ := consensusType (bootstrapBlock , cryptoProvider )
125
+ var clusterType , reuseGrpcListener bool
136
126
var serversToUpdate []* comm.GRPCServer
137
-
138
- clusterType := isClusterType (clusterBootBlock , cryptoProvider )
139
- if clusterType {
140
- logger .Infof ("Setting up cluster for orderer type %s" , typ )
141
- clusterClientConfig = initializeClusterClientConfig (conf )
142
- clusterDialer = & cluster.PredicateDialer {
143
- Config : clusterClientConfig ,
127
+ if conf .General .GenesisMethod == "file" {
128
+ bootstrapBlock := extractBootstrapBlock (conf )
129
+ if err := ValidateBootstrapBlock (bootstrapBlock , cryptoProvider ); err != nil {
130
+ logger .Panicf ("Failed validating bootstrap block: %v" , err )
144
131
}
132
+ sysChanLastConfigBlock := extractSysChanLastConfig (lf , bootstrapBlock )
133
+ clusterBootBlock = selectClusterBootBlock (bootstrapBlock , sysChanLastConfigBlock )
145
134
146
- r = createReplicator (lf , bootstrapBlock , conf , clusterClientConfig .SecOpts , signer , cryptoProvider )
147
- // Only clusters that are equipped with a recent config block can replicate.
148
- if conf .General .GenesisMethod == "file" {
149
- r .replicateIfNeeded (bootstrapBlock )
150
- }
135
+ typ := consensusType (bootstrapBlock , cryptoProvider )
136
+ clusterType = isClusterType (clusterBootBlock , cryptoProvider )
137
+ if clusterType {
138
+ logger .Infof ("Setting up cluster for orderer type %s" , typ )
139
+ clusterClientConfig = initializeClusterClientConfig (conf )
140
+ clusterDialer = & cluster.PredicateDialer {
141
+ Config : clusterClientConfig ,
142
+ }
143
+
144
+ r = createReplicator (lf , bootstrapBlock , conf , clusterClientConfig .SecOpts , signer , cryptoProvider )
145
+ // Only clusters that are equipped with a recent config block can replicate.
146
+ if conf .General .GenesisMethod == "file" {
147
+ r .replicateIfNeeded (bootstrapBlock )
148
+ }
151
149
152
- if reuseGrpcListener = reuseListener (conf , typ ); ! reuseGrpcListener {
153
- clusterServerConfig , clusterGRPCServer = configureClusterListener (conf , serverConfig , ioutil .ReadFile )
150
+ if reuseGrpcListener = reuseListener (conf , typ ); ! reuseGrpcListener {
151
+ clusterServerConfig , clusterGRPCServer = configureClusterListener (conf , serverConfig , ioutil .ReadFile )
152
+ }
153
+
154
+ // If we have a separate gRPC server for the cluster,
155
+ // we need to update its TLS CA certificate pool.
156
+ serversToUpdate = append (serversToUpdate , clusterGRPCServer )
157
+ }
158
+ // Are we bootstrapping?
159
+ if len (lf .ChannelIDs ()) == 0 {
160
+ initializeBootstrapChannel (clusterBootBlock , lf )
161
+ } else {
162
+ logger .Info ("Not bootstrapping because of existing channels" )
154
163
}
155
164
156
- // If we have a separate gRPC server for the cluster,
157
- // we need to update its TLS CA certificate pool.
158
- serversToUpdate = append (serversToUpdate , clusterGRPCServer )
159
165
}
160
166
161
167
identityBytes , err := signer .Serialize ()
@@ -697,25 +703,19 @@ func initializeMultichannelRegistrar(
697
703
bccsp bccsp.BCCSP ,
698
704
callbacks ... channelconfig.BundleActor ,
699
705
) * multichannel.Registrar {
700
- // Are we bootstrapping?
701
- if len (lf .ChannelIDs ()) == 0 {
702
- initializeBootstrapChannel (bootstrapBlock , lf )
703
- } else {
704
- logger .Info ("Not bootstrapping because of existing channels" )
705
- }
706
-
707
- consenters := make (map [string ]consensus.Consenter )
708
-
709
706
registrar := multichannel .NewRegistrar (* conf , lf , signer , metricsProvider , bccsp , callbacks ... )
710
707
708
+ consenters := map [string ]consensus.Consenter {}
711
709
consenters ["solo" ] = solo .New ()
712
710
var kafkaMetrics * kafka.Metrics
713
711
consenters ["kafka" ], kafkaMetrics = kafka .New (conf .Kafka , metricsProvider , healthChecker )
714
712
// Note, we pass a 'nil' channel here, we could pass a channel that
715
713
// closes if we wished to cleanup this routine on exit.
716
714
go kafkaMetrics .PollGoMetricsUntilStop (time .Minute , nil )
717
- if isClusterType (bootstrapBlock , bccsp ) {
718
- initializeEtcdraftConsenter (consenters , conf , lf , clusterDialer , bootstrapBlock , ri , srvConf , srv , registrar , metricsProvider , bccsp )
715
+ if conf .General .GenesisMethod == "file" {
716
+ if isClusterType (bootstrapBlock , bccsp ) {
717
+ initializeEtcdraftConsenter (consenters , conf , lf , clusterDialer , bootstrapBlock , ri , srvConf , srv , registrar , metricsProvider , bccsp )
718
+ }
719
719
}
720
720
registrar .Initialize (consenters )
721
721
return registrar
0 commit comments