bertyprotocol

package
v2.121.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2020 License: Apache-2.0, MIT Imports: 84 Imported by: 0

README

Berty go/

go.dev reference

Please, read the main README.md file first.

Get the code

go get -u berty.tech/berty/v2/go/pkg/bertyprotocol

Examples

TODO: add links to internal examples + links to external repos using the protocol

Documentation

Overview

Package bertyprotocol is a reverse proxy.

It translates gRPC into RESTful JSON APIs.

Package bertyprotocol contains code for integrating the Berty protocol in your project.

See https://berty.tech/protocol for more information.

Index

Examples

Constants

View Source
const ClientBufferSize = 256 * 1024
View Source
const CurrentGroupVersion = 1

Variables

This section is empty.

Functions

func ActivateGroupContext

func ActivateGroupContext(ctx context.Context, gc *groupContext) error

func ConnectAll added in v2.39.0

func ConnectAll(t *testing.T, m libp2p_mocknet.Mocknet)

ConnectAll peers between themselves

func ConnectInLine added in v2.39.0

func ConnectInLine(t *testing.T, m libp2p_mocknet.Mocknet)

func DefaultOrbitDBOptions added in v2.32.1

func DefaultOrbitDBOptions(g *bertytypes.Group, options *orbitdb.CreateDBOptions, keystore *BertySignedKeyStore, storeType string) (*orbitdb.CreateDBOptions, error)

func FillMessageKeysHolderUsingNewData

func FillMessageKeysHolderUsingNewData(ctx context.Context, gc *groupContext) <-chan crypto.PubKey

func FillMessageKeysHolderUsingPreviousData

func FillMessageKeysHolderUsingPreviousData(ctx context.Context, gc *groupContext) <-chan crypto.PubKey

func NewDeviceSecret

func NewDeviceSecret() (*bertytypes.DeviceSecret, error)

func NewGroupMultiMember

func NewGroupMultiMember() (*bertytypes.Group, crypto.PrivKey, error)

NewGroupMultiMember creates a new Group object and an invitation to be used by the first member of the group

func NewOrbitDatastoreCache added in v2.32.1

func NewOrbitDatastoreCache(ds datastore.Batching) cache.Interface

func NewSimpleAccessController added in v2.32.1

NewSimpleAccessController Returns a non configurable access controller

func RegisterProtocolServiceHandler added in v2.100.0

func RegisterProtocolServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error

RegisterProtocolServiceHandler registers the http handlers for service ProtocolService to "mux". The handlers forward requests to the grpc endpoint over "conn".

func RegisterProtocolServiceHandlerClient added in v2.100.0

func RegisterProtocolServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client ProtocolServiceClient) error

RegisterProtocolServiceHandlerClient registers the http handlers for service ProtocolService to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "ProtocolServiceClient". Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "ProtocolServiceClient" doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in "ProtocolServiceClient" to call the correct interceptors.

func RegisterProtocolServiceHandlerFromEndpoint added in v2.100.0

func RegisterProtocolServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)

RegisterProtocolServiceHandlerFromEndpoint is same as RegisterProtocolServiceHandler but automatically dials to "endpoint" and closes the connection when "ctx" gets done.

func RegisterProtocolServiceHandlerServer added in v2.100.0

func RegisterProtocolServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server ProtocolServiceServer) error

RegisterProtocolServiceHandlerServer registers the http handlers for service ProtocolService to "mux". UnaryRPC :call ProtocolServiceServer directly. StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.

func RegisterProtocolServiceServer

func RegisterProtocolServiceServer(s *grpc.Server, srv ProtocolServiceServer)

func SendSecretsToExistingMembers

func SendSecretsToExistingMembers(ctx context.Context, gctx *groupContext) <-chan crypto.PubKey

func WatchNewMembersAndSendSecrets

func WatchNewMembersAndSendSecrets(ctx context.Context, logger *zap.Logger, gctx *groupContext) <-chan crypto.PubKey

Types

type AccountKeys

type AccountKeys interface {
	AccountPrivKey() (crypto.PrivKey, error)
	AccountProofPrivKey() (crypto.PrivKey, error)
	DevicePrivKey() (crypto.PrivKey, error)
	ContactGroupPrivKey(pk crypto.PubKey) (crypto.PrivKey, error)
	MemberDeviceForGroup(g *bertytypes.Group) (*OwnMemberDevice, error)
}

type BertySignedKeyStore added in v2.32.1

type BertySignedKeyStore struct {
	sync.Map
}

func (*BertySignedKeyStore) CreateKey added in v2.32.1

func (s *BertySignedKeyStore) CreateKey(id string) (crypto.PrivKey, error)

func (*BertySignedKeyStore) GetKey added in v2.32.1

func (s *BertySignedKeyStore) GetKey(id string) (crypto.PrivKey, error)

func (*BertySignedKeyStore) HasKey added in v2.32.1

func (s *BertySignedKeyStore) HasKey(id string) (bool, error)

func (*BertySignedKeyStore) SetKey added in v2.32.1

func (s *BertySignedKeyStore) SetKey(pk crypto.PrivKey) error

func (*BertySignedKeyStore) Sign added in v2.32.1

func (s *BertySignedKeyStore) Sign(privKey crypto.PrivKey, bytes []byte) ([]byte, error)

func (*BertySignedKeyStore) Verify added in v2.32.1

func (s *BertySignedKeyStore) Verify(signature []byte, publicKey crypto.PubKey, data []byte) error

type Client

type Client interface {
	ProtocolServiceClient

	Close() error
}

func NewClient added in v2.39.0

func NewClient(ctx context.Context, svc Service, opts ...grpc.ServerOption) (Client, error)

func NewClientFromServer added in v2.39.0

func NewClientFromServer(ctx context.Context, s *grpc.Server, svc Service, opts ...grpc.DialOption) (Client, error)

func TestingClient

func TestingClient(ctx context.Context, t *testing.T, svc Service, opts ...grpc.ServerOption) (client Client, cleanup func())

func TestingClientFromServer added in v2.39.0

func TestingClientFromServer(ctx context.Context, t *testing.T, s *grpc.Server, svc Service, dialOpts ...grpc.DialOption) (client Client, cleanup func())

type ConnnectTestingProtocolFunc added in v2.39.0

type ConnnectTestingProtocolFunc func(*testing.T, libp2p_mocknet.Mocknet)

Connect Peers Helper

type DeviceKeystore added in v2.32.1

type DeviceKeystore interface {
	AccountPrivKey() (crypto.PrivKey, error)
	AccountProofPrivKey() (crypto.PrivKey, error)
	DevicePrivKey() (crypto.PrivKey, error)
	ContactGroupPrivKey(pk crypto.PubKey) (crypto.PrivKey, error)
	MemberDeviceForGroup(g *bertytypes.Group) (*ownMemberDevice, error)
}

func NewDeviceKeystore added in v2.32.1

func NewDeviceKeystore(ks keystore.Keystore) DeviceKeystore

New creates a new deviceKeystore instance, if the keystore does not hold an deviceKeystore key, one will be created when required

func NewWithExistingKeys added in v2.32.1

func NewWithExistingKeys(ks keystore.Keystore, sk crypto.PrivKey, proofSK crypto.PrivKey) (DeviceKeystore, error)

NewWithExistingKeys creates a new deviceKeystore instance and registers the supplied secret key, useful when migrating deviceKeystore to another device

type EventMetadataReceived added in v2.66.1

type EventMetadataReceived struct {
	MetaEvent *bertytypes.GroupMetadataEvent
	Event     proto.Message
}

type MemberDevice

type MemberDevice struct {
	Member crypto.PubKey
	Device crypto.PubKey
	Secret *bertytypes.DeviceSecret
}

MemberDevice is a remote device part of a group

type MessageKeystore added in v2.32.1

type MessageKeystore struct {
	// contains filtered or unexported fields
}

func NewInMemMessageKeystore added in v2.32.1

func NewInMemMessageKeystore() (*MessageKeystore, func())

NewInMemMessageKeystore instantiate a new MessageKeystore, useful for testing

func NewMessageKeystore added in v2.32.1

func NewMessageKeystore(s datastore.Datastore) *MessageKeystore

NewMessageKeystore instantiate a new MessageKeystore

func (*MessageKeystore) GetDeviceSecret added in v2.66.1

func (*MessageKeystore) OpenEnvelope added in v2.66.1

func (m *MessageKeystore) OpenEnvelope(ctx context.Context, g *bertytypes.Group, ownPK crypto.PubKey, data []byte, id cid.Cid) (*bertytypes.MessageHeaders, []byte, error)

func (*MessageKeystore) RegisterChainKey added in v2.66.1

func (m *MessageKeystore) RegisterChainKey(g *bertytypes.Group, devicePK crypto.PubKey, ds *bertytypes.DeviceSecret, isOwnPK bool) error

func (*MessageKeystore) SealEnvelope added in v2.66.1

func (m *MessageKeystore) SealEnvelope(ctx context.Context, g *bertytypes.Group, deviceSK crypto.PrivKey, payload []byte) ([]byte, error)

type Opts

type Opts struct {
	Logger                 *zap.Logger
	IpfsCoreAPI            ipfsutil.ExtendedCoreAPI
	DeviceKeystore         DeviceKeystore
	MessageKeystore        *MessageKeystore
	RootDatastore          datastore.Batching
	OrbitDirectory         string
	OrbitCache             cache.Interface
	TinderDriver           tinder.Driver
	RendezvousRotationBase time.Duration
	Host                   host.Host
	PubSub                 *pubsub.PubSub
	// contains filtered or unexported fields
}

Opts contains optional configuration flags for building a new Client

type OwnMemberDevice

type OwnMemberDevice struct {
	Member crypto.PrivKey
	Device crypto.PrivKey
}

OwnMemberDevice is own local device part of a group

func (*OwnMemberDevice) Public

func (d *OwnMemberDevice) Public() *MemberDevice

type ProtocolServiceClient

type ProtocolServiceClient interface {
	// InstanceExportData exports instance data
	InstanceExportData(ctx context.Context, in *bertytypes.InstanceExportData_Request, opts ...grpc.CallOption) (*bertytypes.InstanceExportData_Reply, error)
	// InstanceGetConfiguration gets current configuration of this protocol instance
	InstanceGetConfiguration(ctx context.Context, in *bertytypes.InstanceGetConfiguration_Request, opts ...grpc.CallOption) (*bertytypes.InstanceGetConfiguration_Reply, error)
	// ContactRequestReference retrieves the information required to create a reference (types.v1.ie. included in a shareable link) to the current account
	ContactRequestReference(ctx context.Context, in *bertytypes.ContactRequestReference_Request, opts ...grpc.CallOption) (*bertytypes.ContactRequestReference_Reply, error)
	// ContactRequestDisable disables incoming contact requests
	ContactRequestDisable(ctx context.Context, in *bertytypes.ContactRequestDisable_Request, opts ...grpc.CallOption) (*bertytypes.ContactRequestDisable_Reply, error)
	// ContactRequestEnable enables incoming contact requests
	ContactRequestEnable(ctx context.Context, in *bertytypes.ContactRequestEnable_Request, opts ...grpc.CallOption) (*bertytypes.ContactRequestEnable_Reply, error)
	// ContactRequestResetReference changes the contact request reference
	ContactRequestResetReference(ctx context.Context, in *bertytypes.ContactRequestResetReference_Request, opts ...grpc.CallOption) (*bertytypes.ContactRequestResetReference_Reply, error)
	// ContactRequestSend attempt to send a contact request
	ContactRequestSend(ctx context.Context, in *bertytypes.ContactRequestSend_Request, opts ...grpc.CallOption) (*bertytypes.ContactRequestSend_Reply, error)
	// ContactRequestAccept accepts a contact request
	ContactRequestAccept(ctx context.Context, in *bertytypes.ContactRequestAccept_Request, opts ...grpc.CallOption) (*bertytypes.ContactRequestAccept_Reply, error)
	// ContactRequestDiscard ignores a contact request, without informing the other user
	ContactRequestDiscard(ctx context.Context, in *bertytypes.ContactRequestDiscard_Request, opts ...grpc.CallOption) (*bertytypes.ContactRequestDiscard_Reply, error)
	// ContactBlock blocks a contact from sending requests
	ContactBlock(ctx context.Context, in *bertytypes.ContactBlock_Request, opts ...grpc.CallOption) (*bertytypes.ContactBlock_Reply, error)
	// ContactUnblock unblocks a contact from sending requests
	ContactUnblock(ctx context.Context, in *bertytypes.ContactUnblock_Request, opts ...grpc.CallOption) (*bertytypes.ContactUnblock_Reply, error)
	// ContactAliasKeySend send an alias key to a contact, the contact will be able to assert that your account is being present on a multi-member group
	ContactAliasKeySend(ctx context.Context, in *bertytypes.ContactAliasKeySend_Request, opts ...grpc.CallOption) (*bertytypes.ContactAliasKeySend_Reply, error)
	// MultiMemberGroupCreate creates a new multi-member group
	MultiMemberGroupCreate(ctx context.Context, in *bertytypes.MultiMemberGroupCreate_Request, opts ...grpc.CallOption) (*bertytypes.MultiMemberGroupCreate_Reply, error)
	// MultiMemberGroupJoin joins a multi-member group
	MultiMemberGroupJoin(ctx context.Context, in *bertytypes.MultiMemberGroupJoin_Request, opts ...grpc.CallOption) (*bertytypes.MultiMemberGroupJoin_Reply, error)
	// MultiMemberGroupLeave leaves a multi-member group
	MultiMemberGroupLeave(ctx context.Context, in *bertytypes.MultiMemberGroupLeave_Request, opts ...grpc.CallOption) (*bertytypes.MultiMemberGroupLeave_Reply, error)
	// MultiMemberGroupAliasResolverDisclose discloses your alias resolver key
	MultiMemberGroupAliasResolverDisclose(ctx context.Context, in *bertytypes.MultiMemberGroupAliasResolverDisclose_Request, opts ...grpc.CallOption) (*bertytypes.MultiMemberGroupAliasResolverDisclose_Reply, error)
	// MultiMemberGroupAdminRoleGrant grants an admin role to a group member
	MultiMemberGroupAdminRoleGrant(ctx context.Context, in *bertytypes.MultiMemberGroupAdminRoleGrant_Request, opts ...grpc.CallOption) (*bertytypes.MultiMemberGroupAdminRoleGrant_Reply, error)
	// MultiMemberGroupInvitationCreate creates an invitation to a multi-member group
	MultiMemberGroupInvitationCreate(ctx context.Context, in *bertytypes.MultiMemberGroupInvitationCreate_Request, opts ...grpc.CallOption) (*bertytypes.MultiMemberGroupInvitationCreate_Reply, error)
	// AppMetadataSend adds an app event to the metadata store, the message is encrypted using a symmetric key and readable by future group members
	AppMetadataSend(ctx context.Context, in *bertytypes.AppMetadataSend_Request, opts ...grpc.CallOption) (*bertytypes.AppMetadataSend_Reply, error)
	// AppMessageSend adds an app event to the message store, the message is encrypted using a derived key and readable by current group members
	AppMessageSend(ctx context.Context, in *bertytypes.AppMessageSend_Request, opts ...grpc.CallOption) (*bertytypes.AppMessageSend_Reply, error)
	// GroupMetadataSubscribe subscribes to a group metadata updates (types.v1.or it can also retrieve the history)
	GroupMetadataSubscribe(ctx context.Context, in *bertytypes.GroupMetadataSubscribe_Request, opts ...grpc.CallOption) (ProtocolService_GroupMetadataSubscribeClient, error)
	// GroupMessageSubscribe subscribes to a group message updates (types.v1.or it can also retrieve the history)
	GroupMessageSubscribe(ctx context.Context, in *bertytypes.GroupMessageSubscribe_Request, opts ...grpc.CallOption) (ProtocolService_GroupMessageSubscribeClient, error)
	// GroupMetadataList replays metadata events from the group
	GroupMetadataList(ctx context.Context, in *bertytypes.GroupMetadataList_Request, opts ...grpc.CallOption) (ProtocolService_GroupMetadataListClient, error)
	// GroupMessageList replays message  events from the group
	GroupMessageList(ctx context.Context, in *bertytypes.GroupMessageList_Request, opts ...grpc.CallOption) (ProtocolService_GroupMessageListClient, error)
	// GroupInfo retrieves information about a group
	GroupInfo(ctx context.Context, in *bertytypes.GroupInfo_Request, opts ...grpc.CallOption) (*bertytypes.GroupInfo_Reply, error)
	// ActivateGroup explicitly opens a group, groups are automatically enabled when actions are performed on them
	ActivateGroup(ctx context.Context, in *bertytypes.ActivateGroup_Request, opts ...grpc.CallOption) (*bertytypes.ActivateGroup_Reply, error)
	// DeactivateGroup closes a group
	DeactivateGroup(ctx context.Context, in *bertytypes.DeactivateGroup_Request, opts ...grpc.CallOption) (*bertytypes.DeactivateGroup_Reply, error)
	DebugListGroups(ctx context.Context, in *bertytypes.DebugListGroups_Request, opts ...grpc.CallOption) (ProtocolService_DebugListGroupsClient, error)
	DebugInspectGroupStore(ctx context.Context, in *bertytypes.DebugInspectGroupStore_Request, opts ...grpc.CallOption) (ProtocolService_DebugInspectGroupStoreClient, error)
	DebugGroup(ctx context.Context, in *bertytypes.DebugGroup_Request, opts ...grpc.CallOption) (*bertytypes.DebugGroup_Reply, error)
}

ProtocolServiceClient is the client API for ProtocolService service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewProtocolServiceClient

func NewProtocolServiceClient(cc *grpc.ClientConn) ProtocolServiceClient

type ProtocolServiceServer

type ProtocolServiceServer interface {
	// InstanceExportData exports instance data
	InstanceExportData(context.Context, *bertytypes.InstanceExportData_Request) (*bertytypes.InstanceExportData_Reply, error)
	// InstanceGetConfiguration gets current configuration of this protocol instance
	InstanceGetConfiguration(context.Context, *bertytypes.InstanceGetConfiguration_Request) (*bertytypes.InstanceGetConfiguration_Reply, error)
	// ContactRequestReference retrieves the information required to create a reference (types.v1.ie. included in a shareable link) to the current account
	ContactRequestReference(context.Context, *bertytypes.ContactRequestReference_Request) (*bertytypes.ContactRequestReference_Reply, error)
	// ContactRequestDisable disables incoming contact requests
	ContactRequestDisable(context.Context, *bertytypes.ContactRequestDisable_Request) (*bertytypes.ContactRequestDisable_Reply, error)
	// ContactRequestEnable enables incoming contact requests
	ContactRequestEnable(context.Context, *bertytypes.ContactRequestEnable_Request) (*bertytypes.ContactRequestEnable_Reply, error)
	// ContactRequestResetReference changes the contact request reference
	ContactRequestResetReference(context.Context, *bertytypes.ContactRequestResetReference_Request) (*bertytypes.ContactRequestResetReference_Reply, error)
	// ContactRequestSend attempt to send a contact request
	ContactRequestSend(context.Context, *bertytypes.ContactRequestSend_Request) (*bertytypes.ContactRequestSend_Reply, error)
	// ContactRequestAccept accepts a contact request
	ContactRequestAccept(context.Context, *bertytypes.ContactRequestAccept_Request) (*bertytypes.ContactRequestAccept_Reply, error)
	// ContactRequestDiscard ignores a contact request, without informing the other user
	ContactRequestDiscard(context.Context, *bertytypes.ContactRequestDiscard_Request) (*bertytypes.ContactRequestDiscard_Reply, error)
	// ContactBlock blocks a contact from sending requests
	ContactBlock(context.Context, *bertytypes.ContactBlock_Request) (*bertytypes.ContactBlock_Reply, error)
	// ContactUnblock unblocks a contact from sending requests
	ContactUnblock(context.Context, *bertytypes.ContactUnblock_Request) (*bertytypes.ContactUnblock_Reply, error)
	// ContactAliasKeySend send an alias key to a contact, the contact will be able to assert that your account is being present on a multi-member group
	ContactAliasKeySend(context.Context, *bertytypes.ContactAliasKeySend_Request) (*bertytypes.ContactAliasKeySend_Reply, error)
	// MultiMemberGroupCreate creates a new multi-member group
	MultiMemberGroupCreate(context.Context, *bertytypes.MultiMemberGroupCreate_Request) (*bertytypes.MultiMemberGroupCreate_Reply, error)
	// MultiMemberGroupJoin joins a multi-member group
	MultiMemberGroupJoin(context.Context, *bertytypes.MultiMemberGroupJoin_Request) (*bertytypes.MultiMemberGroupJoin_Reply, error)
	// MultiMemberGroupLeave leaves a multi-member group
	MultiMemberGroupLeave(context.Context, *bertytypes.MultiMemberGroupLeave_Request) (*bertytypes.MultiMemberGroupLeave_Reply, error)
	// MultiMemberGroupAliasResolverDisclose discloses your alias resolver key
	MultiMemberGroupAliasResolverDisclose(context.Context, *bertytypes.MultiMemberGroupAliasResolverDisclose_Request) (*bertytypes.MultiMemberGroupAliasResolverDisclose_Reply, error)
	// MultiMemberGroupAdminRoleGrant grants an admin role to a group member
	MultiMemberGroupAdminRoleGrant(context.Context, *bertytypes.MultiMemberGroupAdminRoleGrant_Request) (*bertytypes.MultiMemberGroupAdminRoleGrant_Reply, error)
	// MultiMemberGroupInvitationCreate creates an invitation to a multi-member group
	MultiMemberGroupInvitationCreate(context.Context, *bertytypes.MultiMemberGroupInvitationCreate_Request) (*bertytypes.MultiMemberGroupInvitationCreate_Reply, error)
	// AppMetadataSend adds an app event to the metadata store, the message is encrypted using a symmetric key and readable by future group members
	AppMetadataSend(context.Context, *bertytypes.AppMetadataSend_Request) (*bertytypes.AppMetadataSend_Reply, error)
	// AppMessageSend adds an app event to the message store, the message is encrypted using a derived key and readable by current group members
	AppMessageSend(context.Context, *bertytypes.AppMessageSend_Request) (*bertytypes.AppMessageSend_Reply, error)
	// GroupMetadataSubscribe subscribes to a group metadata updates (types.v1.or it can also retrieve the history)
	GroupMetadataSubscribe(*bertytypes.GroupMetadataSubscribe_Request, ProtocolService_GroupMetadataSubscribeServer) error
	// GroupMessageSubscribe subscribes to a group message updates (types.v1.or it can also retrieve the history)
	GroupMessageSubscribe(*bertytypes.GroupMessageSubscribe_Request, ProtocolService_GroupMessageSubscribeServer) error
	// GroupMetadataList replays metadata events from the group
	GroupMetadataList(*bertytypes.GroupMetadataList_Request, ProtocolService_GroupMetadataListServer) error
	// GroupMessageList replays message  events from the group
	GroupMessageList(*bertytypes.GroupMessageList_Request, ProtocolService_GroupMessageListServer) error
	// GroupInfo retrieves information about a group
	GroupInfo(context.Context, *bertytypes.GroupInfo_Request) (*bertytypes.GroupInfo_Reply, error)
	// ActivateGroup explicitly opens a group, groups are automatically enabled when actions are performed on them
	ActivateGroup(context.Context, *bertytypes.ActivateGroup_Request) (*bertytypes.ActivateGroup_Reply, error)
	// DeactivateGroup closes a group
	DeactivateGroup(context.Context, *bertytypes.DeactivateGroup_Request) (*bertytypes.DeactivateGroup_Reply, error)
	DebugListGroups(*bertytypes.DebugListGroups_Request, ProtocolService_DebugListGroupsServer) error
	DebugInspectGroupStore(*bertytypes.DebugInspectGroupStore_Request, ProtocolService_DebugInspectGroupStoreServer) error
	DebugGroup(context.Context, *bertytypes.DebugGroup_Request) (*bertytypes.DebugGroup_Reply, error)
}

ProtocolServiceServer is the server API for ProtocolService service.

type ProtocolService_DebugInspectGroupStoreClient added in v2.61.0

type ProtocolService_DebugInspectGroupStoreClient interface {
	Recv() (*bertytypes.DebugInspectGroupStore_Reply, error)
	grpc.ClientStream
}

type ProtocolService_DebugInspectGroupStoreServer added in v2.61.0

type ProtocolService_DebugInspectGroupStoreServer interface {
	Send(*bertytypes.DebugInspectGroupStore_Reply) error
	grpc.ServerStream
}

type ProtocolService_DebugListGroupsClient added in v2.61.0

type ProtocolService_DebugListGroupsClient interface {
	Recv() (*bertytypes.DebugListGroups_Reply, error)
	grpc.ClientStream
}

type ProtocolService_DebugListGroupsServer added in v2.61.0

type ProtocolService_DebugListGroupsServer interface {
	Send(*bertytypes.DebugListGroups_Reply) error
	grpc.ServerStream
}

type ProtocolService_GroupMessageListClient

type ProtocolService_GroupMessageListClient interface {
	Recv() (*bertytypes.GroupMessageEvent, error)
	grpc.ClientStream
}

type ProtocolService_GroupMessageListServer

type ProtocolService_GroupMessageListServer interface {
	Send(*bertytypes.GroupMessageEvent) error
	grpc.ServerStream
}

type ProtocolService_GroupMessageSubscribeClient

type ProtocolService_GroupMessageSubscribeClient interface {
	Recv() (*bertytypes.GroupMessageEvent, error)
	grpc.ClientStream
}

type ProtocolService_GroupMessageSubscribeServer

type ProtocolService_GroupMessageSubscribeServer interface {
	Send(*bertytypes.GroupMessageEvent) error
	grpc.ServerStream
}

type ProtocolService_GroupMetadataListClient

type ProtocolService_GroupMetadataListClient interface {
	Recv() (*bertytypes.GroupMetadataEvent, error)
	grpc.ClientStream
}

type ProtocolService_GroupMetadataListServer

type ProtocolService_GroupMetadataListServer interface {
	Send(*bertytypes.GroupMetadataEvent) error
	grpc.ServerStream
}

type ProtocolService_GroupMetadataSubscribeClient

type ProtocolService_GroupMetadataSubscribeClient interface {
	Recv() (*bertytypes.GroupMetadataEvent, error)
	grpc.ClientStream
}

type ProtocolService_GroupMetadataSubscribeServer

type ProtocolService_GroupMetadataSubscribeServer interface {
	Send(*bertytypes.GroupMetadataEvent) error
	grpc.ServerStream
}

type Service added in v2.35.0

type Service interface {
	ProtocolServiceServer

	Close() error
	Status() Status
	IpfsCoreAPI() ipfs_interface.CoreAPI
}

Service is the main Berty Protocol interface

func New

func New(ctx context.Context, opts Opts) (Service, error)

New initializes a new Service

Example (Basic)
package main

import (
	"context"
	"fmt"

	"berty.tech/berty/v2/go/pkg/bertyprotocol"
	"berty.tech/berty/v2/go/pkg/bertytypes"
)

func main() {
	ctx, cancel := context.WithCancel(context.Background())
	defer cancel()

	client, err := bertyprotocol.New(ctx, bertyprotocol.Opts{})
	if err != nil {
		panic(err)
	}

	ret, err := client.InstanceGetConfiguration(ctx, &bertytypes.InstanceGetConfiguration_Request{})
	if err != nil {
		panic(err)
	}

	for _, listener := range ret.Listeners {
		if listener == "/p2p-circuit" {
			fmt.Println(listener)
		}
	}

}
Output:

/p2p-circuit

func TestingService added in v2.39.0

func TestingService(ctx context.Context, t *testing.T, opts Opts) (Service, func())

TestingService returns a configured Client struct with in-memory contexts.

type Status

type Status struct {
	DB       error
	Protocol error
}

Status contains results of status checks

type Swiper added in v2.109.0

type Swiper struct {
	// contains filtered or unexported fields
}

func NewSwiper added in v2.109.0

func NewSwiper(logger *zap.Logger, ps *pubsub.PubSub, interval time.Duration) *Swiper

func (*Swiper) Announce added in v2.109.0

func (s *Swiper) Announce(ctx context.Context, topic, seed []byte)

watch looks for peers providing a resource

func (*Swiper) WatchTopic added in v2.109.0

func (s *Swiper) WatchTopic(ctx context.Context, topic, seed []byte, out chan<- peer.AddrInfo, done func())

WatchTopic looks for peers providing a resource. 'done' is used to alert parent when everything is done, to avoid data races.

type TestingOpts added in v2.39.0

type TestingOpts struct {
	Logger         *zap.Logger
	TracerProvider trace.Provider
	Mocknet        libp2p_mocknet.Mocknet
	RDVPeer        peer.AddrInfo
}

type TestingProtocol added in v2.39.0

type TestingProtocol struct {
	Opts *Opts

	Service Service
	Client  Client
	IPFS    ipfsutil.CoreAPIMock
}

func NewTestingProtocol added in v2.39.0

func NewTestingProtocol(ctx context.Context, t *testing.T, opts *TestingOpts) (*TestingProtocol, func())

type UnimplementedProtocolServiceServer

type UnimplementedProtocolServiceServer struct {
}

UnimplementedProtocolServiceServer can be embedded to have forward compatible implementations.

func (*UnimplementedProtocolServiceServer) ActivateGroup

func (*UnimplementedProtocolServiceServer) AppMessageSend

func (*UnimplementedProtocolServiceServer) AppMetadataSend

func (*UnimplementedProtocolServiceServer) ContactBlock

func (*UnimplementedProtocolServiceServer) ContactRequestSend

func (*UnimplementedProtocolServiceServer) ContactUnblock

func (*UnimplementedProtocolServiceServer) DeactivateGroup

func (*UnimplementedProtocolServiceServer) DebugGroup added in v2.92.0

func (*UnimplementedProtocolServiceServer) DebugInspectGroupStore added in v2.61.0

func (*UnimplementedProtocolServiceServer) DebugListGroups added in v2.61.0

func (*UnimplementedProtocolServiceServer) GroupInfo

func (*UnimplementedProtocolServiceServer) GroupMessageList

func (*UnimplementedProtocolServiceServer) GroupMetadataList

func (*UnimplementedProtocolServiceServer) InstanceExportData

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL