Changes for page ProjectsSheet

Last modified by Zenna Elfen on 2025/11/24 11:39

From version 5.1
edited by Zenna Elfen
on 2025/11/23 22:42
Change comment: Update class sheet
To version 8.1
edited by Zenna Elfen
on 2025/11/24 11:13
Change comment: Update class sheet

Summary

Details

Page properties
Content
... ... @@ -59,6 +59,18 @@
59 59   <dd>$doc.display('shortText2')</dd>
60 60   <dt #if (!$editing && $hasEdit)
61 61   class="editableProperty"
62 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('content1')))"
63 + data-property-type="object"#end>
64 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_content1"#end>
65 + $escapetool.xml($doc.displayPrettyName('content1', false, false))
66 + </label>
67 + <span class="xHint">
68 + $escapetool.xml($services.localization.render('Add an image for the project by clicking the image in the menu. This image will be visible in the table.'))
69 + </span>
70 + </dt>
71 + <dd>$doc.display('content1')</dd>
72 + <dt #if (!$editing && $hasEdit)
73 + class="editableProperty"
62 62   data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('data_synchronization')))"
63 63   data-property-type="object"#end>
64 64   <label#if ($editing) for="Projects.Code.ProjectsClass_0_data_synchronization"#end>
... ... @@ -95,169 +95,172 @@
95 95   <dd>$doc.display('conf_res')</dd>
96 96   <dt #if (!$editing && $hasEdit)
97 97   class="editableProperty"
98 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('longText2')))"
110 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_res')))"
99 99   data-property-type="object"#end>
100 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_longText2"#end>
101 - $escapetool.xml($doc.displayPrettyName('longText2', false, false))
112 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_res"#end>
113 + $escapetool.xml($doc.displayPrettyName('long_res', false, false))
102 102   </label>
103 103   <span class="xHint">
104 104   $escapetool.xml($services.localization.render('How is data persisted locally and replicated between peers?'))
105 105   </span>
106 106   </dt>
107 - <dd>$doc.display('longText2')</dd>
119 + <dd>$doc.display('long_res')</dd>
108 108   <dt #if (!$editing && $hasEdit)
109 109   class="editableProperty"
110 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('staticList2')))"
122 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_rep')))"
111 111   data-property-type="object"#end>
112 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_staticList2"#end>
113 - $escapetool.xml($doc.displayPrettyName('staticList2', false, false))
124 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_rep"#end>
125 + $escapetool.xml($doc.displayPrettyName('list_rep', false, false))
114 114   </label>
127 + <span class="xHint">
128 + $escapetool.xml($services.localization.render('This layer focuses on durability, consistency, and redundancy. It handles write-paths, crash-resilience, and replication semantics across nodes. It is the “database/storage engine” layer where data lives and survives over time, independent of sync or merging logic. Examples: SQLite, IndexedDB, LMDB, Hypercore (append-only logs), WALs, Merkle-DAGs (IPFS/IPLD), Blob/media storage'))
129 + </span>
115 115   </dt>
116 - <dd>$doc.display('staticList2')</dd>
131 + <dd>$doc.display('list_rep')</dd>
117 117   <dt #if (!$editing && $hasEdit)
118 118   class="editableProperty"
119 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('longText6')))"
134 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_rep')))"
120 120   data-property-type="object"#end>
121 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_longText6"#end>
122 - $escapetool.xml($doc.displayPrettyName('longText6', false, false))
136 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_rep"#end>
137 + $escapetool.xml($doc.displayPrettyName('long_rep', false, false))
123 123   </label>
124 124   <span class="xHint">
125 - $escapetool.xml($services.localization.render('How do peers collaboratively change shared data and merge conflicts?'))
140 + $escapetool.xml($services.localization.render('How is data persisted locally and replicated between peers?'))
126 126   </span>
127 127   </dt>
128 - <dd>$doc.display('longText6')</dd>
143 + <dd>$doc.display('long_rep')</dd>
129 129   <dt #if (!$editing && $hasEdit)
130 130   class="editableProperty"
131 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('staticList3')))"
146 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_peer')))"
132 132   data-property-type="object"#end>
133 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_staticList3"#end>
134 - $escapetool.xml($doc.displayPrettyName('staticList3', false, false))
148 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_peer"#end>
149 + $escapetool.xml($doc.displayPrettyName('list_peer', false, false))
135 135   </label>
136 136   <span class="xHint">
137 - $escapetool.xml($services.localization.render('This layer focuses on durability, consistency, and redundancy. It handles write-paths, crash-resilience, and replication semantics across nodes. It is the “database/storage engine” layer where data lives and survives over time, independent of sync or merging logic. Examples: SQLite, IndexedDB, LMDB, Hypercore (append-only logs), WALs, Merkle-DAGs (IPFS/IPLD), Blob/media storage'))
152 + $escapetool.xml($services.localization.render('Discovery occurs in two phases: 1. Peer Discovery finding any nodes 2. Topic Discovery → finding relevant nodes or resources These mechanisms enable decentralized bootstrapping and interest-based overlays. **Examples**: DHTs (Kademlia, Pastry), mDNS, DNS-SD, Bluetooth scanning, QR bootstrapping, static peer lists, Interest-based routing, PubSub discovery (libp2p), Rendezvous protocols'))
138 138   </span>
139 139   </dt>
140 - <dd>$doc.display('staticList3')</dd>
155 + <dd>$doc.display('list_peer')</dd>
141 141   <dt #if (!$editing && $hasEdit)
142 142   class="editableProperty"
143 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('longText8')))"
158 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_peer')))"
144 144   data-property-type="object"#end>
145 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_longText8"#end>
146 - $escapetool.xml($doc.displayPrettyName('longText8', false, false))
160 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_peer"#end>
161 + $escapetool.xml($doc.displayPrettyName('long_peer', false, false))
147 147   </label>
148 148   <span class="xHint">
149 - $escapetool.xml($services.localization.render(' This layer defines how shared data evolves when multiple peers edit concurrently. It focuses on conflict-free merging, causality, and consistency of meaning, not transport or storage. CRDTs ensure deterministic convergence, while event-sourced or stream-driven models maintain a history of all changes and derive consistent state from it. Examples: CRDTs (Yjs, Automerge), OT, Event Sourcing, Stream Processing, Version Vectors, Peritext'))
164 + $escapetool.xml($services.localization.render('How do peers find each other, and how do they discover content in the network?'))
150 150   </span>
151 151   </dt>
152 - <dd>$doc.display('longText8')</dd>
167 + <dd>$doc.display('long_peer')</dd>
153 153   <dt #if (!$editing && $hasEdit)
154 154   class="editableProperty"
155 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('staticList4')))"
170 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_ident')))"
156 156   data-property-type="object"#end>
157 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_staticList4"#end>
158 - $escapetool.xml($doc.displayPrettyName('staticList4', false, false))
172 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_ident"#end>
173 + $escapetool.xml($doc.displayPrettyName('list_ident', false, false))
159 159   </label>
160 160   <span class="xHint">
161 - $escapetool.xml($services.localization.render('Discovery occurs in two phases: 1. Peer Discovery → finding any nodes 2. Topic Discovery → finding relevant nodes or resources These mechanisms enable decentralized bootstrapping and interest-based overlays. **Examples**: DHTs (Kademlia, Pastry), mDNS, DNS-SD, Bluetooth scanning, QR bootstrapping, static peer lists, Interest-based routing, PubSub discovery (libp2p), Rendezvous protocols'))
176 + $escapetool.xml($services.localization.render('Identity systems ensure reliable mapping between peers and cryptographic keys. They underpin authorization, federated trust, and secure overlays. Examples: PKI, Distributed Identities (DIDs), Web-of-Trust, TOFU (SSH-style), Verifiable Credentials (VCs), Peer key fingerprints (libp2p PeerIDs), Key transparency logs'))
162 162   </span>
163 163   </dt>
164 - <dd>$doc.display('staticList4')</dd>
179 + <dd>$doc.display('list_ident')</dd>
165 165   <dt #if (!$editing && $hasEdit)
166 166   class="editableProperty"
167 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('longText9')))"
182 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_ident')))"
168 168   data-property-type="object"#end>
169 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_longText9"#end>
170 - $escapetool.xml($doc.displayPrettyName('longText9', false, false))
184 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_ident"#end>
185 + $escapetool.xml($doc.displayPrettyName('long_ident', false, false))
171 171   </label>
172 172   <span class="xHint">
173 - $escapetool.xml($services.localization.render('How do messages travel across multiple hops, and what abstract network structure is created?'))
188 + $escapetool.xml($services.localization.render('How peers identify themselves, authenticate, and establish trustworthy relationships?'))
174 174   </span>
175 175   </dt>
176 - <dd>$doc.display('longText9')</dd>
191 + <dd>$doc.display('long_ident')</dd>
177 177   <dt #if (!$editing && $hasEdit)
178 178   class="editableProperty"
179 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('staticList5')))"
194 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_transport')))"
180 180   data-property-type="object"#end>
181 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_staticList5"#end>
182 - $escapetool.xml($doc.displayPrettyName('staticList5', false, false))
196 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_transport"#end>
197 + $escapetool.xml($doc.displayPrettyName('list_transport', false, false))
183 183   </label>
184 184   <span class="xHint">
185 - $escapetool.xml($services.localization.render('This layer provides logical connections and flow control. QUIC and WebRTC bring modern congestion control and encryption defaults; Interpeer explores transport beyond IP assumptions. **Examples**: TCP, UDP, QUIC, SCTP, WebRTC DataChannels, Interpeer transport stack'))
200 + $escapetool.xml($services.localization.render('This layer provides logical connections and flow control. QUIC and WebRTC bring modern congestion control and encryption defaults; Interpeer explores transport beyond IP assumptions. **Examples**: TCP, UDP, QUIC, SCTP, WebRTC DataChannels, Interpeer transport stack. Examples: TCP, UDP, QUIC, SCTP, WebRTC DataChannels, Interpeer transport stack'))
186 186   </span>
187 187   </dt>
188 - <dd>$doc.display('staticList5')</dd>
203 + <dd>$doc.display('list_transport')</dd>
189 189   <dt #if (!$editing && $hasEdit)
190 190   class="editableProperty"
191 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('longText10')))"
206 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_transport')))"
192 192   data-property-type="object"#end>
193 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_longText10"#end>
194 - $escapetool.xml($doc.displayPrettyName('longText10', false, false))
208 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_transport"#end>
209 + $escapetool.xml($doc.displayPrettyName('long_transport', false, false))
195 195   </label>
196 196   <span class="xHint">
197 197   $escapetool.xml($services.localization.render('How do peers establish end-to-end byte streams and reliable delivery?'))
198 198   </span>
199 199   </dt>
200 - <dd>$doc.display('longText10')</dd>
215 + <dd>$doc.display('long_transport')</dd>
201 201   <dt #if (!$editing && $hasEdit)
202 202   class="editableProperty"
203 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('staticList6')))"
218 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_phys')))"
204 204   data-property-type="object"#end>
205 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_staticList6"#end>
206 - $escapetool.xml($doc.displayPrettyName('staticList6', false, false))
220 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_phys"#end>
221 + $escapetool.xml($doc.displayPrettyName('list_phys', false, false))
207 207   </label>
208 208   <span class="xHint">
209 - $escapetool.xml($services.localization.render('Highly relevant for offline-first / edge networks, device-to-device communication, and mesh networks and relates to the hardware which facilitates connections. **Examples**: Ethernet, Wi-Fi Direct / Wi-Fi Aware (post-AWDL), Bluetooth Mesh, LoRa, NFC, Cellular, CSMA/CA, TDMA, FHSS'))
224 + $escapetool.xml($services.localization.render('Highly relevant for offline-first / edge networks, device-to-device communication, and mesh networks and relates to the hardware which facilitates connections. Examples: Ethernet, Wi-Fi Direct / Wi-Fi Aware (post-AWDL), Bluetooth Mesh, LoRa, NFC, Cellular, CSMA/CA, TDMA, FHSS'))
210 210   </span>
211 211   </dt>
212 - <dd>$doc.display('staticList6')</dd>
227 + <dd>$doc.display('list_phys')</dd>
213 213   <dt #if (!$editing && $hasEdit)
214 214   class="editableProperty"
215 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('longText11')))"
230 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_phys')))"
216 216   data-property-type="object"#end>
217 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_longText11"#end>
218 - $escapetool.xml($doc.displayPrettyName('longText11', false, false))
232 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_phys"#end>
233 + $escapetool.xml($doc.displayPrettyName('long_phys', false, false))
219 219   </label>
220 220   <span class="xHint">
221 221   $escapetool.xml($services.localization.render('How does data move across the medium?'))
222 222   </span>
223 223   </dt>
224 - <dd>$doc.display('longText11')</dd>
239 + <dd>$doc.display('long_phys')</dd>
225 225   <dt #if (!$editing && $hasEdit)
226 226   class="editableProperty"
227 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('staticList7')))"
242 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_cont')))"
228 228   data-property-type="object"#end>
229 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_staticList7"#end>
230 - $escapetool.xml($doc.displayPrettyName('staticList7', false, false))
244 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_cont"#end>
245 + $escapetool.xml($doc.displayPrettyName('list_cont', false, false))
231 231   </label>
232 232   <span class="xHint">
233 233   $escapetool.xml($services.localization.render('Content addressing ensures immutability, verifiability, and deduplication. Identity of data = cryptographic hash, enabling offline-first and tamper-evident systems. **Examples**: IPFS CIDs, BitTorrent infohashes, Git hashes, SHA-256 addressing, Named Data Networking (NDN)'))
234 234   </span>
235 235   </dt>
236 - <dd>$doc.display('staticList7')</dd>
251 + <dd>$doc.display('list_cont')</dd>
237 237   <dt #if (!$editing && $hasEdit)
238 238   class="editableProperty"
239 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('longText12')))"
254 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_cont')))"
240 240   data-property-type="object"#end>
241 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_longText12"#end>
242 - $escapetool.xml($doc.displayPrettyName('longText12', false, false))
256 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_cont"#end>
257 + $escapetool.xml($doc.displayPrettyName('long_cont', false, false))
243 243   </label>
244 244   <span class="xHint">
245 245   $escapetool.xml($services.localization.render('How is data addressed and verified by content, not location?'))
246 246   </span>
247 247   </dt>
248 - <dd>$doc.display('longText12')</dd>
263 + <dd>$doc.display('long_cont')</dd>
249 249   <dt #if (!$editing && $hasEdit)
250 250   class="editableProperty"
251 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('staticList8')))"
266 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_p2p')))"
252 252   data-property-type="object"#end>
253 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_staticList8"#end>
254 - $escapetool.xml($doc.displayPrettyName('staticList8', false, false))
268 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_p2p"#end>
269 + $escapetool.xml($doc.displayPrettyName('list_p2p', false, false))
255 255   </label>
256 256   <span class="xHint">
257 257   $escapetool.xml($services.localization.render('Connectivity ensures peers bypass NATs/firewalls to reach each other. **Examples**: IPv6 direct, NAT Traversal, STUN, TURN, ICE (used in WebRTC), UDP hole punching, UPnP'))
258 258   </span>
259 259   </dt>
260 - <dd>$doc.display('staticList8')</dd>
275 + <dd>$doc.display('list_p2p')</dd>
261 261   <dt #if (!$editing && $hasEdit)
262 262   class="editableProperty"
263 263   data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('longText13')))"
... ... @@ -272,124 +272,124 @@
272 272   <dd>$doc.display('longText13')</dd>
273 273   <dt #if (!$editing && $hasEdit)
274 274   class="editableProperty"
275 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('staticList9')))"
290 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_sess')))"
276 276   data-property-type="object"#end>
277 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_staticList9"#end>
278 - $escapetool.xml($doc.displayPrettyName('staticList9', false, false))
292 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_sess"#end>
293 + $escapetool.xml($doc.displayPrettyName('list_sess', false, false))
279 279   </label>
280 280   <span class="xHint">
281 281   $escapetool.xml($services.localization.render('Manages connection lifecycle, including authentication handshakes, reconnection after drops, and session continuation. **Examples**: TLS handshake semantics, Noise IK/XX patterns, session tokens, keep-alive heartbeats, reconnection strategies, session resumption tickets'))
282 282   </span>
283 283   </dt>
284 - <dd>$doc.display('staticList9')</dd>
299 + <dd>$doc.display('list_sess')</dd>
285 285   <dt #if (!$editing && $hasEdit)
286 286   class="editableProperty"
287 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('MesForm')))"
302 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_sess')))"
288 288   data-property-type="object"#end>
289 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_MesForm"#end>
290 - $escapetool.xml($doc.displayPrettyName('MesForm', false, false))
304 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_sess"#end>
305 + $escapetool.xml($doc.displayPrettyName('long_sess', false, false))
291 291   </label>
292 292   <span class="xHint">
293 293   $escapetool.xml($services.localization.render('How are connections initiated, authenticated, resumed, and kept alive?'))
294 294   </span>
295 295   </dt>
296 - <dd>$doc.display('MesForm')</dd>
311 + <dd>$doc.display('long_sess')</dd>
297 297   <dt #if (!$editing && $hasEdit)
298 298   class="editableProperty"
299 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('staticList10')))"
314 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_mess')))"
300 300   data-property-type="object"#end>
301 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_staticList10"#end>
302 - $escapetool.xml($doc.displayPrettyName('staticList10', false, false))
316 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_mess"#end>
317 + $escapetool.xml($doc.displayPrettyName('list_mess', false, false))
303 303   </label>
304 304   <span class="xHint">
305 305   $escapetool.xml($services.localization.render(' Serialization ensures portable data representation, forward-compatible schemas, and efficient messaging. **Examples**: IPFS CIDs, BitTorrent infohashes, Git hashes, SHA-256 addressing, Named Data Networking (NDN)'))
306 306   </span>
307 307   </dt>
308 - <dd>$doc.display('staticList10')</dd>
323 + <dd>$doc.display('list_mess')</dd>
309 309   <dt #if (!$editing && $hasEdit)
310 310   class="editableProperty"
311 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('longText15')))"
326 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_mess')))"
312 312   data-property-type="object"#end>
313 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_longText15"#end>
314 - $escapetool.xml($doc.displayPrettyName('longText15', false, false))
328 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_mess"#end>
329 + $escapetool.xml($doc.displayPrettyName('long_mess', false, false))
315 315   </label>
316 316   <span class="xHint">
317 317   $escapetool.xml($services.localization.render('How is data encoded, structured, and/or made interoperable between peers?'))
318 318   </span>
319 319   </dt>
320 - <dd>$doc.display('longText15')</dd>
335 + <dd>$doc.display('long_mess')</dd>
321 321   <dt #if (!$editing && $hasEdit)
322 322   class="editableProperty"
323 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('ctn_filesynch')))"
338 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_blob')))"
324 324   data-property-type="object"#end>
325 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_ctn_filesynch"#end>
326 - $escapetool.xml($doc.displayPrettyName('ctn_filesynch', false, false))
340 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_blob"#end>
341 + $escapetool.xml($doc.displayPrettyName('list_blob', false, false))
327 327   </label>
328 328   <span class="xHint">
329 329   $escapetool.xml($services.localization.render(' Bulk data syncing has different trade-offs than small collaborative state (chunking, deduplication, partial transfer, resume logic). Essential for media and archival P2P use-cases. **Examples**: BitTorrent chunking, IPFS block-store, NDN segments, rsySerialization ensures portable data representation, forward-compatible schemas, and efficient messaging. **Examples**: IPFS CIDs, BitTorrent infohashes, Git hashes, SHA-256 addressing, Named Data Networking (NDN)nc-style delta sync, ZFS send-receive, streaming blob transfers'))
330 330   </span>
331 331   </dt>
332 - <dd>$doc.display('ctn_filesynch')</dd>
347 + <dd>$doc.display('list_blob')</dd>
333 333   <dt #if (!$editing && $hasEdit)
334 334   class="editableProperty"
335 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('filesynch')))"
350 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_blob')))"
336 336   data-property-type="object"#end>
337 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_filesynch"#end>
338 - $escapetool.xml($doc.displayPrettyName('filesynch', false, false))
352 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_blob"#end>
353 + $escapetool.xml($doc.displayPrettyName('long_blob', false, false))
339 339   </label>
340 340   <span class="xHint">
341 341   $escapetool.xml($services.localization.render('How are large objects transferred and deduplicated efficiently across peers?'))
342 342   </span>
343 343   </dt>
344 - <dd>$doc.display('filesynch')</dd>
359 + <dd>$doc.display('long_blob')</dd>
345 345   <dt #if (!$editing && $hasEdit)
346 346   class="editableProperty"
347 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('ctn_localsto')))"
362 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_localsto')))"
348 348   data-property-type="object"#end>
349 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_ctn_localsto"#end>
350 - $escapetool.xml($doc.displayPrettyName('ctn_localsto', false, false))
364 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_localsto"#end>
365 + $escapetool.xml($doc.displayPrettyName('list_localsto', false, false))
351 351   </label>
352 352   <span class="xHint">
353 353   $escapetool.xml($services.localization.render('Provides durable on-device state and local computation (event sourcing, materialization, compaction). Enables offline-first writes and deterministic replay. **Examples**: RocksDB, LevelDB, SQLite, LMDB, local WALs/append-only logs, embedded stream processors (NATS Core JetStream mode, Actyx-like edge runtimes), Kafka-like libraries'))
354 354   </span>
355 355   </dt>
356 - <dd>$doc.display('ctn_localsto')</dd>
371 + <dd>$doc.display('list_localsto')</dd>
357 357   <dt #if (!$editing && $hasEdit)
358 358   class="editableProperty"
359 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('localsto')))"
374 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_localsto')))"
360 360   data-property-type="object"#end>
361 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_localsto"#end>
362 - $escapetool.xml($doc.displayPrettyName('localsto', false, false))
376 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_localsto"#end>
377 + $escapetool.xml($doc.displayPrettyName('long_localsto', false, false))
363 363   </label>
364 364   <span class="xHint">
365 365   $escapetool.xml($services.localization.render('How do nodes persist, index, and process data locally—without external servers?'))
366 366   </span>
367 367   </dt>
368 - <dd>$doc.display('localsto')</dd>
383 + <dd>$doc.display('long_localsto')</dd>
369 369   <dt #if (!$editing && $hasEdit)
370 370   class="editableProperty"
371 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('ctn_crash')))"
386 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('list_crash')))"
372 372   data-property-type="object"#end>
373 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_ctn_crash"#end>
374 - $escapetool.xml($doc.displayPrettyName('ctn_crash', false, false))
388 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_list_crash"#end>
389 + $escapetool.xml($doc.displayPrettyName('list_crash', false, false))
375 375   </label>
376 376   <span class="xHint">
377 377   $escapetool.xml($services.localization.render('Ensures P2P apps don’t corrupt state on crashes. Tied to local storage & stream-processing, and critical in offline-first and distributed update pipelines. Abortability is the updated term, as per Mr. Kleppmann for Atomicity as part of the [ACID abbreviation](https://www.youtube.com/watch?v=5ZjhNTM8XU8). **Examples**: IPFS CIDs, BitTorrent infohashes, Git hashes, SHA-256 addressing, Named Data Networking (NDN)'))
378 378   </span>
379 379   </dt>
380 - <dd>$doc.display('ctn_crash')</dd>
395 + <dd>$doc.display('list_crash')</dd>
381 381   <dt #if (!$editing && $hasEdit)
382 382   class="editableProperty"
383 - data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('Crash_Res')))"
398 + data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('long_crashres')))"
384 384   data-property-type="object"#end>
385 - <label#if ($editing) for="Projects.Code.ProjectsClass_0_Crash_Res"#end>
386 - $escapetool.xml($doc.displayPrettyName('Crash_Res', false, false))
400 + <label#if ($editing) for="Projects.Code.ProjectsClass_0_long_crashres"#end>
401 + $escapetool.xml($doc.displayPrettyName('long_crashres', false, false))
387 387   </label>
388 388   <span class="xHint">
389 389   $escapetool.xml($services.localization.render('How do nodes recover and maintain correctness under failure?'))
390 390   </span>
391 391   </dt>
392 - <dd>$doc.display('Crash_Res')</dd>
407 + <dd>$doc.display('long_crashres')</dd>
393 393   </dl>
394 394  </div>
395 395  {{/html}}