Giter Site home page Giter Site logo

Comments (5)

sharafian avatar sharafian commented on May 28, 2024 1

I think that sounds reasonable, because then we can do one pass to validate the data and then if that succeeds do another pass to hand off data and moneyd to streams, rather than having to partially apply the packet's operations in the case where its rejected.

I suspect that if rejects ACK data it would also cause some confusing cases when we bring in logic around stream closing

from ilp-protocol-stream.

sharafian avatar sharafian commented on May 28, 2024

Given that the rules for data are different from the rules for money (successfully sending data while rejecting money is a reasonably common case), I think it makes sense to diverge from QUIC here and ACK on a per-frame basis

from ilp-protocol-stream.

emschwartz avatar emschwartz commented on May 28, 2024

Actually rejecting money or data should only happen if one side isn't respecting the flow control messages. Both sides should tell the other how much money and data they are willing to accept, and they should tell the other side right away if the limits increase.

from ilp-protocol-stream.

emschwartz avatar emschwartz commented on May 28, 2024

I think we should have it only send data on prepares and use ILP fulfills / rejects as ACKs. It simplifies the protocol and if we ever wanted to allow data to be sent in response packets we could add additional frames to handle this later.

Now the question is whether we should count ILP Reject packets that come from the receiver (and are authenticated so we know the prepare really made it to the receiver) as ACKs or NACKs. The data definitely got to the receiver, but they are rejecting the packet. Are they rejecting the data? I'm leaning towards saying that any reject is a rejection of the money as well as the data and the data should be resent. Thoughts?

from ilp-protocol-stream.

emschwartz avatar emschwartz commented on May 28, 2024

This question has been answered for now. We'll track the implementation in #12

from ilp-protocol-stream.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.