From 1a6058b1b688444cd3002135328982c778c90a02 Mon Sep 17 00:00:00 2001 From: Christopher Goes Date: Sat, 8 Jun 2019 17:53:56 +0200 Subject: [PATCH] Merge PR #116: Basic data availability requirements --- spec/ics-24-host-requirements/README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/spec/ics-24-host-requirements/README.md b/spec/ics-24-host-requirements/README.md index c386ffa9a18e..9b8f18ec2957 100644 --- a/spec/ics-24-host-requirements/README.md +++ b/spec/ics-24-host-requirements/README.md @@ -90,7 +90,7 @@ type getCallingModule = () => string Modules which wish to make use of particular IBC features MAY implement certain handler functions, e.g. to add additional logic to a channel handshake with an associated module on another chain. -### Datagram Submission +### Datagram submission Host chains MAY define a unique `submitDatagram` function to submit [datagrams](../../docs/ibc/2_IBC_TERMINOLOGY.md) directly: @@ -100,6 +100,16 @@ type submitDatagram = (datagram: Datagram) => void `submitDatagram` allows relayers to relay IBC datagrams directly to the host chain. Host chains MAY require that the relayer submitting the datagram has an account to pay transaction fees, signs over the datagram in a larger transaction structure, etc - `submitDatagram` MUST define any such packaging required. +### Data availability + +For safety (e.g. exactly-once packet delivery), host chains MUST have eventual data availability, such that any key-value pairs in state can be eventually retrieved by relayers. + +For liveness (relaying packets, which will have a timeout), host chains MUST have partially synchronous data availability (e.g. within a wall clock or block height bound), such that any key-value pairs in state can be retrieved by relayers within the bound. + +Data computable from a subset of state and knowledge of the state machine (e.g. IBC packet data, which is not directly stored) are also assumed to be available to and efficiently computable by relayers. + +Light clients of particular consensus algorithms may have different and/or more strict data availability requirements. + ## Backwards Compatibility Not applicable.