52 lines
1.5 KiB
Go
52 lines
1.5 KiB
Go
/*
|
|
Copyright IBM Corp. All Rights Reserved.
|
|
|
|
SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package config
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
// GatewayOptions is used to configure the gateway settings.
|
|
type Options struct {
|
|
// GatewayEnabled is used to enable the gateway service.
|
|
Enabled bool
|
|
// EndorsementTimeout is used to specify the maximum time to wait for endorsement responses from external peers.
|
|
EndorsementTimeout time.Duration
|
|
// BroadcastTimeout is used to specify the maximum time to wait for responses from ordering nodes.
|
|
BroadcastTimeout time.Duration
|
|
// DialTimeout is used to specify the maximum time to wait for connecting to external peers and orderer nodes.
|
|
DialTimeout time.Duration
|
|
}
|
|
|
|
var defaultOptions = Options{
|
|
Enabled: true,
|
|
EndorsementTimeout: 10 * time.Second,
|
|
BroadcastTimeout: 10 * time.Second,
|
|
DialTimeout: 30 * time.Second,
|
|
}
|
|
|
|
// DefaultOptions gets the default Gateway configuration Options
|
|
func GetOptions(v *viper.Viper) Options {
|
|
options := defaultOptions
|
|
if v.IsSet("peer.gateway.enabled") {
|
|
options.Enabled = v.GetBool("peer.gateway.enabled")
|
|
}
|
|
if v.IsSet("peer.gateway.endorsementTimeout") {
|
|
options.EndorsementTimeout = v.GetDuration("peer.gateway.endorsementTimeout")
|
|
}
|
|
if v.IsSet("peer.gateway.broadcastTimeout") {
|
|
options.BroadcastTimeout = v.GetDuration("peer.gateway.broadcastTimeout")
|
|
}
|
|
if v.IsSet("peer.gateway.dialTimeout") {
|
|
options.DialTimeout = v.GetDuration("peer.gateway.dialTimeout")
|
|
}
|
|
|
|
return options
|
|
}
|