瑞波Ripple概念解析-去中心化交易(官方文档不完全翻译)

挂单

XRP账本中的去中心化交易,交易货币的订单被称为“Offers挂单。挂单可以将XRP与已发行货币或相互发行的货币进行交易,包括具有相同货币代码但不同发行人的已发行货币。(具有相同代码但不同发行人的货币有时也可以通过Rippling交换。)

挂单的生命周期

处理OfferCreate交易时,它会尽可能自动消费匹配或交叉报价。(如果现有报价提供的费率要求比要求更高,则报价创建者可以支付低于全额的TakerGets金额以接收全部TakerPays金额。)如果TakerPays报价不完全达到金额,则报价将成为账本中的报价对象。(您可以使用OfferCreate标志来修改此行为。)

账本中的报价可以通过与现有报价相匹配的其他OfferCreate交易或使用报价连接付款路径的付款交易来实现。挂单可以部分完成并获得部分资助。一笔交易最多可以从账本中消费850个挂单。(除此之外,元数据变得太大,导致tecOVERSIZE。)

只要您至少有一部分(任何积极的,非零金额)的由TakerGets报价参数指定的货币,您就可以创建报价。该报价的卖出TakerGets量与您的货币一样多,直到达到TakerPays金额为止。挂单不能让任何人陷入债务。

挂单可能暂时或永久没有资金

  • 如果发起人不再拥有任何TakerGets货币。
    • 当发起人获得更多该币种时,该挂单再次获得资助。
  • 如果资金挂单所需的货币存放在冻结的信任线
    • 当信任线不再冻结时,挂单再次获得资助。
  • 如果发起人没有足够的XRP作为挂单要求的新信任额度的保留金额。(请参阅挂单和信任。)
    • 当创建者获得更多XRP或者储备金要求降低时,挂单再次获得资助。
  • 如果报价中包含的到期时间在最近关闭的账本的关闭时间之前。(请参阅挂单到期。)

没有资金的报价可以无限期地保留在账本上,但没有任何效果。报价可以永久从账本中删除的唯一方式是:

  • 它会被支付或匹配的OfferCreate交易完全声明。
  • OfferCancel或OfferCreate交易明确地取消挂单。
  • 来自同一帐户的OfferCreate交易与早期报价相交叉。(在这种情况下,旧的挂单会自动取消。)
  • 在交易处理过程中发现某项挂单没有资金,通常是因为它在订单的尖端。
    • 这包括发现报价中的一方或另一方比rippled精确支持更接近0的情况。

追踪未获资助的挂单

跟踪所有挂单的资金状况可能是计算上的课税。特别是,积极交易的地址可能会有大量的挂单。单个余额可能会影响许多挂单购买不同货币的资金状态。因此,rippled不主动找到并删除挂单。

客户端应用程序可以在本地跟踪挂单的资金状态。要做到这一点,首先使用book_offers方法检索订单,并检查taker_gets_funded挂单领域。然后,订阅transactions流和观看交易的元数据,看看哪些报价进行修改。

挂单和信任

信任线的限制值(请参阅TrustSet)不会影响挂单。换句话说,您可以使用挂单获取超过您信任发行人赎回的最高金额。

但是,持有非XRP余额仍需要发放这些余额的地址的信任线。当提供商品时,它会自动创建任何必要的信任关系,并将其限制设置为0.由于信任关系增加了账户必须持有的储备,因此任何需要新信任关系的商品都需要地址拥有足够的XRP才能满足该信任线的储备。

信任额度表示您信任的发行人足以在限额内接受他们的发行作为付款。挂单是明确的指示,以获得某些发行,所以他们被允许超越这些限制。

挂单偏好

现有挂单由汇率,其作为之间的比率测量分组TakerGetsTakerPays。优先采用汇率较高的挂单。(也就是说,接受报价的人尽可能多地收到他们支付的货币金额。)根据提供的报价被放在最早的账本版本的基础上,采用相同汇率的报价。

当相同汇率的报价放入同一账本版本时,它们的采购顺序取决于交易应用于账本规范订单。这种行为被设计为确定性的,高效的,并且很难游戏。

挂单到期

由于交易需要时间来传播和确认,因此账本的时间戳用于确定报价有效期。报价仅在其到期时间在最近验证的账本之前到期。换句话说,如果某个Expiration字段的出价时间晚于最近验证的账本的时间戳,则该字段仍被视为有效,无论您的本地时钟是什么。

Expiration只要您看到一个关闭时间等于或大于到期时间的完全验证账本,就可以确定报价的最终处置。

注意:由于只有新的交易可以修改账本,所以在账本变为非活动状态后,过期的挂单可以保留在账本中。该提议被视为没有资金且无效,但可以继续显示在结果中(例如,来自ledger_entry命令)。稍后,如果服务器在处理期间发现它,则由于另一个交易(例如另一个OfferCreate),过期的挂单最终可能会被删除。

如果OfferCreate交易的Expiration时间在交易第一次包含在账本中时已经过去,则该交易不会执行该报价。这种交易的结果代码取决于是否启用了支票修正。启用检查修订后,该交易具有tecEXPIRED结果代码。否则,该交易具有tesSUCCESS交易代码。在任何一种情况下,除了销毁作为交易成本支付的XRP之外,交易不起作用。

自动桥接

任何交换两种非XRP货币的OfferCreate都可能将XRP用作合成订单簿中的中介货币。这是因为自动桥接,通过使用XRP作为车辆货币来改善所有货币对的流动性。这是因为XRP作为XRP帐簿的本地加密货币的本质。挂单执行可以使用直接和自动桥接挂单的组合来实现最佳总汇率。

例如:Anita提出卖出GBP并买入BRL。她可能会发现这种罕见的货币市场几乎没有挂单。有一个挂单,但它没有足够的数量来满足Anita的交易。然而,GBPBRLXRP都有积极而有竞争力的市场。自动桥接软件找到一种方法来完成Anita的报价,方法是从一位交易商用GBP购买XRP,然后将XRP卖给其他交易者购买BRL。在市场上组合GBPXRPXRPBRL交易对的费率,通过合并GBPBRL方向的小额挂单,Anita会自动获得挂单的最好价格。

自动桥接在任何OfferCreate交易中自动发生。付款交易 默认情况下不会自动桥接,但路径查找可以找到具有相同效果的路径。

Tick大小

需要TickSize修正

当一个挂单被置于一个订单簿中时,其汇率将根据TickSize发行人设定的挂单所涉及货币的价值而被截断。当交易者提供兑换XRP和发行货币时,TickSize适用该货币的发行者。当交易者提议交换两种已发行货币时,报价使用较小的TickSize值(即,具有较少有效位数的那个)。如果两种货币都没有TickSize设置,则适用默认行为。

TickSize价值被放置在订单簿中时,该值会截断报价中的有效位数。发行人可以设置TickSize从一个整数315使用AccountSet交易。汇率表示为有效数字和指数TickSize不影响指数。这允许XRP账本代表价值差异很大的资产之间的汇率(例如,与非常商品相比,超级货币的货币)。TickSize发行人设定的越低,增量交易者必须提供的数额越大,才能被视为比现有挂单更高的汇率。

TickSize不会影响可立即执行的挂单部分。(因此,OfferCreate交易tfImmediateOrCancel不受TickSize价值影响。)如果挂单无法完全执行,则交易处理引擎将计算汇率并根据该汇率进行截断TickSize。然后,引擎将来自不太重要一侧的剩余数量的收益进行四舍五入以匹配截断的汇率。对于默认的OfferCreate交易(买入卖出),TakerPays金额(被买入的金额)四舍五入。如果该tfSell标志被启用(卖出挂单),则TakerGets金额(被出售的金额)被四舍五入。

发行人启用,禁用或更改TickSize之前设置的挂单不受影响。

 

 本文作者:architect.bian,欢迎收藏,转载请保留原文地址并保留版权声明!谢谢~
还没完!往下看!!!



展开阅读全文

没有更多推荐了,返回首页