Corda 核心概念:Time-windows

原文地址:https://docs.corda.net/key-concepts-time-windows.html

概要

  • 如果一个 transaction 包含了一个 time-window,那么这个 transaction 只能在这个 time-window 里被提交
  • Notary 具有控制发生的时间的权利,当在 time-window 之外的时候,notary 可以拒绝提交 transaction
  • Time-window 可以有开始和结束时间,或者只有两者之中的一个

分布式系统中的时间 Time in a distributed system

Notary 也可以作为时间戳的验证者,在它确认一笔交易前,需要确保这笔交易是发生在指定的时间窗里。

为了让一个时间窗有意义,交易的提出者必须要明确指出交易必须要在某个时间窗内发生。交易的一方可以获得一个时间窗签名,来证明一些事件是在某个时间点前发生的,还是按时发生的,还是之后发生的。

在创建交易的一方和 notary 之间是无法实现时间的同步的。这并不仅仅是因为物理或者网络的延迟,还会因为在插入命令和获得 notary 签名之间可能会发生很多其他的步骤(比如发送交易到涉及到的其他节点,请求人工的审批等)。所以交易被发送到 notary 的时间和交易创建的时间可能会不同。

时间窗 Time-windows

因为这个原因,交易中涉及到的时间会被制定为一个时间窗,而不是一个绝对的时间。在一个分布式系统中是永远不会有“真实的时间”的,只有一个大概的时间。时间窗可以是开放的(比如在某个时间点后,或者某个时间点之前)或者是一个闭合的范围。
Time window

通过这种方式,我们表达了我们的想法,就是“当前的时间”永远都是未知的。甚至当在某个时间之前和之后都被包含的时候,交易也可能会在那个时间窗中的任何时间发生。

通过在一端创建一个关闭或者开放的范围,我们允许用以下的方式生成时间窗模型:

  • 一笔交易在指定时间之后的某个时间发生(比如在一个终止事件之后)
  • 一笔交易在指定时间之前的任何时间发生(比如破产事件之前)
  • 一笔交易在指定时间前后的某个时间发生(比如在指定的某一天)

如果一个时间窗需要被转换成一个绝对的时间(比如为了显示的原因),这里会有一个 utility 的方法来计算一个中间点时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值