Corda中有到期日期的代币?

Corda中有到期日期的代币?,corda,Corda,您将如何设计在Corda中过期的可替换令牌(在状态设计和流设计中)?一种一旦过期就不能再使用的令牌,一旦在流中检测到过期,它就会成为历史性的 任何想法都欢迎。谢谢大家! 扩展FungibleToken并添加过期日期字段(类型为Instant) 延长合同期限,以便: 规则要求移动和赎回命令在事务中包含一个时间窗口 时间窗口的“截止时间”应小于到期日期 在您的流程中,您应该为移动或兑换的交易添加一个时间窗口。公证人收到交易后,将根据其是否在提供的时间窗口内收到该交易而接受或拒绝该交易;意思是

您将如何设计在Corda中过期的可替换令牌(在状态设计和流设计中)?一种一旦过期就不能再使用的令牌,一旦在流中检测到过期,它就会成为历史性的

任何想法都欢迎。谢谢大家!

  • 扩展
    FungibleToken
    并添加过期日期字段(类型为
    Instant
  • 延长合同期限,以便:
    • 规则要求
      移动
      赎回
      命令在事务中包含一个时间窗口
    • 时间窗口的“截止时间”应小于到期日期
  • 在您的流程中,您应该为
    移动
    兑换
    的交易添加一个时间窗口。公证人收到交易后,将根据其是否在提供的时间窗口内收到该交易而接受或拒绝该交易;意思是如果你说时间窗是从现在到1分钟;基本上,您是在告诉公证人,只有在“现在+1分钟”内收到此交易时才接受此交易(因此,基本上您的流程应该能够在1分钟内本地签名、验证和收集签名-1分钟只是一个示例,您可以将时间窗口设置为您想要的任何时间-)
  • 公证人是加盖时间戳的机构,因此如果公证人接受您的交易;这意味着它证明您的交易是在某个时间(在令牌到期日期之前)收到的
  • 您可以阅读有关时间窗口的内容(解释、练习和解决方案)

谢谢你,@adel rustum。这里还添加了建议的第二种松弛方法,即在Corda 4.6中使用SchedulableState。“您可以实现SchedulableState to“expire”以根据提供的时间自动标记()以使其过期,我想您可以将其作为输入传递,而不创建输出?这将使其无法持久。”
SchedulableState
用于自动化事情;这意味着当该状态被消耗时,它会触发一些动作。建议将其作为输入传递,而不是创建输出,这意味着您正在赎回该令牌;赎回代币具有责任含义。当发行人向您发行代币时,这是他们的承诺,即当您在链上兑换代币时,他们会在链下向您提供等同于该代币的代币。我理解您的要求是,一旦代币过期,您就不能对其执行任何命令(包括
兑换
)。谢谢您的澄清,@adel rustum。你完全理解我的要求。SchedulableState肯定是另一回事。@AdelRustum时间窗口方法也有意义(更好地取决于用例)。我觉得“burn”命令可以有不同的语义来“move”以避免错误的解释。一个问题:对于查询,是否有一种方法可以过滤时间窗口已过期的状态?我(所有者以及任何其他观察者)不希望看到由于窗口已过期而实际上毫无用处的代币(或者试图不小心尝试使用这些代币)