Commit 3e256f07f3ec22a89bfad3795bb6394d0cd4bf38
Updated FAQ (markdown)
Dominic Tarr committed on 3/27/2015, 2:24:05 PMParent: 82b73b416d8abb7c2999074298df6dac388a5e5e
Files changed
FAQ.md | changed |
FAQ.md | ||
---|---|---|
@@ -130,8 +130,23 @@ | ||
130 | 130 | ## consistent data |
131 | 131 | |
132 | 132 | Sometimes you would want to make sure that other users are aware of a given change. (this is very similar to a turn based game) this could be implemented by having "empty edits" that acknowledge a given change (one example might be making a todo task as "started" so that two people do not try to do the same thing at the same time) |
133 | 133 | |
134 | +## Is SSB highly available (AP) or highly consistent (CP)? | |
135 | + | |
136 | +SSB is highly-available (AP). Devices can create messages while offline, then synchronize later. This means all data is _generally_ eventually-consistent. It is possible to build a CP system on top of an AP system (but not the other way around). see [consistent data](#consistent_data) | |
137 | + | |
138 | +## Can I know if I have the latest messages from somebody? | |
139 | + | |
140 | +No, because it's possible for devices to drop and continue operating (a network "partition.") There's a proposal to used signed pings to measure the "freshness" of a feed, however this could only be used in small groups of interested peers. | |
141 | + | |
142 | +### Is there a global total order in SSB? | |
143 | + | |
144 | +No. Although there is a global [partial order](http://en.wikipedia.org/wiki/Partially_ordered_set#Formal_definition). An individual Feed has a internal [total order](http://en.wikipedia.org/wiki/Total_order). Every message contains a pointer to the previous message in that feed, so this allows a feed to be totally ordered. If feed A posts a message that links to a message in feed B, then we know that A's message is *after* B's. (because to know the hash of an object, that object must already exist) | |
145 | + | |
146 | +Messages also contain [monotonically increasing](http://en.wikipedia.org/wiki/Monotonic_function) UTC timestamps and sequence numbers, this means you can assign an order to any two messages, | |
147 | +however, there is no way to know that a timestamp really is correct. | |
148 | + | |
134 | 149 | ## deploy applications |
135 | 150 | |
136 | 151 | It would be possible to deploy applications over ssb by sending the javascript/etc for that application as an attachment. Then other users could run that app, which could provide an interface into a subset of ssb messages. |
137 | 152 | |
@@ -162,5 +177,4 @@ | ||
162 | 177 | |
163 | 178 | Since performing a security audit is a highly skilled task, most users will not be able to perform their own security audit. In this case, the user could "delegate" the auditing task to another user (or users) who perform the audit, posting a message declaring a given version safe to run. Since the user can choose their auditors independently, it would mean an attacker would have to compromise the developers and many auditors in order to get people to install malicious code. |
164 | 179 | |
165 | 180 | Auditing could also be applied to application permissons - of course, the decision about what permissions is reasonable for a given application is much simpler than looking at code and checking there is nothing unsafe. |
166 | - |
Built with git-ssb-web