Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrUnknownGroup = serrors.New("group not known to HPS") ErrNotReader = serrors.New("peer is not a reader of this group") )
Functions ¶
func NewSegReqHandler ¶
NewSegReqHandler returns a hidden path segment request handler
Types ¶
type DefaultFetcher ¶
type DefaultFetcher struct {
// contains filtered or unexported fields
}
DefaultFetcher fetches hidden path segments from database and remote HPS
func NewDefaultFetcher ¶
func NewDefaultFetcher(groupInfo *GroupInfo, msger infra.Messenger, db hiddenpathdb.HiddenPathDB) *DefaultFetcher
NewDefaultFetcher creates a new DefaultFetcher
type Fetcher ¶
type Fetcher interface { // Fetch fetches hidden path segments. // In case of local HPS the segments are fetched from the database, // otherwise segments are requested from a remote HPS Fetch(ctx context.Context, req *path_mgmt.HPSegReq, peer *snet.Addr) ([]*path_mgmt.HPSegRecs, error) }
Fetcher is a fetcher for hidden path segments
type GroupInfo ¶
type GroupInfo struct { // LocalIA is the local IA of the HPS. // In case a group contains this IA as Registry, // requests for that group can be resolved locally. LocalIA addr.IA // Groups contains all the groups known to a HPS Groups map[hiddenpath.GroupId]*hiddenpath.Group }
GroupInfo holds all information about hidden path groups needed by the HPS throughout its life cycle
func (*GroupInfo) CheckIds ¶
func (gi *GroupInfo) CheckIds(ids hiddenpath.GroupIdSet) error
CheckIds checks that the provided Ids are known to the HPS and that all Ids have at least one Registry.
func (*GroupInfo) GetRegistryMapping ¶
func (gi *GroupInfo) GetRegistryMapping(ids hiddenpath.GroupIdSet) ( map[addr.IA][]hiddenpath.GroupId, error)
GetRegistryMapping uses a greedy algorithm to approximate an optimal mapping from Registries to GroupIds such that all local Groups are mapped to the local Registry and the remaining Groups are mapped to a small number of remote Registries. The algorithm runs in O(Registries*Groups^2) and is at most ln(Groups)+1 times worse than an optimal solution.
Directories ¶
Path | Synopsis |
---|---|
Package mock_hpsegreq is a generated GoMock package.
|
Package mock_hpsegreq is a generated GoMock package. |