RON (Replicated Object Notation)

Created on 2021-02-03T22:30:31-06:00

Return to the Index

This card pertains to a resource available on the internet.

This card can also be read via Gemini.

Inheritance: original timestamp inherits from a particular type of object. future timestamps inherit from the previous timestamp they apply against.

Timestamp: each time stamp represents a particular set of changes at that time.

Ops: operators signal some kind of change to the data structure.

UUID

RON uses custom UUIDs.

Base64 encoding.

128-bit; formed as two 64-bit words with a separator.

First half is "value" block and last half is "origin" block.

Tailing zeroes in each block can be omitted (PINE0000$CONE000 -> PINE$CONE)

value:   vvvv.... ........ ........ ........  ........ ........ ........ ........ 
origin:  00VV.... ........ ........ ........  ........ ........ ........ ........ 

Flag bits

$ for 00: human readable names,
% for 01: numbers and hashes,
+ for 10: events (Lamport timestamp, and origin),
- for 11: derived events (same as event).

Varieties for names $

0000: transcendental/hardcoded name (lww, rga) or a scoped name (myvar$gritzko),
0001: ISBN (1/978$1400075997,
0011: EAN-13 bar code (3/4006381$333931,
0100: SI units (4/m, 4/kg,
0101: zip codes (5/2628CD$NL, 5/620078$RU,
1010: IATA airport code (A/LED,
1011: ticker name (B/GOOG$NASDAQ,
1100: ISO 4217 currency code (C/USD, C/GBP,
1101: short DNS name (D/google$com,
1110: E.164 intl phone num (E/7999$5631415,
1111: ISO 3166 country code (F/RU, F/FRA...).

Varieties for versions %

0000..0011: Decimal index (up to 9999999999%, also 2D indices 4%5),
0100: SHA-2, plain chunk hash, first 120 bits,
0101: SHA-3, plain chunk hash,
0110: SHA-2 based RFC 7574 Merkle hash,
0111: SHA-3 based RFC 7574 Merkle hash,
1000..1011: Random number (A/k3R9w_2F8w%Le~6dDScsw),
1100..1111: Crypto id, public key fingerprint.

Varieties in timestamps

00__: Base64 calendar (MMDHmSsnn),
01__: Logical (40000000001),
10__: Epoch (RFC 4122 epoch, 100ns since 1582),

Varieties in origins

__00: trie-forked,
__01: crypto-forked,
__10: record-forked,
__11: application-specific.