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
dip: 161
title: Off-Chain Protocol: Optional Result Field
author: Xiao Li (@xli), SunMi Lee (@sunmilee), David Wolinsky (@davidiw)
type: Informational
discussion-to: #161
created: 2021-04-07
updated: 2021-04-07
Overview
Both the Off-Chain Protocol and Travel Rule Exchange (or PaymentCommand) are defined in DIP-1. The Off-Chain Protocol was defined in such a way as to support the minimal requirements for these exchanges, specifically, in this case, asynchronous responses to requests. Many types of communication benefit from synchronous responses as it provides for both protocol simplicity and reduced latency. In order to support synchronous commands, the CommandResponseObject can leverage an optional field: result. The result field, if defined, must contain __ObjectType that should uniquely define the shape or other fields within the result.
One doesn't have to do a subsequent JSON-RPC query to get a result that's more informative than just status: success. In this case, the desired information is the recipient_address normally in a ReferenceIDCommand. By having it in a result field, it saves a second round trip, simplifying and reducing latency for a P2M flow.
Put another way, one can issue a command and get the response in a single JSON-RPC command as opposed to two: doAction, getRecipientAddress.
Thanks for the explanation @dimroc . This makes total sense, but the terminology "asynchronous/synchronous" don't apply here. I would remove them, and just leave the explanation that a response field can include information that may prevent the need for another message exchange.
dip: 161
title: Off-Chain Protocol: Optional Result Field
author: Xiao Li (@xli), SunMi Lee (@sunmilee), David Wolinsky (@davidiw)
type: Informational
discussion-to: #161
created: 2021-04-07
updated: 2021-04-07
Overview
Both the Off-Chain Protocol and Travel Rule Exchange (or PaymentCommand) are defined in DIP-1. The Off-Chain Protocol was defined in such a way as to support the minimal requirements for these exchanges, specifically, in this case, asynchronous responses to requests. Many types of communication benefit from synchronous responses as it provides for both protocol simplicity and reduced latency. In order to support synchronous commands, the
CommandResponseObject
can leverage an optional field:result
. Theresult
field, if defined, must contain__ObjectType
that should uniquely define the shape or other fields within theresult
.Here's an example from DIP-10:
The text was updated successfully, but these errors were encountered: