Skip to content

Commit

Permalink
Merge branch 'revised-format' into patch-2
Browse files Browse the repository at this point in the history
  • Loading branch information
m00sey authored Sep 17, 2024
2 parents 7c46294 + 3fd9e75 commit 10afd6d
Showing 1 changed file with 11 additions and 14 deletions.
25 changes: 11 additions & 14 deletions spec/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,6 @@ Any feedback or questions on this document should be directed to https://github.
THESE MATERIALS ARE PROVIDED “AS IS.” The Trust Over IP Foundation, established as the Joint Development Foundation Projects, LLC, Trust Over IP Foundation Series ("ToIP"), and its members and contributors (each of ToIP, its members and contributors, a "ToIP Party") expressly disclaim any warranties (express, implied, or otherwise), including implied warranties of merchantability, non-infringement, fitness for a particular purpose, or title, related to the materials. The entire risk as to implementing or otherwise using the materials is assumed by the implementer and user.
IN NO EVENT WILL ANY ToIP PARTY BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THESE MATERIALS, ANY DELIVERABLE OR THE ToIP GOVERNING AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR NOT THE OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


::: issue
https://github.com/trustoverip/tswg-keri-specification/issues/47
:::

[//]: # (:::)

[//]: # (\newpage)
Expand Down Expand Up @@ -321,7 +316,7 @@ Key event validation includes everything needed to validate events, including st
![Controller Application with Agent](https://raw.githubusercontent.com/trustoverip/tswg-keri-specification/revised-format/images/ControllerAppAgentSplitFunctions.png)

**Figure:** *Controller Application with Agent*

#### Direct exchange

The simplest mode of operation is that a pair of controllers, each with their own AID, use their respective applications (including agents when applicable) to directly exchange key event messages that verifiably establish the current key state of their own AID with the other controller. For each exchange of key events, the destination controller acts as a validator of events received from the source controller. Therefore, given any key event, a given entity is either the event's controller or a validator of some other controller's event.
Expand Down Expand Up @@ -658,7 +653,7 @@ The Backer Remove, `br` field value is a list of strings that each is the fully

##### Backer add list

The Backer Add, `ba` field value is a list of strings that each is the fully qualified AID of a Backer to be appended to the current Backer list. This allows Backer lists to be changed in an incremental fashion. A given AID MUST NOT appear more than once in any Backer Add list. The Backer Add, `ba` list appears in Rotation and Delegated Rotation events. Given such an event, the current backer list is updated by appending in order the AIDs from the Backer Add, `ba` list except for any AIDs that already appear in the current Backer list. The AIDs in the Backer Add, `ba` list MUST NOT be appended until all AIDs in the Backer Add, `ba` list have been removed.
The Backer Add, `ba` field value is a list of strings that each is the fully qualified AID of a Backer to be appended to the current Backer list. This allows Backer lists to be changed in an incremental fashion. A given AID MUST NOT appear more than once in any Backer Add list. The Backer Add, `ba` list appears in Rotation and Delegated Rotation events. Given such an event, the current backer list is updated by appending in order the AIDs from the Backer Add, `ba` list except for any AIDs that already appear in the current Backer list. The AIDs in the Backer Add, `ba` list MUST NOT be appended until all AIDs in the Backer Remove, `br` list have been removed.


##### Configuration traits field
Expand Down Expand Up @@ -704,7 +699,7 @@ The value of this seal's `d` field is an undifferentiated digest of some externa

#### Merkle Tree root digest seal

The value of this seal's `d` field is root of a Merkle tree of digests of external data. This enables a compact commitment to a large number of data items. A Merkle tree is constructed so that an inclusion proof of a given digest in the tree does not require disclosure of the whole tree. The JSON version is shown. There is also a native CESR version of the seal.
The value of this seal's `rd` field is root of a Merkle tree of digests of external data. This enables a compact commitment to a large number of data items. A Merkle tree is constructed so that an inclusion proof of a given digest in the tree does not require disclosure of the whole tree. The JSON version is shown. There is also a native CESR version of the seal.

```json
{
Expand Down Expand Up @@ -927,7 +922,7 @@ The top-level fields of a Delegated Inception, `dip` event message body MUST app
```json
{
"v": "KERI10JSON0001ac_",
"t": "icp",
"t": "dip",
"d": "EL1L56LyoKrIofnn0oPChS4EyzMHEEk75INJohDS_Bug",
"i": "EL1L56LyoKrIofnn0oPChS4EyzMHEEk75INJohDS_Bug",
"s": "0",
Expand Down Expand Up @@ -1080,7 +1075,7 @@ Unless otherwise clarified below, the definitions of the `[v, t, d, i]' field va

##### Controller AID field

The Controller AID, `i` field value is an AID that controls its associated KEL. When the Controller Identifier AID, `i` field appears at the top-level of a Routed Message, it refers to the Controller AID of the sender of that message. A Receiver AID, `i` field MAY appear in other places in messages. In those cases, its meaning SHOULD be determined by the context of its appearance.
The Controller AID, `i` field value is an AID that controls its associated KEL. When the Controller Identifier AID, `i` field appears at the top-level of a Routed Message, it refers to the Controller AID of the sender of that message. A Controller AID, `i` field MAY appear in other places in messages (not at the top level). In those cases, its meaning SHOULD be determined by the context of its appearance.

##### Receiver AID field

Expand Down Expand Up @@ -1240,7 +1235,7 @@ Bare message example:

#### Exchange Transaction Inception Message Body

The top-level fields of an Exchange Transaction Inceipt, `xip` message body MUST appear in the following order: `[ v, t, d, i, dt, r, q, a]`. All are REQUIRED. No other top-level fields are allowed (MUST NOT appear). Signatures and Seals MUST be attached to the Message body using CESR attachment codes.
The top-level fields of an Exchange Transaction Inceipt, `xip` message body MUST appear in the following order: `[ v, t, d, i, ri, dt, r, q, a]`. All are REQUIRED. No other top-level fields are allowed (MUST NOT appear). Signatures and Seals MUST be attached to the Message body using CESR attachment codes.

::: note
Examples in this section are not cryptographically verifiable
Expand Down Expand Up @@ -1268,7 +1263,7 @@ Exchange transaction inception message example:

#### Exchange Message Body

The top-level fields of an Exchange, `exn` message body MUST appear in the following order: `[ v, t, d, i, x, p, dt, r, q, a]`. All are REQUIRED. No other top-level fields are allowed (MUST NOT appear). Signatures and Seals MUST be attached to the Message body using CESR attachment codes.
The top-level fields of an Exchange, `exn` message body MUST appear in the following order: `[ v, t, d, i, ri, x, p, dt, r, q, a]`. All are REQUIRED. No other top-level fields are allowed (MUST NOT appear). Signatures and Seals MUST be attached to the Message body using CESR attachment codes.

::: note
Examples in this section are not cryptographically verifiable
Expand Down Expand Up @@ -2305,7 +2300,7 @@ Field order by label: `v`, `t`, `d`, `dt`, `r`, `a`.

#### Exchange Transaction Inception Message

Field order by label: `v`, `t`, `d`, `i`, `dt`, `r`, `q`, `a`.
Field order by label: `v`, `t`, `d`, `i`, `ri`, `dt`, `r`, `q`, `a`.

| Field Label | Value | Description |
|:--------:|:-------|:------|
Expand All @@ -2314,6 +2309,7 @@ Field order by label: `v`, `t`, `d`, `i`, `dt`, `r`, `q`, `a`.
| `t` | `xip` | Packet Type |
| `d` | `EC4NQq-hiGgbiglDXNB5xhHKXBxkiojgBabiu_JCkE0G` | SAID of message, transaction identifier SAID |
| `i` | `EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg` | Sender AID |
| `ri` | `ECRXq_bMF3Dd96ATbbMIZgUBBwuFAWx3_8s5XSt_0jey` | Receiver AID |
| `dt` | `1AAG2020-08-22T17c50c09d988921p00c00` | Base64 custom encoded 32 char ISO-8601 DateTime |
| `r` | `4AAC-A-1-B-3` | Base64 variable length CESR SAD Path string |
| `q` | `-H##` or `-H#####` | Count code for Query field map |
Expand All @@ -2327,7 +2323,7 @@ Field order by label: `v`, `t`, `d`, `i`, `dt`, `r`, `q`, `a`.

#### Exchange Message

Field order by label: `v`, `t`, `d`, `i`, `x`, `p`, `dt`, `r`, `q`, `a`.
Field order by label: `v`, `t`, `d`, `i`, `ri`, `x`, `p`, `dt`, `r`, `q`, `a`.

| Field Label | Value | Description |
|:--------:|:-------|:------|
Expand All @@ -2336,6 +2332,7 @@ Field order by label: `v`, `t`, `d`, `i`, `x`, `p`, `dt`, `r`, `q`, `a`.
| `t` | `exn` | Packet Type |
| `d` | `EBxkiojgBabiu_JCkE0GC4NQq-hiGgbiglDXNB5xhHKX` | SAID of message |
| `i` | `EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg` | Sender AID |
| `ri` | `ECRXq_bMF3Dd96ATbbMIZgUBBwuFAWx3_8s5XSt_0jey` | Receiver AID |
| `x` | `EC4NQq-hiGgbiglDXNB5xhHKXBxkiojgBabiu_JCkE0G` | Transaction Identifier SAID |
| `p` | `EGbiglDXNB5C4NQq-hiGgxhHKXBxkiojgBabiu_JCkE0` | Prior message SAID |
| `dt` | `1AAG2020-08-22T17c50c09d988921p00c00` | Base64 custom encoded 32 char ISO-8601 DateTime |
Expand Down

0 comments on commit 10afd6d

Please sign in to comment.