mlabs-haskell / seath

MIT License
11 stars 3 forks source link

Implementation of Seath Network #26

Closed Luis-omega closed 1 year ago

Luis-omega commented 1 year ago

Once #24 is ready (or even before that), we must begin to implement it, this is a place to discuss how we are going to do it.

My current thoughts are towards using https://pursuit.purescript.org/packages/purescript-queue/8.0.2 to handle the pending request on both Leader and Users. I also think that we would send back-and-forth JSONs that could also be encoded in CBOR or something like that (some advice here is pretty appreciated).

The current task is split across the following tasks :

Luis-omega commented 1 year ago

For now, we are thinking of using a server and client in both the Leader and Users , some options for this are:

Luis-omega commented 1 year ago

Update:

We choose to use payload and queue for the work. I'm in the process of rewriting the interface, for that purpose I wrote this :

How Seath works

recovering from errors in the chain

If we have a chain [ .., a_n,...] built and some error makes invalid the a_n, we discard the a_n related info, then we query the original request of the rest of the chain a_(n+1), a_(n+2)... and put it in a next round priority queue.