-
Notifications
You must be signed in to change notification settings - Fork 9
/
glossary.tex
356 lines (308 loc) · 48.6 KB
/
glossary.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
% saturation depth}
\longnewglossaryentry{node}{name=node}{}
\longnewglossaryentry{fingerpointing}{name=fingerpointing}{Litigation scheme allowing upstream peers to shift blame to a downstream peer in the case of deferred responsibility.}
\longnewglossaryentry{Kademlia topology}{name=Kademlia topology}{A scale-free network topology that guarantees a path between any two nodes in $O(log(n))$ hops.}
\longnewglossaryentry{Kademlia connectivity}{name=Kademlia connectivity}{Connectivity pattern of a node $x$ in forwarding Kademlia where (1) there is at least one peer in each PO bin $0<\leq i<d$, and (2) no peer $y$ in the network such that $\mathit{PO}(x,y) \geq d$ and $y$ is not connected to $x$. }
% \longnewglossaryentry{resource update chunk}{name=resource update chunk}{}
\longnewglossaryentry{forwarding Kademlia}{name=forwarding Kademlia}{A recursive flavour of Kademlia routing that involves message relay.}
\longnewglossaryentry{Kademlia table}{name=Kademlia table}{Indexing of peers based on the proximity order of their addresses relative to the local overlay address.}
\longnewglossaryentry{saturated Kademlia table}{name=saturated Kademlia table}{Nodes with a saturated Kademlia table realise Kademlia connectivity.}
\longnewglossaryentry{retrieve request}{name=retrieve request, plural=retrieve requests}{A peer-to-peer protocol message that asks for the delivery of a chunk based on its address.}
\longnewglossaryentry{proximity order}{name=proximity order}{A measure of relatedness of two addresses on a discrete scale.}
\longnewglossaryentry{neighbourhood}{name=neighbourhood}{An area of a certain distance around an address.}
\longnewglossaryentry{retrievability}{name=retrievability}{The ability for a chunk to be retrieved in the network.}
\longnewglossaryentry{routability}{name=routability}{The ability for a chunk to be routed to a destination.}
% \longnewglossaryentry{practical routability}{name=practical routability}{TBD}
\longnewglossaryentry{redundant retrievability}{name=redundant retrievability}{A chunk is said to be redundantly retrievable with degree $r$ if it is retrievable and would remain so even after any $r$ nodes responsible for it leave the network.}
\longnewglossaryentry{chunk synchronisation}{name=chunk synchronisation}{The process in which a peer locally stores chunks received from an upstream peer.}
% \longnewglossaryentry{history sync state}{name=history sync state}{TBD}
% \longnewglossaryentry{live sync state}{name=live sync state}{TBD}
% \longnewglossaryentry{history syncing}{name=history syncing}{TBD}
% \longnewglossaryentry{session syncing}{name=session syncing}{TBD}
% \longnewglossaryentry{sync lag}{name=sync lag}{TBD}
% \longnewglossaryentry{maturity}{name=maturity}{TBD}
\longnewglossaryentry{chunk}{name=chunk, plural=chunks}{A fixed-sized data blob, the basic unit of storage in Swarm's DISC keyed by its address. Chunks can either be content addressed or single owner.}
\longnewglossaryentry{proximity}{name=proximity}{Proximity measures the relatedness of two addresses in the overlay address space. It is the inverse of the normalised logarithmic XOR distance metric.}
\longnewglossaryentry{saturation depth}{name=saturation depth}{The neighbourhood depth in the context of saturation (minimum cardinality) constraints on proximity bins outside the nearest neighbourhood.}
\longnewglossaryentry{area of responsibility}{name=area of responsibility}{The area of the overlay address space in the node's neighbourhood. A storer node is responsible for chunks belonging to this area.}
\longnewglossaryentry{radius of responsibility}{name=radius of responsibility}{The proximity order designating the area of responsibility.}
\longnewglossaryentry{guaranteed delivery}{name=guaranteed delivery}{Guaranteed in the sense that delivery failures due to network problems will result in direct error responses.}
\longnewglossaryentry{eventual consistency}{name=eventual consistency}{The guarantee that all chunks are redundantly retrievable once the neighbourhood peers have synchronised their content.}
\longnewglossaryentry{erasure code}{name=erasure code, plural={erasure codes}}{An error correction coding scheme which optimally inflates data of $n$ chunks with $k$ parities to allow any $n$ out of the $n+k$ chunks to recover the original data.}
\longnewglossaryentry{storer node}{name=storer node, plural=storer nodes, parent={node}}{A node that stores the requested chunk.}
\longnewglossaryentry{relaying node}{name=relaying node, plural=relaying nodes}{A node relaying messages in the context of forwarding Kademlia.}
\longnewglossaryentry{syncing}{name=syncing}{The process of exchanging chunks with neighbours in order to realise one's area of responsibility.}
\longnewglossaryentry{chunking}{name=chunking}{Splitting of data into chunks, to be stored in Swarm.}
\longnewglossaryentry{plausible deniability}{name=plausible deniability}{The ability to deny knowledge of any damnable actions committed by others.}
\longnewglossaryentry{feeds}{name=feeds}{Data structures based on single owner chunks, suitable for representing a variety of sequential data, such as versioning updates of a mutable resource or indexing messages for real-time data exchange. Feeds offer a persisted pull messaging system.}
\longnewglossaryentry{dapps}{name=dapps}{Applications benefitting from a decentralised infrastructure.}
\longnewglossaryentry{underlay network}{name=underlay network}{The lowest level base network through which nodes connect using a peer-to-peer network protocol as their transport layer.}
\longnewglossaryentry{enode}{name=enode}{An addressing scheme identifying a node's public key, ip and host port.}
\longnewglossaryentry{network ID}{name=network ID}{An ID used to differentiate between swarm networks, such as mainnet, testnets etc.}
\longnewglossaryentry{overlay topology}{name=overlay topology}{The connectivity graph realising a particular topology over the underlay network.}
\longnewglossaryentry{proximity order bin}{name=proximity order bin, plural={proximity order bins}}{An equivalence class of peers in regard to their proximity order.}
\longnewglossaryentry{churn}{name=network churn, text=churn}{The cycle of accumulation and attrition of nodes by a network.}
\longnewglossaryentry{hive protocol}{name=hive protocol}{The protocol used by nodes joining the network to discover their peers.}
\longnewglossaryentry{address book}{name=address book}{Kademlia table of a peer's known addresses.}
\longnewglossaryentry{immutable}{name=immutable chunk store, text=immutable}{A storage system where no replace or update operation is available on chunks.}
\longnewglossaryentry{reference}{name=chunk reference, text=reference}{information needed to retrieve and read a chunk; it is the address with an optional decryption key appended used for encrypted chunks.}
\longnewglossaryentry{content addressed chunk}{name=content addressed chunk, plural=content addressed chunks}{A chunk is content addressed when its address is determined by the chunk content itself. The address usually represents a fingerprint or digest of the data using some hash function. In Swarm, the default content addressed chunk uses the Binary Merkle Tree hash algorithm with Keccak256 base hash to determine its address.}
\longnewglossaryentry{single owner chunk}{name=single owner chunk, plural=single owner chunks}{A special type of chunk in Swarm whose integrity is ensured by the association of its payload to an identifier attested by the signature of its owner. The identifier and the owner's account determine the chunk address.}
\longnewglossaryentry{garbage collection}{name=garbage collection}{The selective purging process of removing unnecessary chunks from a node's local storage.}
\longnewglossaryentry{garbage collection strategy}{name=garbage collection strategy}{The process that determines which chunks are selected for removal during garbage collection.}
\longnewglossaryentry{direct delivery}{name=direct delivery}{Chunk delivery occurring in a single step via a lower-level network protocol.}
\longnewglossaryentry{backwarding}{name=backwarding}{A method of delivering a response to a forwarded request, where the response simply follows the request route back to the originator.}
\longnewglossaryentry{routed delivery}{name=routed delivery}{A hypothetical method of implementing chunk delivery using Kademlia routing independently of the initial request.}
\longnewglossaryentry{opportunistic caching}{name=opportunistic caching}{When a forwarding node receives a chunk, then the chunk is saved in case it may be requested again.}
\longnewglossaryentry{light node}{name=light node, plural={light nodes}}{The concept of light node refers to a special mode of operation necessitated by poor bandwidth environments, e.g., mobile devices on low throughput networks or devices allowing only transient or low-volume storage. Light nodes do not accept incoming connections.}
\longnewglossaryentry{chequebook contract}{name=chequebook contract}{Smart contract that allows the beneficiary to choose when payments are to be processed.}
\longnewglossaryentry{global balance}{name=global balance}{The amount of funds deposited in the chequebook to serve as collateral for the cheques.}
\longnewglossaryentry{newcomer}{name=newcomer}{A party entering the Swarm system with zero liquid funds.}
\longnewglossaryentry{raffle draw}{name=raffle draw}{Instance of the postage lottery draw repeated every $N$ blocks conducted by the postage lottery contract on the blockchain.}
\longnewglossaryentry{insider}{name=insider}{A peer inside the Swarm network that already has some funds.}
\longnewglossaryentry{postage stamp}{name={postage stamp}, plural={postage stamps} }{Proof of payment for pre-paid delivery and storage.}
\longnewglossaryentry{batch}{name=batch}{A group of chunks referenced under an intermediate node.}
\longnewglossaryentry{chunk span}{name=chunk span}{The length of data subsumed under an intermediate chunk.}
\longnewglossaryentry{Swarm manifest}{name={Swarm manifest}, plural={Swarm manifests} }{A structure that defines a mapping between arbitrary paths and files to handle collections.}
\longnewglossaryentry{manifest entry}{name=manifest entry}{Contains a reference to the Swarm root chunk of the representation of a file and also specifies the media mime type of the file.}
\longnewglossaryentry{root access}{name=root access}{Non-privileged access to encrypted content based on meta-information encoded in the root manifest entry for a document.}
\longnewglossaryentry{granted access}{name=granted access}{A type of selective access to encrypted content that requires \gloss{root access} as well as access credentials comprising either an authorized private key or passphrase.}
\longnewglossaryentry{encrypted reference}{name=encrypted reference}{Symmetric encryption of a Swarm reference to access controlled content.}
\longnewglossaryentry{access key}{name=access key}{A symmetric key used for encryption of reference to encrypted data.}
\longnewglossaryentry{session key}{name=session key}{One of the keys involved in the process of allowing selective access to content to multiple parties. }
\longnewglossaryentry{lookup key}{name=lookup key}{One of the keys involved in the process of allowing selective access to content for multiple parties. }
\longnewglossaryentry{access key decryption key}{name=access key decryption key}{The key granted by the publisher to a party in a multi-party selective access scenario, used to decrypt the global access key.}
\longnewglossaryentry{Trojan chunk}{name={Trojan chunk}, plural={Trojan chunks} }{A chunk containing a disguised message while appearing indistinguishable from other chunks. }
\longnewglossaryentry{neighbourhood notification}{name=neighbourhood notification}{Notification of a feed update which works without the issuer of the notification needing to know the identity of prospective posters.}
\longnewglossaryentry{targeted chunk delivery}{name=targeted chunk delivery}{A mechanism for requesting a chunk from an arbitrary neighbourhood where it is known to be stored and delivering it to an arbitrary neighbourhood where it is known to be needed.}
\longnewglossaryentry{direct notification from publisher}{name=direct notification from publisher}{The process where a recipient is directly notified of a feed update by the publisher or other parties known to have it.}
\longnewglossaryentry{RLP}{name=RLP}{An encoding scheme used to encode arbitrarily nested arrays of binary data.}
\longnewglossaryentry{distributed immutable store for chunks}{name=distributed immutable store for chunks}{Swarm's version of a distributed hash table for storing files. Swarm does not maintain a list of file locations, instead it actually stores pieces of the file directly on the node.}
\longnewglossaryentry{distributed hash table}{name=distributed hash table,plural=distributed hash tables}{A distributed system that provides an efficient lookup service, enabling any participating node to retrieve the value associated with a given key. }
\longnewglossaryentry{binary Merkle tree}{name={binary Merkle tree}}{A binary tree in which each leaf node is labelled with the cryptographic hash of a data block, and each non-leaf node is labelled with a hash of the labels of its child nodes.}
\longnewglossaryentry{binary Merkle tree chunk}{name=binary Merkle tree chunk}{The canonical content addressed chunk in Swarm.}
\longnewglossaryentry{binary Merkle tree hash}{name=binary Merkle tree hash}{The method used for calculating the address of binary Merkle tree chunks.}
\longnewglossaryentry{bzz account}{name=bzz account}{An account in Swarm, also referred to as \gloss{Swarm base account}.}
\longnewglossaryentry{enode URL scheme}{name=enode URL scheme}{A URL scheme used to describe an Ethereum node.}
\longnewglossaryentry{mining chunks}{name=mining chunks}{An example of chunk mining is generating an encrypted variant of chunk content so that the resulting chunk address satisfies certain constraints, e.g.\ being closer to or farther away from a particular address.}
\longnewglossaryentry{chunk value}{name=chunk value}{The value assigned to a chunk based on the price of the postage batch it is stamped with. It determines the order of chunks when a node prioritises for garbage collection.}
\longnewglossaryentry{postage lottery}{name=postage lottery}{A scheme to provide compensation to storing nodes through redistribution of the revenue resulting from postage stamps among the registered storers in a fair way.}
\longnewglossaryentry{security deposit}{name=security deposit}{The stake a node must put up when registering to be able to sell promissory storage receipts.}
\longnewglossaryentry{litigation}{name=litigation}{An on-chain process where nodes violating the rules of Swarm stand to lose their deposit.}
\longnewglossaryentry{challenge}{name=challenge}{User can submit a challenge when they attempt to retrieve insured content and fail to find a chunk.}
\longnewglossaryentry{access control trie}{name=access control trie}{A tree-like data structure containing access keys and other access information.}
\longnewglossaryentry{pinning}{name=pinning}{The mechanism that makes content sticky and prevents it from being removed by garbage collection.}
% \longnewglossaryentry{SWINDLE}{name=SWINDLE}{TBD} DELETE
\longnewglossaryentry{Secured With INsurance Deposit Litigation and Escrow}{name=Secured With INsurance Deposit Litigation and Escrow}{ See \gloss{SWINDLE}.}
\longnewglossaryentry{update notification}{name=update notification}{A notification that a feed has been updated.}
\longnewglossaryentry{upload tag}{name=upload tag}{An object that represents an upload and tracks the progress by counting the number of chunks that have reached a specific state.}
\longnewglossaryentry{singleton manifest}{name=singleton manifest}{A manifest that contains a single entry to a file.}
\longnewglossaryentry{range queries}{name=range queries}{Range queries will trigger the retrieval of all but only those chunks of the file that cover the desired range.}
\longnewglossaryentry{BZZ network ID}{name=bzz network ID}{The unique identifier assigned to the Swarm network.}
\longnewglossaryentry{Kademlia}{name=Kademlia}{A network connectivity or routing scheme based on bit prefix length used in distributed hash tables.}
\longnewglossaryentry{reference count}{name=reference count}{A property of a chunk used to prevent it from being garbage collected. It is increased when the chunk is pinned and decreased when it is unpinned.}
\longnewglossaryentry{cheque}{name=cheque, plural=cheques}{An off-chain payment method where the issuer signs a cheque specifying a beneficiary, a date, and an amount, which is given to the recipient as a token of promise to pay at a later date.}
\longnewglossaryentry{uploader}{name=uploader}{An entity uploading content to the Swarm network.}
\longnewglossaryentry{witness}{name=witness}{Digital signature issued by the entity that the payer of a postage stamp designates.}
\longnewglossaryentry{upload and disappear}{name=upload and disappear}{A method of deploying interactive dynamic content to be stored in the cloud so it may be retrieved even if the uploader goes offline.}
\longnewglossaryentry{world computer}{name=world computer}{Global infrastructure that supports data storage, transfer, and processing.}
\longnewglossaryentry{neighbourhood depth}{name=neighbourhood depth, parent=neighbourhood}{The distance from the node within which its peers are considered nearest neighbours. Also the highest PO $d$ such that the address range designated by the $d$-bit-long prefix of the node's overlay contains at least 3 other peers.}
\longnewglossaryentry{thin Kademlia table}{name=thin Kademlia table, parent={Kademlia table}}{A Kademlia table in which a single peer is present for each bin (up to a certain bin).}
\longnewglossaryentry{aligned incentives}{name=aligned incentives}{A mechanism of rewarding or penalising actors in a way that encourages the desired behaviour.}
\longnewglossaryentry{forwarding lag}{name=forwarding lag}{The time it takes for healthy nodes to forward messages.}
\longnewglossaryentry{sender anonymity}{name=sender anonymity}{As requests are relayed from peer-to-peer, those further down on the request cascade can never know who the originator of the request is.}
\longnewglossaryentry{decentralised network}{name=decentralised network}{A network architecture designed without any central nodes that other nodes would need to depend on.}
\longnewglossaryentry{load balancing}{name=load balancing}{The process of distributing a set of tasks over a set of nodes to make the process more efficient.}
\longnewglossaryentry{redundancy}{name=redundancy}{In the context of the distributed chunk store, redundancy is achieved through surplus replicas or so-called parities that contribute to the resilience of chunk storage in the face of churn and garbage collection.}
\longnewglossaryentry{inclusion proofs}{name=inclusion proofs}{A proof that a string is a substring of another string, for instance verifying that a string is included in a chunk.}
\longnewglossaryentry{span value}{name=span value}{An 8-byte encoding of the length of the data span subsumed under an intermediate chunk.}
\longnewglossaryentry{neighbourhood size}{name=neighbourhood size}{The number of nearest neighbours of a node. }
\longnewglossaryentry{NHS}{name=NHS, parent={neighbourhood size}}{neighbourhood size}
\longnewglossaryentry{postage batch}{name=postage batch, plural={postage batches}}{An ID associated with a verifiable payment on the chain which can be attached to one or more chunks as a postage stamp.}
\longnewglossaryentry{host}{name=host}{In the context of pinning, host is the volunteer pinner to be notified if a chunk that is part of the content they host is no longer found in the network.}
\longnewglossaryentry{simple ordered sequence}{name=simple ordered sequence}{An indexing scheme used by a feed type, where subsequent updates indexes are incrementing integers.}
\longnewglossaryentry{access control}{name=access control}{The selective restriction of access to read a document or collection in Swarm.}
\longnewglossaryentry{root access manifest}{name=root access manifest}{A special unencrypted manifest used as an entry point for access control.}
\longnewglossaryentry{witness batch}{name=witness batch}{Serves as a spot check for the applicant's claim that they store all chunks they are responsible for. The witness batch is random choice of the valid postage batches; the applicant must have actually stored all chunks in their neighbourhood.}
\longnewglossaryentry{mutable
resource updates}{name=mutable
resource updates}{Feeds that represent revisions of the same semantic entity.}
\longnewglossaryentry{series}{name=series, parent={feeds}}{Special kind of feeds representing a series of content connected by a common thread, theme, or author, such as social media status updates, a person's blog posts, or blocks of a blockchain.}
\longnewglossaryentry{partitions}{name=partitions, parent={feeds}}{Special kind of feeds, updates of which are meant to be accumulated or added to earlier ones, e.g.\ parts of a video stream.}
\longnewglossaryentry{sporadic feeds}{name=sporadic feeds, parent={feeds}}{Feeds with irregular asynchronicities, i.e.\ updates can occur with unpredictable gaps.}
\longnewglossaryentry{periodic feeds}{name=periodic feeds, parent={feeds}}{Feeds that publish updates at regularly recurring intervals.}
\longnewglossaryentry{real-time feeds}{name=real-time feeds, parent={feeds}}{Feeds where the update frequencies may vary within the temporal range of real-time human interaction.}
\longnewglossaryentry{pub-sub systems}{name={pub\slash sub systems}}{A publish/subscribe system is a form of asynchronous communication where any message published is immediately received by subscribers.}
\longnewglossaryentry{Ethereum Name Service}{name=Ethereum Name Service}{A system analogous to the DNS of the old web, translating human-readable names into system-specific identifiers, i.e.\ references in the case of Swarm.}
\longnewglossaryentry{epoch-based indexing}{name=epoch-based indexing}{Indexing based on the epoch in which an action took place.}
\longnewglossaryentry{outbox}{name=outbox}{a feed representing information intended for one or more third parties.}
\longnewglossaryentry{double ratchet}{name=double ratchet}{An industry-standard key management solution providing forward secrecy, backward secrecy, immediate decryption, and resilience to message loss.}
\longnewglossaryentry{feed index}{name=feed index}{A component of the identifier for the feed chunk, used for identification and retrieval purposes.}
\longnewglossaryentry{lookup strategy}{name=lookup strategy}{A strategy used for following updates to feeds.}
\longnewglossaryentry{feed aggregation}{name=feed aggregation}{The process of combining multiple sporadic feeds into a single periodic one.}
\longnewglossaryentry{outbox feed}{name=outbox feed}{A feed representing the outgoing messages of a persona.}
\longnewglossaryentry{extended triple Diffie--Hellmann key exchange}{name=extended triple Diffie--Hellmann key exchange}{The standard method used to establish the initial parameters of a double ratchet key-chain.}
\longnewglossaryentry{future secrecy}{name=future secrecy}{A feature of specific key agreement protocols that gives assurances that all other session keys will not be compromised, even if one or more session keys are obtained by an attacker.}
\longnewglossaryentry{authoritative version history}{name=authoritative version history}{A secure audit trail of the revisions of a mutable resource.}
\longnewglossaryentry{outbox index key chains}{name=outbox index key chains}{Additional key chains added to the double-ratchet key management (beside the ones for encryption) that make the feed update locations resilient to compromise.}
\longnewglossaryentry{real-time integrity check}{name=real-time integrity check}{For any deterministically indexed feed. Integrity translates to a non-forking or unique chain commitment.}
\longnewglossaryentry{indexing scheme}{name=indexing scheme, plural={indexing schemes}}{Defines the way the addresses of subsequent updates of a feed are calculated. The choice of indexing scheme depends on the type and usage characteristics (update frequency) of the feed.}
\longnewglossaryentry{pre-key bundle}{name=pre-key bundle}{Contains all the necessary information that an initiator needs to know about the responder to initiate a cryptographic handshake.}
\longnewglossaryentry{destination target}{name=destination target}{A bit sequence that represents a neighbourhood in the address space. In the context of chunk mining, it refers to the prefix that the mined address should match.}
\longnewglossaryentry{requestor node}{name=requestor node}{A node that requests information from the network.}
\longnewglossaryentry{anonymous retrieval}{name=anonymous retrieval}{The act of retrieving a chunk without disclosing the identity of the requestor node.}
\longnewglossaryentry{push syncing}{name=push syncing}{A network protocol responsible for delivering a chunk to its proper storer after it has been uploaded to an arbitrary node.}
\longnewglossaryentry{statement of custody receipt}{name=statement of custody receipt}{A receipt from the storer node to the uploader after successful \gloss{push syncing} of a chunk.}
\longnewglossaryentry{anonymous uploads}{name=anonymous uploads}{Uploading data while keeping the uploader's identity hidden, leveraging the forwarding Kademlia routing.}
\longnewglossaryentry{pull syncing}{name=pull syncing}{A network protocol responsible for eventual consistency and maximum resource utilisation by pulling chunks by a certain node.}
\longnewglossaryentry{upstream peer}{name=upstream peer}{The peer that precedes some other peer in the chain of forwarding.}
\longnewglossaryentry{forwarding node}{name={forwarding node},plural={forwarding nodes},parent={node}}{Nodes that engage in forwarding messages.}
\longnewglossaryentry{net user}{name=net user, plural=net users}{A node that consumes more resources of the Swarm network than it contributes.}
\longnewglossaryentry{net provider}{name=net provider, plural=net providers}{A node that contributes more resources to the Swarm network than it consumes.}
\longnewglossaryentry{honey token}{name=honey token}{TBD}
\longnewglossaryentry{spurious hop}{name=spurious hop}{Relaying traffic to a node without increasing proximity to the target address.}
\longnewglossaryentry{payment threshold}{name=payment threshold}{The value of debt at which a cheque is issued.}
\longnewglossaryentry{effective settlement threshold}{name=effective settlement threshold}{TBD}
\longnewglossaryentry{peer}{name=peer, plural=peers}{Nodes that are in relation to a particular node $x$ are called peers of $x$.}
\longnewglossaryentry{downstream peer}{name=downstream peer, parent={peer}}{A peer that succeeds some other peer in the chain of forwarding.}
\longnewglossaryentry{disconnect threshold}{name=disconnect threshold}{The debt threshold between peers that determines when a peer in debt will be disconnected.}
\longnewglossaryentry{uniformity requirement}{name=uniformity requirement}{A constraint on postage batches that chunks signed with same batch identifier must not have a common prefix longer than the depth.}
\longnewglossaryentry{prefix collision}{name=prefix collision}{In the context of postage stamps, when the owner of a batch attaches a stamp to two chunks with a shared prefix longer than the depth of the batch.}
\longnewglossaryentry{collision slot}{name=collision slot, plural= collision slots}{The collection of maximum length prefixes that any two chunks stamped with a postage batch are allowed to share. Each stamped chunk occupies a collision slot.}
\longnewglossaryentry{tragedy of the commons}{name=tragedy of the commons}{Disappearing content will have no negative consequence to any one storer node if no negative incentives are used.}
% swap, swear and swindle
\longnewglossaryentry{swindle}{name=swindle}{Incentive scheme where nodes monitor other nodes to check if they comply with their promise by submitting challenges according to a process of litigation.}
\longnewglossaryentry{swear}{name=swear}{Incentive scheme where nodes registered on the Swarm network are accountable and stand to lose their deposit if they are found to violate the rules of the Swarm in an on-chain litigation process.}
% \longnewglossaryentry{swap}{name=swap}{Incentive scheme where nodes are in quasi-permanent long term contact with their registered peers. Along these connections the peers are swapping chunks and receipts triggering swap accounting.}
\longnewglossaryentry{swap}{name=swap}{A Swarm accounting protocol with a tit-for-tat accounting scheme, enabling scalable microtransactions. It also includes a network protocol referred to as Swap.}
% \longnewglossaryentry{chunk-epoch}{name=chunk-epoch}{TBD}
\longnewglossaryentry{collect-and-run attack}{name=collect-and-run attack}{Situation where a party would collect the funds for some promised work, but not actually do the work.}
\longnewglossaryentry{addressed envelope}{name=addressed envelope}{A construct where the address of the single owner chunk is created before the chunk content is associated with it.}
\longnewglossaryentry{stamped addressed envelope}{name=stamped addressed envelope}{Addressed envelope with an attached stamp.}
\longnewglossaryentry{entanglement code}{name=entanglement code, plural=entanglement codes}{An error correction code optimized for bandwidth of repair.}
\longnewglossaryentry{Reed-Solomon coding}{name=Reed-Solomon coding}{A systemic erasure code that generates $k$ extra 'parity' chunks when applied to data consisting of $n$ chunks. These chunks allow for the reconstruction of the original blob as long as any $n$ out of the total $n + k$ chunks are available.}
\longnewglossaryentry{dispersed replica}{name=dispersed replica}{A construct to create and retrieve replicas of a chunk dispersed across the address space under diverse addresses.}
\longnewglossaryentry{missing chunk notification protocol}{name=missing chunk notification protocol}{A protocol used when a downloader cannot find a chunk, allowing it to initiate a recovery process and request the missing chunk from a pinner of that chunk.}
\longnewglossaryentry{recovery}{name=recovery}{A process of requesting a missing chunk from specific recovery hosts.}
\longnewglossaryentry{recovery request}{name=recovery request}{A request made to a recovery host to initiate the reupload of a missing chunk known to be pinned in its local store.}
\longnewglossaryentry{recovery feed}{name=recovery feed}{A publisher's feed advertising recovery targets to its consumers.}
\longnewglossaryentry{recovery host}{name=recovery host}{Pinning nodes that are willing to provide their pinned chunks in the context of recovery.}
\longnewglossaryentry{recovery response envelope}{name=recovery response envelope}{An addressed envelope which provides a way for recovery hosts to directly and efficiently respond to the originator of the recovery request without incurring additional costs or computational burden.}
%\longnewglossaryentry{prod}{name=prod}{}
\longnewglossaryentry{duplicate chunk}{name=duplicate chunk, plural=duplicate chunks}{We define a chunk as a duplicate (or seen) if and only if it is already found in the local store.}
\longnewglossaryentry{World Wide Web}{name=World Wide Web}{A part of the Internet where documents and other web resources are identified by Uniform Resource Locators and interlinked by hypertext.}
\longnewglossaryentry{Web 1.0}{name=Web 1.0, parent={World Wide Web}}{Websites where people were limited to viewing content in a passive manner.}
\longnewglossaryentry{Web 2.0}{name=Web 2.0, parent={World Wide Web}}{Describes websites that emphasise user-generated content, ease of use, participatory culture, and complex user interfaces for end users.}
\longnewglossaryentry{peer-to-peer}{name=peer-to-peer}{A network architecture where tasks or workloads are partitioned between equally privileged participants known as peers.}
\longnewglossaryentry{Web 3.0}{name=Web 3.0, parent={World Wide Web}}{A decentralised, censorship-resistant way of sharing and even collaboratively creating interactive content, while retaining full control over it.}
\longnewglossaryentry{BitTorrent}{name=BitTorrent}{A communication protocol for peer-to-peer file sharing used to distribute data and electronic files over the Internet.}
\longnewglossaryentry{seeder}{name=seeder}{A user who hosts the content in the BitTorrent peer-to-peer file exchange protocol.}
\longnewglossaryentry{Hypertext Transfer Protocol}{name=Hypertext Transfer Protocol}{An application protocol for distributed, collaborative, hypermedia information systems.}
\longnewglossaryentry{ZeroNet}{name=ZeroNet}{A decentralised web platform using Bitcoin cryptography and the BitTorrent network.}
\longnewglossaryentry{distributed web application}{name=distributed web application, plural={distributed web applications}}{A client side web application that leverages Web 3.0 technologies (e.g. Ethereum network) and does not rely on any central server.}
\longnewglossaryentry{InterPlanetary File System}{name=InterPlanetary File System}{A protocol and peer-to-peer network for storing and sharing data in a distributed file system.}
\longnewglossaryentry{freeriding}{name=freeriding}{The practice of benefiting from or taking advantage of shared or limited resources without providing appropriate compensation or contributing to their upkeep or sustainability.}
\longnewglossaryentry{incentive strategy}{name=incentive strategy}{A strategy that utilises rewards and penalties to encourage desired behaviour.}
\longnewglossaryentry{data slavery}{name=data slavery}{Refers to a situation where individuals lack control over their personal data and do not receive sufficient remuneration for its commercial use by companies.}
\longnewglossaryentry{collective information}{name=collective information}{Data generated through collective effort, such as public forum discussions, reviews, votes, polls, and wikis.}
\longnewglossaryentry{data silo}{name=data silo, plural={data silos}}{An isolated collection of information within an organisation that is not accessible by other parts of the organisation. In more general terms, it refers to the large datasets that organisations often keep exclusively for their own use.}
\longnewglossaryentry{distributed storage}{name=distributed storage}{A network of storage where information is stored on multiple nodes, possibly in replicated fashion.}
\longnewglossaryentry{overlay network}{name=overlay network}{The connectivity pattern of the secondary conceptual network in Swarm, a second network scheme overlayed over the base \gloss{underlay network}.}
\longnewglossaryentry{overlay address space}{name=overlay address space}{The address space of the overlay Swarm network consisting of 256-bit integers.}
\longnewglossaryentry{underlay address}{name=underlay address}{The address of a Swarm node on the underlay network, which might not remain stable between sessions.}
\longnewglossaryentry{protocol multiplexing}{name=protocol multiplexing}{The underlay network service can accommodate several separate protocols running on the same connection.}
\longnewglossaryentry{devp2p}{name=devp2p}{A set of network protocols forming the Ethereum peer-to-peer network. Implemented as a set of programming libraries with the same name.}
\longnewglossaryentry{libp2p}{name=libp2p}{A framework and suite of protocols for building peer-to-peer network applications.}
\longnewglossaryentry{overlay address}{name=overlay address}{The address used to identify each node running in the Swarm network. It is the basis for communication in the sense that it remains stable across sessions even if the underlay address changes.}
\longnewglossaryentry{nearest neighbours}{name=nearest neighbours}{Generally, peers that are closest to the node. In particular, it refers to peers residing within the neighbourhood depth of each other.}
\longnewglossaryentry{PO bin}{name=PO bin, parent={proximity order bin}}{A container containing nodes with the same relative proximity order as the origin node.}
\longnewglossaryentry{routing}{name=routing}{The process of relaying messages via a chain of peers ever closer to the destination.}
\longnewglossaryentry{balanced binary tree}{name=balanced binary tree}{A binary tree in which subtrees of every node differ in height by at most 1.}
\longnewglossaryentry{proximity order boundary}{name=proximity order boundary}{Such a boundary of the area of responsibility defines a \gloss{radius of responsibility} for the node.}
\longnewglossaryentry{empty bin}{name=empty bin}{Address book proximity order bin with no peers.}
\longnewglossaryentry{bottom-up depth-first strategy}{name={bottom-up, depth-first strategy}, parent={Kademlia}}{A method of discovering peers where filling an empty bin with one peer is more important than adding a new peer to a non-empty bin.}
\longnewglossaryentry{identifier}{name=identifier, parent={single owner chunk}}{A 32-byte key
used in single owner chunks: the payload is signed against it by the owner and hashed together with the owner's account results in the address.}
\longnewglossaryentry{owner}{name=owner, parent={single owner chunk}}{The account of the owner of single owner chunk.}
\longnewglossaryentry{payload}{name=payload, parent={single owner chunk}}{Part of a single owner chunk with size of maximum 4096 bytes of regular chunk data.}
\longnewglossaryentry{topic}{name=topic}{An arbitrary identifier chosen by the creating node and used to distinguish data structures.}
\longnewglossaryentry{redundant Kademlia connectivity}{name=redundant Kademlia connectivity}{A Kademlia connectivity that remains intact even if some peers churn.}
\longnewglossaryentry{stable node}{name=stable node, plural={stable nodes}, parent={node}}{A node that is stably online.}
\longnewglossaryentry{stream provider}{name=stream provider}{Provides of a stream of chunks to another node upon request.}
\longnewglossaryentry{bin ID}{name=bin ID}{A sequential counter per PO bin acting as an index of locally stored chunks on a node.}
\longnewglossaryentry{value-consistent garbage collection strategy}{name=value-consistent garbage collection strategy}{Strategy of garbage collection where a minimum postage stamp value accepted on a chunk coincides with the garbage collection cutoff value. }
\longnewglossaryentry{batch proof of custody}{name=batch proof of custody}{A canonically serialised ordered list of binary Merkle tree proofs.}
\longnewglossaryentry{feed topic}{name=feed topic}{A component of the identifier for the feed chunk, representing the topic or subject of the feed.}
\longnewglossaryentry{epoch-based feeds}{name=epoch-based feeds}{Special feeds that allow feeds with sporadic updates to be searchable.}
\longnewglossaryentry{epoch}{name=epoch}{A specific time period with a defined length, starting from a particular point in time.}
\longnewglossaryentry{epoch base time}{name=epoch base time}{The specific point in time when an epoch starts.}
\longnewglossaryentry{epoch grid}{name=epoch grid}{The arrangement of epochs where rows (referred to as levels) represent alternative partitioning of time into various disjoint epochs of the same length.}
\longnewglossaryentry{lookahead area}{name=lookahead area}{An area that can be part of search of the algorithm that finds the latest update of a epoch-based feed.}
\longnewglossaryentry{lookback area}{name=lookback area}{An area that can be part of search of the algorithm that finds the latest update of a epoch-based feed.}
\longnewglossaryentry{head start}{name=head start}{A configurable time interval that defines the waiting time before an exploration of an area for updates of epoch-based feeds. }
\longnewglossaryentry{hint}{name=hint}{A hint can be provided to provide a starting point for the discovery of feed updates.}
\longnewglossaryentry{epoch reference}{name=epoch reference}{A combination of an epoch base time and level used to identify a specific epoch.}
\longnewglossaryentry{fair data economy}{name=fair data economy}{An economy of processing data characterised by fair compensation of all parties involved in its creation or enrichment.}
\longnewglossaryentry{pinner}{name=pinner, plural={pinners}}{A node keeping a persistent copy of a chunk.}
\longnewglossaryentry{accessible chunk}{name=accessible chunk}{A chunk that is accessible by routing a message between the requester and the node closest to the chunk.}
\longnewglossaryentry{Swarm base account}{name=Swarm base account}{The Ethereum account associated with a Swarm node. See also \gloss{bzz account}.}
\longnewglossaryentry{prompt recovery of data}{name=prompt recovery of data}{The protocol used for missing chunk notification and recovery.}
\longnewglossaryentry{time to live}{name=time to live}{The lifespan or lifetime of a request or other message in a computer or network.}
\longnewglossaryentry{denial of service (DoS)}{name=denial of service (DoS)}{Denying of access to services by flooding those services with illegitimate requests.}
\longnewglossaryentry{raffle--apply--claim--earn}{name=raffle--apply--claim--earn (race)}{The postage lottery protocol for incentivising non-promissory storage by redistributing postage stamp revenue to simple non-staked storers applying with proof of custody.}
\longnewglossaryentry{tar stream}{name=tar stream}{In computing, tar is a computer software utility for combining multiple files into a single archive file, often referred to as a tarball.}
\longnewglossaryentry{shallow bin}{name={shallow bin}, plural={shallow bins} }{A bin that is relatively far away from a particular node and hence contains a larger part of the address space.}
\longnewglossaryentry{deep bin}{name={deep bin}, plural={deep bins}}{A bin that is relatively close to a particular node and hence contains a smaller part of the address space.}
\longnewglossaryentry{on-chain payment}{name={on-chain payment}, plural= {on-chain payments}}{A payment made through a blockchain network.}
\longnewglossaryentry{second-layer payment}{name={second-layer payment}, plural={second-layer payments} }{Payments processed by an additional system superimposed on a blockchain network.}
\longnewglossaryentry{tragedy of commons}{name={tragedy of commons} }{A situation in a shared-resource system where individual users prioritise their own interests contrary to common good, leading to the depletion or degradation of the shared resource through collective action.}
\longnewglossaryentry{blockhash}{name=blockhash}{The hash of a block which itself forms part of a blockchain.}
\longnewglossaryentry{recover security}{name=recover security}{A property that ensures that once an adversary manages to forge a message from A to B, no future message from A to B will be accepted by B.}
\longnewglossaryentry{recovery targets}{name=recovery targets}{Volunteering nodes that are advertised by the publisher as keeping pinned its publication globally pinned.}
\longnewglossaryentry{elliptic curve Diffie-Hellman}{name=elliptic curve Diffie-Hellman}{A key agreement protocol that allows two parties, each possessing an elliptic-curve public–private key pair, to establish a shared secret over an insecure channel.}
\longnewglossaryentry{key derivation function}{name=key derivation function}{A function that deterministically produces keys from an initial seed. It is often used concurrently by parties separately to generate secure messaging key schemes.}
\longnewglossaryentry{FAANG}{name=FAANG}{Facebook, Apple, Amazon, Netflix, and Google.}
\longnewglossaryentry{blockchain}{name=blockchain}{An immutable list of blocks, where each subsequent block contains a cryptographic hash of the preceding block.}
\longnewglossaryentry{trustless}{name=trustless}{A property of an economic interaction system where service provision is either realtime verifiable and/or providers are accountable, rewards and penalties are automatically enforced, and where -- as a result -- transaction security is no longer contingent upon reputation or trust and is therefore scalable.}
\longnewglossaryentry{Ethereum Virtual Machine}{name=Ethereum Virtual Machine (EVM)}{A Turing-complete byte code interpreter responsible for calculating state changes by executing the instructions of smart contracts.}
% ADDING Storage incentives part
\longnewglossaryentry{issuance volume}{name=issuance volume}{The amount of chunks that can be stamped with a postage batch. See also \gloss{batch size}.}
\longnewglossaryentry{storage slot}{name=storage slot, plural=storage slots}{A designated space in a postage batch where a specific chunk is assigned.}
\longnewglossaryentry{batch size}{name=batch size}{The amount of chunks that can be stamped with a postage batch. See also \gloss{issuance volume}.}
\longnewglossaryentry{batch depth}{name=batch depth}{The postage batch size specified as a power of 2.}
\longnewglossaryentry{uniformity depth}{name=uniformity depth}{The number of storage slots or buckets within a postage batch specified in powers of 2.}
\longnewglossaryentry{reserve}{name=reserve}{A fixed size of storage space on a node dedicated to storing chunks from its area of responsibility.}
\longnewglossaryentry{batch bins}{name=batch bins}{Equivalence classes of chunks from the point of view of batch expiry, with the same proximity order and same batch.}
\longnewglossaryentry{rules of the reserve}{name=rules of the reserve}{Rules that define the content of the reserve on a node.}
\longnewglossaryentry{reserve depth}{name=reserve depth}{The base 2 logarithm of the DISC reserve size, rounded up to the nearest integer.}
\longnewglossaryentry{effective demand}{name=effective demand}{The total number of chunks that have been successfully uploaded.}
\longnewglossaryentry{storage depth}{name=storage depth}{The lowest proximity order at which a compliant reserve stores all batch bins.}
\longnewglossaryentry{reward pot}{name=reward pot}{The total accumulated storage rent from all postage batches for a specific period.}
\longnewglossaryentry{storage rent}{name=storage rent}{The amount paid for storage by purchasing postage batches.}
\longnewglossaryentry{Schelling game}{name=Schelling game}{A mechanism that facilitates peer cooperation in redundantly storing data for the network's benefit, structured as a sequence of redistribution rounds.}
\longnewglossaryentry{neighbourhood selection anchor}{name=neighbourhood selection anchor}{A randomly selected value that determines which neighbourhood can participate in the redistribution round.}
\longnewglossaryentry{proof of entitlement}{name=proof of entitlement}{Evidence provided by storer nodes in a neighbourhood to the blockchain, demonstrating that they have the required reserve.}
\longnewglossaryentry{commit phase}{name=commit phase}{A phase in the redistribution round of the Schelling game.}
\longnewglossaryentry{reveal phase}{name=reveal phase}{The phase in the redistribution round of the Schelling game in which the participants who committed reveal their reserve commitment hash.}
\longnewglossaryentry{claim phase}{name=claim phase}{A phase in each round of the redistribution game when the winner submits a claim.}
\longnewglossaryentry{honest peers}{name=honest peers}{The set of applicants who agree with the selected truth in the round of the Schelling game.}
\longnewglossaryentry{liars}{name=liars}{The set of applicants who disagree with the selected truth in the round of the Schelling game.}
\longnewglossaryentry{saboteurs}{name=saboteurs}{The set of committers who either did not reveal data or revealed invalid data in the round of the Schelling game.}
\longnewglossaryentry{staking}{name=staking}{Mechanism used to steer nodes to provide reliable service in their neighbourhoods where they stake some amount that represents their commitment. }
\longnewglossaryentry{committed stake}{name=committed stake}{The amount of stake the stakers commit to in the staking contract.}
\longnewglossaryentry{stake balance}{name=stake balance}{The amount of stake serving as collateral by the staker.}
\longnewglossaryentry{reserve commitment}{name=reserve commitment}{The data provided by a node in the round of the Schelling game containing information about the reserve it is holding.}
\longnewglossaryentry{reserve sample}{name=reserve sample}{A part of the reserve used to test the consensus regarding the reserve content of a neighbourhood.}
\longnewglossaryentry{maximum syncing latency}{name=maximum syncing latency}{The agreed maximum duration of latency for live syncing after a peer connection starts.}
\longnewglossaryentry{stake density}{name=stake density}{The amount of stake per neighbourhood size. }
\longnewglossaryentry{sister nodes}{name=sister nodes}{The nodes in the other half of the old neighbourhood after a neighbourhood split.}
\longnewglossaryentry{proof of density}{name=proof of density}{A construct that allows the winners of the Schelling game round to demonstrate that the chunks within their storage depth fill their reserve.}
%\longnewglossaryentry{zzz}{name=zzz}{TBD}
%\longnewglossaryentry{zzz}{name=zzz}{TBD}
%%%%%%%%%%%%%%% END OF FILE
% \begin{figure}[htbp]
% \centering
% \caption{}
% \label{fig:}
% \end{figure}
% nodes: insurer, storer (commited to storing chunks), relayer, registered node, guardian, forwarder, custodian, requestor, staked node, (non-staked node)?, pinner node, stable node