Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes the
WgpsMessenger
capable of sending and handling setup messages. During setup, two peers exchange (and validate) capabilities, areas of interest, and send static tokens which will be used for exchanging entries later on.WgpsMessengerOpts
now includes aninterests
. This is a mapping ofReadAuthorisation
to manyAreaOfInterest
. After PSI is carried out, the messenger transmits the intersecting capability viaSetupBindReadCapability
, and then all of its correspondingAreaOfInterest
viaSetupBindAreaOfInterest
messages. When it receives these same messages from the other peer, it validates the capability / area of interest + signatures and binds the data to a corresponding handle.HandleStore
now has an asyncgetEventually
method. This is used for requesting handles which are transmitted by a different channel, and so which may not have been processed or received yet.MessageEncoder
anddecodeMessages
have been refactored to allow for encoding/decoding using information not contained within an encoded message. For instance, the outer area to decode an encoded relative inner area against.PaiFinder
now has agetIntersectionPrivy
method. This is to retrieve data both sides are privy to (i.e. namespace, outer area) via an intersection.