Willow Protocol
- https://willowprotocol.org?hidden=true
- ## Prefix pruning
- # How do we store them?
- # Entry
- ## Store
- ```
struct Entry
namespace_id: NamespaceId
subspace_id: SubspaceId
path: Path
timestamp: Timestamp
payload_length: u64
payload_digest: PayloadDigest
```
- An entry e1 overwrites another Entry e2 if
- # WGPS
- A set of Authorised Entries such taht
- ## Path
- `e2.timestamp < e1.timestamp`
- All Entries have same namespace_id
- Sequence of bytestrings
- `e2.timestamp == e1.timestamp && e2.payload_digest < e1.payload_digest`
- ## Timestamp
- There are no two of its entries old and new such that
- `e2.timestamp == e1.timestamp && e2.payload_digest < e1.payload_digest && e2.payload_length < e1.payload_length`
- old.subspace_id == new.subspace_id and new.path is a prefix of old.path and new is newer than old
- Time since UNIX epoch in microseconds
- A path s is a prefix t of another path if the first components of t are exactly the components of s
Willow Protocol
- https://willowprotocol.org?hidden=true
- ## Prefix pruning
- # How do we store them?
- # Entry
- ## Store
- ```
struct Entry
namespace_id: NamespaceId
subspace_id: SubspaceId
path: Path
timestamp: Timestamp
payload_length: u64
payload_digest: PayloadDigest
```
- An entry e1 overwrites another Entry e2 if
- # WGPS
- A set of Authorised Entries such taht
- ## Path
- `e2.timestamp < e1.timestamp`
- All Entries have same namespace_id
- Sequence of bytestrings
- `e2.timestamp == e1.timestamp && e2.payload_digest < e1.payload_digest`
- ## Timestamp
- There are no two of its entries old and new such that
- `e2.timestamp == e1.timestamp && e2.payload_digest < e1.payload_digest && e2.payload_length < e1.payload_length`
- old.subspace_id == new.subspace_id and new.path is a prefix of old.path and new is newer than old
- Time since UNIX epoch in microseconds
- A path s is a prefix t of another path if the first components of t are exactly the components of s