Draft
Conversation
Release 409k-1
ames: fully check test $ahoy path
still some issues regarding (possibly?) moves from old ships being routed to newer ships. running these one at a timer works, so move to separate files to go around %aqua move routing problem?
eyre: prevent .local domains overriding eauth public domains
this is now handled via lib/hood/ahoy.hoon using the %prob flow
before this we could have multiple -comb threads in flight, since pending was only tracking outstanding %ahoy $pleas, but not the prior peek that checks if the peer is on 409k-2. we track now what ship we are probing in the /thread wire. if the thread crashes we remove from pending, otherwise the ship will remain in pending until the ahoy %plea gets a (n)ack.
before we were using the same -comb thread for %prob (coming from a ship in ames that we know is online) and %comb (migrate as many ships as possible) flows. this made it a bit awkward to work with, specially with the constraint of only one %prob flow/thread per ship to avoid possible race conditions that could modify the state independently. the %comb flow is therefore not used here, and only %prob is supported
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Enabling the Directed Messaging protocol in the %ames vane is done by changing the default core that handles incoming and outgoing packets (from
|amesto|mesa).TODO(s)
Instead of trying to migrate everybody, to reduce the number of packets in-flight, we only send the %ahoy $plea when we receive a legitimate %ames packet from a peer, and our default network core is %mesa. This is call passive mode.
We handle the following scenarios considering where state is stored (in
peers.ames-stateif previously communicated using|mesaorchums.ames-stateif using|mesa), and what type of packet arrives (%hearfor%amespackets,%heerfor%mesapackets).If the user wants to we also support mass migration of all peers that are online and support arvo %408
On both
%hearand%heerwith first try to find the peer in state, if not, this is a first contact and we use what default protocol core we have in state to discern what to do with the peer.For %hear packets:
For
%heerpackets:(easy case) received ames/mesa packets with no state, handle with the corresponding core and, if %mesa packet, enqueue
%ahoy$pleareceived ames/mesa packets with the ship as %alien, but handled by other network protocol than the one the packet belongs to
%aliento%known).%ahoy$plea, if the other way around, we move the %alien ship to %mesa, and wait for the keys to arrive.the ship is %known, but the packet belongs to the other protocol:
%ahoy$plea—this only happens if we have the ship in .chumsInstead of enqueuing the %ahoy $plea while processing the %hear event, we defer that to an agent (currently %hood) that will first peek if the ship is running arvo %408, and it so send the $plea.