Changes for page Networks
Last modified by Zenna Elfen on 2026/01/05 21:51
From version 51.1
edited by Zenna Elfen
on 2026/01/05 20:26
on 2026/01/05 20:26
Change comment:
There is no comment for this version
To version 15.1
edited by Zenna Elfen
on 2025/11/24 11:56
on 2025/11/24 11:56
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,19 +1,11 @@ 1 -(% class=" jumbotron" %)1 +(% class="box" %) 2 2 ((( 3 -(% class="container" %) 4 -((( 5 -= Building Blocks of P4P Networks = 6 -Making a P4P network is a bit different than traditional communication networks, namely because we side-step the traditional confinement of the internet layers and connect in a variety of means, from bluetooth to sneakernet and beyond. This is of course very nice in a variety of circumstances and to read more about the principles and capabilities of P4P networks, see the about page. 3 +This page contains an overview of all P4P Networks in this wiki and their building blocks. 7 7 8 -To fully assemble a P4P network one needs a few different building blocks, below is an overview of 15 of those building blocks. This outline of 15 building blocks has been collaboratively developed. If you see something missing or would like to give feedback, please reach out to Zenna. Now, let's dive into the building-blocks which make P4P protocols. 9 - 5 +You can also [[add a P4P Network>>doc:Projects.WebHome]] or have a look at the [[P4P Applications>>doc:P4P.Applications.WebHome]]. 10 10 ))) 11 -))) 12 -((( 13 -== 15 Building Blocks of P4P Networks == 14 14 15 15 16 -))) 17 17 18 18 19 19 ... ... @@ -20,12 +20,19 @@ 20 20 21 21 22 22 23 -(% class="row" %) 15 + 16 + 17 + 18 + 19 +== Building Blocks of P4P Networks == 20 + 21 + 22 +(% class="box" %) 24 24 ((( 25 -(% class="col-xs-12 col-sm-8" %) 26 -((( 27 - 24 +To fully assemble a P4P network one needs a few different building blocks, below is an overview of 15 of those building blocks. Lost in translation? Take a look at the [[terminology>>doc:P4P.Definitions.WebHome]]. 25 +))) 28 28 27 + 29 29 ==== **1. Data Synchronization** ==== 30 30 31 31 > Synchronization answers **how updates flow between peers** and how they determine what data to exchange. This layer is about **diffing, reconciliation, order, causality tracking, and efficient exchange**, not persistence or user-facing collaboration semantics. ... ... @@ -73,113 +73,82 @@ 73 73 * Examples: PKI, Distributed Identities (DIDs), Web-of-Trust, TOFU (SSH-style), Verifiable Credentials (VCs), Peer key fingerprints (libp2p PeerIDs), Key transparency logs 74 74 75 75 76 - 77 77 ==== **6. Transport Layer** ==== 78 78 79 79 > This layer provides logical connections and flow control. QUIC and WebRTC bring modern congestion control and encryption defaults; Interpeer explores transport beyond IP assumptions. 80 80 81 -* //How do peers establish end-to-end byte streams and reliable delivery?//79 +* How do peers establish end-to-end byte streams and reliable delivery? 82 82 * Examples: TCP, UDP, QUIC, SCTP, WebRTC DataChannels, Interpeer transport stack 83 83 84 84 85 - 86 86 ==== **7. Underlying Transport (Physical/Link Layer)** ==== 87 87 88 88 > Highly relevant for **offline-first / edge networks**, device-to-device communication, and mesh networks and relates to the hardware which facilitates connections. 89 89 90 -* //How does data move across the medium?//87 +* How does data move across the medium? 91 91 * Examples: Ethernet, Wi-Fi Direct / Wi-Fi Aware (post-AWDL), Bluetooth Mesh, LoRa, NFC, Cellular, CSMA/CA, TDMA, FHSS 92 92 93 - 94 - 95 95 ==== **8. Session & Connection Management** ==== 96 96 97 97 > Manages **connection lifecycle**, including authentication handshakes, reconnection after drops, and session continuation—especially important in lossy or mobile networks. 98 98 99 -* //How are connections initiated, authenticated, resumed, and kept alive?//94 +* How are connections initiated, authenticated, resumed, and kept alive? 100 100 * Examples: TLS handshake semantics, Noise IK/XX patterns, session tokens, keep-alive heartbeats, reconnection strategies, session resumption tickets 101 101 102 102 103 - 104 104 ==== **9. Content Addressing** ==== 105 105 106 106 > Content addressing ensures **immutability, verifiability, and deduplication**. Identity of data = cryptographic hash, enabling offline-first and tamper-evident systems. 107 107 108 -* //How is data addressed and verified by content, not location?//102 +* How is data addressed and verified by content, not location? 109 109 * Examples: IPFS CIDs, BitTorrent infohashes, Git hashes, SHA-256 addressing, Named Data Networking (NDN) 110 110 111 - 112 - 113 113 ==== **10. P2P Connectivity** ==== 114 114 115 -> Connectivity ensures peers bypass NATs/firewalls to reach each other. 107 +> Connectivity ensures peers bypass NATs/firewalls to reach each other. 116 116 117 -* //How can two peers connect directly across networks, firewalls, and NATs?//109 +* How can two peers connect directly across networks, firewalls, and NATs? 118 118 * Examples: IPv6 direct, NAT Traversal, STUN, TURN, ICE (used in WebRTC), UDP hole punching, UPnP 119 119 120 - 121 - 122 122 ==== **11. Session & Connection Management** ==== 123 123 124 124 > Manages **connection lifecycle**, including authentication handshakes, reconnection after drops, and session continuation. 125 125 126 -* //How are connections initiated, authenticated, resumed, and kept alive?//116 +* How are connections initiated, authenticated, resumed, and kept alive? 127 127 * Examples: TLS handshake semantics, Noise IK/XX patterns, session tokens, keep-alive heartbeats, reconnection strategies, session resumption tickets 128 128 129 - 130 - 131 131 ==== **12. Message Format & Serialization** ==== 132 132 133 133 > Serialization ensures **portable data representation**, forward-compatible schemas, and efficient messaging. IPLD provides content-addressed structuring for P2P graph data. 134 134 135 -* //How is data encoded, structured, and made interoperable between peers?//123 +* How is data encoded, structured, and made interoperable between peers? 136 136 * Examples: CBOR, Protocol Buffers, Cap’n Proto, JSON, ASN.1, IPLD schemas, Flatbuffers 137 137 138 - 139 - 140 140 ==== **13. File / Blob Synchronization** ==== 141 141 142 142 > Bulk data syncing has **different trade-offs** than small collaborative state (chunking, deduplication, partial transfer, resume logic). Critical for media and archival P2P use-cases. 143 143 144 - //How are large objects transferred and deduplicated efficiently across peers?//130 +How are large objects transferred and deduplicated efficiently across peers? 145 145 Examples: BitTorrent chunking, IPFS block-store, NDN segments, rsync-style delta sync, ZFS send-receive, streaming blob transfers 146 146 147 - 148 148 ==== **14. Local Storage & Processing Primitives** ==== 149 149 150 150 > Provides durable on-device state and local computation (event sourcing, materialization, compaction). Enables offline-first writes and deterministic replay. 151 151 152 -* //How do nodes persist, index, and process data locally—without external servers?//137 +* How do nodes persist, index, and process data locally—without external servers? 153 153 * Examples: RocksDB, LevelDB, SQLite, LMDB, local WALs/append-only logs, embedded stream processors (NATS Core JetStream mode, Actyx-like edge runtimes), Kafka-like libraries 154 154 155 155 156 - 157 157 ==== **15. Crash Resilience & Abortability** ==== 158 158 159 159 > 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 for Atomicity as part of the ACID abbreviation. 160 160 161 -* //How do nodes recover and maintain correctness under failure?//145 +* How do nodes recover and maintain correctness under failure? 162 162 * Examples: WALs, idempotent ops, partial log replay, transactional journaling, write fences 163 163 164 164 165 165 166 - 167 -))) 168 168 169 - 170 - 171 - 172 - 173 -(% class="col-xs-12 col-sm-4" %) 174 -((( 175 -{{box title=" **Contents**"}} 176 -{{toc depth="5"/}} 177 -{{/box}} 178 -))) 179 - 180 - 181 -(% class="col-xs-12 col-sm-12" %) 182 -((( 183 183 == Distributed Network Types == 184 184 185 185 ... ... @@ -190,12 +190,3 @@ 190 190 == Overview of P4P Networks == 191 191 192 192 {{include reference="Projects.WebHome"/}} 193 -))) 194 - 195 - 196 - 197 - 198 - 199 - 200 - 201 -)))