CESR 2.00 Code Tables #612
Replies: 6 comments 6 replies
-
Native CESR Messages
|
Field Label | Value | Description |
---|---|---|
NA | -F## or -0F##### |
Count code for CESR native top-level fixed field signable message |
v |
Y&&&&### e.g. YKERICAA |
Protocol Version primitive (KERI 2.00) |
t |
X&&& e.g. Xicp |
Packet Type (inception) |
d |
EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg |
SAID of event message |
i |
EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg |
AID of controller of event message KEL |
s |
M&&& e.g. MAAA |
Sequence Number of Event |
kt |
M&&& e.g. MAAB |
Signing Threshold, either number or fractional weight qb64 variable length string (1) |
k |
-I## or -I##### |
Count code for Signing Key List |
0th element | DN6WBhWqp6wC08no2iWhgFYTaUgrasnqz6llSvWQTWZN |
Public Key of signer 0 |
nt |
M&&& e.g. MAAB |
Rotation Threshold, either number or fractional weight qb64 variable length string (1) |
n |
-I## or -I##### |
Count code for Rotation Key Digest List |
0th element | EDDOarj1lzr8pqG5a-SSnM2cc_3JgstRRjmzrrA_Bibg |
Digest of Public Key of rotator 0 |
bt |
M&&& e.g. MAAC |
Rotation Threshold, either number or fractional weight qb64 variable length string (2) |
b |
-I## or -I##### |
Count code for Backer AID List |
0th element | BCuDiSPCTq-qBBFDHkhf1_kmysrH8KSsFvoaOSgEbx-X |
AID of backer 0 |
1th element | BH8KSsFvoaOSgEbx-XCuDiSPCTq-qBBFDHkhf1_kmysr |
AID of backer 1 |
2th element | BBBFDHkhf1_kmysrH8KSsFvoaOSgEbx-XCuDiSPCTq-q |
AID of backer 2 |
c |
-I## or -I##### |
Count code for Config Trait List |
0th element | XDND |
Config trait 0 DND |
a |
-I## or -I##### |
Count code for Anchored Seal List |
0th element | -H## or -H##### |
Count code for field map of Seal 0 |
0.0th label | 0J_& e.g. 0J_i |
Label of field 0 of Seal 0 i |
0.0th value | EC4NQq-hiGgxhHKXBxkiojgBabiu_JCkE0GbiglDXNB5 |
Value of field 0 of Seal 0 AID |
0.1th label | 0J_s |
Label of field 1 of Seal 0 s |
0.1th value | MAAC |
Value of field 1 of Seal 0 Sequence Number |
0.2th label | 0J_d |
Label of field 2 of Seal 0 d |
0.2th value | EiGgxhHKXBxkiojgBabiu_JCkE0GbiglDXNB5C4NQq-h |
Value of field 2 of Seal 0 SAID |
1th element | -R## or -R#####` |
Count code for value of Seal 1 (event seal triple) |
1.1th value | EHKXBxkiojgBaC4NQq-hiGCkE0GbiglDXNB5gxhbiu_JMAADEBxkiojgiGgxhHKXBDXNB5C4NQq-habiu_JCkE0Gbigl |
Value of of Seal 1 (event seal triple) pre+snu+dig |
Rotation rot
Field order by label: v
, t
, d
, i
, s
, p
, kt
, k
, nt
, n
, bt
, br
, ba
, c
, a
.
Field Label | Value | Description |
---|---|---|
NA | -F## or -0F##### |
Count code for CESR native top-level fixed field signable message |
v |
YKERIBAA |
Protocol Version primitive (KERI 2.00) |
t |
Xrot |
Packet Type (inception) |
d |
EC4NQq-hiGgbiglDXNB5xhHKXBxkiojgBabiu_JCkE0G |
SAID of event message |
i |
EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg |
AID of controller of event message KEL |
s |
MAAB |
Sequence Number of Event |
p |
EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg |
Prior event SAID |
kt |
MAAB |
Signing Threshold, either number or fractional weight qb64 variable length string (1) |
k |
-I## or -I##### |
Count code for Signing Key List |
0th element | DC08no2iWhgFYTaUgrasnqz6llSvWQTWZNN6WBhWqp6w |
Public Key of signer 0 |
nt |
MAAB |
Rotation Threshold, either number or fractional weight qb64 variable length string (1) |
n |
-I## or -I##### |
Count code for Rotation Key Digest List |
0th element | EM2cc_3JgstRRjmzrrA_BibgDDOarj1lzr8pqG5a-SSn |
Digest of Public Key of rotator 0 |
bt |
MAAC |
Rotation Threshold, either number or fractional weight qb64 variable length string (2) |
br |
-I## or -I##### |
Count code for Backer Remove (cuts) AID List |
0th element | BCuDiSPCTq-qBBFDHkhf1_kmysrH8KSsFvoaOSgEbx-X |
AID of backer cut 0 |
ba |
-I## or -I##### |
Count code for Backer Add (adds) AID List |
0th element | BDiSPCTq-qBBFDHkhf1_kmysrH8KSsFvoaOSgEbx-XCu |
AID of backer add 0 |
c |
-I## or -I##### |
Count code for Config Trait List |
0th element | XDND |
Config trait 0 DND |
a |
-I## or -I##### |
Count code for Anchored Seal List |
0th element | -H## or -H##### |
Count code for field map of Seal 0 |
0.0th label | 0J_i |
Label of field 0 of Seal 0 i |
0.0th value | EC4NQq-hiGgxhHKXBxkiojgBabiu_JCkE0GbiglDXNB5 |
Value of field 0 of Seal 0 AID |
0.1th label | 0J_s |
Label of field 1 of Seal 0 s |
0.1th value | MAAC |
Value of field 1 of Seal 0 Sequence Number |
0.2th label | 0J_d |
Label of field 2 of Seal 0 d |
0.2th value | EiGgxhHKXBxkiojgBabiu_JCkE0GbiglDXNB5C4NQq-h |
Value of field 2 of Seal 0 SAID |
1th element | -R## or -R#####` |
Count code for value of Seal 1 (event seal triple) |
1.1th value | EHKXBxkiojgBaC4NQq-hiGCkE0GbiglDXNB5gxhbiu_JMAADEBxkiojgiGgxhHKXBDXNB5C4NQq-habiu_JCkE0Gbigl |
Value of of Seal 1 (event seal triple) pre+snu+dig |
Interaction ixn
Field order by label: v
, t
, d
, i
, s
, p
, a
.
Field Label | Value | Description |
---|---|---|
NA | -F## or -0F##### |
Count code for CESR native top-level fixed field signable message |
v |
YKERIBAA |
Protocol Version primitive (KERI 2.00) |
t |
Xixn |
Packet Type (inception) |
d |
EGgbiglDXNE0GC4NQq-hiB5xhHKXBxkiojgBabiu_JCk |
SAID of event message |
i |
EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg |
AID of controller of event message KEL |
s |
MAAC |
Sequence Number of Event |
p |
EC4NQq-hiGgbiglDXNB5xhHKXBxkiojgBabiu_JCkE0G |
Prior event SAID |
a |
-I## or -I##### |
Count code for Anchored Seal List |
0th element | -H## or -H##### |
Count code for field map of Seal 0 |
0.0th label | 0J_i |
Label of field 0 of Seal 0 i |
0.0th value | EC4NQq-hiGgxhHKXBxkiojgBabiu_JCkE0GbiglDXNB5 |
Value of field 0 of Seal 0 AID |
0.1th label | 0J_s |
Label of field 1 of Seal 0 s |
0.1th value | MAAC |
Value of field 1 of Seal 0 Sequence Number |
0.2th label | 0J_d |
Label of field 2 of Seal 0 d |
0.2th value | EiGgxhHKXBxkiojgBabiu_JCkE0GbiglDXNB5C4NQq-h |
Value of field 2 of Seal 0 SAID |
1th element | -R## or -R#####` |
Count code for value of Seal 1 (event seal triple) |
1.1th value | EHKXBxkiojgBaC4NQq-hiGCkE0GbiglDXNB5gxhbiu_JMAADEBxkiojgiGgxhHKXBDXNB5C4NQq-habiu_JCkE0Gbigl |
Value of of Seal 1 (event seal triple) pre+snu+dig |
Delegated Inception dip
Field order by label: v
, t
, d
, i
, s
, kt
, k
, nt
, n
, bt
, b
, c
, a
, di
.
Field Label | Value | Description |
---|---|---|
NA | -F## or -0F##### |
Count code for CESR native top-level fixed field signable message |
v |
YKERIBAA |
Protocol Version primitive (KERI 2.00) |
t |
Xdip |
Packet Type (inception) |
d |
EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg |
SAID of event message |
i |
EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg |
AID of controller of event message KEL |
s |
MAAA |
Sequence Number of Event |
kt |
MAAB |
Signing Threshold, either number or fractional weight qb64 variable length string (1) |
k |
-I## or -I##### |
Count code for Signing Key List |
0th element | DN6WBhWqp6wC08no2iWhgFYTaUgrasnqz6llSvWQTWZN |
Public Key of signer 0 |
nt |
MAAB |
Rotation Threshold, either number or fractional weight qb64 variable length string (1) |
n |
-I## or -I##### |
Count code for Rotation Key Digest List |
0th element | EDDOarj1lzr8pqG5a-SSnM2cc_3JgstRRjmzrrA_Bibg |
Digest of Public Key of rotator 0 |
bt |
MAAC |
Rotation Threshold, either number or fractional weight qb64 variable length string (2) |
b |
-I## or -I##### |
Count code for Backer AID List |
0th element | BCuDiSPCTq-qBBFDHkhf1_kmysrH8KSsFvoaOSgEbx-X |
AID of backer 0 |
1th element | BH8KSsFvoaOSgEbx-XCuDiSPCTq-qBBFDHkhf1_kmysr |
AID of backer 1 |
2th element | BBBFDHkhf1_kmysrH8KSsFvoaOSgEbx-XCuDiSPCTq-q |
AID of backer 2 |
c |
-I## or -I##### |
Count code for Config Trait List |
0th element | XDND |
Config trait 0 DND |
a |
-I## or -I##### |
Count code for Anchored Seal List |
0th element | -H## or -H##### |
Count code for field map of Seal 0 |
0.0th label | 0J_i |
Label of field 0 of Seal 0 i |
0.0th value | EC4NQq-hiGgxhHKXBxkiojgBabiu_JCkE0GbiglDXNB5 |
Value of field 0 of Seal 0 AID |
0.1th label | 0J_s |
Label of field 1 of Seal 0 s |
0.1th value | MAAC |
Value of field 1 of Seal 0 Sequence Number |
0.2th label | 0J_d |
Label of field 2 of Seal 0 d |
0.2th value | EiGgxhHKXBxkiojgBabiu_JCkE0GbiglDXNB5C4NQq-h |
Value of field 2 of Seal 0 SAID |
1th element | -R## or -R#####` |
Count code for value of Seal 1 (event seal triple) |
1.1th value | EHKXBxkiojgBaC4NQq-hiGCkE0GbiglDXNB5gxhbiu_JMAADEBxkiojgiGgxhHKXBDXNB5C4NQq-habiu_JCkE0Gbigl |
Value of of Seal 1 (event seal triple) pre+snu+dig |
di |
EFXNB5C4NQq-hiGgxhHKXBxkiojgabiu_JCkE0GbiglD |
AID of delegating controller |
Delegated Rotation drt
Field order by label: v
, t
, d
, i
, s
, p
, kt
, k
, nt
, n
, bt
, br
, ba
, c
, a
, di
.
Field Label | Value | Description |
---|---|---|
NA | -F## or -0F##### |
Count code for CESR native top-level fixed field signable message |
v |
YKERIBAA |
Protocol Version primitive (KERI 2.00) |
t |
Xdrt |
Packet Type (inception) |
d |
EC4NQq-hiGgbiglDXNB5xhHKXBxkiojgBabiu_JCkE0G |
SAID of event message |
i |
EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg |
AID of controller of event message KEL |
s |
MAAB |
Sequence Number of Event |
p |
EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg |
Prior event SAID |
kt |
MAAB |
Signing Threshold, either number or fractional weight qb64 variable length string (1) |
k |
-I## or -I##### |
Count code for Signing Key List |
0th element | DC08no2iWhgFYTaUgrasnqz6llSvWQTWZNN6WBhWqp6w |
Public Key of signer 0 |
nt |
MAAB |
Rotation Threshold, either number or fractional weight qb64 variable length string (1) |
n |
-I## or -I##### |
Count code for Rotation Key Digest List |
0th element | EM2cc_3JgstRRjmzrrA_BibgDDOarj1lzr8pqG5a-SSn |
Digest of Public Key of rotator 0 |
bt |
MAAC |
Rotation Threshold, either number or fractional weight qb64 variable length string (2) |
br |
-I## or -I##### |
Count code for Backer Remove (cuts) AID List |
0th element | BCuDiSPCTq-qBBFDHkhf1_kmysrH8KSsFvoaOSgEbx-X |
AID of backer cut 0 |
ba |
-I## or -I##### |
Count code for Backer Add (adds) AID List |
0th element | BDiSPCTq-qBBFDHkhf1_kmysrH8KSsFvoaOSgEbx-XCu |
AID of backer add 0 |
c |
-I## or -I##### |
Count code for Config Trait List |
0th element | XDND |
Config trait 0 DND |
a |
-I## or -I##### |
Count code for Anchored Seal List |
0th element | -H## or -H##### |
Count code for field map of Seal 0 |
0.0th label | 0J_i |
Label of field 0 of Seal 0 i |
0.0th value | EC4NQq-hiGgxhHKXBxkiojgBabiu_JCkE0GbiglDXNB5 |
Value of field 0 of Seal 0 AID |
0.1th label | 0J_s |
Label of field 1 of Seal 0 s |
0.1th value | MAAC |
Value of field 1 of Seal 0 Sequence Number |
0.2th label | 0J_d |
Label of field 2 of Seal 0 d |
0.2th value | EiGgxhHKXBxkiojgBabiu_JCkE0GbiglDXNB5C4NQq-h |
Value of field 2 of Seal 0 SAID |
1th element | -R## or -R#####` |
Count code for value of Seal 1 (event seal triple) |
1.1th value | EHKXBxkiojgBaC4NQq-hiGCkE0GbiglDXNB5gxhbiu_JMAADEBxkiojgiGgxhHKXBDXNB5C4NQq-habiu_JCkE0Gbigl |
Value of of Seal 1 (event seal triple) pre+snu+dig |
di |
EFXNB5C4NQq-hiGgxhHKXBxkiojgabiu_JCkE0GbiglD |
AID of delegating controller |
Receipt Message
This message has packet type rct
KERI support Messages
These have the packet types qry
, rpy
, pro
, bar
, exn
Beta Was this translation helpful? Give feedback.
-
TSP (SPAC) SupportThere are several ways to support the TSP with CESR. The TSP is a tunneling routing protocol that would be largely transparent to any other message protocol that is tunneled and routed as a payload of the TSP. Also, viewed from the perspective of the tunneled protocol, the TSP is all overhead, so the TSP wants to be very efficient. The most efficient approach as shown below is for TSP specific fields to be native CESR only. To clarify TSP native payloads for control messages like hop and relationship formation are fully CESR native field values. The tunneled payload messages (i.e. non-native TSP payload) are represented ad sniffable CESR streams. This allows tunneled non-native TSP payloads to include JSON, CBOR, or MGPK because CESR streams supports those as interleavable with native CESR encoded primitives and CESR groups. TSP StructureA TSP wrapper can be modeled with three parts: Head, Body, Tail. HeadThe Head needs to include information that indicates that its a TSP wrapper head part, the version of TSP, the size of the wrapper, and the source and destination VIDS. The head is always plain text. I don't believe there is any need to have more than one head type. This is by design so that the head contains no correlatble metadata besides the source and destination VIDS. BodyThe Body can be composed of two parts: a plaintext portion and a ciphertext portion. The body part, therefore, needs a body type indicator so it can be parsed unambiguously. This allows semantics for the body fields. This body type might be recursively nestable because the ciphertext part may differ for the same plaintext part type. The ciphertext body part must always include the source VID for ESSR. The plaintext body part does not. Padding Control Message PayloadsOne source of meta-data correlation is packet size. To protect against this type of correlation every TSP control message payload includes a trailing padding field. The padding may be of minimum length, essentially a variable length primitive code with zero content length, i.e., code only with empty contents.
Theses codes are followed by length characters designated with a #. For example, Because the TSP control payloads are fixed field with no labels, the padding field must always be present. Empty padding is indicated with the presence of primitive code with zero length contents, that is, Examples: Non-Empty Padding Content: TailThe Tail part consists of the attached signature(s) using the source VID. These may be anchored as well. In general, these look pretty much like KERI/ACDC attachments. Proposed EncodingTSP ESSR WrapperAll messages start with a count code. This makes is sniffable in a stream.
TSP ESSR PayloadPlaintext of Ciphertext as Routing Message with Routed Nested ESSR Wrapper The payload above is ciphertext. In order for the unencrypted plaintext of the payload to be a parsable CESR stream, i.e. sniffable, the payload plaintext must start with (be encapsulated in) a group (count) code. Shown here is the TSP ESSR payload group. The Plaintext has a message type so that a parser can parse the fixed field formatted messages. This allows a virtually unlimited number of payload message types.
|
Beta Was this translation helpful? Give feedback.
-
|
Field Label | Label Value | Field or Count Value | Description |
---|---|---|---|
NA | NA | -G## or -0G##### |
Count code for CESR native top-level field map signable message |
v |
0J_v |
YACDCBAA |
Protocol Version primitive (ACDC 2.00) |
d |
0J_d |
EGgbiglDXNE0GC4NQq-hiB5xhHKXBxkiojgBabiu_JCk |
SAID of ACDC packet |
u |
0J_u |
0AGC4NQq-hiB5xhHKXBxkiK |
UUID (salt) of ACDC packet |
i |
0J_i |
EBabiu_JCkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojg |
AID of issuer of ACDC |
rd |
0Krd |
ECkE0GbiglDXNB5C4NQq-hiGgxhHKXBxkiojgBabiu_J |
SAID of revocation registry for ACDC |
s |
0J_s |
EDXNB5C4NQq-hiGgxhHKXBxkiojgBabiu_JCkE0Gbigl |
SAID of schema section of ACDC packet |
a |
0J_a |
EC4NQq-hiGgbiglDXNB5xhHKXBxkiojgBabiu_JCkE0G |
SAID of schema of attribute section of ACDC packet |
e |
0J_e |
EFXBxkiojgBabiu_JCkE0GC4NQq-hiGgbiglDXNB5xhH |
SAID of schema of edge section of ACDC packet |
r |
0J_r |
EMiGgbiglDXNB5xhHFXBxkiojgBabiu_JCkE0GC4NQq- |
SAID of schema of rule section ACDC packet |
sections.
Beta Was this translation helpful? Give feedback.
-
obsolete |
Beta Was this translation helpful? Give feedback.
-
TSP Payload Types
Relationship Formation (Sub) ProtocolRelationship Formation Invitation (RFI )Payload in Open Mode
Relationship Formation Acceptance (RFA) Payload in Open Mode
Relationship Formation Decline (RFD) Payload in Open Mode
Each relationship formation protocol payload is embedded in an TSP ESSR wrapper payload The wrapper payload uses an existing relationship X0 and Y0. Should X0 wish to form a new relationship with Y0 with a new VID that X0 controls, say X1. Then X0 sends and ESSR Wrapped packet to Y0 with an RFI payload. The source VID in the RFI payload is X0. The RFI is X0 inviting Y0 to form a new relationship with X1 == the new iVID in the RFI payload. X1 is controlled by X0. This invitation must be signed by the key(s) for X1 so that Y0 knows that invite comes from the controller of X1 via X0. If Y0 wishes to accept the invite then Y0 responds with an RFA payload wrapped in a TSP ESSR wrapper Y0 to X0. If Y0 choses not to accept the invite, Then Y0 sends an TSP ESSR wrapped packet from Y0 to X0 with payload RFD. This payload includes the iSAID IID from the RFI payload. The source VID in the RFA payload is Y0. The iSAID is computed over the non-attachment portion of the RFI payload Replay AttackA reply attack mechanism is not required as long as relationship formations are treated a idempotent actions. The pair of cryptographically derived VIDs in a relationships form a univerally unique pairing. Therefore the formation of the pairing can be treated as idempotent in that a replay attack is just treated as redundant or duplicate formation attempt that does not change the state of the relationship once formed. This means that a stale decline (RFD) is ignored for any previously accepted relationships. Salty NonceThe salty nonce field in the RFI and RFA payloads protects against a rainbow table attack that could correlate the embedded Relationship Formation Invitation (RFI )Payload in Closed Mode
Relationship Formation Acceptance (RFA) Payload in Closed Mode
Relationship Formation Decline (RFD) Payload in Closed Mode
Generic Payloads as Sniffable CESR Streams.When not used for TSP native control messages, the embedded payload of a TSP tunnel is entirely application-specific. Sniffable CESR streams can accommodate virtually any data format. The Generic payload as sniffable CESR stream in Open Mode| TSP Payload Group | Message Type | Source VID | CESR Stream | Padding | Generic payload as sniffable CESR stream in Closed Mode| TSP Payload Group | Message Type | Source VID | CESR Stream | Padding | Pad PayloadsMetadata that can be used by a surveillor to correlate source and final destination of routed packets are packet size as well as the time-of-departure (TOD) and the time-of-arrival (TOD) at the final destination. The padding field in the TSP payloads enables a given source to pad all packets to the same length to minimize correlation on packet size. But this does not address TOA and TOD correlation. One way to minimize TOD/TOA correlation is to whiten the stream of packets by injecting pad packets so that there is a uniform distribution of packets over time. When a source does not have any material data to send, it just pads its stream with pad packets so that a correlator always sees a uniformly distributed in time set of packets. The Pad Payload in Open Mode
The pad field in the Pad Payload in Closed Mode
|
Beta Was this translation helpful? Give feedback.
-
obsolete |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
CESR 2.00 Code Tables
More correctly maybe CESR 2.0.0 if adhere to strict semantic versioning
Universal Selector Codes and Encoding Schemes
Encoding Scheme Table
The following table summarizes the T domain coding schemes by selector code for the 13 code tables defined above.
[A-Z,a-z]
1*
$&&&
0
*$&&
1
*$$$&&&&
2
*$$$%&&&
3
*$$$%%&&
4
*$##&&&&
5
*$##%&&&
6
*$##%%&&
7
*$$$####&&&&
8
*$$$####%&&&
9
*$$$####%%&&
-
[A-Z,a-z]
1*
*$##
-
0
**$#####
-
-
**$$$###
-
[1-9,_]
**
_
*
Encoding Scheme Symbols
The following table defines the meaning of the symbols used in the encoding scheme table
*
$
[A-Z,a-z,0-9,-,_]
%
#
&
TBD
Universal Code table genus/version codes
--AAA###
AAA
Master code table for genus/version
--AAACAA
(KERI/ACDC protocol stack version 2.00)This master table includes both the primitive and count code types for the KERI/ACDC protocol stack. The types are separated by headers. This table only provides the codes for the KERI/ACDC protocol stack code table genus
AAA
at version 2.00 given by the genus/version code =--AAACAA
KERI/ACDC 2.00. After some thought and discussion, there does not seem to be a valid use case for a full semantic versioning using major, minor, and patch version numbers. In general, patch is meant for minor changes such as bug fixes, changes to doc strings, or tests that do not affect core feature functionality. Whereas, minor is meant for feature changes that are backwards compatible, and major is meant for backwards breaking changes. Any addition of a new code to the code table is backward breaking in a least one direction so its a feature change in a least one direction. New implementations with the new codes can accept streams from old implementations, but old implementations will break if they receive the new codes. So we have to define what major and minor mean specifically with regard code changes. A major change means a code's meaning has changed. This means it breaks in both directions i.e. sender and receiver. A minor change happens when a code is added; this only breaks backward compatibility when a new sender sends to an an old receiver, but a new sender will still correctly process a stream sent from an old receiver. Since code additions will be common compared to code changes, it would be beneficial to have more room for minor vs. major. Given there are three Base64 characters for the version, the first character will be for major version of which there are 64 total. It is anticipated that the code tables for the KERI/ACDC/TSP protocol stack will not change much in the future after the 1.00 to 2.00 change proposed here. This leaves 2 Base64 characters for minor version or 64^2 = 4096 minor versions per major version. Largely these will be infrequent and batched. Each time a new batch of codes are added to the table with accompanying implementation, the minor version will be incremented. Hopefully, there is never a version 3.00 because 2.00 was designed properly.All count codes except the genus/version code are pipelineable because they count the number of quadlets/triplets in the count group. A quadlet is four Base64 characters in the text domain. A triplet is three B2 bytes in the binary domain. The count is invariant in either domain. This allows a stream parser to extract the count number of characters/bytes in a group from the stream without parsing the contents of the group. By making all count codes pipelineable, the stream parser can be optimized in a granular way. This includes granular core affinity.
The table has 5 columns. These are as follows:
--AAABAA
AAA
and version1.00
--AAACAA
AAA
and version2.00
-A##
-0A#####
-B##
-0A#####
-C##
-0C#####
-D##
-0D#####
-E##
-0E#####
-F##
-0F#####
-G##
-0G#####
-H##
-0H#####
-I##
-0I#####
-J##
-0J#####
-K##
-0K#####
-L##
-0L#####
-M##
-0M#####
-N##
-0N#####
-O##
-0O#####
-P##
-0P#####
-Q##
-0Q#####
-R##
-0R#####
-S##
-0S#####
-T##
-0T#####
-U##
-0U#####
-V##
dig
up to 4,095 quadlets/triplets-0V#####
dig
up to 1,073,741,823 quadlets/triplets-W##
rdig
up to 4,095 quadlets/triplets-0W#####
rdig
up to 1,073,741,823 quadlets/triplets-X##
brid+dig
up to 4,095 quadlets/triplets-0X#####
brid+dig
up to 1,073,741,823 quadlets/triplets-Y##
aid+dig
up to 4,095 quadlets/triplets-0Y#####
aid+dig
up to 1,073,741,823 quadlets/triplets-Z##
version+messagtype+...
up to 4,095 quadlets/triplets-0Z#####
version+messagtype+...
up to 1,073,741,823 quadlets/triplets_
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
0A
0B
0C
0D
0E
0F
0G
0H
0I
0J
0K
0L
0M
0N
1AAA
1AAB
1AAC
1AAD
1AAE
1AAF
1AAG
1AAH
1AAI
1AAJ
1AAK
1AAL
1AAM
4A
5A
6A
7AAA
8AAA
7AAA
4B
5B
6B
7AAB
8AAB
9AAB
4C
5C
6C
7AAC
8AAC
9AAC
4D
5D
6D
7AAD
8AAD
9AAD
4E
5E
6E
7AAE
8AAE
9AAE
Beta Was this translation helpful? Give feedback.
All reactions