diff --git a/index.html b/index.html index d9ab86a..117fc69 100644 --- a/index.html +++ b/index.html @@ -368,27 +368,25 @@
-A cryptographic event log contains a [=list=] of -witnessed events. The log's basic structure is shown below: +A cryptographic event log contains a [=list=] of witnessed events. +The log's basic structure is shown below:
-{
- "log": [{
- "event": {...}, // the first event in the event log
- "proof": [...] // a list of witness proofs securing the event
- }, {
- "event": {...}, // the second event
- "proof": [...] // a list of witness proofs securing the second event
- }, {
- "event": {...}, // the third event
- "proof": [...] // a list of witness proofs securing the third event
- }]
-}
+[{
+ "event": {...}, // the first event in the event log
+ "proof": [...] // a list of witness proofs securing the event
+}, {
+ "event": {...}, // the second event
+ "proof": [...] // a list of witness proofs securing the second event
+}, {
+ "event": {...}, // the third event
+ "proof": [...] // a list of witness proofs securing the third event
+}]
-An [=event log=] MUST conform to the following format: +An [=event log=] MUST be a [=list=] where each entry conforms to the following format:
| log | +event |
-A REQUIRED property whose value is a [=list=] of one or more entries that
-conform to the following format:
-
|
||||||
| previousLog | +proof | -An OPTIONAL property whose value MUST conform to an external reference as -defined in Section [[[#external-reference]]]. The value MUST also contain a -`proof` property whose value conforms to a [=data integrity proof=] as defined -by the [[VC-DATA-INTEGRITY]] specification. [=Conforming processors=] MUST -support at least the `ecdsa-jcs-2019` cryptosuite as defined by the -[[[VC-DI-ECDSA]]] specification. Event logs MUST have a default maximum size of -10MB which can be overridden by [=application specification=]s and SHOULD be at -least 1MB in size before creating a new chunk. +A REQUIRED property whose value conforms to a [=data integrity proof=] +as defined by the [[VC-DATA-INTEGRITY]] specification. [=Conforming processors=] +MUST support at least the `ecdsa-jcs-2019` cryptosuite as defined by the +[[[VC-DI-ECDSA]]] specification. |
-To support chunking, the `previousLog` property is provided to ensure that -arbitrarily long change histories are supported. +To support chunking, a special `previousLog` event type is provided to ensure that +arbitrarily long change histories are supported. Event logs MUST have a default maximum size of +10MB which can be overridden by [=application specification=]s and SHOULD be at +least 1MB in size before creating a new chunk. When a log exceeds the maximum size, +a new log should be created with its first event being a `previousLog` event that +references the previous log.
-
-{
- "previousLog" : {
- // URLs that can be used to retrieve the previous event log
- "url": [
- "https://website.example/log123.cel",
- "3jxop4cs2lu5ur2...sseqdsp3k262uwy4.onion/log123.cel",
- "ipfs://QmCQFJGkARStJbTy8w65yBXgyfG2ZBg5TrfB2hPjrDQH3R"
- ],
- // The media type associated with the previous log
- "mediaType": "application/cel",
- // a cryptographic digest of the previous log (sha2-256 base64-url-nopad)
- "digestMultibase": "uEiwLZcLK9EBguM5WZlbAgfXBDuQAkoYyQ6YVtUmER8pN24"
+
+[{
+ "event": {
+ "operation": {
+ "type": "previousLog",
+ "dataReference": {
+ // URLs that can be used to retrieve the previous event log
+ "url": [
+ "https://website.example/log123.cel",
+ "3jxop4cs2lu5ur2...sseqdsp3k262uwy4.onion/log123.cel",
+ "ipfs://QmCQFJGkARStJbTy8w65yBXgyfG2ZBg5TrfB2hPjrDQH3R"
+ ],
+ // The media type associated with the previous log
+ "mediaType": "application/cel",
+ // a cryptographic digest of the previous log (sha2-256 base64-url-nopad)
+ "digestMultibase": "uEiwLZcLK9EBguM5WZlbAgfXBDuQAkoYyQ6YVtUmER8pN24"
+ }
+ },
"proof": [...] // a list of witness proofs securing the previous event log
+ }, {
+ "event": {
+ "operation": {
+ "type": "create",
+ // ... rest of create event
+ }
},
- "log": [{
- "event": {...}, // the first event in the event log
- "proof": [...] // a list of witness proofs securing the event
- }, {
- "event": {...}, // the second event
- "proof": [...] // a list of witness proofs securing the second event
- }, {
- "event": {...}, // the third event
- "proof": [...] // a list of witness proofs securing the third event
- }]
-}
+ "proof": [...]
+}, {
+ // ... additional events
+}]
@@ -585,7 +559,7 @@ Event Entry
A REQUIRED property whose value is the type of event being expressed. A
[=conforming processor=] MUST support the following [=string=] values: `create`,
-`update`, and `deactivate` and MAY support other values defined by a
+`update`, `deactivate`, and `previousLog` and MAY support other values defined by a
[=conforming application specification=].