git ssb

4+

Dominic / scuttlebot



Commit 6e4655879fd3faa61b89d8dd00325d6ab82cf389

Build

ssbc-sitegen@e9051a6e83ed57bde001859db4a1794b33b15655
cel committed on 12/21/2019, 4:46:20 AM
Parent: 91803410d3ba4b116e49dc7753e6ce01a4c5f91a

Files changed

api.htmlchanged
index.htmlchanged
plugins/blobs.htmlchanged
plugins/block.htmlchanged
plugins/friends.htmlchanged
plugins/gossip.htmlchanged
plugins/invite.htmlchanged
plugins/private.htmlchanged
plugins/replicate.htmlchanged
api.htmlView
@@ -1,353 +1,10 @@
1-<html>
2- <head>
3- <title>Scuttlebot - Documentation - SSBC</title>
4- <link rel="stylesheet" href="/normalize.css">
5- <link rel="stylesheet" href="/styles.css">
6- <link rel="stylesheet" href="/atelier-forest-light.css">
7- <script src="/highlight.pack.js"></script>
8- <script>hljs.initHighlightingOnLoad();</script>
1 +<!doctype html>
2 + <html>
3 + <head>
4 + <title>[Redirecting...] SSB-Server - Documentation - SSBC</title>
5 + <meta http-equiv="refresh" content="0;URL=https://github.com/ssbc/ssb-db/blob/master/api.md">
96 </head>
10- <body>
11- <div id="topnav">
12- <div id="topnav-inner">
13- <a class="topnav-item " href="/" title="Home">
14- Home<br><small>SSBC</small>
15- </a>
16- <a class="topnav-item " href="/patchwork" title="Patchwork">
17- Patchwork<br><small>Social Messaging App</small>
18- </a>
19- <a class="topnav-item " href="/ssb-server" title="Scuttlebot">
20- Scuttlebot<br><small>P2P Log Store</small>
21- </a>
22- <a class="topnav-item selected" href="/docs" title="Documentation">
23- Documentation<br><small>APIs, Articles</small>
24- </a>
25- </div>
26- </div>
27- <div id="layout">
28- <div id="leftnav">
29- <div class="leftnav-item">Key Concepts</div>
30- <div class="leftnav-subitems">
31- <div class="leftnav-item ">
32- <a href="/scuttlebutt-protocol-guide" title="Secure Scuttlebutt: a global database protocol">Secure Scuttlebutt: a global database protocol</a>
33- </div>
34- <div class="leftnav-item ">
35- <a href="/docs/ssb/linking.html" title="Content-Hash Linking">Content-Hash Linking</a>
36- </div>
37- <div class="leftnav-item ">
38- <a href="/docs/ssb/secret-handshake.html" title="Secret Handshake: a secure channel protocol">Secret Handshake: a secure channel protocol</a>
39- </div>
40- <div class="leftnav-item ">
41- <a href="/docs/ssb/end-to-end-encryption.html" title="Private Box: metadata-free encryption">Private Box: metadata-free encryption</a>
42- </div>
43- <div class="leftnav-item ">
44- <a href="/docs/ssb/faq.html" title="Frequently Asked Questions">Frequently Asked Questions</a>
45- </div>
46- </div>
47- <div class="leftnav-item">API Documentation</div>
48- <div class="leftnav-subitems">
49- <div class="leftnav-item selected">
50- <a href="/ssb-server/api.html" title="scuttlebot">scuttlebot</a>
51- </div>
52- <div class="leftnav-indent">
53- <div class="leftnav-item ">
54- <a href="/ssb-server/plugins/blobs.html" title="blobs">blobs</a>
55- </div>
56- <div class="leftnav-item ">
57- <a href="/ssb-server/plugins/block.html" title="block">block</a>
58- </div>
59- <div class="leftnav-item ">
60- <a href="/ssb-server/plugins/friends.html" title="friends">friends</a>
61- </div>
62- <div class="leftnav-item ">
63- <a href="/ssb-server/plugins/gossip.html" title="gossip">gossip</a>
64- </div>
65- <div class="leftnav-item ">
66- <a href="/ssb-server/plugins/invite.html" title="invite">invite</a>
67- </div>
68- <div class="leftnav-item ">
69- <a href="/ssb-server/plugins/private.html" title="private">private</a>
70- </div>
71- <div class="leftnav-item ">
72- <a href="/ssb-server/plugins/replicate.html" title="replicate">replicate</a>
73- </div>
74- </div>
75- <div class="leftnav-item ">
76- <a href="/ssb-client" title="ssb-client">ssb-client</a>
77- </div>
78- <div class="leftnav-item ">
79- <a href="/ssb-feed" title="ssb-feed">ssb-feed</a>
80- </div>
81- <div class="leftnav-item ">
82- <a href="/ssb-keys" title="ssb-keys">ssb-keys</a>
83- </div>
84- <div class="leftnav-item ">
85- <a href="/ssb-msgs" title="ssb-msgs">ssb-msgs</a>
86- </div>
87- <div class="leftnav-item ">
88- <a href="/ssb-msg-schemas" title="ssb-msg-schemas">ssb-msg-schemas</a>
89- </div>
90- <div class="leftnav-item ">
91- <a href="/ssb-ref" title="ssb-ref">ssb-ref</a>
92- </div>
93- <div class="leftnav-item ">
94- <a href="/ssb-markdown" title="ssb-markdown">ssb-markdown</a>
95- </div>
96- <div class="leftnav-item ">
97- <a href="/patchwork-threads" title="patchwork-threads">patchwork-threads</a>
98- </div>
99- <div class="leftnav-item ">
100- <a href="/ssb-config" title="ssb-config">ssb-config</a>
101- </div>
102- <div class="leftnav-item ">
103- <a href="/secret-stack" title="secret-stack">secret-stack</a>
104- </div>
105- <div class="leftnav-item ">
106- <a href="/muxrpc" title="muxrpc">muxrpc</a>
107- </div>
108- <div class="leftnav-item ">
109- <a href="/muxrpcli" title="muxrpcli">muxrpcli</a>
110- </div>
111- <div class="leftnav-item ">
112- <a href="/mdmanifest" title="mdmanifest">mdmanifest</a>
113- </div>
114- <div class="leftnav-item ">
115- <a href="/docs/api/pull-stream.html" title="pull-stream">pull-stream</a>
116- </div>
117- </div>
118- <div class="leftnav-item">Articles</div>
119- <div class="leftnav-subitems">
120- <div class="leftnav-item ">
121- <a href="/docs/articles/design-challenge-avoid-centralization-and-singletons.html" title="Design Challenge: Avoiding Centralization and Singletons">Design Challenge: Avoiding Centralization and Singletons</a>
122- </div>
123- <div class="leftnav-item ">
124- <a href="/docs/articles/design-challenge-sybil-attack.html" title="Design Challenge: Sybil Attacks">Design Challenge: Sybil Attacks</a>
125- </div>
126- <div class="leftnav-item ">
127- <a href="/docs/articles/using-trust-in-open-networks.html" title="Using Trust in Open Networks">Using Trust in Open Networks</a>
128- </div>
129- </div>
130- </div>
131- <div id="content">
132- <h1 id="scuttlebot">scuttlebot</h1>
133-<p>Secure-scuttlebutt API server</p>
134-<h2 id="get-async">get: async</h2>
135-<p>Get a message by its hash-id.</p>
136-<pre><code class="lang-bash">get {msgid}
137-</code></pre>
138-<pre><code class="lang-js">get(msgid, cb)
139-</code></pre>
140-<h2 id="createfeedstream-source">createFeedStream: source</h2>
141-<p>(feed) Fetch messages ordered by their claimed timestamps.</p>
142-<pre><code class="lang-bash">feed [--live] [--gt index] [--gte index] [--lt index] [--lte index] [--reverse] [--keys] [--values] [--limit n]
143-</code></pre>
144-<pre><code class="lang-js">createFeedStream({ live:, gt:, gte:, lt:, lte:, reverse:, keys:, values:, limit:, fillCache:, keyEncoding:, valueEncoding: })
145-</code></pre>
146-<p>Create a stream of the data in the database, ordered by the timestamp claimed by the author.
147-NOTE - the timestamp is not verified, and may be incorrect.
148-The range queries (gt, gte, lt, lte) filter against this claimed timestap.</p>
149-<ul>
150-<li><code>live</code> (boolean, default: <code>false</code>): Keep the stream open and emit new messages as they are received.</li>
151-<li><code>gt</code> (greater than), <code>gte</code> (greater than or equal) define the lower bound of the range to be streamed. Only records where the key is greater than (or equal to) this option will be included in the range. When <code>reverse=true</code> the order will be reversed, but the records streamed will be the same.</li>
152-<li><code>lt</code> (less than), <code>lte</code> (less than or equal) define the higher bound of the range to be streamed. Only key/value pairs where the key is less than (or equal to) this option will be included in the range. When <code>reverse=true</code> the order will be reversed, but the records streamed will be the same.</li>
153-<li><code>reverse</code> (boolean, default: <code>false</code>): a boolean, set true and the stream output will be reversed. Beware that due to the way LevelDB works, a reverse seek will be slower than a forward seek.</li>
154-<li><code>keys</code> (boolean, default: <code>true</code>): whether the <code>data</code> event should contain keys. If set to <code>true</code> and <code>values</code> set to <code>false</code> then <code>data</code> events will simply be keys, rather than objects with a <code>key</code> property.</li>
155-<li><code>values</code> (boolean, default: <code>true</code>): whether the <code>data</code> event should contain values. If set to <code>true</code> and <code>keys</code> set to <code>false</code> then <code>data</code> events will simply be values, rather than objects with a <code>value</code> property.</li>
156-<li><code>limit</code> (number, default: <code>-1</code>): limit the number of results collected by this stream. This number represents a <em>maximum</em> number of results and may not be reached if you get to the end of the data first. A value of <code>-1</code> means there is no limit. When <code>reverse=true</code> the highest keys will be returned instead of the lowest keys.</li>
157-<li><code>fillCache</code> (boolean, default: <code>false</code>): wheather LevelDB&#39;s LRU-cache should be filled with data read.</li>
158-<li><code>keyEncoding</code> / <code>valueEncoding</code> (string): the encoding applied to each read piece of data.</li>
159-</ul>
160-<h2 id="createlogstream-source">createLogStream: source</h2>
161-<p>(log) Fetch messages ordered by the time received.</p>
162-<pre><code class="lang-bash">log [--live] [--gt index] [--gte index] [--lt index] [--lte index] [--reverse] [--keys] [--values] [--limit n]
163-</code></pre>
164-<pre><code class="lang-js">createLogStream({ live:, gt:, gte:, lt:, lte:, reverse:, keys:, values:, limit:, fillCache:, keyEncoding:, valueEncoding: })
165-</code></pre>
166-<p>Creates a stream of the messages that have been written to this instance, in the order they arrived.
167-The objects in this stream will be of the form:</p>
168-<pre><code>{ key: Hash, value: Message, timestamp: timestamp }
169-</code></pre><p><code>timestamp</code> is the time which the message was received.
170-It is generated by <a href="https://github.com/dominictarr/monotonic-timestamp">monotonic-timestamp</a>.
171-The range queries (gt, gte, lt, lte) filter against this receive timestap.</p>
172-<ul>
173-<li><code>live</code> (boolean, default: <code>false</code>): Keep the stream open and emit new messages as they are received.</li>
174-<li><code>gt</code> (greater than), <code>gte</code> (greater than or equal) define the lower bound of the range to be streamed. Only records where the key is greater than (or equal to) this option will be included in the range. When <code>reverse=true</code> the order will be reversed, but the records streamed will be the same.</li>
175-<li><code>lt</code> (less than), <code>lte</code> (less than or equal) define the higher bound of the range to be streamed. Only key/value pairs where the key is less than (or equal to) this option will be included in the range. When <code>reverse=true</code> the order will be reversed, but the records streamed will be the same.</li>
176-<li><code>reverse</code> (boolean, default: <code>false</code>): a boolean, set true and the stream output will be reversed. Beware that due to the way LevelDB works, a reverse seek will be slower than a forward seek.</li>
177-<li><code>keys</code> (boolean, default: <code>true</code>): whether the <code>data</code> event should contain keys. If set to <code>true</code> and <code>values</code> set to <code>false</code> then <code>data</code> events will simply be keys, rather than objects with a <code>key</code> property.</li>
178-<li><code>values</code> (boolean, default: <code>true</code>): whether the <code>data</code> event should contain values. If set to <code>true</code> and <code>keys</code> set to <code>false</code> then <code>data</code> events will simply be values, rather than objects with a <code>value</code> property.</li>
179-<li><code>limit</code> (number, default: <code>-1</code>): limit the number of results collected by this stream. This number represents a <em>maximum</em> number of results and may not be reached if you get to the end of the data first. A value of <code>-1</code> means there is no limit. When <code>reverse=true</code> the highest keys will be returned instead of the lowest keys.</li>
180-<li><code>fillCache</code> (boolean, default: <code>false</code>): wheather LevelDB&#39;s LRU-cache should be filled with data read.</li>
181-<li><code>keyEncoding</code> / <code>valueEncoding</code> (string): the encoding applied to each read piece of data.</li>
182-</ul>
183-<h2 id="messagesbytype-source">messagesByType: source</h2>
184-<p>(logt) Retrieve messages with a given type, ordered by receive-time.</p>
185-<pre><code class="lang-bash">logt --type {type} [--live] [--gt index] [--gte index] [--lt index] [--lte index] [--reverse] [--keys] [--values] [--limit n]
186-</code></pre>
187-<pre><code class="lang-js">messagesByType({ type:, live:, gt:, gte:, lt:, lte:, reverse:, keys:, values:, limit:, fillCache:, keyEncoding:, valueEncoding: })
188-</code></pre>
189-<p>All messages must have a type, so this is a good way to select messages that an application might use.
190-Like in createLogStream, the range queries (gt, gte, lt, lte) filter against the receive timestap.</p>
191-<ul>
192-<li><code>type</code> (string): The type of the messages to emit.</li>
193-<li><code>live</code> (boolean, default: <code>false</code>): Keep the stream open and emit new messages as they are received.</li>
194-<li><code>gt</code> (greater than), <code>gte</code> (greater than or equal) define the lower bound of the range to be streamed. Only records where the key is greater than (or equal to) this option will be included in the range. When <code>reverse=true</code> the order will be reversed, but the records streamed will be the same.</li>
195-<li><code>lt</code> (less than), <code>lte</code> (less than or equal) define the higher bound of the range to be streamed. Only key/value pairs where the key is less than (or equal to) this option will be included in the range. When <code>reverse=true</code> the order will be reversed, but the records streamed will be the same.</li>
196-<li><code>reverse</code> (boolean, default: <code>false</code>): a boolean, set true and the stream output will be reversed. Beware that due to the way LevelDB works, a reverse seek will be slower than a forward seek.</li>
197-<li><code>keys</code> (boolean, default: <code>true</code>): whether the <code>data</code> event should contain keys. If set to <code>true</code> and <code>values</code> set to <code>false</code> then <code>data</code> events will simply be keys, rather than objects with a <code>key</code> property.</li>
198-<li><code>values</code> (boolean, default: <code>true</code>): whether the <code>data</code> event should contain values. If set to <code>true</code> and <code>keys</code> set to <code>false</code> then <code>data</code> events will simply be values, rather than objects with a <code>value</code> property.</li>
199-<li><code>limit</code> (number, default: <code>-1</code>): limit the number of results collected by this stream. This number represents a <em>maximum</em> number of results and may not be reached if you get to the end of the data first. A value of <code>-1</code> means there is no limit. When <code>reverse=true</code> the highest keys will be returned instead of the lowest keys.</li>
200-<li><code>fillCache</code> (boolean, default: <code>false</code>): wheather LevelDB&#39;s LRU-cache should be filled with data read.</li>
201-<li><code>keyEncoding</code> / <code>valueEncoding</code> (string): the encoding applied to each read piece of data.</li>
202-</ul>
203-<h2 id="createhistorystream-source">createHistoryStream: source</h2>
204-<p>(hist) Fetch messages from a specific user, ordered by sequence numbers.</p>
205-<pre><code class="lang-bash">hist {feedid} [seq] [live]
206-hist --id {feedid} [--seq n] [--live]
207-</code></pre>
208-<pre><code class="lang-js">createHistoryStream(id, seq, live)
209-createHistoryStream({ id:, seq:, live: })
210-</code></pre>
211-<p><code>createHistoryStream</code> and <code>createUserStream</code> serve the same purpose.
212-<code>createHistoryStream</code> exists as a separate call because it provides fewer range parameters, which makes it safer for RPC between untrusted peers.</p>
213-<ul>
214-<li><code>id</code> (FeedID, required): The id of the feed to fetch.</li>
215-<li><code>seq</code> (number, default: <code>0</code>): If <code>seq &gt; 0</code>, then only stream messages with sequence numbers greater than <code>seq</code>.</li>
216-<li><code>live</code> (boolean, default: <code>false</code>): Keep the stream open and emit new messages as they are received.</li>
217-</ul>
218-<h2 id="createuserstream-source">createUserStream: source</h2>
219-<p>Fetch messages from a specific user, ordered by sequence numbers.</p>
220-<pre><code class="lang-bash">createUserStream --id {feedid} [--live] [--gt index] [--gte index] [--lt index] [--lte index] [--reverse] [--keys] [--values] [--limit n]
221-</code></pre>
222-<pre><code class="lang-js">createUserStream({ id:, live:, gt:, gte:, lt:, lte:, reverse:, keys:, values:, limit:, fillCache:, keyEncoding:, valueEncoding: })
223-</code></pre>
224-<p><code>createHistoryStream</code> and <code>createUserStream</code> serve the same purpose.
225-<code>createHistoryStream</code> exists as a separate call because it provides fewer range parameters, which makes it safer for RPC between untrusted peers.</p>
226-<p>The range queries (gt, gte, lt, lte) filter against the sequence number.</p>
227-<ul>
228-<li><code>id</code> (FeedID, required): The id of the feed to fetch.</li>
229-<li><code>live</code> (boolean, default: <code>false</code>): Keep the stream open and emit new messages as they are received.</li>
230-<li><code>gt</code> (greater than), <code>gte</code> (greater than or equal) define the lower bound of the range to be streamed. Only records where the key is greater than (or equal to) this option will be included in the range. When <code>reverse=true</code> the order will be reversed, but the records streamed will be the same.</li>
231-<li><code>lt</code> (less than), <code>lte</code> (less than or equal) define the higher bound of the range to be streamed. Only key/value pairs where the key is less than (or equal to) this option will be included in the range. When <code>reverse=true</code> the order will be reversed, but the records streamed will be the same.</li>
232-<li><code>reverse</code> (boolean, default: <code>false</code>): a boolean, set true and the stream output will be reversed. Beware that due to the way LevelDB works, a reverse seek will be slower than a forward seek.</li>
233-<li><code>keys</code> (boolean, default: <code>true</code>): whether the <code>data</code> event should contain keys. If set to <code>true</code> and <code>values</code> set to <code>false</code> then <code>data</code> events will simply be keys, rather than objects with a <code>key</code> property.</li>
234-<li><code>values</code> (boolean, default: <code>true</code>): whether the <code>data</code> event should contain values. If set to <code>true</code> and <code>keys</code> set to <code>false</code> then <code>data</code> events will simply be values, rather than objects with a <code>value</code> property.</li>
235-<li><code>limit</code> (number, default: <code>-1</code>): limit the number of results collected by this stream. This number represents a <em>maximum</em> number of results and may not be reached if you get to the end of the data first. A value of <code>-1</code> means there is no limit. When <code>reverse=true</code> the highest keys will be returned instead of the lowest keys.</li>
236-<li><code>fillCache</code> (boolean, default: <code>false</code>): wheather LevelDB&#39;s LRU-cache should be filled with data read.</li>
237-<li><code>keyEncoding</code> / <code>valueEncoding</code> (string): the encoding applied to each read piece of data.</li>
238-</ul>
239-<h2 id="links-source">links: source</h2>
240-<p>Get a stream of messages, feeds, or blobs that are linked to/from an id.</p>
241-<pre><code class="lang-bash">links [--source id|filter] [--dest id|filter] [--rel value] [--keys] [--values] [--live] [--reverse]
242-</code></pre>
243-<pre><code class="lang-js">links({ source:, dest:, rel:, keys:, values:, live:, reverse: })
244-</code></pre>
245-<p>The objects in this stream will be of the form:</p>
246-<pre><code>{ source: ID, rel: String, dest: ID, key: MsgID }
247-</code></pre><ul>
248-<li><code>source</code> (string, optional): An id or filter, specifying where the link should originate from. To filter, just use the sigil of the type you want: <code>@</code> for feeds, <code>%</code> for messages, and <code>&amp;</code> for blobs.</li>
249-<li><code>dest</code> (string, optional): An id or filter, specifying where the link should point to. To filter, just use the sigil of the type you want: <code>@</code> for feeds, <code>%</code> for messages, and <code>&amp;</code> for blobs.</li>
250-<li><code>rel</code> (string, optional): Filters the links by the relation string.</li>
251-<li><code>live</code> (boolean, default: <code>false</code>): Keep the stream open and emit new messages as they are received.</li>
252-<li><code>reverse</code> (boolean, default: <code>false</code>): a boolean, set true and the stream output will be reversed. Beware that due to the way LevelDB works, a reverse seek will be slower than a forward seek.</li>
253-<li><code>keys</code> (boolean, default: <code>true</code>): whether the <code>data</code> event should contain keys. If set to <code>true</code> and <code>values</code> set to <code>false</code> then <code>data</code> events will simply be keys, rather than objects with a <code>key</code> property.</li>
254-<li><code>values</code> (boolean, default: <code>true</code>): whether the <code>data</code> event should contain values. If set to <code>true</code> and <code>keys</code> set to <code>false</code> then <code>data</code> events will simply be values, rather than objects with a <code>value</code> property.</li>
255-</ul>
256-<h2 id="relatedmessages-async">relatedMessages: async</h2>
257-<p>Retrieve the tree of messages related to the given id.</p>
258-<pre><code class="lang-bash">relatedMessages --id {msgid} [--rel value] [--count] [--parent]
259-</code></pre>
260-<pre><code class="lang-js">relatedMessages ({ id:, rel:, count:, parent: }, cb)
261-</code></pre>
262-<p>This is ideal for collecting things like threaded replies.
263-The output is a recursive structure like this:</p>
264-<pre><code class="lang-js">{
265- key: &lt;id&gt;,
266- value: &lt;msg&gt;,
267- related: [
268- &lt;recursive&gt;,...
269- ],
270- //number of messages below this point. (when opts.count = true)
271- count: &lt;int&gt;,
272- //the message this message links to. this will not appear on the bottom level.
273- //(when opts.parent = true)
274- parent: &lt;parent_id&gt;
275-}
276-</code></pre>
277-<ul>
278-<li><code>id</code> (MsgID): Root message, fetches messages related message to its ID.</li>
279-<li><code>rel</code> (string, optional): Filters the links by the relation string.</li>
280-<li><code>count</code> (boolean, default: <code>false</code>): Include a <code>count</code> of each message&#39;s decendant messages.</li>
281-<li><code>parent</code> (boolean, default: <code>false</code>): Include the <code>parent</code> id of each message.</li>
282-</ul>
283-<h2 id="add-async">add: async</h2>
284-<p>Add a well-formed message to the database.</p>
285-<pre><code class="lang-bash">cat ./message.json | add
286-add --author {feedid} --sequence {number} --previous {msgid} --timestamp {number} --hash sha256 --signature {sig} --content.type {type} --content.{...}
287-</code></pre>
288-<pre><code class="lang-js">add({ author:, sequence:, previous: timestamp:, hash: &#39;sha256&#39;, signature:, content: { type:, ... } }, cb)
289-</code></pre>
290-<ul>
291-<li><code>author</code> (FeedID): Public key of the author of the message.</li>
292-<li><code>sequence</code> (number): Sequence number of the message. (Starts from 1.)</li>
293-<li><code>previous</code> (MsgID): Hash-id of the previous message in the feed (null for seq=1).</li>
294-<li><code>timestamp</code> (number): Unix timestamp for the publish time.</li>
295-<li><code>hash</code> (string): The hash algorithm used in the message, should always be <code>sha256</code>.</li>
296-<li><code>signature</code> (string): A signature computed using the author pubkey and the content of the message (less the <code>signature</code> attribute).</li>
297-<li><code>content</code> (object): The content of the message.<ul>
298-<li><code>.type</code> (string): The object&#39;s type.</li>
299-</ul>
300-</li>
301-</ul>
302-<h2 id="publish-async">publish: async</h2>
303-<p>Construct a message using sbot&#39;s current user, and add it to the DB.</p>
304-<pre><code class="lang-bash">cat ./message-content.json | publish
305-publish --type {string} [--other-attributes...]
306-</code></pre>
307-<pre><code class="lang-js">publish({ type:, ... }, cb)
308-</code></pre>
309-<p>This is the recommended method for publishing new messages, as it handles the tasks of correctly setting the message&#39;s timestamp, sequence number, previous-hash, and signature.</p>
310-<ul>
311-<li><code>content</code> (object): The content of the message.<ul>
312-<li><code>.type</code> (string): The object&#39;s type.</li>
313-</ul>
314-</li>
315-</ul>
316-<h2 id="getaddress-sync">getAddress: sync</h2>
317-<p>Get the address of the server.</p>
318-<pre><code class="lang-bash">getAddress
319-</code></pre>
320-<pre><code class="lang-js">getAddress(cb)
321-</code></pre>
322-<h2 id="getlatest-async">getLatest: async</h2>
323-<p>Get the latest message in the database by the given feedid.</p>
324-<pre><code class="lang-bash">getLatest {feedid}
325-</code></pre>
326-<pre><code class="lang-js">getLatest(id, cb)
327-</code></pre>
328-<h2 id="latest-source">latest: source</h2>
329-<p>Get the seq numbers of the latest messages of all users in the database.</p>
330-<pre><code class="lang-bash">latest
331-</code></pre>
332-<pre><code class="lang-js">latest()
333-</code></pre>
334-<h2 id="latestsequence-async">latestSequence: async</h2>
335-<p>Get the sequence and local timestamp of the last received message from
336-a given <code>feedId</code>.</p>
337-<pre><code class="lang-bash">latestSequence {feedId}
338-</code></pre>
339-<pre><code class="lang-js">latest({feedId})
340-</code></pre>
341-<h2 id="whoami-sync">whoami: sync</h2>
342-<p>Get information about the current sbot user.</p>
343-<pre><code class="lang-bash">whoami
344-</code></pre>
345-<pre><code class="lang-js">whoami(cb)
346-</code></pre>
347-<p>Outputs information in the following form:</p>
348-<pre><code>{ id: FeedID }
349-</code></pre>
350- </div>
351- </div>
352- </body>
353- </html>
7 + <body>
8 + <p>Article moved: <a href="https://github.com/ssbc/ssb-db/blob/master/api.md">SSB-Server - Documentation - SSBC</a></p>
9 + </body>
10 + </html>
index.htmlView
@@ -15,9 +15,9 @@
1515 </a>
1616 <a class="topnav-item " href="/patchwork" title="Patchwork">
1717 Patchwork<br><small>Social Messaging App</small>
1818 </a>
19- <a class="topnav-item selected" href="/ssb-server" title="Scuttlebot">
19 + <a class="topnav-item " href="https://handbook.scuttlebutt.nz/guides/ssb-server/install" title="Scuttlebot">
2020 Scuttlebot<br><small>P2P Log Store</small>
2121 </a>
2222 <a class="topnav-item " href="/docs" title="Documentation">
2323 Documentation<br><small>APIs, Articles</small>
@@ -30,15 +30,15 @@
3030 <a href="/ssb-server" title="Scuttlebot">Scuttlebot</a>
3131 </div>
3232 <div class="leftnav-subitems">
3333 <div class="leftnav-item ">
34- <a href="/docs/scuttlebot/install.html" title="Install">Install</a>
34 + <a href="https://handbook.scuttlebutt.nz/guides/ssb-server/install" title="Install">Install</a>
3535 </div>
3636 <div class="leftnav-item ">
37- <a href="/docs/scuttlebot/tutorial.html" title="Tutorial">Tutorial</a>
37 + <a href="https://handbook.scuttlebutt.nz/guides/ssb-server/tutorial" title="Tutorial">Tutorial</a>
3838 </div>
3939 <div class="leftnav-item ">
40- <a href="/scuttlebot/api.html" title="API / CLI Reference">API / CLI Reference</a>
40 + <a href="https://github.com/ssbc/ssb-db/blob/master/api.md" title="API / CLI Reference">API / CLI Reference</a>
4141 </div>
4242 </div>
4343 <div class="leftnav-item">Examples</div>
4444 <div class="leftnav-subitems">
@@ -54,155 +54,205 @@
5454 </div>
5555 <div class="leftnav-item">Howto Guides</div>
5656 <div class="leftnav-subitems">
5757 <div class="leftnav-item ">
58- <a href="/docs/scuttlebot/howto-setup-a-pub.html" title="Setup a Pub">Setup a Pub</a>
58 + <a href="https://handbook.scuttlebutt.nz/guides/pubs/setup-a-pub" title="Setup a Pub">Setup a Pub</a>
5959 </div>
6060 <div class="leftnav-item ">
61- <a href="/docs/scuttlebot/howto-create-a-js-client.html" title="Create a JS Client">Create a JS Client</a>
61 + <a href="https://handbook.scuttlebutt.nz/guides/ssb-server/create-a-js-client" title="Create a JS Client">Create a JS Client</a>
6262 </div>
6363 <div class="leftnav-item ">
64- <a href="/docs/scuttlebot/howto-get-your-id.html" title="Get your ID">Get your ID</a>
64 + <a href="https://handbook.scuttlebutt.nz/guides/ssb-server/get-your-id" title="Get your ID">Get your ID</a>
6565 </div>
6666 <div class="leftnav-item ">
67- <a href="/docs/scuttlebot/howto-get-your-address.html" title="Get your Address">Get your Address</a>
67 + <a href="https://handbook.scuttlebutt.nz/guides/ssb-server/get-your-address" title="Get your Address">Get your Address</a>
6868 </div>
6969 <div class="leftnav-item ">
70- <a href="/docs/scuttlebot/howto-publish-a-post.html" title="Publish a Post">Publish a Post</a>
70 + <a href="https://handbook.scuttlebutt.nz/guides/ssb-server/publish-a-post" title="Publish a Post">Publish a Post</a>
7171 </div>
7272 <div class="leftnav-item ">
73- <a href="/docs/scuttlebot/howto-publish-a-file.html" title="Publish a File">Publish a File</a>
73 + <a href="https://handbook.scuttlebutt.nz/guides/ssb-server/publish-a-file" title="Publish a File">Publish a File</a>
7474 </div>
7575 <div class="leftnav-item ">
76- <a href="/docs/scuttlebot/howto-publish-encrypted-messages.html" title="Publish Encrypted Messages">Publish Encrypted Messages</a>
76 + <a href="https://handbook.scuttlebutt.nz/guides/ssb-server/publish-encrypted-messages" title="Publish Encrypted Messages">Publish Encrypted Messages</a>
7777 </div>
7878 <div class="leftnav-item ">
79- <a href="/docs/scuttlebot/howto-follow-unfollow.html" title="Follow/Unfollow">Follow/Unfollow</a>
79 + <a href="https://handbook.scuttlebutt.nz/guides/ssb-server/follow-unfollow" title="Follow/Unfollow">Follow/Unfollow</a>
8080 </div>
8181 <div class="leftnav-item ">
82- <a href="/docs/scuttlebot/howto-announce-a-pub-server.html" title="Announce a Pub Server">Announce a Pub Server</a>
82 + <a href="https://handbook.scuttlebutt.nz/guides/pubs/announce-a-pub-server" title="Announce a Pub Server">Announce a Pub Server</a>
8383 </div>
8484 <div class="leftnav-item ">
85- <a href="/docs/scuttlebot/howto-create-an-invite.html" title="Create an Invite">Create an Invite</a>
85 + <a href="https://handbook.scuttlebutt.nz/guides/pubs/create-an-invite" title="Create an Invite">Create an Invite</a>
8686 </div>
8787 <div class="leftnav-item ">
8888 <a href="/docs/scuttlebot/howto-use-an-invite.html" title="Use an Invite">Use an Invite</a>
8989 </div>
9090 <div class="leftnav-item ">
91- <a href="/docs/scuttlebot/howto-update-your-profile.html" title="Update your Profile">Update your Profile</a>
91 + <a href="https://handbook.scuttlebutt.nz/guides/ssb-server/update-your-profile" title="Update your Profile">Update your Profile</a>
9292 </div>
9393 </div>
9494 </div>
9595 <div id="content">
96- <h1 id="scuttlebot">Scuttlebot</h1>
97-<p>Scuttlebot is an open source <strong>peer-to-peer log store</strong> used as a database, identity provider, and messaging system.
96 + <h1 id="ssb-server">ssb-server</h1>
97 +<p>ssb-server is an open source <strong>peer-to-peer log store</strong> used as a database, identity provider, and messaging system.
9898 It has:</p>
9999 <ul>
100100 <li>Global replication</li>
101-<li>File-syncronization </li>
101 +<li>File-synchronization</li>
102102 <li>End-to-end encryption</li>
103103 </ul>
104-<p>Scuttlebot behaves just like a <a href="http://www.kappa-architecture.com/">Kappa Architecture DB</a>.
104 +<p><code>ssb-server</code> behaves just like a <a href="http://milinda.pathirage.org/kappa-architecture.com/">Kappa Architecture DB</a>.
105105 In the background, it syncs with known peers.
106106 Peers do not have to be trusted, and can share logs and files on behalf of other peers, as each log is an unforgeable append-only message feed.
107-This means Scuttlebots comprise a <a href="https://en.wikipedia.org/wiki/Gossip_protocol">global gossip-protocol mesh</a> without any host dependencies.</p>
107 +This means ssb-servers comprise a <a href="https://en.wikipedia.org/wiki/Gossip_protocol">global gossip-protocol mesh</a> without any host dependencies.</p>
108 +<p>If you are looking to use ssb-server to run a pub, consider using <a href="https://github.com/ssbc/ssb-minimal-pub-server">ssb-minimal-pub-server</a> instead.</p>
108109 <p><strong>Join us in #scuttlebutt on freenode.</strong></p>
109110 <p><a href="http://travis-ci.org/ssbc/ssb-server"><img src="https://secure.travis-ci.org/ssbc/ssb-server.png" alt="build status"></a></p>
110-<h2 id="example-usage">Example Usage</h2>
111-<pre><code class="lang-bash"># In bash:
111 +<h2 id="install">Install</h2>
112 +<p>To add <code>ssb-server</code> to your available CLI commands, install it using the <code>-g</code> global flag:</p>
113 +<pre><code>npm install -g ssb-server
114 +</code></pre><h2 id="applications">Applications</h2>
115 +<p>There are already several applications built on <code>ssb-server</code>,
116 +one of the best ways to learn about secure-scuttlebutt is to poke around in these applications.</p>
117 +<ul>
118 +<li><a href="http://github.com/ssbc/patchwork">patchwork</a> is a discussion platform that we use to anything and everything concerning ssb and decentralization.</li>
119 +<li><a href="http://github.com/ssbc/patchbay">patchbay</a> is another take on patchwork - it&#39;s compatible, less polished, but more modular. The main goal of patchbay is to be very easy to add features to.</li>
120 +<li><a href="https://github.com/clehner/git-ssb">git-ssb</a> is git (&amp; github!) on top of secure-scuttlebutt. Although we still keep our repos on github, primary development is via git-ssb.</li>
121 +</ul>
122 +<p>It is recommended to get started with patchwork, and then look into git-ssb and patchbay.</p>
123 +<h2 id="starting-an-ssb-server">Starting an <code>ssb-server</code></h2>
124 +<h3 id="command-line-usage-example">Command Line Usage Example</h3>
125 +<p>Start the server with extra log detail
126 +Leave this running in its own terminal/window</p>
127 +<pre><code class="lang-bash">ssb-server start --logging.level=info
128 +</code></pre>
129 +<h3 id="javascript-usage-example">Javascript Usage Example</h3>
130 +<pre><code class="lang-js">var Server = require(&#39;ssb-server&#39;)
131 +var config = require(&#39;ssb-config&#39;)
132 +var fs = require(&#39;fs&#39;)
133 +var path = require(&#39;path&#39;)
112134
113-# publish a message
114-sbot publish --type post --text &quot;My First Post!&quot;
135 +// add plugins
136 +Server
137 + .use(require(&#39;ssb-master&#39;))
138 + .use(require(&#39;ssb-gossip&#39;))
139 + .use(require(&#39;ssb-replicate&#39;))
140 + .use(require(&#39;ssb-backlinks&#39;))
115141
142 +var server = Server(config)
143 +
144 +// save an updated list of methods this server has made public
145 +// in a location that ssb-client will know to check
146 +var manifest = server.getManifest()
147 +fs.writeFileSync(
148 + path.join(config.path, &#39;manifest.json&#39;), // ~/.ssb/manifest.json
149 + JSON.stringify(manifest)
150 +)
151 +</code></pre>
152 +<p>see: <a href="https://github.com/ssbc/ssb-config">github.com/ssbc/<strong>ssb-config</strong></a> for custom configuration.</p>
153 +<h2 id="calling-ssb-server-functions">Calling <code>ssb-server</code> Functions</h2>
154 +<p>There are a variety of ways to call <code>ssb-server</code> methods, from a command line as well as in a javascript program.</p>
155 +<h3 id="command-line-usage-example">Command Line Usage Example</h3>
156 +<p>The command <code>ssb-server</code> can also used to call the running <code>ssb-server</code>.</p>
157 +<p>Now, in a separate terminal from the one where you ran <code>ssb-server start</code>, you can run commands such as the following:</p>
158 +<pre><code class="lang-bash"># publish a message
159 +ssb-server publish --type post --text &quot;My First Post!&quot;
160 +
116161 # stream all messages in all feeds, ordered by publish time
117-sbot feed
162 +ssb-server feed
118163
119164 # stream all messages in all feeds, ordered by receive time
120-sbot log
165 +ssb-server log
121166
122167 # stream all messages by one feed, ordered by sequence number
123-sbot hist $FEED_ID
168 +ssb-server hist --id $FEED_ID
124169 </code></pre>
125-<pre><code class="lang-js">// In javascript:
170 +<h3 id="javascript-usage-example">Javascript Usage Example</h3>
171 +<p>Note that the following involves using a separate JS package, called <a href="https://github.com/ssbc/ssb-client">ssb-client</a>. It is most suitable for connecting to a running <code>ssb-server</code> and calling its methods. To see further distinctions between <code>ssb-server</code> and <code>ssb-client</code>, check out this <a href="https://handbook.scuttlebutt.nz/guides/ssb-server-context">handbook article</a>.</p>
172 +<pre><code class="lang-js">var pull = require(&#39;pull-stream&#39;)
173 +var Client = require(&#39;ssb-client&#39;)
126174
127-var pull = require(&#39;pull-stream&#39;)
128-var ssbClient = require(&#39;ssb-client&#39;)
129-
130-// create a scuttlebot client using default settings
131-// (server at localhost:8080, using key found at ~/.ssb/secret)
132-ssbClient(function (err, sbot) {
175 +// create a ssb-server client using default settings
176 +// (server at localhost:8080, using key found at ~/.ssb/secret, and manifest we wrote to `~/.ssb/manifest.json` above)
177 +Client(function (err, server) {
133178 if (err) throw err
134179
135180 // publish a message
136- sbot.publish({ type: &#39;post&#39;, text: &#39;My First Post!&#39; }, function (err, msg) {
181 + server.publish({ type: &#39;post&#39;, text: &#39;My First Post!&#39; }, function (err, msg) {
137182 // msg.key == hash(msg.value)
138183 // msg.value.author == your id
139184 // msg.value.content == { type: &#39;post&#39;, text: &#39;My First Post!&#39; }
140185 // ...
141186 })
142187
143188 // stream all messages in all feeds, ordered by publish time
144189 pull(
145- ssb.createFeedStream(),
190 + server.createFeedStream(),
146191 pull.collect(function (err, msgs) {
147192 // msgs[0].key == hash(msgs[0].value)
148193 // msgs[0].value...
149194 })
150195 )
151196
152197 // stream all messages in all feeds, ordered by receive time
153198 pull(
154- ssb.createLogStream(),
199 + server.createLogStream(),
155200 pull.collect(function (err, msgs) {
156201 // msgs[0].key == hash(msgs[0].value)
157202 // msgs[0].value...
158203 })
159204 )
160205
161206 // stream all messages by one feed, ordered by sequence number
162207 pull(
163- ssb.createHistoryStream(feedId),
208 + server.createHistoryStream({ id: &lt; feedId &gt; }),
164209 pull.collect(function (err, msgs) {
165210 // msgs[0].key == hash(msgs[0].value)
166211 // msgs[0].value...
167212 })
168213 )
169214 })
170215 </code></pre>
171-<h2 id="use-cases">Use-cases</h2>
172-<p>Scuttlebot&#39;s message-based data structure makes it ideal for mail and forum applications (see <a href="https://ssbc.github.io/patchwork/">Patchwork</a>).
216 +<h2 id="use-cases">Use Cases</h2>
217 +<p><code>ssb-server</code>&#39;s message-based data structure makes it ideal for mail and forum applications (see <a href="https://ssbc.github.io/patchwork/">Patchwork</a>).
173218 However, it is sufficiently general to be used to build:</p>
174219 <ul>
175220 <li>Office tools (calendars, document-sharing, tasklists)</li>
176221 <li>Wikis</li>
177222 <li>Package managers</li>
178223 </ul>
179-<p>Because Scuttlebot doesn&#39;t depend on hosts, its users can synchronize over WiFi or any other connective medium, making it great for <a href="https://en.wikipedia.org/wiki/Sneakernet">Sneakernets</a>.</p>
180-<p>Scuttlebot is <a href="https://en.wikipedia.org/wiki/Eventual_consistency">eventually-consistent with peers</a>, and requires exterior coordination to create strictly-ordered transactions.
224 +<p>Because <code>ssb-server</code> doesn&#39;t depend on hosts, its users can synchronize over WiFi or any other connective medium, making it great for <a href="https://en.wikipedia.org/wiki/Sneakernet">Sneakernets</a>.</p>
225 +<p><code>ssb-server</code> is <a href="https://en.wikipedia.org/wiki/Eventual_consistency">eventually-consistent with peers</a>, and requires exterior coordination to create strictly-ordered transactions.
181226 Therefore, by itself, it would probably make a poor choice for implementing a crypto-currency.
182227 (We get asked that a lot.)</p>
183228 <hr>
184229 <h3 id="getting-started">Getting Started</h3>
185230 <ul>
186-<li><a href="https://ssbc.github.io/docs/scuttlebot/install.html">Install</a> - Setup instructions</li>
187-<li><a href="https://ssbc.github.io/docs/scuttlebot/tutorial.html">Tutorial</a> - Primer on developing with Scuttlebot</li>
188-<li><a href="https://ssbc.github.io/docs/api/scuttlebot.html">API / CLI Reference</a></li>
231 +<li><a href="https://handbook.scuttlebutt.nz/guides/ssb-server/install">Install</a> - Setup instructions</li>
232 +<li><a href="https://handbook.scuttlebutt.nz/guides/ssb-server/tutorial">Tutorial</a> - Primer on developing with ssb-server</li>
233 +<li><a href="https://scuttlebot.io/apis/scuttlebot/ssb.html">API / CLI Reference</a> (out of date, but still the best reference)</li>
234 +<li><a href="https://github.com/ssbc/ssb-config">ssb-config</a> - a module which helps build config to start ssb-server with</li>
235 +<li><a href="https://github.com/ssbc/ssb-client">ssb-client</a> - make a remote connection to the server</li>
236 +<li><a href="https://modules.scuttlebutt.nz">Modules docs</a> - see an overview of all the modules</li>
189237 </ul>
190238 <h3 id="key-concepts">Key Concepts</h3>
191239 <ul>
192-<li><a href="https://ssbc.github.io/secure-scuttlebutt/">Secure Scuttlebutt</a>, Scuttlebot&#39;s global database protocol</li>
240 +<li><a href="https://ssbc.github.io/scuttlebutt-protocol-guide/">Secure Scuttlebutt</a>, ssb-server&#39;s global database protocol</li>
193241 <li><a href="https://ssbc.github.io/docs/ssb/linking.html">Content Hash Linking</a></li>
194-<li><a href="https://ssbc.github.io/docs/ssb/secret-handshake.html">Secret Handshake</a>, Scuttlebot&#39;s transport-layer security protocol</li>
195-<li><a href="https://ssbc.github.io/docs/ssb/end-to-end-encryption.html">Private Box</a>, Scuttlebot&#39;s end-to-end security protocol</li>
242 +<li><a href="https://ssbc.github.io/docs/ssb/secret-handshake.html">Secret Handshake</a>, ssb-server&#39;s transport-layer security protocol</li>
243 +<li><a href="https://ssbc.github.io/docs/ssb/end-to-end-encryption.html">Private Box</a>, ssb-server&#39;s end-to-end security protocol</li>
196244 <li><a href="https://ssbc.github.io/docs/ssb/faq.html">Frequently Asked Questions</a></li>
197245 </ul>
198246 <h3 id="further-reading">Further Reading</h3>
199247 <ul>
200248 <li><a href="https://ssbc.github.io/docs/articles/design-challenge-avoid-centralization-and-singletons.html">Design Challenge: Avoid Centralization and Singletons</a></li>
201249 <li><a href="https://ssbc.github.io/docs/articles/design-challenge-sybil-attack.html">Design Challenge: Sybil Attacks</a></li>
202250 <li><a href="https://ssbc.github.io/docs/articles/using-trust-in-open-networks.html">Using Trust in Open Networks</a></li>
203251 </ul>
252 +<h1 id="license">License</h1>
253 +<p>MIT</p>
204254
205255 </div>
206256 </div>
207257 </body>
208- </html>
258 + </html>
plugins/blobs.htmlView
@@ -1,214 +1,10 @@
1-<html>
2- <head>
3- <title>Scuttlebot Blobs Plugin - Documentation - SSBC</title>
4- <link rel="stylesheet" href="/normalize.css">
5- <link rel="stylesheet" href="/styles.css">
6- <link rel="stylesheet" href="/atelier-forest-light.css">
7- <script src="/highlight.pack.js"></script>
8- <script>hljs.initHighlightingOnLoad();</script>
1 +<!doctype html>
2 + <html>
3 + <head>
4 + <title>[Redirecting...] Scuttlebot Blobs Plugin - Documentation - SSBC</title>
5 + <meta http-equiv="refresh" content="0;URL=https://scuttlebot.io/apis/scuttlebot/blobs.html">
96 </head>
10- <body>
11- <div id="topnav">
12- <div id="topnav-inner">
13- <a class="topnav-item " href="/" title="Home">
14- Home<br><small>SSBC</small>
15- </a>
16- <a class="topnav-item " href="/patchwork" title="Patchwork">
17- Patchwork<br><small>Social Messaging App</small>
18- </a>
19- <a class="topnav-item " href="/scuttlebot" title="Scuttlebot">
20- Scuttlebot<br><small>P2P Log Store</small>
21- </a>
22- <a class="topnav-item selected" href="/docs" title="Documentation">
23- Documentation<br><small>APIs, Articles</small>
24- </a>
25- </div>
26- </div>
27- <div id="layout">
28- <div id="leftnav">
29- <div class="leftnav-item">Key Concepts</div>
30- <div class="leftnav-subitems">
31- <div class="leftnav-item ">
32- <a href="/secure-scuttlebutt" title="Secure Scuttlebutt: a global database protocol">Secure Scuttlebutt: a global database protocol</a>
33- </div>
34- <div class="leftnav-item ">
35- <a href="/docs/ssb/linking.html" title="Content-Hash Linking">Content-Hash Linking</a>
36- </div>
37- <div class="leftnav-item ">
38- <a href="/docs/ssb/secret-handshake.html" title="Secret Handshake: a secure channel protocol">Secret Handshake: a secure channel protocol</a>
39- </div>
40- <div class="leftnav-item ">
41- <a href="/docs/ssb/end-to-end-encryption.html" title="Private Box: metadata-free encryption">Private Box: metadata-free encryption</a>
42- </div>
43- <div class="leftnav-item ">
44- <a href="/docs/ssb/faq.html" title="Frequently Asked Questions">Frequently Asked Questions</a>
45- </div>
46- </div>
47- <div class="leftnav-item">API Documentation</div>
48- <div class="leftnav-subitems">
49- <div class="leftnav-item ">
50- <a href="/ssb-server/api.html" title="scuttlebot">scuttlebot</a>
51- </div>
52- <div class="leftnav-indent">
53- <div class="leftnav-item selected">
54- <a href="/ssb-server/plugins/blobs.html" title="blobs">blobs</a>
55- </div>
56- <div class="leftnav-item ">
57- <a href="/ssb-server/plugins/block.html" title="block">block</a>
58- </div>
59- <div class="leftnav-item ">
60- <a href="/ssb-server/plugins/friends.html" title="friends">friends</a>
61- </div>
62- <div class="leftnav-item ">
63- <a href="/ssb-server/plugins/gossip.html" title="gossip">gossip</a>
64- </div>
65- <div class="leftnav-item ">
66- <a href="/ssb-server/plugins/invite.html" title="invite">invite</a>
67- </div>
68- <div class="leftnav-item ">
69- <a href="/ssb-server/plugins/private.html" title="private">private</a>
70- </div>
71- <div class="leftnav-item ">
72- <a href="/ssb-server/plugins/replicate.html" title="replicate">replicate</a>
73- </div>
74- </div>
75- <div class="leftnav-item ">
76- <a href="/ssb-client" title="ssb-client">ssb-client</a>
77- </div>
78- <div class="leftnav-item ">
79- <a href="/ssb-feed" title="ssb-feed">ssb-feed</a>
80- </div>
81- <div class="leftnav-item ">
82- <a href="/ssb-keys" title="ssb-keys">ssb-keys</a>
83- </div>
84- <div class="leftnav-item ">
85- <a href="/ssb-msgs" title="ssb-msgs">ssb-msgs</a>
86- </div>
87- <div class="leftnav-item ">
88- <a href="/ssb-msg-schemas" title="ssb-msg-schemas">ssb-msg-schemas</a>
89- </div>
90- <div class="leftnav-item ">
91- <a href="/ssb-ref" title="ssb-ref">ssb-ref</a>
92- </div>
93- <div class="leftnav-item ">
94- <a href="/ssb-markdown" title="ssb-markdown">ssb-markdown</a>
95- </div>
96- <div class="leftnav-item ">
97- <a href="/patchwork-threads" title="patchwork-threads">patchwork-threads</a>
98- </div>
99- <div class="leftnav-item ">
100- <a href="/ssb-config" title="ssb-config">ssb-config</a>
101- </div>
102- <div class="leftnav-item ">
103- <a href="/secret-stack" title="secret-stack">secret-stack</a>
104- </div>
105- <div class="leftnav-item ">
106- <a href="/muxrpc" title="muxrpc">muxrpc</a>
107- </div>
108- <div class="leftnav-item ">
109- <a href="/muxrpcli" title="muxrpcli">muxrpcli</a>
110- </div>
111- <div class="leftnav-item ">
112- <a href="/mdmanifest" title="mdmanifest">mdmanifest</a>
113- </div>
114- <div class="leftnav-item ">
115- <a href="/docs/api/pull-stream.html" title="pull-stream">pull-stream</a>
116- </div>
117- </div>
118- <div class="leftnav-item">Articles</div>
119- <div class="leftnav-subitems">
120- <div class="leftnav-item ">
121- <a href="/docs/articles/design-challenge-avoid-centralization-and-singletons.html" title="Design Challenge: Avoiding Centralization and Singletons">Design Challenge: Avoiding Centralization and Singletons</a>
122- </div>
123- <div class="leftnav-item ">
124- <a href="/docs/articles/design-challenge-sybil-attack.html" title="Design Challenge: Sybil Attacks">Design Challenge: Sybil Attacks</a>
125- </div>
126- <div class="leftnav-item ">
127- <a href="/docs/articles/using-trust-in-open-networks.html" title="Using Trust in Open Networks">Using Trust in Open Networks</a>
128- </div>
129- </div>
130- </div>
131- <div id="content">
132- <h1 id="scuttlebot-blobs-plugin">scuttlebot blobs plugin</h1>
133-<p>Send/receive files by content-hashes.</p>
134-<p>How it works:</p>
135-<ul>
136-<li>Get list of wanted blobs via <code>links</code>, or explicit calls to <code>want</code>.
137- Call <code>wL.queue(hash)</code>.</li>
138-<li>connected to a peer (managed by gossip plugin): rpc.has wants,
139-and subscribe to their blob changes. call <code>query</code> on each new connection.</li>
140-<li>when a new message is queued. call <code>query</code>
141-*. in <code>download</code>, 5 workers try to download a blob every 300 ms.</li>
142-<li><code>hash</code> arguments must be valid ssb blob links <code>&amp;&lt;base64 hash&gt;.sha256</code>
143-A queued blob has a callback.</li>
144-</ul>
145-<hr>
146-<p>better design:</p>
147-<p> each task has it&#39;s own queue.
148- first is queue for has
149- then is queue for download.</p>
150-<p> once you know where a file is, move it to the download queue.
151- if there arn&#39;t any peers to get a file from, put it back in has queue.</p>
152-<h2 id="get-source">get: source</h2>
153-<p>Get a blob by its ID.</p>
154-<pre><code class="lang-bash">get {blobid}
155-</code></pre>
156-<pre><code class="lang-js">get(blobid)
157-</code></pre>
158-<h2 id="has-async">has: async</h2>
159-<p>Check if the blob of the given ID is stored in the DB.</p>
160-<pre><code class="lang-bash">has {blobid}
161-</code></pre>
162-<pre><code class="lang-js">has(blobid, cb)
163-</code></pre>
164-<h2 id="add-sink">add: sink</h2>
165-<p>Add a new blob to the DB.</p>
166-<pre><code class="lang-bash">cat ./file | add [hash]
167-</code></pre>
168-<pre><code class="lang-js">pull(source, add(hash, cb))
169-</code></pre>
170-<ul>
171-<li>hash (base64 string): Optional, expected hash of the file. If the file does not match the hash, it is not stored, and an error is emitted.</li>
172-</ul>
173-<h2 id="rm-async">rm: async</h2>
174-<p>Remove a blob from the store.</p>
175-<pre><code class="lang-bash">rm hash
176-</code></pre>
177-<pre><code class="lang-js">rm(hash, cb)
178-</code></pre>
179-<ul>
180-<li>hash (base64 string): hash of the file.</li>
181-</ul>
182-<h2 id="ls-source">ls: source</h2>
183-<p>List the hashes of the blobs in the DB.</p>
184-<pre><code class="lang-bash">ls
185-</code></pre>
186-<pre><code class="lang-js">ls()
187-</code></pre>
188-<h2 id="want-async">want: async</h2>
189-<p>Begin searching the network for the blob of the given hash.</p>
190-<pre><code class="lang-bash">want {hash} [--nowait]
191-</code></pre>
192-<pre><code class="lang-js">want(hash, { nowait: }, cb)
193-</code></pre>
194-<p>By default, <code>want</code> will not call the <code>cb</code> until the blob has been downloaded.
195-If you want the <code>cb</code> to be called immediately, specify <code>nowait: true</code>.
196-The <code>cb</code> will be called with true/false as the value, telling you if the blob was already present.</p>
197-<h2 id="wants-sync">wants: sync</h2>
198-<p>List the currently-wanted blobs&#39; data-structures.</p>
199-<pre><code class="lang-bash">wants
200-</code></pre>
201-<pre><code class="lang-js">wants()
202-</code></pre>
203-<h2 id="changes-source">changes: source</h2>
204-<p>Listen for any newly-downloaded blobs.</p>
205-<pre><code class="lang-bash">changes
206-</code></pre>
207-<pre><code class="lang-js">changes()
208-</code></pre>
209-<p>When a blob is downloaded, this stream will emit the hash of the blob.</p>
210-
211- </div>
212- </div>
213- </body>
7 + <body>
8 + <p>Article moved: <a href="https://scuttlebot.io/apis/scuttlebot/blobs.html">Scuttlebot Blobs Plugin - Documentation - SSBC</a></p>
9 + </body>
21410 </html>
plugins/block.htmlView
@@ -1,147 +1,10 @@
1-<html>
2- <head>
3- <title>Scuttlebot Block Plugin - Documentation - SSBC</title>
4- <link rel="stylesheet" href="/normalize.css">
5- <link rel="stylesheet" href="/styles.css">
6- <link rel="stylesheet" href="/atelier-forest-light.css">
7- <script src="/highlight.pack.js"></script>
8- <script>hljs.initHighlightingOnLoad();</script>
1 +<!doctype html>
2 + <html>
3 + <head>
4 + <title>[Redirecting...] Scuttlebot Block Plugin - Documentation - SSBC</title>
5 + <meta http-equiv="refresh" content="0;URL=https://scuttlebot.io/apis/scuttlebot/block.html">
96 </head>
10- <body>
11- <div id="topnav">
12- <div id="topnav-inner">
13- <a class="topnav-item " href="/" title="Home">
14- Home<br><small>SSBC</small>
15- </a>
16- <a class="topnav-item " href="/patchwork" title="Patchwork">
17- Patchwork<br><small>Social Messaging App</small>
18- </a>
19- <a class="topnav-item " href="/scuttlebot" title="Scuttlebot">
20- Scuttlebot<br><small>P2P Log Store</small>
21- </a>
22- <a class="topnav-item selected" href="/docs" title="Documentation">
23- Documentation<br><small>APIs, Articles</small>
24- </a>
25- </div>
26- </div>
27- <div id="layout">
28- <div id="leftnav">
29- <div class="leftnav-item">Key Concepts</div>
30- <div class="leftnav-subitems">
31- <div class="leftnav-item ">
32- <a href="/secure-scuttlebutt" title="Secure Scuttlebutt: a global database protocol">Secure Scuttlebutt: a global database protocol</a>
33- </div>
34- <div class="leftnav-item ">
35- <a href="/docs/ssb/linking.html" title="Content-Hash Linking">Content-Hash Linking</a>
36- </div>
37- <div class="leftnav-item ">
38- <a href="/docs/ssb/secret-handshake.html" title="Secret Handshake: a secure channel protocol">Secret Handshake: a secure channel protocol</a>
39- </div>
40- <div class="leftnav-item ">
41- <a href="/docs/ssb/end-to-end-encryption.html" title="Private Box: metadata-free encryption">Private Box: metadata-free encryption</a>
42- </div>
43- <div class="leftnav-item ">
44- <a href="/docs/ssb/faq.html" title="Frequently Asked Questions">Frequently Asked Questions</a>
45- </div>
46- </div>
47- <div class="leftnav-item">API Documentation</div>
48- <div class="leftnav-subitems">
49- <div class="leftnav-item ">
50- <a href="/ssb-server/api.html" title="scuttlebot">scuttlebot</a>
51- </div>
52- <div class="leftnav-indent">
53- <div class="leftnav-item ">
54- <a href="/ssb-server/plugins/blobs.html" title="blobs">blobs</a>
55- </div>
56- <div class="leftnav-item selected">
57- <a href="/ssb-server/plugins/block.html" title="block">block</a>
58- </div>
59- <div class="leftnav-item ">
60- <a href="/ssb-server/plugins/friends.html" title="friends">friends</a>
61- </div>
62- <div class="leftnav-item ">
63- <a href="/ssb-server/plugins/gossip.html" title="gossip">gossip</a>
64- </div>
65- <div class="leftnav-item ">
66- <a href="/ssb-server/plugins/invite.html" title="invite">invite</a>
67- </div>
68- <div class="leftnav-item ">
69- <a href="/ssb-server/plugins/private.html" title="private">private</a>
70- </div>
71- <div class="leftnav-item ">
72- <a href="/ssb-server/plugins/replicate.html" title="replicate">replicate</a>
73- </div>
74- </div>
75- <div class="leftnav-item ">
76- <a href="/ssb-client" title="ssb-client">ssb-client</a>
77- </div>
78- <div class="leftnav-item ">
79- <a href="/ssb-feed" title="ssb-feed">ssb-feed</a>
80- </div>
81- <div class="leftnav-item ">
82- <a href="/ssb-keys" title="ssb-keys">ssb-keys</a>
83- </div>
84- <div class="leftnav-item ">
85- <a href="/ssb-msgs" title="ssb-msgs">ssb-msgs</a>
86- </div>
87- <div class="leftnav-item ">
88- <a href="/ssb-msg-schemas" title="ssb-msg-schemas">ssb-msg-schemas</a>
89- </div>
90- <div class="leftnav-item ">
91- <a href="/ssb-ref" title="ssb-ref">ssb-ref</a>
92- </div>
93- <div class="leftnav-item ">
94- <a href="/ssb-markdown" title="ssb-markdown">ssb-markdown</a>
95- </div>
96- <div class="leftnav-item ">
97- <a href="/patchwork-threads" title="patchwork-threads">patchwork-threads</a>
98- </div>
99- <div class="leftnav-item ">
100- <a href="/ssb-config" title="ssb-config">ssb-config</a>
101- </div>
102- <div class="leftnav-item ">
103- <a href="/secret-stack" title="secret-stack">secret-stack</a>
104- </div>
105- <div class="leftnav-item ">
106- <a href="/muxrpc" title="muxrpc">muxrpc</a>
107- </div>
108- <div class="leftnav-item ">
109- <a href="/muxrpcli" title="muxrpcli">muxrpcli</a>
110- </div>
111- <div class="leftnav-item ">
112- <a href="/mdmanifest" title="mdmanifest">mdmanifest</a>
113- </div>
114- <div class="leftnav-item ">
115- <a href="/docs/api/pull-stream.html" title="pull-stream">pull-stream</a>
116- </div>
117- </div>
118- <div class="leftnav-item">Articles</div>
119- <div class="leftnav-subitems">
120- <div class="leftnav-item ">
121- <a href="/docs/articles/design-challenge-avoid-centralization-and-singletons.html" title="Design Challenge: Avoiding Centralization and Singletons">Design Challenge: Avoiding Centralization and Singletons</a>
122- </div>
123- <div class="leftnav-item ">
124- <a href="/docs/articles/design-challenge-sybil-attack.html" title="Design Challenge: Sybil Attacks">Design Challenge: Sybil Attacks</a>
125- </div>
126- <div class="leftnav-item ">
127- <a href="/docs/articles/using-trust-in-open-networks.html" title="Using Trust in Open Networks">Using Trust in Open Networks</a>
128- </div>
129- </div>
130- </div>
131- <div id="content">
132- <h1 id="scuttlebot-block-plugin">scuttlebot block plugin</h1>
133-<p>Disallow connections with people flagged by the local user, and avoid sending a feed to the users they&#39;ve flag.</p>
134-<h2 id="isblocked-sync">isBlocked: sync</h2>
135-<p>Is the target user blocked?</p>
136-<pre><code class="lang-bash">isBlocked {dest}
137-isBlocked --source {feedid} --dest {feedid}
138-</code></pre>
139-<pre><code class="lang-js">isBlocked(dest, cb)
140-isBlocked({ source:, dest: }, cb)
141-</code></pre>
142-<p>If <code>source</code> is not specified, defaults to the local user.</p>
143-
144- </div>
145- </div>
146- </body>
7 + <body>
8 + <p>Article moved: <a href="https://scuttlebot.io/apis/scuttlebot/block.html">Scuttlebot Block Plugin - Documentation - SSBC</a></p>
9 + </body>
14710 </html>
plugins/friends.htmlView
@@ -1,183 +1,10 @@
1-<html>
2- <head>
3- <title>Scuttlebot Friends Plugin - Documentation - SSBC</title>
4- <link rel="stylesheet" href="/normalize.css">
5- <link rel="stylesheet" href="/styles.css">
6- <link rel="stylesheet" href="/atelier-forest-light.css">
7- <script src="/highlight.pack.js"></script>
8- <script>hljs.initHighlightingOnLoad();</script>
1 +<!doctype html>
2 + <html>
3 + <head>
4 + <title>[Redirecting...] Scuttlebot Friends Plugin - Documentation - SSBC</title>
5 + <meta http-equiv="refresh" content="0;URL=https://github.com/ssbc/ssb-friends">
96 </head>
10- <body>
11- <div id="topnav">
12- <div id="topnav-inner">
13- <a class="topnav-item " href="/" title="Home">
14- Home<br><small>SSBC</small>
15- </a>
16- <a class="topnav-item " href="/patchwork" title="Patchwork">
17- Patchwork<br><small>Social Messaging App</small>
18- </a>
19- <a class="topnav-item " href="/scuttlebot" title="Scuttlebot">
20- Scuttlebot<br><small>P2P Log Store</small>
21- </a>
22- <a class="topnav-item selected" href="/docs" title="Documentation">
23- Documentation<br><small>APIs, Articles</small>
24- </a>
25- </div>
26- </div>
27- <div id="layout">
28- <div id="leftnav">
29- <div class="leftnav-item">Key Concepts</div>
30- <div class="leftnav-subitems">
31- <div class="leftnav-item ">
32- <a href="/secure-scuttlebutt" title="Secure Scuttlebutt: a global database protocol">Secure Scuttlebutt: a global database protocol</a>
33- </div>
34- <div class="leftnav-item ">
35- <a href="/docs/ssb/linking.html" title="Content-Hash Linking">Content-Hash Linking</a>
36- </div>
37- <div class="leftnav-item ">
38- <a href="/docs/ssb/secret-handshake.html" title="Secret Handshake: a secure channel protocol">Secret Handshake: a secure channel protocol</a>
39- </div>
40- <div class="leftnav-item ">
41- <a href="/docs/ssb/end-to-end-encryption.html" title="Private Box: metadata-free encryption">Private Box: metadata-free encryption</a>
42- </div>
43- <div class="leftnav-item ">
44- <a href="/docs/ssb/faq.html" title="Frequently Asked Questions">Frequently Asked Questions</a>
45- </div>
46- </div>
47- <div class="leftnav-item">API Documentation</div>
48- <div class="leftnav-subitems">
49- <div class="leftnav-item ">
50- <a href="/ssb-server/api.html" title="scuttlebot">scuttlebot</a>
51- </div>
52- <div class="leftnav-indent">
53- <div class="leftnav-item ">
54- <a href="/ssb-server/plugins/blobs.html" title="blobs">blobs</a>
55- </div>
56- <div class="leftnav-item ">
57- <a href="/ssb-server/plugins/block.html" title="block">block</a>
58- </div>
59- <div class="leftnav-item selected">
60- <a href="/ssb-server/plugins/friends.html" title="friends">friends</a>
61- </div>
62- <div class="leftnav-item ">
63- <a href="/ssb-server/plugins/gossip.html" title="gossip">gossip</a>
64- </div>
65- <div class="leftnav-item ">
66- <a href="/ssb-server/plugins/invite.html" title="invite">invite</a>
67- </div>
68- <div class="leftnav-item ">
69- <a href="/ssb-server/plugins/private.html" title="private">private</a>
70- </div>
71- <div class="leftnav-item ">
72- <a href="/ssb-server/plugins/replicate.html" title="replicate">replicate</a>
73- </div>
74- </div>
75- <div class="leftnav-item ">
76- <a href="/ssb-client" title="ssb-client">ssb-client</a>
77- </div>
78- <div class="leftnav-item ">
79- <a href="/ssb-feed" title="ssb-feed">ssb-feed</a>
80- </div>
81- <div class="leftnav-item ">
82- <a href="/ssb-keys" title="ssb-keys">ssb-keys</a>
83- </div>
84- <div class="leftnav-item ">
85- <a href="/ssb-msgs" title="ssb-msgs">ssb-msgs</a>
86- </div>
87- <div class="leftnav-item ">
88- <a href="/ssb-msg-schemas" title="ssb-msg-schemas">ssb-msg-schemas</a>
89- </div>
90- <div class="leftnav-item ">
91- <a href="/ssb-ref" title="ssb-ref">ssb-ref</a>
92- </div>
93- <div class="leftnav-item ">
94- <a href="/ssb-markdown" title="ssb-markdown">ssb-markdown</a>
95- </div>
96- <div class="leftnav-item ">
97- <a href="/patchwork-threads" title="patchwork-threads">patchwork-threads</a>
98- </div>
99- <div class="leftnav-item ">
100- <a href="/ssb-config" title="ssb-config">ssb-config</a>
101- </div>
102- <div class="leftnav-item ">
103- <a href="/secret-stack" title="secret-stack">secret-stack</a>
104- </div>
105- <div class="leftnav-item ">
106- <a href="/muxrpc" title="muxrpc">muxrpc</a>
107- </div>
108- <div class="leftnav-item ">
109- <a href="/muxrpcli" title="muxrpcli">muxrpcli</a>
110- </div>
111- <div class="leftnav-item ">
112- <a href="/mdmanifest" title="mdmanifest">mdmanifest</a>
113- </div>
114- <div class="leftnav-item ">
115- <a href="/docs/api/pull-stream.html" title="pull-stream">pull-stream</a>
116- </div>
117- </div>
118- <div class="leftnav-item">Articles</div>
119- <div class="leftnav-subitems">
120- <div class="leftnav-item ">
121- <a href="/docs/articles/design-challenge-avoid-centralization-and-singletons.html" title="Design Challenge: Avoiding Centralization and Singletons">Design Challenge: Avoiding Centralization and Singletons</a>
122- </div>
123- <div class="leftnav-item ">
124- <a href="/docs/articles/design-challenge-sybil-attack.html" title="Design Challenge: Sybil Attacks">Design Challenge: Sybil Attacks</a>
125- </div>
126- <div class="leftnav-item ">
127- <a href="/docs/articles/using-trust-in-open-networks.html" title="Using Trust in Open Networks">Using Trust in Open Networks</a>
128- </div>
129- </div>
130- </div>
131- <div id="content">
132- <h1 id="scuttlebot-friends-plugin">scuttlebot friends plugin</h1>
133-<p>Query the follow and flag graphs.</p>
134-<h2 id="all-async">all: async</h2>
135-<p>Fetch the graph structure.</p>
136-<pre><code class="lang-bash">all [graph]
137-</code></pre>
138-<pre><code class="lang-js">all(graph, cb)
139-</code></pre>
140-<ul>
141-<li><code>graph</code> (string, default: <code>follow</code>): Which graph to view. May be <code>follow</code> or <code>flag</code>.</li>
142-</ul>
143-<h2 id="hops-async">hops: async</h2>
144-<p>List the degrees-of-connection of all known feeds from the given feed.</p>
145-<pre><code class="lang-bash">hops [start] [graph] [--dunbar number] [--hops number]
146-</code></pre>
147-<pre><code class="lang-js">hops(start, graph, { dunbar:, hops: }, cb)
148-</code></pre>
149-<ul>
150-<li><code>start</code> (FeedID, default: local user): Which feed to start from.</li>
151-<li><code>graph</code> (string, default: <code>follow</code>): Which graph to view. May be <code>follow</code> or <code>flag</code>.</li>
152-<li><code>dunbar</code> (number, default: 150): Limit on how many feeds to include in the list.</li>
153-<li><code>hops</code> (number, default: 3): Limit on how many hops out the feed needs to be, to be included.</li>
154-</ul>
155-<h2 id="createfriendstream-source">createFriendStream: source</h2>
156-<p>Live-stream the ids of feeds which meet the given hops query. If <code>meta</code>
157-option is set, then will return steam of <code>{id, hops}</code></p>
158-<pre><code class="lang-bash">createFriendStream [--start feedid] [--graph follow|flag] [--dunbar number] [--hops number] [--meta]
159-</code></pre>
160-<pre><code class="lang-js">createFriendStream({ start:, graph:, dunbar:, hops: , meta: }, cb)
161-</code></pre>
162-<ul>
163-<li><code>start</code> (FeedID, default: local user): Which feed to start from.</li>
164-<li><code>graph</code> (string, default: <code>follow</code>): Which graph to view. May be <code>follow</code> or <code>flag</code>.</li>
165-<li><code>dunbar</code> (number, default: 150): Limit on how many feeds to include in the list.</li>
166-<li><code>hops</code> (number, default: 3): Limit on how many hops out the feed needs to be, to be included.</li>
167-</ul>
168-<h2 id="get-sync">get: sync</h2>
169-<p>Get the edge between two different feeds.</p>
170-<pre><code class="lang-bash">get --source {feedid} --dest {feedid} [--graph follow|flag]
171-</code></pre>
172-<pre><code class="lang-js">get({ source:, dest:, graph: }, cb)
173-</code></pre>
174-<ul>
175-<li><code>source</code> (FeedID): Edge source.</li>
176-<li><code>dest</code> (FeedID): Edge destination.</li>
177-<li><code>graph</code> (string, default: <code>follow</code>): Which graph to query. May be <code>follow</code> or <code>flag</code>.</li>
178-</ul>
179-
180- </div>
181- </div>
182- </body>
7 + <body>
8 + <p>Article moved: <a href="https://github.com/ssbc/ssb-friends">Scuttlebot Friends Plugin - Documentation - SSBC</a></p>
9 + </body>
18310 </html>
plugins/gossip.htmlView
@@ -1,183 +1,10 @@
1-<html>
2- <head>
3- <title>Scuttlebot Gossip Plugin - Documentation - SSBC</title>
4- <link rel="stylesheet" href="/normalize.css">
5- <link rel="stylesheet" href="/styles.css">
6- <link rel="stylesheet" href="/atelier-forest-light.css">
7- <script src="/highlight.pack.js"></script>
8- <script>hljs.initHighlightingOnLoad();</script>
1 +<!doctype html>
2 + <html>
3 + <head>
4 + <title>[Redirecting...] Scuttlebot Gossip Plugin - Documentation - SSBC</title>
5 + <meta http-equiv="refresh" content="0;URL=https://github.com/ssbc/ssb-gossip">
96 </head>
10- <body>
11- <div id="topnav">
12- <div id="topnav-inner">
13- <a class="topnav-item " href="/" title="Home">
14- Home<br><small>SSBC</small>
15- </a>
16- <a class="topnav-item " href="/patchwork" title="Patchwork">
17- Patchwork<br><small>Social Messaging App</small>
18- </a>
19- <a class="topnav-item " href="/scuttlebot" title="Scuttlebot">
20- Scuttlebot<br><small>P2P Log Store</small>
21- </a>
22- <a class="topnav-item selected" href="/docs" title="Documentation">
23- Documentation<br><small>APIs, Articles</small>
24- </a>
25- </div>
26- </div>
27- <div id="layout">
28- <div id="leftnav">
29- <div class="leftnav-item">Key Concepts</div>
30- <div class="leftnav-subitems">
31- <div class="leftnav-item ">
32- <a href="/secure-scuttlebutt" title="Secure Scuttlebutt: a global database protocol">Secure Scuttlebutt: a global database protocol</a>
33- </div>
34- <div class="leftnav-item ">
35- <a href="/docs/ssb/linking.html" title="Content-Hash Linking">Content-Hash Linking</a>
36- </div>
37- <div class="leftnav-item ">
38- <a href="/docs/ssb/secret-handshake.html" title="Secret Handshake: a secure channel protocol">Secret Handshake: a secure channel protocol</a>
39- </div>
40- <div class="leftnav-item ">
41- <a href="/docs/ssb/end-to-end-encryption.html" title="Private Box: metadata-free encryption">Private Box: metadata-free encryption</a>
42- </div>
43- <div class="leftnav-item ">
44- <a href="/docs/ssb/faq.html" title="Frequently Asked Questions">Frequently Asked Questions</a>
45- </div>
46- </div>
47- <div class="leftnav-item">API Documentation</div>
48- <div class="leftnav-subitems">
49- <div class="leftnav-item ">
50- <a href="/ssb-server/api.html" title="scuttlebot">scuttlebot</a>
51- </div>
52- <div class="leftnav-indent">
53- <div class="leftnav-item ">
54- <a href="/ssb-server/plugins/blobs.html" title="blobs">blobs</a>
55- </div>
56- <div class="leftnav-item ">
57- <a href="/ssb-server/plugins/block.html" title="block">block</a>
58- </div>
59- <div class="leftnav-item ">
60- <a href="/ssb-server/plugins/friends.html" title="friends">friends</a>
61- </div>
62- <div class="leftnav-item selected">
63- <a href="/ssb-server/plugins/gossip.html" title="gossip">gossip</a>
64- </div>
65- <div class="leftnav-item ">
66- <a href="/ssb-server/plugins/invite.html" title="invite">invite</a>
67- </div>
68- <div class="leftnav-item ">
69- <a href="/ssb-server/plugins/private.html" title="private">private</a>
70- </div>
71- <div class="leftnav-item ">
72- <a href="/ssb-server/plugins/replicate.html" title="replicate">replicate</a>
73- </div>
74- </div>
75- <div class="leftnav-item ">
76- <a href="/ssb-client" title="ssb-client">ssb-client</a>
77- </div>
78- <div class="leftnav-item ">
79- <a href="/ssb-feed" title="ssb-feed">ssb-feed</a>
80- </div>
81- <div class="leftnav-item ">
82- <a href="/ssb-keys" title="ssb-keys">ssb-keys</a>
83- </div>
84- <div class="leftnav-item ">
85- <a href="/ssb-msgs" title="ssb-msgs">ssb-msgs</a>
86- </div>
87- <div class="leftnav-item ">
88- <a href="/ssb-msg-schemas" title="ssb-msg-schemas">ssb-msg-schemas</a>
89- </div>
90- <div class="leftnav-item ">
91- <a href="/ssb-ref" title="ssb-ref">ssb-ref</a>
92- </div>
93- <div class="leftnav-item ">
94- <a href="/ssb-markdown" title="ssb-markdown">ssb-markdown</a>
95- </div>
96- <div class="leftnav-item ">
97- <a href="/patchwork-threads" title="patchwork-threads">patchwork-threads</a>
98- </div>
99- <div class="leftnav-item ">
100- <a href="/ssb-config" title="ssb-config">ssb-config</a>
101- </div>
102- <div class="leftnav-item ">
103- <a href="/secret-stack" title="secret-stack">secret-stack</a>
104- </div>
105- <div class="leftnav-item ">
106- <a href="/muxrpc" title="muxrpc">muxrpc</a>
107- </div>
108- <div class="leftnav-item ">
109- <a href="/muxrpcli" title="muxrpcli">muxrpcli</a>
110- </div>
111- <div class="leftnav-item ">
112- <a href="/mdmanifest" title="mdmanifest">mdmanifest</a>
113- </div>
114- <div class="leftnav-item ">
115- <a href="/docs/api/pull-stream.html" title="pull-stream">pull-stream</a>
116- </div>
117- </div>
118- <div class="leftnav-item">Articles</div>
119- <div class="leftnav-subitems">
120- <div class="leftnav-item ">
121- <a href="/docs/articles/design-challenge-avoid-centralization-and-singletons.html" title="Design Challenge: Avoiding Centralization and Singletons">Design Challenge: Avoiding Centralization and Singletons</a>
122- </div>
123- <div class="leftnav-item ">
124- <a href="/docs/articles/design-challenge-sybil-attack.html" title="Design Challenge: Sybil Attacks">Design Challenge: Sybil Attacks</a>
125- </div>
126- <div class="leftnav-item ">
127- <a href="/docs/articles/using-trust-in-open-networks.html" title="Using Trust in Open Networks">Using Trust in Open Networks</a>
128- </div>
129- </div>
130- </div>
131- <div id="content">
132- <h1 id="scuttlebot-gossip-plugin">scuttlebot gossip plugin</h1>
133-<p>Schedule connections randomly with a peerlist constructed from config, multicast UDP announcements, feed announcements, and API-calls.</p>
134-<h2 id="peers-sync">peers: sync</h2>
135-<p>Get the current peerlist.</p>
136-<pre><code class="lang-bash">peers
137-</code></pre>
138-<pre><code class="lang-js">peers(cb)
139-</code></pre>
140-<h2 id="add-sync">add: sync</h2>
141-<p>Add an address to the peer table.</p>
142-<pre><code class="lang-bash">add {addr}
143-add --host {string} --port {number} --key {feedid}
144-</code></pre>
145-<pre><code class="lang-js">add(addr, cb)
146-add({ host:, port:, key: }, cb)
147-</code></pre>
148-<ul>
149-<li><code>addr</code> (address string): An address string, of the following format: <code>hostname:port:feedid</code>.</li>
150-<li><code>host</code> (host string): IP address or hostname.</li>
151-<li><code>port</code> (port number)</li>
152-<li><code>key</code> (feedid)</li>
153-</ul>
154-<h2 id="connect-async">connect: async</h2>
155-<p>Add an address to the peer table, and connect immediately.</p>
156-<pre><code class="lang-bash">connect {addr}
157-connect --host {string} --port {number} --key {feedid}
158-</code></pre>
159-<pre><code class="lang-js">connect(addr, cb)
160-connect({ host:, port:, key: }, cb)
161-</code></pre>
162-<ul>
163-<li><code>addr</code> (address string): An address string, of the following format: <code>hostname:port:feedid</code>.</li>
164-<li><code>host</code> (host string): IP address or hostname.</li>
165-<li><code>port</code> (port number)</li>
166-<li><code>key</code> (feedid)</li>
167-</ul>
168-<h2 id="changes-source">changes: source</h2>
169-<p>Listen for gossip events.</p>
170-<pre><code class="lang-bash">changes
171-</code></pre>
172-<pre><code class="lang-js">changes()
173-</code></pre>
174-<p>Events come in the following forms:</p>
175-<pre><code>{ type: &#39;discover&#39;, peer:, source: }
176-{ type: &#39;connect&#39;, peer: }
177-{ type: &#39;connect-failure&#39;, peer: }
178-{ type: &#39;disconnect&#39;, peer: }
179-</code></pre>
180- </div>
181- </div>
182- </body>
7 + <body>
8 + <p>Article moved: <a href="https://github.com/ssbc/ssb-gossip">Scuttlebot Gossip Plugin - Documentation - SSBC</a></p>
9 + </body>
18310 </html>
plugins/invite.htmlView
@@ -1,175 +1,10 @@
1-<html>
2- <head>
3- <title>Scuttlebot Invite Plugin - Documentation - SSBC</title>
4- <link rel="stylesheet" href="/normalize.css">
5- <link rel="stylesheet" href="/styles.css">
6- <link rel="stylesheet" href="/atelier-forest-light.css">
7- <script src="/highlight.pack.js"></script>
8- <script>hljs.initHighlightingOnLoad();</script>
1 +<!doctype html>
2 + <html>
3 + <head>
4 + <title>[Redirecting...] Scuttlebot Invite Plugin - Documentation - SSBC</title>
5 + <meta http-equiv="refresh" content="0;URL=https://github.com/ssbc/ssb-invite">
96 </head>
10- <body>
11- <div id="topnav">
12- <div id="topnav-inner">
13- <a class="topnav-item " href="/" title="Home">
14- Home<br><small>SSBC</small>
15- </a>
16- <a class="topnav-item " href="/patchwork" title="Patchwork">
17- Patchwork<br><small>Social Messaging App</small>
18- </a>
19- <a class="topnav-item " href="/scuttlebot" title="Scuttlebot">
20- Scuttlebot<br><small>P2P Log Store</small>
21- </a>
22- <a class="topnav-item selected" href="/docs" title="Documentation">
23- Documentation<br><small>APIs, Articles</small>
24- </a>
25- </div>
26- </div>
27- <div id="layout">
28- <div id="leftnav">
29- <div class="leftnav-item">Key Concepts</div>
30- <div class="leftnav-subitems">
31- <div class="leftnav-item ">
32- <a href="/secure-scuttlebutt" title="Secure Scuttlebutt: a global database protocol">Secure Scuttlebutt: a global database protocol</a>
33- </div>
34- <div class="leftnav-item ">
35- <a href="/docs/ssb/linking.html" title="Content-Hash Linking">Content-Hash Linking</a>
36- </div>
37- <div class="leftnav-item ">
38- <a href="/docs/ssb/secret-handshake.html" title="Secret Handshake: a secure channel protocol">Secret Handshake: a secure channel protocol</a>
39- </div>
40- <div class="leftnav-item ">
41- <a href="/docs/ssb/end-to-end-encryption.html" title="Private Box: metadata-free encryption">Private Box: metadata-free encryption</a>
42- </div>
43- <div class="leftnav-item ">
44- <a href="/docs/ssb/faq.html" title="Frequently Asked Questions">Frequently Asked Questions</a>
45- </div>
46- </div>
47- <div class="leftnav-item">API Documentation</div>
48- <div class="leftnav-subitems">
49- <div class="leftnav-item ">
50- <a href="/scuttlebot/api.html" title="scuttlebot">scuttlebot</a>
51- </div>
52- <div class="leftnav-indent">
53- <div class="leftnav-item ">
54- <a href="/scuttlebot/plugins/blobs.html" title="blobs">blobs</a>
55- </div>
56- <div class="leftnav-item ">
57- <a href="/scuttlebot/plugins/block.html" title="block">block</a>
58- </div>
59- <div class="leftnav-item ">
60- <a href="/scuttlebot/plugins/friends.html" title="friends">friends</a>
61- </div>
62- <div class="leftnav-item ">
63- <a href="/scuttlebot/plugins/gossip.html" title="gossip">gossip</a>
64- </div>
65- <div class="leftnav-item selected">
66- <a href="/scuttlebot/plugins/invite.html" title="invite">invite</a>
67- </div>
68- <div class="leftnav-item ">
69- <a href="/scuttlebot/plugins/private.html" title="private">private</a>
70- </div>
71- <div class="leftnav-item ">
72- <a href="/scuttlebot/plugins/replicate.html" title="replicate">replicate</a>
73- </div>
74- </div>
75- <div class="leftnav-item ">
76- <a href="/ssb-client" title="ssb-client">ssb-client</a>
77- </div>
78- <div class="leftnav-item ">
79- <a href="/ssb-feed" title="ssb-feed">ssb-feed</a>
80- </div>
81- <div class="leftnav-item ">
82- <a href="/ssb-keys" title="ssb-keys">ssb-keys</a>
83- </div>
84- <div class="leftnav-item ">
85- <a href="/ssb-msgs" title="ssb-msgs">ssb-msgs</a>
86- </div>
87- <div class="leftnav-item ">
88- <a href="/ssb-msg-schemas" title="ssb-msg-schemas">ssb-msg-schemas</a>
89- </div>
90- <div class="leftnav-item ">
91- <a href="/ssb-ref" title="ssb-ref">ssb-ref</a>
92- </div>
93- <div class="leftnav-item ">
94- <a href="/ssb-markdown" title="ssb-markdown">ssb-markdown</a>
95- </div>
96- <div class="leftnav-item ">
97- <a href="/patchwork-threads" title="patchwork-threads">patchwork-threads</a>
98- </div>
99- <div class="leftnav-item ">
100- <a href="/ssb-config" title="ssb-config">ssb-config</a>
101- </div>
102- <div class="leftnav-item ">
103- <a href="/secret-stack" title="secret-stack">secret-stack</a>
104- </div>
105- <div class="leftnav-item ">
106- <a href="/muxrpc" title="muxrpc">muxrpc</a>
107- </div>
108- <div class="leftnav-item ">
109- <a href="/muxrpcli" title="muxrpcli">muxrpcli</a>
110- </div>
111- <div class="leftnav-item ">
112- <a href="/mdmanifest" title="mdmanifest">mdmanifest</a>
113- </div>
114- <div class="leftnav-item ">
115- <a href="/docs/api/pull-stream.html" title="pull-stream">pull-stream</a>
116- </div>
117- </div>
118- <div class="leftnav-item">Articles</div>
119- <div class="leftnav-subitems">
120- <div class="leftnav-item ">
121- <a href="/docs/articles/design-challenge-avoid-centralization-and-singletons.html" title="Design Challenge: Avoiding Centralization and Singletons">Design Challenge: Avoiding Centralization and Singletons</a>
122- </div>
123- <div class="leftnav-item ">
124- <a href="/docs/articles/design-challenge-sybil-attack.html" title="Design Challenge: Sybil Attacks">Design Challenge: Sybil Attacks</a>
125- </div>
126- <div class="leftnav-item ">
127- <a href="/docs/articles/using-trust-in-open-networks.html" title="Using Trust in Open Networks">Using Trust in Open Networks</a>
128- </div>
129- </div>
130- </div>
131- <div id="content">
132- <h1 id="scuttlebot-invite-plugin">scuttlebot invite plugin</h1>
133-<p>Invite-token system, mainly used for pubs.</p>
134-<h2 id="create-async">create: async</h2>
135-<p>Create a new invite code.</p>
136-<pre><code class="lang-bash">create {n}
137-</code></pre>
138-<pre><code class="lang-js">create(n, cb)
139-</code></pre>
140-<p>This produces an invite-code which encodes the sbot server&#39;s address, and a keypair seed.
141-The keypair seed is used to generate a keypair, which is then used to authenticate a connection with the sbot server.
142-The sbot server will then grant access to the <code>use</code> call.</p>
143-<ul>
144-<li><code>n</code> (number): How many times the invite can be used before it expires.</li>
145-</ul>
146-<h2 id="accept-async">accept: async</h2>
147-<p>Use an invite code.</p>
148-<pre><code class="lang-bash">accept {invitecode}
149-</code></pre>
150-<pre><code class="lang-js">accept(invitecode, cb)
151-</code></pre>
152-<p>This connects to the server address encoded in the invite-code, then calls <code>use()</code> on the server.
153-It will cause the server to follow the local user.</p>
154-<ul>
155-<li>invitecode (string)</li>
156-</ul>
157-<h2 id="addme-async">addMe: async</h2>
158-<p>Alias for accept.</p>
159-<h2 id="use-async">use: async</h2>
160-<p>Use an invite code created by this sbot instance (advanced function).</p>
161-<pre><code class="lang-bash">use --feed {feedid}
162-</code></pre>
163-<pre><code class="lang-js">use({ feed: }, cb)
164-</code></pre>
165-<p>This commands the receiving server to follow the given feed.</p>
166-<p>An invite-code encodes the sbot server&#39;s address, and a keypair seed.
167-The keypair seed must be used to generate a keypair, then authenticate a connection with the sbot server, in order to use this function.</p>
168-<ul>
169-<li><code>feed</code> (feedid): The feed the server should follow.</li>
170-</ul>
171-
172- </div>
173- </div>
174- </body>
7 + <body>
8 + <p>Article moved: <a href="https://github.com/ssbc/ssb-invite">Scuttlebot Invite Plugin - Documentation - SSBC</a></p>
9 + </body>
17510 </html>
plugins/private.htmlView
@@ -1,158 +1,10 @@
1-<html>
2- <head>
3- <title>Scuttlebot Private Plugin - Documentation - SSBC</title>
4- <link rel="stylesheet" href="/normalize.css">
5- <link rel="stylesheet" href="/styles.css">
6- <link rel="stylesheet" href="/atelier-forest-light.css">
7- <script src="/highlight.pack.js"></script>
8- <script>hljs.initHighlightingOnLoad();</script>
1 +<!doctype html>
2 + <html>
3 + <head>
4 + <title>[Redirecting...] Scuttlebot Private Plugin - Documentation - SSBC</title>
5 + <meta http-equiv="refresh" content="0;URL=https://github.com/ssbc/ssb-private/">
96 </head>
10- <body>
11- <div id="topnav">
12- <div id="topnav-inner">
13- <a class="topnav-item " href="/" title="Home">
14- Home<br><small>SSBC</small>
15- </a>
16- <a class="topnav-item " href="/patchwork" title="Patchwork">
17- Patchwork<br><small>Social Messaging App</small>
18- </a>
19- <a class="topnav-item " href="/scuttlebot" title="Scuttlebot">
20- Scuttlebot<br><small>P2P Log Store</small>
21- </a>
22- <a class="topnav-item selected" href="/docs" title="Documentation">
23- Documentation<br><small>APIs, Articles</small>
24- </a>
25- </div>
26- </div>
27- <div id="layout">
28- <div id="leftnav">
29- <div class="leftnav-item">Key Concepts</div>
30- <div class="leftnav-subitems">
31- <div class="leftnav-item ">
32- <a href="/secure-scuttlebutt" title="Secure Scuttlebutt: a global database protocol">Secure Scuttlebutt: a global database protocol</a>
33- </div>
34- <div class="leftnav-item ">
35- <a href="/docs/ssb/linking.html" title="Content-Hash Linking">Content-Hash Linking</a>
36- </div>
37- <div class="leftnav-item ">
38- <a href="/docs/ssb/secret-handshake.html" title="Secret Handshake: a secure channel protocol">Secret Handshake: a secure channel protocol</a>
39- </div>
40- <div class="leftnav-item ">
41- <a href="/docs/ssb/end-to-end-encryption.html" title="Private Box: metadata-free encryption">Private Box: metadata-free encryption</a>
42- </div>
43- <div class="leftnav-item ">
44- <a href="/docs/ssb/faq.html" title="Frequently Asked Questions">Frequently Asked Questions</a>
45- </div>
46- </div>
47- <div class="leftnav-item">API Documentation</div>
48- <div class="leftnav-subitems">
49- <div class="leftnav-item ">
50- <a href="/ssb-server/api.html" title="scuttlebot">scuttlebot</a>
51- </div>
52- <div class="leftnav-indent">
53- <div class="leftnav-item ">
54- <a href="/ssb-server/plugins/blobs.html" title="blobs">blobs</a>
55- </div>
56- <div class="leftnav-item ">
57- <a href="/ssb-server/plugins/block.html" title="block">block</a>
58- </div>
59- <div class="leftnav-item ">
60- <a href="/ssb-server/plugins/friends.html" title="friends">friends</a>
61- </div>
62- <div class="leftnav-item ">
63- <a href="/ssb-server/plugins/gossip.html" title="gossip">gossip</a>
64- </div>
65- <div class="leftnav-item ">
66- <a href="/ssb-server/plugins/invite.html" title="invite">invite</a>
67- </div>
68- <div class="leftnav-item selected">
69- <a href="/ssb-server/plugins/private.html" title="private">private</a>
70- </div>
71- <div class="leftnav-item ">
72- <a href="/ssb-server/plugins/replicate.html" title="replicate">replicate</a>
73- </div>
74- </div>
75- <div class="leftnav-item ">
76- <a href="/ssb-client" title="ssb-client">ssb-client</a>
77- </div>
78- <div class="leftnav-item ">
79- <a href="/ssb-feed" title="ssb-feed">ssb-feed</a>
80- </div>
81- <div class="leftnav-item ">
82- <a href="/ssb-keys" title="ssb-keys">ssb-keys</a>
83- </div>
84- <div class="leftnav-item ">
85- <a href="/ssb-msgs" title="ssb-msgs">ssb-msgs</a>
86- </div>
87- <div class="leftnav-item ">
88- <a href="/ssb-msg-schemas" title="ssb-msg-schemas">ssb-msg-schemas</a>
89- </div>
90- <div class="leftnav-item ">
91- <a href="/ssb-ref" title="ssb-ref">ssb-ref</a>
92- </div>
93- <div class="leftnav-item ">
94- <a href="/ssb-markdown" title="ssb-markdown">ssb-markdown</a>
95- </div>
96- <div class="leftnav-item ">
97- <a href="/patchwork-threads" title="patchwork-threads">patchwork-threads</a>
98- </div>
99- <div class="leftnav-item ">
100- <a href="/ssb-config" title="ssb-config">ssb-config</a>
101- </div>
102- <div class="leftnav-item ">
103- <a href="/secret-stack" title="secret-stack">secret-stack</a>
104- </div>
105- <div class="leftnav-item ">
106- <a href="/muxrpc" title="muxrpc">muxrpc</a>
107- </div>
108- <div class="leftnav-item ">
109- <a href="/muxrpcli" title="muxrpcli">muxrpcli</a>
110- </div>
111- <div class="leftnav-item ">
112- <a href="/mdmanifest" title="mdmanifest">mdmanifest</a>
113- </div>
114- <div class="leftnav-item ">
115- <a href="/docs/api/pull-stream.html" title="pull-stream">pull-stream</a>
116- </div>
117- </div>
118- <div class="leftnav-item">Articles</div>
119- <div class="leftnav-subitems">
120- <div class="leftnav-item ">
121- <a href="/docs/articles/design-challenge-avoid-centralization-and-singletons.html" title="Design Challenge: Avoiding Centralization and Singletons">Design Challenge: Avoiding Centralization and Singletons</a>
122- </div>
123- <div class="leftnav-item ">
124- <a href="/docs/articles/design-challenge-sybil-attack.html" title="Design Challenge: Sybil Attacks">Design Challenge: Sybil Attacks</a>
125- </div>
126- <div class="leftnav-item ">
127- <a href="/docs/articles/using-trust-in-open-networks.html" title="Using Trust in Open Networks">Using Trust in Open Networks</a>
128- </div>
129- </div>
130- </div>
131- <div id="content">
132- <h1 id="scuttlebot-private-plugin">scuttlebot private plugin</h1>
133-<p>Methods to publish and decrypt secret messages.</p>
134-<h2 id="publish-async">publish: async</h2>
135-<p>Publish an encrypted message.</p>
136-<pre><code class="lang-bash">*this can not be used from the commandline*
137-</code></pre>
138-<pre><code class="lang-js">publish(content, recps, cb)
139-</code></pre>
140-<p>The content will be encrypted using the public keys passed into recps.
141-Limit 7 recipients.</p>
142-<ul>
143-<li><code>content</code> (object): The content of the message.</li>
144-<li><code>recps</code> (array of feedids): The recipients of the message (limit 7).</li>
145-</ul>
146-<h2 id="unbox-sync">unbox: sync</h2>
147-<p>Attempt to decrypt the content of an encrypted message.</p>
148-<pre><code>*this can not be used from the commandline*
149-</code></pre><pre><code class="lang-js">unbox(ciphertext, cb)
150-</code></pre>
151-<ul>
152-<li><code>cyphertext</code> (string)</li>
153-</ul>
154-
155- </div>
156- </div>
157- </body>
7 + <body>
8 + <p>Article moved: <a href="https://github.com/ssbc/ssb-private/">Scuttlebot Private Plugin - Documentation - SSBC</a></p>
9 + </body>
15810 </html>
plugins/replicate.htmlView
@@ -1,146 +1,10 @@
1-<html>
2- <head>
3- <title>Scuttlebot Replicate Plugin - Documentation - SSBC</title>
4- <link rel="stylesheet" href="/normalize.css">
5- <link rel="stylesheet" href="/styles.css">
6- <link rel="stylesheet" href="/atelier-forest-light.css">
7- <script src="/highlight.pack.js"></script>
8- <script>hljs.initHighlightingOnLoad();</script>
1 +<!doctype html>
2 + <html>
3 + <head>
4 + <title>[Redirecting...] Scuttlebot Replicate Plugin - Documentation - SSBC</title>
5 + <meta http-equiv="refresh" content="0;URL=https://github.com/ssbc/ssb-replicate">
96 </head>
10- <body>
11- <div id="topnav">
12- <div id="topnav-inner">
13- <a class="topnav-item " href="/" title="Home">
14- Home<br><small>SSBC</small>
15- </a>
16- <a class="topnav-item " href="/patchwork" title="Patchwork">
17- Patchwork<br><small>Social Messaging App</small>
18- </a>
19- <a class="topnav-item " href="/scuttlebot" title="Scuttlebot">
20- Scuttlebot<br><small>P2P Log Store</small>
21- </a>
22- <a class="topnav-item selected" href="/docs" title="Documentation">
23- Documentation<br><small>APIs, Articles</small>
24- </a>
25- </div>
26- </div>
27- <div id="layout">
28- <div id="leftnav">
29- <div class="leftnav-item">Key Concepts</div>
30- <div class="leftnav-subitems">
31- <div class="leftnav-item ">
32- <a href="/secure-scuttlebutt" title="Secure Scuttlebutt: a global database protocol">Secure Scuttlebutt: a global database protocol</a>
33- </div>
34- <div class="leftnav-item ">
35- <a href="/docs/ssb/linking.html" title="Content-Hash Linking">Content-Hash Linking</a>
36- </div>
37- <div class="leftnav-item ">
38- <a href="/docs/ssb/secret-handshake.html" title="Secret Handshake: a secure channel protocol">Secret Handshake: a secure channel protocol</a>
39- </div>
40- <div class="leftnav-item ">
41- <a href="/docs/ssb/end-to-end-encryption.html" title="Private Box: metadata-free encryption">Private Box: metadata-free encryption</a>
42- </div>
43- <div class="leftnav-item ">
44- <a href="/docs/ssb/faq.html" title="Frequently Asked Questions">Frequently Asked Questions</a>
45- </div>
46- </div>
47- <div class="leftnav-item">API Documentation</div>
48- <div class="leftnav-subitems">
49- <div class="leftnav-item ">
50- <a href="/ssb-server/api.html" title="scuttlebot">scuttlebot</a>
51- </div>
52- <div class="leftnav-indent">
53- <div class="leftnav-item ">
54- <a href="/ssb-server/plugins/blobs.html" title="blobs">blobs</a>
55- </div>
56- <div class="leftnav-item ">
57- <a href="/ssb-server/plugins/block.html" title="block">block</a>
58- </div>
59- <div class="leftnav-item ">
60- <a href="/ssb-server/plugins/friends.html" title="friends">friends</a>
61- </div>
62- <div class="leftnav-item ">
63- <a href="/ssb-server/plugins/gossip.html" title="gossip">gossip</a>
64- </div>
65- <div class="leftnav-item ">
66- <a href="/ssb-server/plugins/invite.html" title="invite">invite</a>
67- </div>
68- <div class="leftnav-item ">
69- <a href="/ssb-server/plugins/private.html" title="private">private</a>
70- </div>
71- <div class="leftnav-item selected">
72- <a href="/ssb-server/plugins/replicate.html" title="replicate">replicate</a>
73- </div>
74- </div>
75- <div class="leftnav-item ">
76- <a href="/ssb-client" title="ssb-client">ssb-client</a>
77- </div>
78- <div class="leftnav-item ">
79- <a href="/ssb-feed" title="ssb-feed">ssb-feed</a>
80- </div>
81- <div class="leftnav-item ">
82- <a href="/ssb-keys" title="ssb-keys">ssb-keys</a>
83- </div>
84- <div class="leftnav-item ">
85- <a href="/ssb-msgs" title="ssb-msgs">ssb-msgs</a>
86- </div>
87- <div class="leftnav-item ">
88- <a href="/ssb-msg-schemas" title="ssb-msg-schemas">ssb-msg-schemas</a>
89- </div>
90- <div class="leftnav-item ">
91- <a href="/ssb-ref" title="ssb-ref">ssb-ref</a>
92- </div>
93- <div class="leftnav-item ">
94- <a href="/ssb-markdown" title="ssb-markdown">ssb-markdown</a>
95- </div>
96- <div class="leftnav-item ">
97- <a href="/patchwork-threads" title="patchwork-threads">patchwork-threads</a>
98- </div>
99- <div class="leftnav-item ">
100- <a href="/ssb-config" title="ssb-config">ssb-config</a>
101- </div>
102- <div class="leftnav-item ">
103- <a href="/secret-stack" title="secret-stack">secret-stack</a>
104- </div>
105- <div class="leftnav-item ">
106- <a href="/muxrpc" title="muxrpc">muxrpc</a>
107- </div>
108- <div class="leftnav-item ">
109- <a href="/muxrpcli" title="muxrpcli">muxrpcli</a>
110- </div>
111- <div class="leftnav-item ">
112- <a href="/mdmanifest" title="mdmanifest">mdmanifest</a>
113- </div>
114- <div class="leftnav-item ">
115- <a href="/docs/api/pull-stream.html" title="pull-stream">pull-stream</a>
116- </div>
117- </div>
118- <div class="leftnav-item">Articles</div>
119- <div class="leftnav-subitems">
120- <div class="leftnav-item ">
121- <a href="/docs/articles/design-challenge-avoid-centralization-and-singletons.html" title="Design Challenge: Avoiding Centralization and Singletons">Design Challenge: Avoiding Centralization and Singletons</a>
122- </div>
123- <div class="leftnav-item ">
124- <a href="/docs/articles/design-challenge-sybil-attack.html" title="Design Challenge: Sybil Attacks">Design Challenge: Sybil Attacks</a>
125- </div>
126- <div class="leftnav-item ">
127- <a href="/docs/articles/using-trust-in-open-networks.html" title="Using Trust in Open Networks">Using Trust in Open Networks</a>
128- </div>
129- </div>
130- </div>
131- <div id="content">
132- <h1 id="scuttlebot-replicate-plugin">scuttlebot replicate plugin</h1>
133-<p>Sync feeds between peers.</p>
134-<h2 id="changes-source">changes: source</h2>
135-<p>Listen to replicate events.</p>
136-<pre><code class="lang-bash">changes
137-</code></pre>
138-<pre><code class="lang-js">changes()
139-</code></pre>
140-<p>Emits events of the following form:</p>
141-<pre><code>{ type: &#39;progress&#39;, peerid:, total:, progress:, feeds:, sync: }
142-</code></pre>
143- </div>
144- </div>
145- </body>
7 + <body>
8 + <p>Article moved: <a href="https://github.com/ssbc/ssb-replicate">Scuttlebot Replicate Plugin - Documentation - SSBC</a></p>
9 + </body>
14610 </html>

Built with git-ssb-web