Documentation
¶
Overview ¶
Example (Flags) ¶
package main
import (
"context"
"flag"
"fmt"
"moul.io/u"
"berty.tech/berty/v2/go/internal/initutil"
)
func main() {
// init manager
ctx := context.Background()
manager, err := initutil.New(ctx, nil)
if err != nil {
panic(err)
}
defer manager.Close(nil)
// configure flags
fmt.Println("before", u.JSON(manager.Node.GRPC))
fs := flag.NewFlagSet("test", flag.ExitOnError)
manager.SetupLocalProtocolServerFlags(fs)
manager.SetupRemoteNodeFlags(fs)
manager.SetupDefaultGRPCListenersFlags(fs)
err = fs.Parse([]string{"-store.inmem", "-p2p.min-backoff=2m10s", "-node.remote-addr=1.2.3.4:5678"})
if err != nil {
panic(err)
}
fmt.Println("after ", u.JSON(manager.Node.GRPC))
}
Output: before {} after {"RemoteAddr":"1.2.3.4:5678","Listeners":"/ip4/127.0.0.1/tcp/9091/grpc"}
Example (Noflags) ¶
package main
import (
"context"
"flag"
"fmt"
"berty.tech/berty/v2/go/internal/initutil"
"berty.tech/berty/v2/go/pkg/protocoltypes"
)
func main() {
// init manager
ctx := context.Background()
manager, err := initutil.New(ctx, nil)
if err != nil {
panic(err)
}
defer manager.Close(nil)
fs := flag.NewFlagSet("", flag.ExitOnError)
manager.SetupLocalProtocolServerFlags(fs)
manager.SetupRemoteNodeFlags(fs)
fs.Parse([]string{})
// configure manager without flags
manager.Node.GRPC.Listeners = ""
manager.Node.Protocol.DisableIPFSNetwork = true
manager.Datastore.InMemory = true
// start a local berty protocol server
_, err = manager.GetLocalProtocolServer()
if err != nil {
panic(err)
}
// build a client for the previously created protocol server
client, err := manager.GetProtocolClient()
if err != nil {
panic(err)
}
// retrieve config
ret, err := client.InstanceGetConfiguration(ctx, &protocoltypes.InstanceGetConfiguration_Request{})
if err != nil {
panic(err)
}
// check that the reply is valid (cannot check hardcoded value, since it's random)
fmt.Println(ret.AccountPK != nil)
}
Output: true
Index ¶
- Constants
- func ReplaceGRPCLogger(l *zap.Logger)
- type Manager
- func (m *Manager) AdvancedHelp() string
- func (m *Manager) Close(prog *progress.Progress) error
- func (m *Manager) DisableIPFSNetwork()
- func (m *Manager) GetAccountStorageKey() ([]byte, error)
- func (m *Manager) GetContext() context.Context
- func (m *Manager) GetDatastoreDir() (string, error)
- func (m *Manager) GetGRPCClientConn() (*grpc.ClientConn, error)
- func (m *Manager) GetGRPCListeners() []grpcutil.Listener
- func (m *Manager) GetGRPCServer() (*grpc.Server, *grpcgw.ServeMux, error)
- func (m *Manager) GetLifecycleManager() *lifecycle.Manager
- func (m *Manager) GetLocalIPFS() (ipfsutil.ExtendedCoreAPI, *ipfs_core.IpfsNode, error)
- func (m *Manager) GetLocalMessengerServer() (messengertypes.MessengerServiceServer, error)
- func (m *Manager) GetLocalProtocolServer() (bertyprotocol.Service, error)
- func (m *Manager) GetLogger() (*zap.Logger, error)
- func (m *Manager) GetMessengerClient() (messengertypes.MessengerServiceClient, error)
- func (m *Manager) GetMessengerDB() (*gorm.DB, error)
- func (m *Manager) GetMetricsRegistry() (*prometheus.Registry, error)
- func (m *Manager) GetNotificationManager() (notification.Manager, error)
- func (m *Manager) GetOrbitDB() (*bertyprotocol.BertyOrbitDB, error)
- func (m *Manager) GetProtocolClient() (protocoltypes.ProtocolServiceClient, error)
- func (m *Manager) GetRendezvousRotationBase() (time.Duration, error)
- func (m *Manager) GetReplicationDB() (*gorm.DB, error)
- func (m *Manager) GetRootDatastore() (datastore.Batching, error)
- func (m *Manager) RunWorkers() error
- func (m *Manager) SetBleDriver(d proximity.ProximityDriver)
- func (m *Manager) SetDevicePushKeyPath(keyPath string)
- func (m *Manager) SetLifecycleManager(manager *lifecycle.Manager)
- func (m *Manager) SetLogger(logger *zap.Logger)
- func (m *Manager) SetMDNSLocker(mlock sync.Locker)
- func (m *Manager) SetNBDriver(d proximity.ProximityDriver)
- func (m *Manager) SetNotificationManager(manager notification.Manager)
- func (m *Manager) SetupDatastoreFlags(fs *flag.FlagSet)
- func (m *Manager) SetupDefaultGRPCListenersFlags(fs *flag.FlagSet)
- func (m *Manager) SetupEmptyGRPCListenersFlags(fs *flag.FlagSet)
- func (m *Manager) SetupInitTimeout(fs *flag.FlagSet)
- func (m *Manager) SetupLocalIPFSFlags(fs *flag.FlagSet)
- func (m *Manager) SetupLocalMessengerServerFlags(fs *flag.FlagSet)
- func (m *Manager) SetupLocalProtocolServerFlags(fs *flag.FlagSet)
- func (m *Manager) SetupLoggingFlags(fs *flag.FlagSet)
- func (m *Manager) SetupMetricsFlags(fs *flag.FlagSet)
- func (m *Manager) SetupNotificationManagerFlags(fs *flag.FlagSet)
- func (m *Manager) SetupPresetFlags(fs *flag.FlagSet)
- func (m *Manager) SetupProtocolAuth(fs *flag.FlagSet)
- func (m *Manager) SetupRemoteNodeFlags(fs *flag.FlagSet)
- type ManagerOpts
Examples ¶
Constants ¶
View Source
const ( FlagNameP2PBootstrap = "p2p.bootstrap" FlagNameP2PDHT = "p2p.dht" FlagNameP2PMDNS = "p2p.mdns" FlagNameP2PStaticRelays = "p2p.static-relays" FlagNameP2PRDVP = "p2p.rdvp" FlagNameP2PBLE = "p2p.ble" FlagNameP2PNearby = "p2p.nearby" FlagNameP2PMultipeerConnectivity = "p2p.multipeer-connectivity" FlagNameTorMode = "tor.mode" FlagNameP2PTinderDiscover = "p2p.tinder-discover" FlagNameP2PTinderDHTDriver = "p2p.tinder-dht-driver" FlagNameP2PTinderRDVPDriver = "p2p.tinder-rdvp-driver" FlagNameP2PDisableDiscoverAddrsFilter = "p2p.disc-disable-filter" FlagValueP2PDHTDisabled = "none" FlagValueP2PDHTClient = "client" FlagValueP2PDHTServer = "server" FlagValueP2PDHTAuto = "auto" FlagValueP2PDHTAutoServer = "autoserver" )
View Source
const ( KeywordDefault string = ":default:" KeywordNone string = ":none:" )
View Source
const ( PerformancePreset = "performance" AnonymityPreset = "anonymity" VolatilePreset = "volatile" TorDisabled = "disabled" TorOptional = "optional" TorRequired = "required" )
Variables ¶
This section is empty.
Functions ¶
func ReplaceGRPCLogger ¶ added in v2.211.1
Types ¶
type Manager ¶
type Manager struct {
// Session contains metadata for the current running session.
Session struct {
// Kind is a string describing the context of the app.
// When set, it is appended to the session-specific logging file.
// It follows the following format: '${driver}.${package}.${command}'.
// Examples:
// cli.daemon -> `go run ./cmd/berty daemon`
// cli.mini -> `go run ./cmd/berty mini`
// cli.rdvp -> `go run ./cmd/rdvp`
// mobile.messenger -> Berty Messenger app using the bertybridge
Kind string `json:"Kind,omitempty"`
// ID is an auto-generated UUID that can be used by Tyber.
ID string `json:"ID,omitempty"`
} `json:"Session,omitempty"`
Logging struct {
DisableLogging bool
DefaultLoggerStreams []logutil.Stream
StderrFormat string `json:"StderrFormat,omitempty"`
StderrFilters string `json:"StderrFilters,omitempty"`
FilePath string `json:"FilePath,omitempty"`
FileFilters string `json:"FileFilters,omitempty"`
RingFilters string `json:"RingFilters,omitempty"`
RingSize uint `json:"RingSize,omitempty"`
// contains filtered or unexported fields
} `json:"Logging,omitempty"`
Metrics struct {
Listener string `json:"Listener,omitempty"`
Pedantic bool `json:"Pedantic,omitempty"`
// contains filtered or unexported fields
} `json:"Metrics,omitempty"`
Datastore struct {
Dir string `json:"Dir,omitempty"`
InMemory bool `json:"InMemory,omitempty"`
// contains filtered or unexported fields
} `json:"Datastore,omitempty"`
Node struct {
Preset string `json:"preset"`
Protocol struct {
SwarmListeners string `json:"SwarmListeners,omitempty"`
IPFSAPIListeners string `json:"IPFSAPIListeners,omitempty"`
IPFSWebUIListener string `json:"IPFSWebUIListener,omitempty"`
Announce string `json:"Announce,omitempty"`
Bootstrap string `json:"Bootstrap,omitempty"`
DHT string `json:"DHT,omitempty"`
DHTRandomWalk bool `json:"DHTRandomWalk,omitempty"`
NoAnnounce string `json:"NoAnnounce,omitempty"`
TinderDiscover bool `json:"TinderDiscover,omitempty"`
TinderDHTDriver bool `json:"TinderDHTDriver,omitempty"`
TinderRDVPDriver bool `json:"TinderRDVPDriver,omitempty"`
AutoRelay bool `json:"Relay,omitempty"`
StaticRelays string `json:"StaticRelays,omitempty"`
LowWatermark int `json:"LowWatermark,omitempty"`
HighWatermark int `json:"HighWatermark,omitempty"`
MDNS struct {
Enable bool `json:"Enable,omitempty"`
DriverLocker sync.Locker
} `json:"MDNS,omitempty"`
Ble struct {
Enable bool `json:"Enable,omitempty"`
Driver proximity.ProximityDriver
} `json:"Ble,omitempty"`
Nearby struct {
Enable bool `json:"Enable,omitempty"`
Driver proximity.ProximityDriver
} `json:"Nearby,omitempty"`
MultipeerConnectivity bool `json:"MultipeerConnectivity,omitempty"`
MinBackoff time.Duration `json:"MinBackoff,omitempty"`
MaxBackoff time.Duration `json:"MaxBackoff,omitempty"`
DisableIPFSNetwork bool `json:"DisableIPFSNetwork,omitempty"`
RdvpMaddrs string `json:"RdvpMaddrs,omitempty"`
AuthSecret string `json:"AuthSecret,omitempty"`
AuthPublicKey string `json:"AuthPublicKey,omitempty"`
PollInterval time.Duration `json:"PollInterval,omitempty"`
Tor struct {
Mode string `json:"Mode,omitempty"`
BinaryPath string `json:"BinaryPath,omitempty"`
} `json:"Tor,omitempty"`
PushPlatformToken string `json:"PushPlatformToken,omitempty"`
DevicePushKeyPath string `json:"DevicePushKeyPath,omitempty"`
ServiceInsecureMode bool `json:"ServiceInsecureMode,omitempty"`
RendezvousRotationBase time.Duration `json:"RendezvousRotationBase,omitempty"`
// internal
DisableDiscoverFilterAddrs bool
ServiceID string
// contains filtered or unexported fields
}
Messenger struct {
DisableGroupMonitor bool `json:"DisableGroupMonitor,omitempty"`
DisplayName string `json:"DisplayName,omitempty"`
DisableNotifications bool `json:"DisableNotifications,omitempty"`
RebuildSqlite bool `json:"RebuildSqlite,omitempty"`
MessengerSqliteOpts string `json:"MessengerSqliteOpts,omitempty"`
ExportPathToRestore string `json:"ExportPathToRestore,omitempty"`
// contains filtered or unexported fields
}
Replication struct {
// contains filtered or unexported fields
}
GRPC struct {
RemoteAddr string `json:"RemoteAddr,omitempty"`
Listeners string `json:"Listeners,omitempty"`
// contains filtered or unexported fields
} `json:"GRPC,omitempty"`
} `json:"Node,omitempty"`
InitTimeout time.Duration `json:"InitTimeout,omitempty"`
// contains filtered or unexported fields
}
func (*Manager) AdvancedHelp ¶ added in v2.195.2
func (*Manager) DisableIPFSNetwork ¶
func (m *Manager) DisableIPFSNetwork()
func (*Manager) GetAccountStorageKey ¶ added in v2.331.0
func (*Manager) GetContext ¶
func (*Manager) GetDatastoreDir ¶
func (*Manager) GetGRPCClientConn ¶
func (m *Manager) GetGRPCClientConn() (*grpc.ClientConn, error)
func (*Manager) GetGRPCListeners ¶ added in v2.190.1
func (*Manager) GetGRPCServer ¶
func (*Manager) GetLifecycleManager ¶ added in v2.145.0
func (*Manager) GetLocalIPFS ¶ added in v2.141.0
func (*Manager) GetLocalMessengerServer ¶
func (m *Manager) GetLocalMessengerServer() (messengertypes.MessengerServiceServer, error)
func (*Manager) GetLocalProtocolServer ¶
func (m *Manager) GetLocalProtocolServer() (bertyprotocol.Service, error)
func (*Manager) GetMessengerClient ¶
func (m *Manager) GetMessengerClient() (messengertypes.MessengerServiceClient, error)
func (*Manager) GetMetricsRegistry ¶ added in v2.182.0
func (m *Manager) GetMetricsRegistry() (*prometheus.Registry, error)
func (*Manager) GetNotificationManager ¶ added in v2.190.1
func (m *Manager) GetNotificationManager() (notification.Manager, error)
func (*Manager) GetOrbitDB ¶ added in v2.141.0
func (m *Manager) GetOrbitDB() (*bertyprotocol.BertyOrbitDB, error)
func (*Manager) GetProtocolClient ¶
func (m *Manager) GetProtocolClient() (protocoltypes.ProtocolServiceClient, error)
func (*Manager) GetRendezvousRotationBase ¶ added in v2.322.0
func (*Manager) GetReplicationDB ¶ added in v2.311.2
func (*Manager) RunWorkers ¶
func (*Manager) SetBleDriver ¶ added in v2.260.0
func (m *Manager) SetBleDriver(d proximity.ProximityDriver)
Set the Java Android BLE driver
func (*Manager) SetDevicePushKeyPath ¶ added in v2.305.0
func (*Manager) SetLifecycleManager ¶ added in v2.190.1
func (*Manager) SetMDNSLocker ¶ added in v2.337.0
Set mdns locker
func (*Manager) SetNBDriver ¶ added in v2.269.0
func (m *Manager) SetNBDriver(d proximity.ProximityDriver)
Set the Java Android Nearby driver
func (*Manager) SetNotificationManager ¶ added in v2.190.1
func (m *Manager) SetNotificationManager(manager notification.Manager)
func (*Manager) SetupDatastoreFlags ¶
func (*Manager) SetupDefaultGRPCListenersFlags ¶ added in v2.141.1
func (*Manager) SetupEmptyGRPCListenersFlags ¶ added in v2.141.1
func (*Manager) SetupInitTimeout ¶ added in v2.221.2
func (*Manager) SetupLocalIPFSFlags ¶ added in v2.141.0
func (*Manager) SetupLocalMessengerServerFlags ¶
func (*Manager) SetupLocalProtocolServerFlags ¶
func (*Manager) SetupLoggingFlags ¶
func (*Manager) SetupMetricsFlags ¶ added in v2.182.0
func (*Manager) SetupNotificationManagerFlags ¶ added in v2.190.1
func (*Manager) SetupPresetFlags ¶ added in v2.195.2
func (*Manager) SetupProtocolAuth ¶ added in v2.154.0
func (*Manager) SetupRemoteNodeFlags ¶
type ManagerOpts ¶ added in v2.297.0
type ManagerOpts struct {
DoNotSetDefaultDir bool
DisableLogging bool
DefaultLoggerStreams []logutil.Stream
NativeKeystore accountutils.NativeKeystore
AccountID string
}
Click to show internal directories.
Click to hide internal directories.