<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Pinning on Bitsy Wiki</title>
    <link>https://wiki.bitsy.services/wiki/cs/ipfs/pinning/</link>
    <description>Recent content in Pinning on Bitsy Wiki</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://wiki.bitsy.services/wiki/cs/ipfs/pinning/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Pinning Services</title>
      <link>https://wiki.bitsy.services/wiki/cs/ipfs/pinning/pinning-services/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/cs/ipfs/pinning/pinning-services/</guid>
      <description>&lt;p&gt;A pinning service runs the &lt;a href=&#34;https://wiki.bitsy.services/wiki/cs/ipfs&#34;&gt;IPFS&lt;/a&gt; node a publisher would&#xA;otherwise run. It takes a &lt;a href=&#34;https://wiki.bitsy.services/wiki/cs/ipfs/cid&#34;&gt;content identifier (CID)&lt;/a&gt; or a&#xA;file, keeps the blocks, keeps the process up, keeps the provider records fresh,&#xA;and usually sells a gateway hostname alongside. The product is uptime and&#xA;attention, and it is priced like hosting because that is what it is.&lt;/p&gt;&#xA;&lt;h2 id=&#34;two-ways-to-hand-data-over&#34;&gt;Two ways to hand data over&lt;a class=&#34;anchor&#34; href=&#34;#two-ways-to-hand-data-over&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Uploading the bytes&lt;/strong&gt; puts the import in the service&amp;rsquo;s hands, which means the&#xA;service picks the chunker, the CID version, and whether leaves are raw — so the&#xA;CID that comes back is a function of &lt;em&gt;their&lt;/em&gt; settings, not of the file alone.&#xA;Two services given the same file routinely return different CIDs, and neither is&#xA;wrong. A CID that has to be predictable, because it is going into a contract, a&#xA;signature, or a citation, has to be produced locally and then pinned rather than&#xA;discovered after the fact.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Pinning Service API</title>
      <link>https://wiki.bitsy.services/wiki/cs/ipfs/pinning/pinning-service-api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/cs/ipfs/pinning/pinning-service-api/</guid>
      <description>&lt;p&gt;The &lt;strong&gt;IPFS Pinning Service API&lt;/strong&gt; is one HTTP interface that every pinning&#xA;service can implement, so a node can be pointed at any of them without new&#xA;client code. &lt;a href=&#34;https://github.com/ipfs/kubo&#34;&gt;Kubo&lt;/a&gt; speaks it natively, which is&#xA;what turns &amp;ldquo;which service am I using&amp;rdquo; into a configuration line rather than an&#xA;integration project.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-surface&#34;&gt;The surface&lt;a class=&#34;anchor&#34; href=&#34;#the-surface&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Five operations over one resource:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;5&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;POST   /pins                  create a pin request&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;GET    /pins                  list, filtered by status, cid, name, or time&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;GET    /pins/{requestid}      one request&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;POST   /pins/{requestid}      replace the pinned CID, keeping the request&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;DELETE /pins/{requestid}      unpin&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;Authentication is a bearer token in the &lt;code&gt;Authorization&lt;/code&gt; header. A pin request&#xA;carries the &lt;a href=&#34;https://wiki.bitsy.services/wiki/cs/ipfs/cid&#34;&gt;content identifier (CID)&lt;/a&gt;, an optional name, an&#xA;optional &lt;code&gt;meta&lt;/code&gt; map the service stores and returns untouched, and &lt;code&gt;origins&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IPFS Cluster</title>
      <link>https://wiki.bitsy.services/wiki/cs/ipfs/pinning/ipfs-cluster/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/cs/ipfs/pinning/ipfs-cluster/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://wiki.bitsy.services/wiki/cs/ipfs&#34;&gt;IPFS&lt;/a&gt; pins are per-node: a pin on one machine says nothing to&#xA;any other. &lt;strong&gt;IPFS Cluster&lt;/strong&gt; adds the missing layer — a daemon that runs beside&#xA;each Kubo instance and gives a group of them one shared pinset, with a&#xA;replication factor per entry and automatic allocation of each pin to specific&#xA;peers.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-shape-of-it&#34;&gt;The shape of it&lt;a class=&#34;anchor&#34; href=&#34;#the-shape-of-it&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;5&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;6&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  peer A                    peer B                    peer C&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;┌──────────────┐          ┌──────────────┐          ┌──────────────┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│ ipfs-cluster │◄────────►│ ipfs-cluster │◄────────►│ ipfs-cluster │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│      │       │  pinset  │      │       │  pinset  │      │       │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;│   kubo       │          │   kubo       │          │   kubo       │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;└──────────────┘          └──────────────┘          └──────────────┘&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;The cluster peers agree on &lt;em&gt;which&lt;/em&gt; &lt;a href=&#34;https://wiki.bitsy.services/wiki/cs/ipfs/cid&#34;&gt;content identifiers (CIDs)&lt;/a&gt;&#xA;should be pinned and by whom; the Kubo daemons underneath do the actual pinning&#xA;and serving. Cluster is not a storage layer and does not touch blocks — it is&#xA;bookkeeping over a set of nodes that each speak plain IPFS to the outside world.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
