You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A "push" data-transfer channel is a channel where the node that initiates the transfer sends (pushes) data to the remote peer. The steps are:
Initiator sends a push request to Responder
Responder opens a graphsync request to Initiator
Initiator's graphsync handler sends the data
The push channel monitor watches the amount of data that is sent in a push data-transfer (a transfer where data is sent from the local node to the remote peer) and attempts to restart the transfer if the data rate falls too low.
It does so by listening for DataQueued and DataSent events; if there is data queued but not sent for some interval of time, it attempts to connect to the remote peer and send a restart request.
However in the situation where
all data has been sent by the local node
not all data has been received by the remote peer
the push channel monitor doesn't notice (because it only knows about the local node's state).
Proposed Solution
Extend the push channel monitor:
When the initiator sends the initial request to open a push channel to the Responder:
If the Responder doesn't respond within a timeout, fail the transfer
When the initiator has sent all data to the Responder:
If the Responder doesn't send a "completed" response within a timeout, fail the transfer
The text was updated successfully, but these errors were encountered:
Background
A "push" data-transfer channel is a channel where the node that initiates the transfer sends (pushes) data to the remote peer. The steps are:
The push channel monitor watches the amount of data that is sent in a push data-transfer (a transfer where data is sent from the local node to the remote peer) and attempts to restart the transfer if the data rate falls too low.
It does so by listening for DataQueued and DataSent events; if there is data queued but not sent for some interval of time, it attempts to connect to the remote peer and send a restart request.
However in the situation where
the push channel monitor doesn't notice (because it only knows about the local node's state).
Proposed Solution
Extend the push channel monitor:
If the Responder doesn't respond within a timeout, fail the transfer
If the Responder doesn't send a "completed" response within a timeout, fail the transfer
The text was updated successfully, but these errors were encountered: