Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@yosoyubik
Copy link
Collaborator

@yosoyubik yosoyubik commented Jul 29, 2024

  • refactor (done but untested)
  • peer QoS handled properly
  • encrypted payload path in poke:pact
    • maybe better to be open, for debuging (e.g. dashboard... etc). it simplifies some of the code in ++ev-make-mess though...
  • error handling via dud=(unit goof) support in %heer/%mess arms
  • fix migrating to |mesa in the middle of sending a message in |ames
    • XX allow to have both peers in ships and chums, but %alien in chums, to peek for the ack of the ahoy, if the other side haas migrated us and it's not sending the ack anymore, but it's then bounded in their namespace
  • loom corruption
  • fix sinking a %boon on a flow that has been corked
  • look into crashes in %gall where %eyre tries to send a remote request using a %poke-s deal
  • remove crypto core
  • check missing jets in %410—makes sending %ames %pleas very slow
  • namespace endpoints for reading flow information
  • XX remove typed paths
    • or add missing jets
  • trace logs
  • ~debug dashboard support
  • test comets
    • fake comets work both in ames and mesa (with key verification turned off)
    • real comets
  • comet contacting a fake galaxy after booting—this was due to guest sessions
    •   docket: fetching %http glob for %landscape desk
        mdns: fake-nec registered on all interfaces
        < ~ropnes-nocsub-dilhut-tacdeb--pitdur-balner-sivpec-donnec: 19
      
  • %gall-missing when creating a group
  • ++plot, lsh bail meme
  • batching-like behavior makes congestion control slows dow with larger messages
  • %turf can't navigate to other portals, the first time
    • not entering a portal triggers a %naxplanation 'ack'
  • Open questions:
    • Scrying on ++load
    • Larval stage—currently the unix duct in ames-state is the only data dependency and the latest version has the duct hardcoded
    • Boot: directly into the latest protocol version, how to do protocol negotiation?
      • Issue reads? currently not possible, see %alien +peeks
      • Try all protocols?
      • currently: boot into %ames, migrate peers manually.
      • ...

yosoyubik added 22 commits July 29, 2024 13:03
Ideally we will get better ergonomics and better usage of the
+abet pattern by focusing (see +ev-foco:mesa) always on a
%known peer in the |mesa core, and updating it in the global
state in the ev-abet arm.

Only the request-maker arms (make-peek/poke) don't use this pattern due to the way attestation proofs for comets are handled.

(note: compiles but untested)
(new %turf pill included)
(turf-pill.pill is outdated with ames.hoon but there is a problem
booting from a pill that contains the latest kernel, so we need to
|commit manually after booting)
@yosoyubik yosoyubik changed the base branch from yu/sema to mesa-pairs October 16, 2024 08:25
if we are in the middle of sending a message,
assemble fragments will crash since for any acked
fragment it has been removed from the queue.

this will cancel the migration for both sender
(when acked) and receiver of the ahoy plea.

- for the sender, the ahoy plea when resent,
will always be acked by the receiver if they
succesfully migrated us, and hearing ack
will trigger the migration.

- for the receiver, if they are sending or receiving
anything, they will nack the ahoy plea and cancel
the migration.

(note: better not to crash on the receiver of the ahoy plea
and use retry-pump metrics for the retries?)
The use case for this task is eagerly sending %acks without
waiting for the sender of the %poke to retry.

(TODO: currently we don't dissallow non-ack payloads
(i.e. bigger than bloq=13 fragment), or other vanes to use this task)
This also fixes an issue in |ames where %chum remote scry
requests to %alien peers where never triggered once the peer got
converted into %known after learning its public key.

(TODO) A migration would be needed to go over everything that,
although very unlikely, could remain in chums.todos.alien-state
and corvert those into actual requests.
Here we also remove the hardcoding of the unix-duct.
Because we need a unix-duct to send gifts to the driver, we need to
handle that we are still waiting for it in several ways.

- For incoming packets ?(%heer %hear) we just no-op since the sender
will retry
- For timers (/pump, and /fine) we reset them.
- For dead-flow and |mesa retry timers, we set them again without sending them
- For gifts, like %turf and %public-keys, we set a timer to ask %jael again
- For ad-hoc tasks like %tame or %dear we no-op

TODO: test the several scenarios handled here:

- queued-events in larval stage from previous migrations—might not be so easy
- restarts of the driver, delaying the %born task to test the different code paths
- general test of the larval stage exit flow—test with -I <jammed_event>
   and -A <base_desk_with_new_ames_state_migration>
Previously we were no-oping if the message was older than the
migration line but this could mean that (n)acks that got lost for
could make the flow get stuck.

The solution is to always check if we have state for naxplanation
messages and if so produce the ack. In the migration we were already
binding the live naxplanation on our namespace so we need to look
there first.

In the case of %acks, can we guarantee that line.state was an ack?

In theory we can't guarantee it just by looking at the state of the flow,
but, if it was a %nack we would have state in nax.state for live
naxplanations and if the naxplanation had suceeded then they are
not going to resend the payload anymore.

if line.state was an %ack but it got lost we can not know for sure, but,
because we were not removing the correct message from nax.sink
it's very likely that if line.state is not in nax.state that's because it
was indeed a %nack.
The scry endpoint always gives the first lane in the list as
the sponsor for the ship—it'd be better to change that to be
a cell of [sponsor=@p (list lane:pact:ames)
This restores the behaviour currently present in |ames
(note: also changes the %mess-response gift to be %sage)
@pkova pkova marked this pull request as ready for review November 12, 2024 14:49
@pkova pkova merged commit 44cab75 into mesa-pairs Nov 12, 2024
@pkova pkova deleted the yu/mesa-refactor branch November 12, 2024 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants