Time Windows heading-link-icon

Every transaction A transaction is a proposal to update the ledger. includes a time window: the transaction can only be committed during that window. Times in transactions are specified as time windows and not absolute times. Transaction time windows must have one of the following:

  • a start time and an end time
  • only an end time

The notary cluster acts as the timestamping authority. It verifies that a transaction occurred during a specific time window before notarizing it.

A participant may not send a transaction to the notary right away; they might need to circulate the transaction to other participants involved in the transaction, or request human sign-off. Even if the participant sends it as soon as it is generated, the node’s clock and the notary’s clock will never be perfectly in sync due to latency and physics. This means that the timestamp on a transaction is usually different from the time it was created.

When both a before and an after time are included, the transaction occurred at some point within that time window.

Time windows let you represent transactions that follow different models, such as those that occur:

  • At some point after a given time, such as after a maturity event.
  • At any time before a given time, such as before a bankruptcy event.
  • Around a given time, such as on a specific day.

If you need to convert a time window to an absolute time, such as for display purposes, you can use a utility method to calculate the midpoint.

Previous
Notaries
Next
Vault

Was this page helpful?

Thanks for your feedback!

Chat with us

Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.

Propose documentation improvements directly

Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.

We're sorry this page wasn't helpful. Let us know how we can make it better!

Chat with us

Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.

Create an issue

Create a new GitHub issue in this repository - submit technical feedback, draw attention to a potential documentation bug, or share ideas for improvement and general feedback.

Propose documentation improvements directly

Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.