0.0.0 • Published 6 years ago
opb v0.0.0
OpenBalkans
OpenBalkans is a document annotation protocol for web of documents.
Cryptography
- Signatures: Ed25519
- Key derivation function (KDF): WarpWallet
- Content addressing: SHA-512/256
Libraries
Data structure
- Container: BSON
- Media Type: application/x.bson
Data types
| Node.js | Python 3 | C |
|---|---|---|
| Buffer | bytes | uint8_t[] |
| number | int | int32_t |
EncodedPost
EncodedPost = concat(bson_encode(Post), bson_encode(Signature))
EncodedPostRef
EncodedPostRef = bson_encode(PostRef)
Post
| Field | Type | Required | Što |
|---|---|---|---|
| Pv | number | Yes | Protocol version |
| Id | ObjectId | Yes | ObjectId |
| Con | Document[] | Yes | Contents |
| Sz | number | Yes | Size, octets (Content-Length) |
| Typ | string | Yes | RFC 6838 Media Type (Content-Type) |
| Enc | string | No | Encoding (Content-Encoding) |
| Has | Buffer | Yes | SHA-512/256(Contents) |
| Re | PostRef | No | Reply to a post (In-Reply-To) |
| Upd | PostRef | No | Update a post |
Post Encoding
| Encoding | Što |
|---|---|
| Bro | RFC 7932 Brotli |
Encoding has higher precedence than size and SHA-512/256.
That is, Sz = length(brotli_compress(Contents))
Signature
| Field | Type | Required | Što |
|---|---|---|---|
| Pk | Buffer | Yes | Public key |
| Ed | Buffer | Yes | Ed25519 signature |
Document
| Field | Type | Required | Što |
|---|---|---|---|
| Ld | string | Yes | Loader |
Document Ld=Buf
| Field | Type | Required | Što |
|---|---|---|---|
| Buf | Buffer | Yes | Contents |
Document Ld=Web
| Field | Type | Required | Što |
|---|---|---|---|
| Web | string | Yes | Web address (http¦https) |
Don't use RFC 2397 Data URLs.
Document Ld=JSON
| Field | Type | Required | Što |
|---|---|---|---|
| Web | string | Yes | Web address (http¦https) |
| Ref | string[] | Yes | Reference tokens |
Ref is a RFC 6901 JSON Pointer sequence with no ~encoding.
PostRef
| Field | Type | Required | Što |
|---|---|---|---|
| Pk | Buffer | Yes | Public key |
| Has | Buffer | Yes | SHA-512/256(EncodedPost) |
0.0.0
6 years ago