Browse Source

Fixing broken links

Signed-off-by: moxiegirl <mary@blockstack.com>
feat/clarity-updates
moxiegirl 6 years ago
parent
commit
fcb077e060
  1. 6
      _common/glossary.md
  2. 2
      _data/navigation_home.yml
  3. 6
      _site/android/tutorial.html
  4. 8
      _site/browser/browser-introduction.html
  5. 6
      _site/browser/faq_general.html
  6. 12
      _site/browser/hello-blockstack.html
  7. 6
      _site/browser/ids-introduction.html
  8. 10
      _site/browser/multi-player-storage.html
  9. 4
      _site/browser/todo-list.html
  10. 6
      _site/common/construction.html
  11. 6
      _site/common/glossary.md
  12. 164
      _site/core/atlas/howitworks.html
  13. 162
      _site/core/atlas/howtouse.html
  14. 165
      _site/core/atlas/overview.html
  15. 14
      _site/core/faq_developer.html
  16. 8
      _site/core/faq_evaluators.md
  17. 11
      _site/core/faq_technical.html
  18. 6
      _site/core/install-api.html
  19. 504
      _site/core/memcached.html
  20. 42
      _site/core/memcached.md
  21. 10
      _site/core/naming/architecture.html
  22. 16
      _site/core/naming/comparison.html
  23. 8
      _site/core/naming/creationhowto.html
  24. 8
      _site/core/naming/did.html
  25. 12
      _site/core/naming/forks.html
  26. 12
      _site/core/naming/introduction.html
  27. 14
      _site/core/naming/manage.html
  28. 10
      _site/core/naming/namespaces.html
  29. 6
      _site/core/naming/openbazaar.html
  30. 12
      _site/core/naming/pickname.html
  31. 10
      _site/core/naming/register.html
  32. 8
      _site/core/naming/resolving.html
  33. 8
      _site/core/naming/search.html
  34. 10
      _site/core/naming/subdomains.html
  35. 6
      _site/core/naming/tutorial_creation.html
  36. 8
      _site/core/naming/tutorial_subdomains.html
  37. 1061
      _site/core/wire-format.html
  38. 492
      _site/core/wire-format.md
  39. 2
      _site/feed.xml
  40. 6
      _site/ios/tutorial.html
  41. 2
      _site/robots.txt

6
_common/glossary.md

@ -11,7 +11,7 @@ Some accounts serve as social proofs, but they can contain any data the user wan
## Atlas
A peer-to-peer network maintained by Blockstack Core nodes that stores each
name's zone files and immutable data. See [this document](atlas_network.md) for
name's zone files and immutable data. See [this document]({{ site.baseurl }}/atlas/overview.html) for
details.
## Blockstack ID
@ -29,7 +29,7 @@ A server that reads a blockchain with [virtualchain](https://github.com/blocksta
## Blockstack Naming Service (BNS)
This is the naming protocol that Blockstack Core implements. See [this
document](blockstack_naming_service.md) for details.
document]({{ site.baseurl }}/core/naming/introduction.html) for details.
## Consensus Hash
@ -86,7 +86,7 @@ See the [wire format](wire-format.md) document for details.
Analogous to a DNS TLD, it represents a grouping of names. All names under the same namespace have the same pricing and lifetime rules.
Anyone can create a namespace, but doing so is expensive by design. See the
[namespace creation](namespace_creation.md) tutorial for details.
[namespace creation]({{ site.baseurl }}/core/naming/tutorial_creation.html) tutorial for details.
## Preorder

2
_data/navigation_home.yml

@ -26,6 +26,6 @@
doc: common/construction
- title: Blockstack Community
desc: Ask questions, view upcoming events, and get support.
desc: view upcoming events, become a contributor or evangelist.
icon: user
doc: common/community_ref

6
_site/android/tutorial.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/android/tutorial.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Android SDK Tutorial (Pre-release)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/android/tutorial.html","headline":"Android SDK Tutorial (Pre-release)","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/android/tutorial.html"},"@context":"http://schema.org"}</script>
{"description":"Android SDK Tutorial (Pre-release)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/android/tutorial.html","headline":"Android SDK Tutorial (Pre-release)","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/android/tutorial.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -176,7 +176,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">

8
_site/browser/browser-introduction.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/browser/browser-introduction.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Use the Blockstack Browser","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/browser-introduction.html","headline":"Use the Blockstack Browser","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/browser-introduction.html"},"@context":"http://schema.org"}</script>
{"description":"Use the Blockstack Browser","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/browser-introduction.html","headline":"Use the Blockstack Browser","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/browser-introduction.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -145,7 +145,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -217,7 +217,7 @@ closing the tab or even rebooting the computer does not log you out. Instead,
you should be sure to choose <strong>Settings &gt; RESET BROWSER</strong> before leaving the web
application.</p>
<p>For more informatin about your identity and the browser, see <a href="ids-introduction.md">Get and use a Blockstack IDs</a>.</p>
<p>For more informatin about your identity and the browser, see <a href="ids-introduction">Get and use a Blockstack IDs</a>.</p>
<h2 id="install-the-client-edition">Install the client edition</h2>

6
_site/browser/faq_general.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/browser/faq_general.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Users Frequently Asked Questions (FAQ)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/faq_general.html","headline":"Users Frequently Asked Questions (FAQ)","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/faq_general.html"},"@context":"http://schema.org"}</script>
{"description":"Users Frequently Asked Questions (FAQ)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/faq_general.html","headline":"Users Frequently Asked Questions (FAQ)","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/faq_general.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -145,7 +145,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">

12
_site/browser/hello-blockstack.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/browser/hello-blockstack.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Hello, Blockstack Tutorial","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/hello-blockstack.html","headline":"Hello, Blockstack Tutorial","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/hello-blockstack.html"},"@context":"http://schema.org"}</script>
{"description":"Hello, Blockstack Tutorial","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/hello-blockstack.html","headline":"Hello, Blockstack Tutorial","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/hello-blockstack.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -176,7 +176,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -245,11 +245,9 @@ you have installed <code class="highlighter-rouge">npm</code> using the <code cl
</div>
<p>If you don’t find <code class="highlighter-rouge">npm</code> in your system, <a href="https://www.npmjs.com/get-npm">install
it</a>. Finally, if you get stuck at any point
while working on the tutorial, the completed <a href="">source code is available for
you</a> to check your work against.</p>
it</a>.</p>
<p>Finally, make sure you have <a href="ids-introduction.md#create-an-initial-blockstack-id">created at least one Blockstack ID</a>. You’ll use this ID to interat with the application.</p>
<p>Finally, make sure you have <a href="/browser/ids-introduction.html#create-an-initial-blockstack-id">created at least one Blockstack ID</a>. You’ll use this ID to interat with the application.</p>
<h2 id="use-npm-to-install-yeoman-and-the-blockstack-app-generator">Use npm to install Yeoman and the Blockstack App Generator</h2>

6
_site/browser/ids-introduction.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/browser/ids-introduction.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Get and use a Blockstack ID","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/ids-introduction.html","headline":"Get and use a Blockstack ID","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/ids-introduction.html"},"@context":"http://schema.org"}</script>
{"description":"Get and use a Blockstack ID","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/ids-introduction.html","headline":"Get and use a Blockstack ID","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/ids-introduction.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -145,7 +145,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">

10
_site/browser/multi-player-storage.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/browser/multi-player-storage.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Manage Data with Gaia","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/multi-player-storage.html","headline":"Manage Data with Gaia","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/multi-player-storage.html"},"@context":"http://schema.org"}</script>
{"description":"Manage Data with Gaia","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/browser/multi-player-storage.html","headline":"Manage Data with Gaia","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/browser/multi-player-storage.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -176,7 +176,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -212,7 +212,7 @@ topics:</p>
<li><a href="#wrapping-up" id="markdown-toc-wrapping-up">Wrapping up</a></li>
</ul>
<p>This tutorial does not teach you about authentication. That is covered in depth <a href="hello-blockstack.md">in the hello-blockstack tutorial</a>.</p>
<p>This tutorial does not teach you about authentication. That is covered in depth <a href="hello-blockstack">in the hello-blockstack tutorial</a>.</p>
<!--TODO: authentication tutorial-->
<!--Strictly speaking not sure it is necessary here to send them out-->
@ -235,7 +235,7 @@ helpful.</p>
</ul>
<p>The basic identity and storage services are provided by <code class="highlighter-rouge">blockstack.js</code>. To test
the application, you need to have already <a href="ids-introduction.md">registered a Blockstack ID</a>.</p>
the application, you need to have already <a href="ids-introduction">registered a Blockstack ID</a>.</p>
<p>The tutorial relies on the <code class="highlighter-rouge">npm</code> dependency manager. Before you begin, verify
you have installed <code class="highlighter-rouge">npm</code> using the <code class="highlighter-rouge">which</code> command.</p>

4
_site/browser/todo-list.html

@ -6,7 +6,7 @@ with that ID using Blockstack Storage (Gaia).</p>
<h2 id="prerequisites">Prerequisites</h2>
<p>Make sure you have <a href="ids-introduction.md#create-an-initial-blockstack-id">created at least one Blockstack ID</a>. You’ll use this ID to Finteract with the Todo application.</p>
<p>Make sure you have <a href="ids-introduction#create-an-initial-blockstack-id">created at least one Blockstack ID</a>. You’ll use this ID to Finteract with the Todo application.</p>
<p>The applicaton code relies on both the <code class="highlighter-rouge">npm</code> and the <code class="highlighter-rouge">yarn</code> package managers.
Before you begin, verify you have these tools <code class="highlighter-rouge">npm</code> using the <code class="highlighter-rouge">which</code> command to
@ -22,7 +22,7 @@ verify.</p>
<p><a href="https://www.npmjs.com/get-npm">Install npm</a>, <a href="https://yarnpkg.com/lang/en/docs/install/#mac-stable">install
yarn</a>, or both as needed. You</p>
<p>While it stands alone, this tour does on the information from the <a href="hello-blockstack.md">Hello
<p>While it stands alone, this tour does on the information from the <a href="hello-blockstack">Hello
Blockstack tutorial</a>. If you haven’t worked through that
tutorial, you may want to do that before continuing.</p>

6
_site/common/construction.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/common/construction.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Excuse our dust!","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/common/construction.html","headline":"Excuse our dust!","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/common/construction.html"},"@context":"http://schema.org"}</script>
{"description":"Excuse our dust!","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/common/construction.html","headline":"Excuse our dust!","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/common/construction.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -137,7 +137,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">

6
_site/common/glossary.md

@ -11,7 +11,7 @@ Some accounts serve as social proofs, but they can contain any data the user wan
## Atlas
A peer-to-peer network maintained by Blockstack Core nodes that stores each
name's zone files and immutable data. See [this document](atlas_network.md) for
name's zone files and immutable data. See [this document]({{ site.baseurl }}/atlas/overview.html) for
details.
## Blockstack ID
@ -29,7 +29,7 @@ A server that reads a blockchain with [virtualchain](https://github.com/blocksta
## Blockstack Naming Service (BNS)
This is the naming protocol that Blockstack Core implements. See [this
document](blockstack_naming_service.md) for details.
document]({{ site.baseurl }}/core/naming/introduction.html) for details.
## Consensus Hash
@ -86,7 +86,7 @@ See the [wire format](wire-format.md) document for details.
Analogous to a DNS TLD, it represents a grouping of names. All names under the same namespace have the same pricing and lifetime rules.
Anyone can create a namespace, but doing so is expensive by design. See the
[namespace creation](namespace_creation.md) tutorial for details.
[namespace creation]({{ site.baseurl }}/core/naming/tutorial_creation.html) tutorial for details.
## Preorder

164
_site/core/atlas/howitworks.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/atlas/howitworks.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"How Atlas Works","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/atlas/howitworks.html","headline":"How Atlas Works","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/atlas/howitworks.html"},"@context":"http://schema.org"}</script>
{"description":"How Atlas Works","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/atlas/howitworks.html","headline":"How Atlas Works","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/atlas/howitworks.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -99,29 +99,147 @@
<div class="sidebar-fixed-width uk-visible@m">
<div class="sidebar-docs uk-position-fixed">
<!-- -->
<h5>Overview</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/introduction.html">Blockstack Naming Service (BNS)</a></li>
<!-- -->
<li class=""><a href="/core/naming/architecture.html">Understand the Architecture</a></li>
<!-- -->
<li class=""><a href="/core/naming/namespaces.html">Understand Namespaces</a></li>
<!-- -->
<li class=""><a href="/core/naming/comparison.html">Naming system feature comparison</a></li>
</ul>
<ul class="uk-nav uk-nav-default doc-nav">
<h5>Tutorials & Cookbooks</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/tutorial_creation.html">Create and Launch a Namespace</a></li>
<!-- -->
<li class=""><a href="/core/naming/tutorial_subdomains.html">Subdomain Design and Implementation</a></li>
<!-- -->
<li class=""><a href="/core/naming/search.html">How to build a Profile Search Index</a></li>
<!-- -->
<li class=""><a href="/core/naming/openbazaar.html">How to link your OpenBazaar GUID to your Blockstack ID</a></li>
</ul>
<!-- -->
<li class=""><a href="/core/atlas/overview.html">Overview of the Atlas network</a></li>
<h5>How to use BNS</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/pickname.html">Choose a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/creationhowto.html">Creating a Namespace</a></li>
<!-- -->
<li class=""><a href="/core/naming/resolving.html">Resolve a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/register.html">Register a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/manage.html">Manage BNS Names</a></li>
<!-- -->
<li class=""><a href="/core/naming/subdomains.html">BNS Subdomains</a></li>
</ul>
<!-- -->
<li class="uk-active"><a href="/core/atlas/howitworks.html">How Atlas Works</a></li>
<h5>Forks and Dids</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/forks.html">BNS Forks</a></li>
<!-- -->
<li class=""><a href="/core/naming/did.html">Decentralized Identifiers (DIDs)</a></li>
</ul>
<!-- -->
<li class=""><a href="/core/atlas/howtouse.html">How to Use the Atlas Network</a></li>
<h5>Atlas</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/atlas/overview.html">Overview of the Atlas network</a></li>
<!-- -->
<li class="uk-active"><a href="/core/atlas/howitworks.html">How Atlas Works</a></li>
<!-- -->
<li class=""><a href="/core/atlas/howtouse.html">How to Use the Atlas Network</a></li>
</ul>
</ul>
<h5>Reference</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/common/javascript_ref.html">Blockstack Javascript Reference</a></li>
<!-- -->
<li class=""><a href="/common/core_ref.html">Blockstack CORE API</a></li>
<!-- -->
<li class=""><a href="/core/faq_technical.html">Blockstack Technical FAQ</a></li>
</ul>
<!-- -->
</div>
</div>
@ -133,7 +251,6 @@
<div class="uk-article-meta uk-margin-top uk-margin-medium-bottom">
@ -145,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -212,7 +329,7 @@ but in a way that still guarantees that the sampling will remain unbiased.</p>
but only reports a random subset of peers that have met a minimium health threshold.</p>
</li>
<li>
<p>A new neighbor is only selected if it belongs to the same <a href="blockstack_naming_service.md#bns-forks">BNS
<p>A new neighbor is only selected if it belongs to the same <a href="/core/naming/introduction.html#bns-forks">BNS
fork-set</a> (i.e. it reports
as having a recent valid consensus hash).</p>
</li>
@ -365,7 +482,7 @@ which ones are missing which chunks can be found
<!-- <div class="uk-margin-large-top">
<div class="uk-margin-large-top">
<h3>Related Articles</h3>
@ -376,8 +493,9 @@ which ones are missing which chunks can be found
</ul>
</div>
-->
</article>
<script>

162
_site/core/atlas/howtouse.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/atlas/howtouse.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"How to Use the Atlas Network","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/atlas/howtouse.html","headline":"How to Use the Atlas Network","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/atlas/howtouse.html"},"@context":"http://schema.org"}</script>
{"description":"How to Use the Atlas Network","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/atlas/howtouse.html","headline":"How to Use the Atlas Network","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/atlas/howtouse.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -99,29 +99,147 @@
<div class="sidebar-fixed-width uk-visible@m">
<div class="sidebar-docs uk-position-fixed">
<!-- -->
<h5>Overview</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/introduction.html">Blockstack Naming Service (BNS)</a></li>
<!-- -->
<li class=""><a href="/core/naming/architecture.html">Understand the Architecture</a></li>
<!-- -->
<li class=""><a href="/core/naming/namespaces.html">Understand Namespaces</a></li>
<!-- -->
<li class=""><a href="/core/naming/comparison.html">Naming system feature comparison</a></li>
</ul>
<ul class="uk-nav uk-nav-default doc-nav">
<h5>Tutorials & Cookbooks</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/tutorial_creation.html">Create and Launch a Namespace</a></li>
<!-- -->
<li class=""><a href="/core/naming/tutorial_subdomains.html">Subdomain Design and Implementation</a></li>
<!-- -->
<li class=""><a href="/core/naming/search.html">How to build a Profile Search Index</a></li>
<!-- -->
<li class=""><a href="/core/naming/openbazaar.html">How to link your OpenBazaar GUID to your Blockstack ID</a></li>
</ul>
<!-- -->
<li class=""><a href="/core/atlas/overview.html">Overview of the Atlas network</a></li>
<h5>How to use BNS</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/pickname.html">Choose a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/creationhowto.html">Creating a Namespace</a></li>
<!-- -->
<li class=""><a href="/core/naming/resolving.html">Resolve a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/register.html">Register a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/manage.html">Manage BNS Names</a></li>
<!-- -->
<li class=""><a href="/core/naming/subdomains.html">BNS Subdomains</a></li>
</ul>
<!-- -->
<li class=""><a href="/core/atlas/howitworks.html">How Atlas Works</a></li>
<h5>Forks and Dids</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/forks.html">BNS Forks</a></li>
<!-- -->
<li class=""><a href="/core/naming/did.html">Decentralized Identifiers (DIDs)</a></li>
</ul>
<!-- -->
<li class="uk-active"><a href="/core/atlas/howtouse.html">How to Use the Atlas Network</a></li>
<h5>Atlas</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/atlas/overview.html">Overview of the Atlas network</a></li>
<!-- -->
<li class=""><a href="/core/atlas/howitworks.html">How Atlas Works</a></li>
<!-- -->
<li class="uk-active"><a href="/core/atlas/howtouse.html">How to Use the Atlas Network</a></li>
</ul>
</ul>
<h5>Reference</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/common/javascript_ref.html">Blockstack Javascript Reference</a></li>
<!-- -->
<li class=""><a href="/common/core_ref.html">Blockstack CORE API</a></li>
<!-- -->
<li class=""><a href="/core/faq_technical.html">Blockstack Technical FAQ</a></li>
</ul>
<!-- -->
</div>
</div>
@ -133,7 +251,6 @@
<div class="uk-article-meta uk-margin-top uk-margin-medium-bottom">
@ -145,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -299,7 +416,7 @@ failures.</p>
<!-- <div class="uk-margin-large-top">
<div class="uk-margin-large-top">
<h3>Related Articles</h3>
@ -310,8 +427,9 @@ failures.</p>
</ul>
</div>
-->
</article>
<script>

165
_site/core/atlas/overview.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/atlas/overview.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Overview of the Atlas network","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/atlas/overview.html","headline":"Overview of the Atlas network","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/atlas/overview.html"},"@context":"http://schema.org"}</script>
{"description":"Overview of the Atlas network","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/atlas/overview.html","headline":"Overview of the Atlas network","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/atlas/overview.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -99,29 +99,147 @@
<div class="sidebar-fixed-width uk-visible@m">
<div class="sidebar-docs uk-position-fixed">
<!-- -->
<h5>Overview</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/introduction.html">Blockstack Naming Service (BNS)</a></li>
<!-- -->
<li class=""><a href="/core/naming/architecture.html">Understand the Architecture</a></li>
<!-- -->
<li class=""><a href="/core/naming/namespaces.html">Understand Namespaces</a></li>
<!-- -->
<li class=""><a href="/core/naming/comparison.html">Naming system feature comparison</a></li>
</ul>
<ul class="uk-nav uk-nav-default doc-nav">
<h5>Tutorials & Cookbooks</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/tutorial_creation.html">Create and Launch a Namespace</a></li>
<!-- -->
<li class=""><a href="/core/naming/tutorial_subdomains.html">Subdomain Design and Implementation</a></li>
<!-- -->
<li class=""><a href="/core/naming/search.html">How to build a Profile Search Index</a></li>
<!-- -->
<li class=""><a href="/core/naming/openbazaar.html">How to link your OpenBazaar GUID to your Blockstack ID</a></li>
</ul>
<!-- -->
<li class="uk-active"><a href="/core/atlas/overview.html">Overview of the Atlas network</a></li>
<h5>How to use BNS</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/pickname.html">Choose a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/creationhowto.html">Creating a Namespace</a></li>
<!-- -->
<li class=""><a href="/core/naming/resolving.html">Resolve a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/register.html">Register a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/manage.html">Manage BNS Names</a></li>
<!-- -->
<li class=""><a href="/core/naming/subdomains.html">BNS Subdomains</a></li>
</ul>
<!-- -->
<li class=""><a href="/core/atlas/howitworks.html">How Atlas Works</a></li>
<h5>Forks and Dids</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/forks.html">BNS Forks</a></li>
<!-- -->
<li class=""><a href="/core/naming/did.html">Decentralized Identifiers (DIDs)</a></li>
</ul>
<!-- -->
<li class=""><a href="/core/atlas/howtouse.html">How to Use the Atlas Network</a></li>
<h5>Atlas</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class="uk-active"><a href="/core/atlas/overview.html">Overview of the Atlas network</a></li>
<!-- -->
<li class=""><a href="/core/atlas/howitworks.html">How Atlas Works</a></li>
<!-- -->
<li class=""><a href="/core/atlas/howtouse.html">How to Use the Atlas Network</a></li>
</ul>
</ul>
<h5>Reference</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/common/javascript_ref.html">Blockstack Javascript Reference</a></li>
<!-- -->
<li class=""><a href="/common/core_ref.html">Blockstack CORE API</a></li>
<!-- -->
<li class=""><a href="/core/faq_technical.html">Blockstack Technical FAQ</a></li>
</ul>
<!-- -->
</div>
</div>
@ -133,7 +251,6 @@
<div class="uk-article-meta uk-margin-top uk-margin-medium-bottom">
@ -145,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -173,8 +290,7 @@ concepts are discussed:</p>
<li><a href="#feature-comparison" id="markdown-toc-feature-comparison">Feature Comparison</a></li>
</ul>
<p>The reader of this document is expected to be familiar with the <a href="blockstack_naming_service.md">Blockstack
Naming Service</a> (BNS), as well as Blockstack’s
<p>The reader of this document is expected to be familiar with the <a href="/core/naming/introduction.html">Blockstack Naming Service</a>(BNS), as well as Blockstack’s
storage system <a href="https://github.com/blockstack/gaia">Gaia</a>. We advise the reader
to familiarize themselves with both systems before approaching this document.</p>
@ -354,7 +470,7 @@ as part of the protocol.</p>
<!-- <div class="uk-margin-large-top">
<div class="uk-margin-large-top">
<h3>Related Articles</h3>
@ -365,8 +481,9 @@ as part of the protocol.</p>
</ul>
</div>
-->
</article>
<script>

14
_site/core/faq_developer.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/faq_developer.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Developer FAQs","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/faq_developer.html","headline":"Developer FAQs","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/faq_developer.html"},"@context":"http://schema.org"}</script>
{"description":"Developer FAQs","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/faq_developer.html","headline":"Developer FAQs","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/faq_developer.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -176,7 +176,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -297,7 +297,7 @@ https://gaia.blockstack.org/hub/1FrZTGQ8DM9TMPfGXtXMUvt2NNebLiSzad/
<h2 id="how-do-i-register-blockstack-subdomains">How do I register Blockstack Subdomains?</h2>
<p>You can deploy and use a <a href="subdomains.md">Blockstack Subdomain Registrar</a>, or
<p>You can deploy and use a <a href="/core/naming/subdomains.html">Blockstack Subdomain Registrar</a>, or
use an existing one.</p>
<h2 id="can-i-programmatically-register-blockstack-ids">Can I programmatically register Blockstack IDs?</h2>
@ -310,7 +310,7 @@ register Blockstack IDs themselves.</p>
<ul>
<li>
<p>Set up a <code class="highlighter-rouge">blockstack api</code> endpoint (see the project <a href="../README.md">README</a>) and write a
<p>Set up a <code class="highlighter-rouge">blockstack api</code> endpoint (see the project <a href="https://github.com/blockstack/blockstack-core/blob/master/README.md">README</a>) and write a
program to automatically register names. Also, see the <a href="https://blockstack.github.io/blockstack-core/#managing-names-register-a-name">API
documentation</a>
for registering names on this endpoint.</p>
@ -329,11 +329,11 @@ create a program that drives subdomain registration on your Blockstack ID.</p>
<h2 id="do-you-have-a-testnet-or-sandbox-to-experiment-with-blockstack">Do you have a testnet or sandbox to experiment with Blockstack?</h2>
<p>We have an <a href="../integration_tests">integration test framework</a> that provides a
<p>We have an <a href="https://github.com/blockstack/blockstack-core/tree/master/integration_tests">integration test framework</a> that provides a
private Blockstack testnet. It uses <code class="highlighter-rouge">bitcoin -regtest</code> to create a private
blockchain that you can interact with, without having to spend any Bitcoin or
having to wait for blocks to confirm. Please see the
<a href="../integration_tests/README.md">README</a> for details.</p>
<a href="https://github.com/blockstack/blockstack-core/blob/master/integration_tests/README.md">README</a> for details.</p>
<h2 id="does-blockstack-have-a-smart-contract-system">Does Blockstack have a smart contract system?</h2>

8
_site/core/faq_evaluators.md

@ -59,7 +59,7 @@ only you control your Blockstack ID, and no one can track your logins.
## How do I get a Blockstack ID?
If you use the [Blockstack Browser](browser/browser-introduction.md) to create a
If you use the [Blockstack Browser]({{ site.baseurl }}/browser/browser-introduction.md) to create a
new ID.
## Why do I need a Blockstack ID?
@ -70,7 +70,7 @@ a document with `bob.id`, then `bob.id`'s browser uses the Blockstack ID
`alice.id` to look up where `alice.id` stored it.
The technical descriptions of how and why this works are quite long.
Please see the [Blockstack Naming Service](core/naming/introduction.md)
Please see the [Blockstack Naming Service]({{site.baseurl}}/core/naming/introduction.html)
documentation for a full description.
=
@ -80,10 +80,10 @@ documentation for a full description.
The components that make up Blockstack do not have any central points of
control.
* The [Blockstack Naming Service](blockstack_naming_service.md) runs on top of
* The [Blockstack Naming Service]({{ site.baseurl }}/core/naming/introduction.html) runs on top of
the Bitcoin blockchain, which itself is decentralized. It binds Blockstack
IDs to a small amount of on-chain data (usually a hash of off-chain data).
* The [Atlas Peer Network](atlas_network.md) stores chunks of data referenced by
* The [Atlas Peer Network]({{ site.baseurl }}/core/atlas/overview.html) stores chunks of data referenced by
names in BNS. It operates under similar design principles to BitTorrent, and
has no single points of failure. The network is self-healing---if a node
crashes, it quickly recovers all of its state from its peers.

11
_site/core/faq_technical.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/faq_technical.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Blockstack Technical FAQ","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/faq_technical.html","headline":"Blockstack Technical FAQ","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/faq_technical.html"},"@context":"http://schema.org"}</script>
{"description":"Blockstack Technical FAQ","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/faq_technical.html","headline":"Blockstack Technical FAQ","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/faq_technical.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -445,8 +445,7 @@ system like BitTorrent or IPFS.</p>
data to a bucket in Microsoft Azure. However, you can configure and
deploy your own Gaia hub and have Blockstack store your data there instead.</p>
<p>The <a href="blockstack_naming_service.md">Blockstack Naming Service</a> and the <a href="atlas_network.md">Atlas
network</a> work together to help other users discover your
<p>The <a href="/core/naming/introduction.html">Blockstack Naming Service</a> and the <a href="/core/atlas/overview.html">Atlas network</a> work together to help other users discover your
app-specific public data, given your Blockstack ID.</p>
<h2 id="what-is-a-blockstack-subdomain">What is a Blockstack Subdomain?</h2>
@ -463,7 +462,7 @@ the same safety properties. They are globally unique, they are strongly owned
by a private key, and they are human-readable.</p>
<p>Subdomains are considerably cheaper than Blockstack IDs, since hundreds of them
can be registered with a single transaction. The <a href="blockstack_naming_service.md">BNS
can be registered with a single transaction. The <a href="/core/naming/introduction.html">BNS
documentation</a> describes them in detail.</p>
<p>Subdomains provide a fast, inexpensive way to onboard many users at once.</p>

6
_site/core/install-api.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/install-api.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Blockstack API","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/install-api.html","headline":"Blockstack API","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/install-api.html"},"@context":"http://schema.org"}</script>
{"description":"Blockstack API","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/install-api.html","headline":"Blockstack API","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/install-api.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">

504
_site/core/memcached.html

@ -0,0 +1,504 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Begin Jekyll SEO tag v2.5.0 -->
<title>Installing Memcached | Blockstack</title>
<meta name="generator" content="Jekyll v3.8.3" />
<meta property="og:title" content="Installing Memcached" />
<meta name="author" content="Blockstack" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Installing Memcached" />
<meta property="og:description" content="Installing Memcached" />
<link rel="canonical" href="https://zbabystack.netlify.com/core/memcached.html" />
<meta property="og:url" content="https://zbabystack.netlify.com/core/memcached.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Installing Memcached","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/memcached.html","headline":"Installing Memcached","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/memcached.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
<meta property="og:image" content="/assets/posts/logo.png"/>
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="shortcut icon" type="image/png" href="/assets/img/touch-icon.png" >
<link rel="alternate" type="application/rss+xml" title="Blockstack" href="/feed.xml">
<script src="/assets/js/main.js"></script>
</head>
<body>
<header class="uk-background-secondary">
<div data-uk-sticky="sel-target: .uk-navbar-container; cls-active: uk-navbar-sticky" class="uk-sticky uk-sticky-fixed" style="position: fixed; top: 0px; width: 1904px;">
<nav class="uk-navbar-container">
<div class="uk-container">
<div data-uk-navbar>
<div class="uk-navbar-left">
<!-- <a class="uk-navbar-item uk-logo" href="/"><img src="https://zbabystack.netlify.com/assets/posts/logo.png" alt="Docs"></a> -->
<a class="uk-navbar-item uk-logo" href="/"><img src="/assets/posts/logo.png" alt="Docs"></a>
</div>
<div class="uk-navbar-right">
<ul class="uk-navbar-nav uk-visible@m">
<li><a href="https://blockstack.org" target="_blank" >Blockstack.org</a></li>
<li><a href="https://forum.blockstack.org/" target="_blank" >Forums</a></li>
<li><a href="https://github.com/blockstack" target="_blank" >GitHub</a></li>
</ul>
<div>
<a class="uk-navbar-toggle" uk-search-icon href="#"></a>
<div class="uk-drop uk-background-default uk-border-rounded" uk-drop="mode: click; pos: left-center; offset: 0">
<form class="uk-search uk-search-navbar uk-width-1-1" onsubmit="return false;">
<input id="searchBox" class="uk-search-input" type="search" placeholder="Search..." autofocus>
</form>
<ul id="searchBox-results" class="uk-position-absolute uk-width-1-1 uk-list"></ul>
</div>
</div>
<a class="uk-navbar-toggle uk-hidden@m" href="#offcanvas" data-uk-navbar-toggle-icon data-uk-toggle></a>
</div>
</div>
</div>
</nav>
</div>
</header>
<div class="uk-section">
<div class="uk-container">
<div class="uk-grid-large" data-uk-grid>
<div class="sidebar-fixed-width uk-visible@m">
<div class="sidebar-docs uk-position-fixed">
<h5>Overview</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/introduction.html">Blockstack Naming Service (BNS)</a></li>
<!-- -->
<li class=""><a href="/core/naming/architecture.html">Understand the Architecture</a></li>
<!-- -->
<li class=""><a href="/core/naming/namespaces.html">Understand Namespaces</a></li>
<!-- -->
<li class=""><a href="/core/naming/comparison.html">Naming system feature comparison</a></li>
</ul>
<h5>Tutorials & Cookbooks</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/tutorial_creation.html">Create and Launch a Namespace</a></li>
<!-- -->
<li class=""><a href="/core/naming/tutorial_subdomains.html">Subdomain Design and Implementation</a></li>
<!-- -->
<li class=""><a href="/core/naming/search.html">How to build a Profile Search Index</a></li>
<!-- -->
<li class=""><a href="/core/naming/openbazaar.html">How to link your OpenBazaar GUID to your Blockstack ID</a></li>
</ul>
<h5>How to use BNS</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/pickname.html">Choose a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/creationhowto.html">Creating a Namespace</a></li>
<!-- -->
<li class=""><a href="/core/naming/resolving.html">Resolve a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/register.html">Register a name</a></li>
<!-- -->
<li class=""><a href="/core/naming/manage.html">Manage BNS Names</a></li>
<!-- -->
<li class=""><a href="/core/naming/subdomains.html">BNS Subdomains</a></li>
</ul>
<h5>Forks and Dids</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/naming/forks.html">BNS Forks</a></li>
<!-- -->
<li class=""><a href="/core/naming/did.html">Decentralized Identifiers (DIDs)</a></li>
</ul>
<h5>Atlas</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/core/atlas/overview.html">Overview of the Atlas network</a></li>
<!-- -->
<li class=""><a href="/core/atlas/howitworks.html">How Atlas Works</a></li>
<!-- -->
<li class=""><a href="/core/atlas/howtouse.html">How to Use the Atlas Network</a></li>
</ul>
<h5>Reference</h5>
<ul class="uk-nav uk-nav-default doc-nav">
<!-- -->
<li class=""><a href="/common/javascript_ref.html">Blockstack Javascript Reference</a></li>
<!-- -->
<li class=""><a href="/common/core_ref.html">Blockstack CORE API</a></li>
<!-- -->
<li class=""><a href="/core/faq_technical.html">Blockstack Technical FAQ</a></li>
</ul>
</div>
</div>
<div class="uk-width-1-1 uk-width-expand@m">
<article class="uk-article">
<h1 class="uk-article-title">Installing Memcached</h1>
<div class="uk-article-meta uk-margin-top uk-margin-medium-bottom">
<!-- <img class="avatar avatar-small" alt="Blockstack" width="32" height="32" data-proofer-ignore="true" src="https://avatars2.githubusercontent.com/Blockstack?v=3&s=32" srcset="https://avatars2.githubusercontent.com/Blockstack?v=3&s=32 1x, https://avatars2.githubusercontent.com/Blockstack?v=3&s=64 2x, https://avatars2.githubusercontent.com/Blockstack?v=3&s=96 3x, https://avatars2.githubusercontent.com/Blockstack?v=3&s=128 4x" /> -->
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
<a "target="_blank" href="https://github.com/blockstack/blockstack-core/blob/master/docs/memcached.md" class="btn btn-default githubEditButton" role="button">
<span data-uk-icon="icon: pencil; ratio: 1.2"></span> Edit this page on Github</a>
<span style="font-family:Wingdings">&#119;</span> Sep 10, 2018
</time>
</div>
<div class="article-content">
<p>The Blockstack API optionally uses memcached and pylibmc for scaling read-only
calls. If you want to enable this functionality then you should have memcached
running locally.</p>
<h3 id="memcached-on-debian--ubuntu">Memcached on Debian &amp; Ubuntu:</h3>
<div class="highlighter-rouge"><pre class="highlight"><code>$ sudo apt-get install -y python-dev libmemcached-dev zlib1g-dev
$ pip install pylibmc
</code></pre>
</div>
<h3 id="memcached-on-macos">Memcached on macOS:</h3>
<p>Easiest way to install memcached on macOS is by using <a href="https://brew.sh/">Homebrew</a>.</p>
<p>After installing Homebrew:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>$ brew install memcached
$ brew install libmemcached
$ pip install pylibmc --install-option="--with-libmemcached=/usr/local/Cellar/libmemcached/1.0.18_1/"
</code></pre>
</div>
<p>After installing, you can start memcached and check if it’s running properly:</p>
<div class="highlighter-rouge"><pre class="highlight"><code>$ memcached -d
$ echo stats | nc localhost 11211
</code></pre>
</div>
<h3 id="memcached-on-heroku">Memcached on Heroku</h3>
<p>To deploy on Heroku:</p>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>heroku create
<span class="gp">$ </span>heroku addons:add memcachedcloud
<span class="gp">$ </span>git push heroku master
</code></pre>
</div>
<div class="share uk-text-center">
<a href="https://twitter.com/intent/tweet?text=Installing Memcached&url=https://zbabystack.netlify.com/core/memcached.html&via=&related=" rel="nofollow" target="_blank" title="Share on Twitter" onclick="window.open(this.href, 'twitter', 'width=550,height=235');return false;"><span data-uk-icon="icon: twitter; ratio: 1.2"></span></a>
<a class="uk-margin-small-left" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fzbabystack.netlify.com%2Fcore%2Fmemcached.html" rel="nofollow" target="_blank" title="Share on Facebook" onclick="window.open(this.href, 'facebook-share','width=580,height=296');return false;"><span data-uk-icon="icon: facebook; ratio: 1.2"></span></a>
</div>
</div>
<hr class="uk-margin-medium">
<div class="uk-margin-large-top">
<h3>Related Articles</h3>
<ul class="uk-list">
</ul>
</div>
</article>
<script>
// Table of contents scroll to
UIkit.scroll('#markdown-toc a', {
duration: 400,
offset: 120
});
</script>
</div>
</div>
</div>
<div id="offcanvas" data-uk-offcanvas="flip: true; overlay: true">
<div class="uk-offcanvas-bar">
<button class="uk-offcanvas-close" type="button" data-uk-close></button>
<ul class="uk-nav uk-nav-default">
<!-- <li><a class="uk-logo uk-margin-small-bottom" href="/"><img src="https://zbabystack.netlify.com/assets/posts/logo.png" alt="Docs"></a></li> -->
<li><a class="uk-logo uk-margin-small-bottom" href="/"><img src="/assets/posts/logo.png" alt="Docs"></a></li>
<li><a href="https://blockstack.org" target="_blank" >Blockstack.org</a></li>
<li><a href="https://forum.blockstack.org/" target="_blank" >Forums</a></li>
<li><a href="https://github.com/blockstack" target="_blank" >GitHub</a></li>
</ul>
<div class="uk-margin-small-top uk-text-center uk-text-muted uk-link-muted">
<div data-uk-grid class="uk-child-width-auto uk-grid-small uk-flex-center uk-grid">
<div class="uk-first-column">
<a href="https://twitter.com/" data-uk-icon="icon: twitter" class="uk-icon-link uk-icon" target="_blank"></a>
</div>
<div>
<a href="https://www.facebook.com/" data-uk-icon="icon: facebook" class="uk-icon-link uk-icon" target="_blank"></a>
</div>
<div>
<a href="https://www.instagram.com/" data-uk-icon="icon: instagram" class="uk-icon-link uk-icon" target="_blank"></a>
</div>
<div>
<a href="https://vimeo.com/" data-uk-icon="icon: vimeo" class="uk-icon-link uk-icon" target="_blank"></a>
</div>
</div>
</div>
</div>
</div>
<footer class="uk-section uk-text-center uk-text-muted uk-link-muted">
<div class="uk-container uk-container-small">
<!-- <div>
<ul class="uk-subnav uk-flex-center">
<li><a href="https://blockstack.org" target="_blank" >Blockstack.org</a></li>
<li><a href="https://forum.blockstack.org/" target="_blank" >Forums</a></li>
<li><a href="https://github.com/blockstack" target="_blank" >GitHub</a></li>
</ul>
</div>
<div class="uk-margin-medium">
<div data-uk-grid class="uk-child-width-auto uk-grid-small uk-flex-center uk-grid">
<div class="uk-first-column">
<a href="https://twitter.com/" data-uk-icon="icon: twitter" class="uk-icon-link uk-icon" target="_blank"></a>
</div>
<div>
<a href="https://www.facebook.com/" data-uk-icon="icon: facebook" class="uk-icon-link uk-icon" target="_blank"></a>
</div>
<div>
<a href="https://www.instagram.com/" data-uk-icon="icon: instagram" class="uk-icon-link uk-icon" target="_blank"></a>
</div>
<div>
<a href="https://vimeo.com/" data-uk-icon="icon: vimeo" class="uk-icon-link uk-icon" target="_blank"></a>
</div>
</div>
</div> -->
<div class="uk-margin-medium uk-text-small copyright">&copy; 2018 Blockstack</div>
</div>
</footer>
<script type="text/javascript">
/* Create a configuration object */
var ss360Config = {
/* Your site id */
siteId: 'blockstack',
/* A CSS selector that points to your search box */
searchBox: {selector: '#searchBox'}
};
</script>
<script src="https://cdn.sitesearch360.com/sitesearch360-v11.min.js" async></script>
</body>
</html>

42
_site/core/memcached.md

@ -1,42 +0,0 @@
Installing Memcached
=======
The Blockstack API optionally uses memcached and pylibmc for scaling read-only
calls. If you want to enable this functionality then you should have memcached
running locally.
### Memcached on Debian & Ubuntu:
```
$ sudo apt-get install -y python-dev libmemcached-dev zlib1g-dev
$ pip install pylibmc
```
### Memcached on macOS:
Easiest way to install memcached on macOS is by using [Homebrew](https://brew.sh/).
After installing Homebrew:
```
$ brew install memcached
$ brew install libmemcached
$ pip install pylibmc --install-option="--with-libmemcached=/usr/local/Cellar/libmemcached/1.0.18_1/"
```
After installing, you can start memcached and check if it's running properly:
```
$ memcached -d
$ echo stats | nc localhost 11211
```
### Memcached on Heroku
To deploy on Heroku:
```bash
$ heroku create
$ heroku addons:add memcachedcloud
$ git push heroku master
```

10
_site/core/naming/architecture.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/architecture.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Understand the Architecture","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/architecture.html","headline":"Understand the Architecture","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/architecture.html"},"@context":"http://schema.org"}</script>
{"description":"Understand the Architecture","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/architecture.html","headline":"Understand the Architecture","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/architecture.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -348,7 +348,7 @@ BNS clients:</p>
<li>The <a href="https://github.com/blockstack/blockstack-browser">Blockstack Browser</a> gives users
and developers a graphical UI to resolve, register and manage names. This is the recommended
way to interact with BNS.</li>
<li>The <a href="https://blockstack.org/docs/#lookups">Blockstack CLI</a> gives developers low-level
<li>The Blockstack CLI gives developers low-level
control over resolving, registering, and managing names.
A new CLI that uses <a href="https://github.com/blockstack/blockstack.js">blockstack.js</a>
is under development, and will replace the existing CLI program.</li>
@ -359,7 +359,7 @@ Browser</a>.</p>
<p>Developers who want to make their own client programs that do not use
the reference client library code should read the
<a href="wire-format.md">BNS transaction wire format</a> document for generating and
<a href="/core/wire-format.html">BNS transaction wire format</a> document for generating and
sending their own transactions.</p>
<p>The examples in this document focus on resolving names using <code class="highlighter-rouge">curl</code>. We refer

16
_site/core/naming/comparison.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/comparison.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Naming system feature comparison","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/comparison.html","headline":"Naming system feature comparison","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/comparison.html"},"@context":"http://schema.org"}</script>
{"description":"Naming system feature comparison","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/comparison.html","headline":"Naming system feature comparison","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/comparison.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -291,7 +291,7 @@ comparison to Blockstack:</p>
<p>Blockstack and DNS both implement naming systems, but in fundamentally
different ways. Blockstack <em>can be used</em> for resolving host names to IP
addresses, but this is not its default use-case. The <a href="blockstack_naming_service.md">Blockstack Naming
addresses, but this is not its default use-case. The <a href="/core/naming/introduction.html">Blockstack Naming
Service</a> (BNS) instead behaves
more like a decentralized
<a href="https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol">LDAP</a> system for
@ -327,9 +327,9 @@ of <code class="highlighter-rouge">bar.baz</code> in both DNS and BNS).</p>
</li>
</ul>
<p>More details can be found in the <a href="https://blockstack.org/docs/blockstack-vs-dns">Blockstack vs
<p>More details can be found in the <a href="/core/naming/comparison.html">Blockstack vs
DNS</a> document. A feature
comparison can be found at the end of the <a href="blockstack_naming_service.md">Blockstack Naming
comparison can be found at the end of the <a href="/core/naming/introduction.html">Blockstack Naming
Service</a> document.</p>
<h2 id="blockstack-vs-namecoin">Blockstack vs Namecoin</h2>
@ -342,7 +342,7 @@ miner. This prompted a re-architecting of the system to be <em>portable</em> ac
blockchains, so that if Blockstack’s underlying blockchain (currently Bitcoin)
ever became insecure, the system could migrate to a more secure blockchain.</p>
<p>A feature comparison can be found at the end of the <a href="blockstack_naming_service.md">Blockstack Naming
<p>A feature comparison can be found at the end of the <a href="/core/naming/introduction.html">Blockstack Naming
Service</a> document.</p>
<h2 id="blockstack-vs-ens">Blockstack vs ENS</h2>
@ -361,7 +361,7 @@ node like Blockstack Core). BNS name state and BNS subdomains reside entirely
off-chain in the Atlas network. This has allowed BNS to migrate from blockchain
to blockchain in order to survive individual blockchain failures, and this has
allowed BNS developers to upgrade its consensus rules without having to get the
blockchain’s permission (see the <a href="https://blockstack.org/virtualchain_dccl2016.pdf">virtualchain
blockchain’s permission (see the <a href="https://blockstack.org/virtualchain.pdf">virtualchain
paper</a> for details).</p>
<h2 id="summary-feature-comparison">Summary feature comparison</h2>

8
_site/core/naming/creationhowto.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/creationhowto.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Creating a Namespace","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/creationhowto.html","headline":"Creating a Namespace","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/creationhowto.html"},"@context":"http://schema.org"}</script>
{"description":"Creating a Namespace","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/creationhowto.html","headline":"Creating a Namespace","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/creationhowto.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -329,7 +329,7 @@ create the same namespace, the one that successfully confirms both the
do this, then the namespace they created disappears (along with all the names
they imported).</p>
<p>Developers wanting to create their own namespaces should read the <a href="namespace_creation.md">namespace
<p>Developers wanting to create their own namespaces should read the <a href="/core/naming/tutorial_creation.html">namespace
creation</a> document. It is highly recommended that
developers follow this tutorial closely, given the large amount of
cryptocurrency at stake.</p>

8
_site/core/naming/did.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/did.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Decentralized Identifiers (DIDs)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/did.html","headline":"Decentralized Identifiers (DIDs)","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/did.html"},"@context":"http://schema.org"}</script>
{"description":"Decentralized Identifiers (DIDs)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/did.html","headline":"Decentralized Identifiers (DIDs)","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/did.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -311,7 +311,7 @@ name:</p>
<ul>
<li>The name must exist</li>
<li>The name’s zone file hash must be the hash of a well-formed DNS zone file</li>
<li>The DNS zone file must be present in the BNS <a href="atlas_network.md">Atlas Network</a></li>
<li>The DNS zone file must be present in the BNS <a href="/core/atlas/overview.html">Atlas Network</a></li>
<li>The DNS zone file must contain a <code class="highlighter-rouge">URI</code> resource record that points to a signed
JSON Web Token</li>
<li>The public key that signed the JSON Web Token (and is included with it) must

12
_site/core/naming/forks.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/forks.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"BNS Forks","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/forks.html","headline":"BNS Forks","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/forks.html"},"@context":"http://schema.org"}</script>
{"description":"BNS Forks","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/forks.html","headline":"BNS Forks","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/forks.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -342,14 +342,14 @@ accepted if it included a recent valid consensus hash.
This means that all BNS nodes in the client’s desired fork-set will accept
the transaction, and all other BNS nodes not in the fork-set will ignore it.
You can see where the consensus hash is included in blockchain transactions by reading
the <a href="wire-format.md">transaction wire format</a> document.</p>
the <a href="/core/wire-format.html">transaction wire format</a> document.</p>
<h2 id="fork-set-selection">Fork-set Selection</h2>
<p>The blockchain linearizes the history of transactions, which means that
in general, there exists a fork-set for each distinct set of BNS
consensus rules. For example, the Blockstack Core <a href="release_notes/changelog-0.14.md">2016 hard fork</a>
and <a href="release_notes/changelog-0.17.md">2017 hard fork</a> both introduced new consensus
consensus rules. For example, the Blockstack Core <a href="https://github.com/blockstack/blockstack-core/blob/master/release_notes/changelog-0.14.md">2016 hard fork</a>
and <a href="https://github.com/blockstack/blockstack-core/blob/master/release_notes/changelog-0.17.md">2017 hard fork</a> both introduced new consensus
rules, which means at the time of this writing there are three possible fork-sets:
the pre-2016 fork-set, the 2016-2017 fork-set, and the post-2017 fork-set.
The <a href="https://node.blockstack.org:6263">public BNS nodes</a> are always running

12
_site/core/naming/introduction.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/introduction.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Blockstack Naming Service (BNS)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/introduction.html","headline":"Blockstack Naming Service (BNS)","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/introduction.html"},"@context":"http://schema.org"}</script>
{"description":"Blockstack Naming Service (BNS)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/introduction.html","headline":"Blockstack Naming Service (BNS)","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/introduction.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -311,7 +311,7 @@ resolves to. Specifically, a name is owned by one or more ECDSA private keys.</
synchronized to all of the other ones in the world, so queries on one BNS node
will be the same on other nodes. BNS nodes allow a name’s owner to bind
up to 40Kb of off-chain state to their name, which will be replicated to all
BNS nodes via the <a href="atlas_network.md">Atlas network</a>.</p>
BNS nodes via the <a href="/core/atlas/overview.html">Atlas network</a>.</p>
<p>BNS nodes extract the name database log from an underlying blockchain (Blockstack
Core currently uses Bitcoin, and had used Namecoin in the past).
@ -403,13 +403,13 @@ Namespaces are not owned by their creators.</p>
blockchain. The ownership and state of these names are controlled by sending
blockchain transactions. Example names include <code class="highlighter-rouge">verified.podcast</code> and
<code class="highlighter-rouge">muneeb.id</code>. Anyone can create a BNS name, as long as the namespace that
contains it exists already. The state for BNS names is usually stored in the <a href="atlas_network.md">Atlas
contains it exists already. The state for BNS names is usually stored in the <a href="/core/atlas/overview.html">Atlas
network</a>.</p>
</li>
<li>
<p><strong>BNS subdomains</strong>. These are names whose records are stored off-chain,
but are collectively anchored to the blockchain. The ownership and state for
these names lives within the <a href="atlas_network.md">Atlas network</a>. While BNS
these names lives within the <a href="/core/atlas/overview.html">Atlas network</a>. While BNS
subdomains are owned by separate private keys, a BNS name owner must
broadcast their subdomain state. Example subdomains include <code class="highlighter-rouge">jude.personal.id</code>
and <code class="highlighter-rouge">podsaveamerica.verified.podcast</code>. Unlike BNS namespaces and names, the

14
_site/core/naming/manage.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/manage.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Manage BNS Names","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/manage.html","headline":"Manage BNS Names","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/manage.html"},"@context":"http://schema.org"}</script>
{"description":"Manage BNS Names","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/manage.html","headline":"Manage BNS Names","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/manage.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -338,7 +338,7 @@ hub</a> and want other people to read from it.</p>
<p>A <code class="highlighter-rouge">NAME_UPDATE</code> transaction is generated from the name, a recent <a href="#bns-forks">consensus
hash</a>, and the new zone file hash. The reference clients gather
this information automatically. See the <a href="wire-format.md">transaction format</a>
this information automatically. See the <a href="/core/wire-format.html">transaction format</a>
document for details on how to construct this transaction.</p>
<h2 id="name_transfer-live-example">NAME_TRANSFER (<a href="https://www.blocktrail.com/BTC/tx/7a0a3bb7d39b89c3638abc369c85b5c028d0a55d7804ba1953ff19b0125f3c24">live example</a>)</h2>
@ -358,7 +358,7 @@ recipient’s name does not resolve to your zone file.</p>
<p>The <code class="highlighter-rouge">NAME_TRANSFER</code> transaction is generated from the name, a recent <a href="#bns-forks">consensus
hash</a>, and the new public key hash. The reference clients gather
this information automatically. See the <a href="wire-format.md">transaction format</a>
this information automatically. See the <a href="/core/wire-format.html">transaction format</a>
document for details on how to construct this transaction.</p>
<h2 id="name_revoke-live-example">NAME_REVOKE (<a href="https://www.blocktrail.com/BTC/tx/eb2e84a45cf411e528185a98cd5fb45ed349843a83d39fd4dff2de47adad8c8f">live example</a>)</h2>
@ -372,7 +372,7 @@ from resolving.</p>
render your name unusable for whatever reason. It is rarely used in practice.</p>
<p>The <code class="highlighter-rouge">NAME_REVOKE</code> operation is generated using only the name. See the
<a href="wire-format.md">transaction format</a> document for details on how to construct
<a href="/core/wire-format.html">transaction format</a> document for details on how to construct
it.</p>
<h2 id="name_renewal-live-example">NAME_RENEWAL (<a href="https://www.blocktrail.com/BTC/tx/e543211b18e5d29fd3de7c0242cb017115f6a22ad5c6d51cf39e2b87447b7e65">live example</a>)</h2>
@ -394,7 +394,7 @@ cease to be honored by the BNS consensus rules. You may, however, send a
use this transaction.</p>
<p>When you send a <code class="highlighter-rouge">NAME_RENEWAL</code>, you have the option of also setting a new public
key hash and a new zone file hash. See the <a href="wire-format.md">transaction format</a>
key hash and a new zone file hash. See the <a href="/core/wire-format.html">transaction format</a>
document for details on how to construct this transaction.</p>
<div class="share uk-text-center">

10
_site/core/naming/namespaces.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/namespaces.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Understand Namespaces","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/namespaces.html","headline":"Understand Namespaces","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/namespaces.html"},"@context":"http://schema.org"}</script>
{"description":"Understand Namespaces","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/namespaces.html","headline":"Understand Namespaces","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/namespaces.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -325,13 +325,13 @@ Namespaces are not owned by their creators.</p>
blockchain. The ownership and state of these names are controlled by sending
blockchain transactions. Example names include <code class="highlighter-rouge">verified.podcast</code> and
<code class="highlighter-rouge">muneeb.id</code>. Anyone can create a BNS name, as long as the namespace that
contains it exists already. The state for BNS names is usually stored in the <a href="atlas_network.md">Atlas
contains it exists already. The state for BNS names is usually stored in the <a href="/core/atlas/overview.html">Atlas
network</a>.</p>
</li>
<li>
<p><strong>BNS subdomains</strong>. These are names whose records are stored off-chain,
but are collectively anchored to the blockchain. The ownership and state for
these names lives within the <a href="atlas_network.md">Atlas network</a>. While BNS
these names lives within the <a href="/core/atlas/overview.html">Atlas network</a>. While BNS
subdomains are owned by separate private keys, a BNS name owner must
broadcast their subdomain state. Example subdomains include <code class="highlighter-rouge">jude.personal.id</code>
and <code class="highlighter-rouge">podsaveamerica.verified.podcast</code>. Unlike BNS namespaces and names, the

6
_site/core/naming/openbazaar.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/openbazaar.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"How to link your OpenBazaar GUID to your Blockstack ID","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/openbazaar.html","headline":"How to link your OpenBazaar GUID to your Blockstack ID","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/openbazaar.html"},"@context":"http://schema.org"}</script>
{"description":"How to link your OpenBazaar GUID to your Blockstack ID","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/openbazaar.html","headline":"How to link your OpenBazaar GUID to your Blockstack ID","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/openbazaar.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">

12
_site/core/naming/pickname.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/pickname.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Choose a name","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/pickname.html","headline":"Choose a name","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/pickname.html"},"@context":"http://schema.org"}</script>
{"description":"Choose a name","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/pickname.html","headline":"Choose a name","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/pickname.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -366,7 +366,7 @@ the BNS API.</p>
</code></pre>
</div>
<p>If you want to register a namespace, please see the <a href="namespace_creation.md">namespace creation tutorial</a>.</p>
<p>If you want to register a namespace, please see the <a href="/core/naming/tutorial_creation.html">namespace creation tutorial</a>.</p>
<h2 id="getting-the-current-consensus-hash-reference">Getting the Current Consensus Hash (<a href="https://core.blockstack.org/#blockchain-operations-get-consensus-hash">reference</a>)</h2>
@ -378,7 +378,7 @@ the BNS API.</p>
</div>
<p>A recent consensus hash is required to create a <code class="highlighter-rouge">NAMESPACE_PREORDER</code> transaction. The reference
BNS clients do this automatically. See the <a href="wire-format.md">transaction format</a>
BNS clients do this automatically. See the <a href="/core/wire-format.html">transaction format</a>
document for details on how the consensus hash is used to construct the
transaction.</p>
@ -438,7 +438,7 @@ create the same namespace, the one that successfully confirms both the
do this, then the namespace they created disappears (along with all the names
they imported).</p>
<p>Developers wanting to create their own namespaces should read the <a href="namespace_creation.md">namespace
<p>Developers wanting to create their own namespaces should read the <a href="/core/naming/tutorial_creation.html">namespace
creation</a> document. It is highly recommended that
developers follow this tutorial closely, given the large amount of
cryptocurrency at stake.</p>

10
_site/core/naming/register.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/register.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Register a name","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/register.html","headline":"Register a name","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/register.html"},"@context":"http://schema.org"}</script>
{"description":"Register a name","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/register.html","headline":"Register a name","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/register.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -377,7 +377,7 @@ but this is the only field guaranteed by this specification to be present.</p>
</div>
<p>The consensus hash must be included in the <code class="highlighter-rouge">NAME_PREORDER</code> transaction. The BNS
clients do this automatically. See the <a href="wire-format.md">transaction format
clients do this automatically. See the <a href="/core/wire-format.html">transaction format
document</a> for details as to how to include this in the
transaction.</p>
@ -391,7 +391,7 @@ dynamically and automatically, and broadcast both the <code class="highlighter-r
<code class="highlighter-rouge">NAME_REGISTRATION</code> transactions at the right times.</p>
<p>If you want to make your own registration client, you should see the
<a href="wire-format.md">transaction format</a> document.</p>
<a href="/core/wire-format.html">transaction format</a> document.</p>
<div class="share uk-text-center">
<a href="https://twitter.com/intent/tweet?text=Register a name&url=https://zbabystack.netlify.com/core/naming/register.html&via=&related=" rel="nofollow" target="_blank" title="Share on Twitter" onclick="window.open(this.href, 'twitter', 'width=550,height=235');return false;"><span data-uk-icon="icon: twitter; ratio: 1.2"></span></a>

8
_site/core/naming/resolving.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/resolving.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Resolve a name","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/resolving.html","headline":"Resolve a name","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/resolving.html"},"@context":"http://schema.org"}</script>
{"description":"Resolve a name","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/resolving.html","headline":"Resolve a name","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/resolving.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -359,7 +359,7 @@ since they can be authenticated using the hashes discovered by indexing the
blockchain under the BNS consensus rules.</p>
<p>BNS nodes implement a decentralized storage system for zone files called the
<a href="atlas_network.md">Atlas network</a>. In this system, BNS nodes eagerly replicate
<a href="/core/atlas/overview.html">Atlas network</a>. In this system, BNS nodes eagerly replicate
all the zone files they know about to one another, so that eventually every BNS
node has a full replica of all zone files.</p>

8
_site/core/naming/search.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/search.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"How to build a Profile Search Index","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/search.html","headline":"How to build a Profile Search Index","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/search.html"},"@context":"http://schema.org"}</script>
{"description":"How to build a Profile Search Index","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/search.html","headline":"How to build a Profile Search Index","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/search.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -438,7 +438,7 @@ pip install -r requirements.txt
<p>wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.2.zip</p>
</blockquote>
<p>before installing pylimbmc make sure <a href="memcached.md">memcached</a> is installed.</p>
<p>before installing pylimbmc make sure <a href="/core/memcached.html">memcached</a> is installed.</p>
<p>Ensure that mongodb and elastic search are running
starting elastic search:</p>

10
_site/core/naming/subdomains.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/subdomains.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"BNS Subdomains","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/subdomains.html","headline":"BNS Subdomains","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/subdomains.html"},"@context":"http://schema.org"}</script>
{"description":"BNS Subdomains","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/subdomains.html","headline":"BNS Subdomains","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/subdomains.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -317,7 +317,7 @@ cheaply, because they are broadcast to the
BNS network in batches. A single blockchain transaction can send up to 120
subdomain operations.</p>
<p>This is achieved by storing subdomain records in the <a href="atlas_network.md">Atlas Network</a>.
<p>This is achieved by storing subdomain records in the <a href="/core/atlas/overview.html">Atlas Network</a>.
An on-chain name owner broadcasts subdomain operations by encoding them as
<code class="highlighter-rouge">TXT</code> records within a DNS zone file. To broadcast the zone file,
the name owner sets the new zone file hash with a <code class="highlighter-rouge">NAME_UPDATE</code> transaction and
@ -530,7 +530,7 @@ implementation of a <a href="https://github.com/blockstack/subdomain-registrar">
to help developers broadcast subdomain operations. Users would still own their
subdomain names; the registrar simply gives developers a convenient way for them
to register and manage them in the context of a particular application.
Please see the <a href="subdomains.md">tutorial on running a subdomain registrar</a> for
Please see the <a href="/core/naming/tutorial_subdomains.html">tutorial on running a subdomain registrar</a> for
details on how to use it.</p>
<div class="share uk-text-center">

6
_site/core/naming/tutorial_creation.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/tutorial_creation.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Create and Launch a Namespace","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/tutorial_creation.html","headline":"Create and Launch a Namespace","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/tutorial_creation.html"},"@context":"http://schema.org"}</script>
{"description":"Create and Launch a Namespace","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/tutorial_creation.html","headline":"Create and Launch a Namespace","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/tutorial_creation.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">

8
_site/core/naming/tutorial_subdomains.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/core/naming/tutorial_subdomains.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"Subdomain Design and Implementation","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/tutorial_subdomains.html","headline":"Subdomain Design and Implementation","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/tutorial_subdomains.html"},"@context":"http://schema.org"}</script>
{"description":"Subdomain Design and Implementation","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/core/naming/tutorial_subdomains.html","headline":"Subdomain Design and Implementation","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/core/naming/tutorial_subdomains.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -262,7 +262,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">
@ -597,7 +597,7 @@ correct environment variables for it to run).</p>
<h3 id="running-an-interactive-testing-environment-with-the-subdomain-registrar-service">Running an interactive testing environment with the Subdomain Registrar service</h3>
<p>Follow the <a href="../integration_tests/README.md">instructions here</a> to download the regtesting Docker image.</p>
<p>Follow the <a href="https://github.com/blockstack/blockstack-core/blob/master/integration_tests/README.md">instructions here</a> to download the regtesting Docker image.</p>
<p>Since the subdomain registrar service runs on port 3000, we need to do two things to expose this endpoint to interact with it from the browser:</p>
<ul>

1061
_site/core/wire-format.html

File diff suppressed because it is too large

492
_site/core/wire-format.md

@ -1,492 +0,0 @@
This page is for organizations who want to be able to create and send name operation transactions to the blockchain(s) Blockstack supports.
# Bitcoin
This section describes the transaction formats for the Bitcoin blockchain.
## Transaction format
Each Bitcoin transaction for Blockstack contains signatures from two sets of keys: the name owner, and the payer. The owner `scriptSig` and `scriptPubKey` fields are generated from the key(s) that own the given name. The payer `scriptSig` and `scriptPubKey` fields are used to *subsidize* the operation. The owner keys do not pay for any operations; the owner keys only control the minimum amount of BTC required to make the transaction standard. The payer keys only pay for the transaction's fees, and (when required) they pay the name fee.
This construction is meant to allow the payer to be wholly separate from the owner. The principal that owns the name can fund their own transactions, or they can create a signed transaction that carries out the desired operation and request some other principal (e.g. a parent organization) to actually pay for and broadcast the transaction.
The general transaction layout is as follows:
| **Inputs** | **Outputs** |
| ------------------------ | ----------------------- |
| Owner scriptSig (1) | `OP_RETURN <payload>` (2) |
| Payment scriptSig | Owner scriptPubKey (3) |
| Payment scriptSig... (4) |
| ... (4) | ... (5) |
(1) The owner `scriptSig` is *always* the first input.
(2) The `OP_RETURN` script that describes the name operation is *always* the first output.
(3) The owner `scriptPubKey` is *always* the second output.
(4) The payer can use as many payment inputs as (s)he likes.
(5) At most one output will be the "change" `scriptPubKey` for the payer.
Different operations require different outputs.
## Payload Format
Each Blockstack transaction in Bitcoin describes the name operation within an `OP_RETURN` output. It encodes name ownership, name fees, and payments as `scriptPubKey` outputs. The specific operations are described below.
Each `OP_RETURN` payload *always* starts with the two-byte string `id` (called the "magic" bytes in this document), followed by a one-byte `op` that describes the operation.
### NAME_PREORDER
Op: `?`
Description: This transaction commits to the *hash* of a name. It is the first
transaction of two transactions that must be sent to register a name in BNS.
Example: [6730ae09574d5935ffabe3dd63a9341ea54fafae62fde36c27738e9ee9c4e889](https://www.blocktrail.com/BTC/tx/6730ae09574d5935ffabe3dd63a9341ea54fafae62fde36c27738e9ee9c4e889)
`OP_RETURN` wire format:
```
0 2 3 23 39
|-----|--|--------------------------------------------------|--------------|
magic op hash_name(name.ns_id,script_pubkey,register_addr) consensus hash
```
Inputs:
* Payment `scriptSig`'s
Outputs:
* `OP_RETURN` payload
* Payment `scriptPubkey` script for change
* `p2pkh` `scriptPubkey` to the burn address (0x00000000000000000000000000000000000000)
Notes:
* `register_addr` is a base58check-encoded `ripemd160(sha256(pubkey))` (i.e. an address). This address **must not** have been used before in the underlying blockchain.
* `script_pubkey` is either a `p2pkh` or `p2sh` compiled Bitcoin script for the payer's address.
### NAME_REGISTRATION
Op: `:`
Description: This transaction reveals the name whose hash was announced by a
previous `NAME_PREORDER`. It is the second of two transactions that must be
sent to register a name in BNS.
Example: [55b8b42fc3e3d23cbc0f07d38edae6a451dfc512b770fd7903725f9e465b2925](https://www.blocktrail.com/BTC/tx/55b8b42fc3e3d23cbc0f07d38edae6a451dfc512b770fd7903725f9e465b2925)
`OP_RETURN` wire format (2 variations allowed):
Variation 1:
```
0 2 3 39
|----|--|-----------------------------|
magic op name.ns_id (37 bytes)
```
Variation 2:
```
0 2 3 39 59
|----|--|----------------------------------|-------------------|
magic op name.ns_id (37 bytes, 0-padded) value
```
Inputs:
* Payer `scriptSig`'s
Outputs:
* `OP_RETURN` payload
* `scriptPubkey` for the owner's address
* `scriptPubkey` for the payer's change
Notes:
* Variation 1 simply registers the name. Variation 2 will register the name and
set a name value simultaneously. This is used in practice to set a zone file
hash for a name without the extra `NAME_UPDATE` transaction.
* Both variations are supported. Variation 1 was designed for the time when
Bitcoin only supported 40-byte `OP_RETURN` outputs.
### NAME_RENEWAL
Op: `:`
Description: This transaction renews a name in BNS. The name must still be
registered and not expired, and owned by the transaction sender.
Example: [e543211b18e5d29fd3de7c0242cb017115f6a22ad5c6d51cf39e2b87447b7e65](https://www.blocktrail.com/BTC/tx/e543211b18e5d29fd3de7c0242cb017115f6a22ad5c6d51cf39e2b87447b7e65)
`OP_RETURN` wire format (2 variations allowed):
Variation 1:
```
0 2 3 39
|----|--|-----------------------------|
magic op name.ns_id (37 bytes)
```
Variation 2:
```
0 2 3 39 59
|----|--|----------------------------------|-------------------|
magic op name.ns_id (37 bytes, 0-padded) value
```
Inputs:
* Payer `scriptSig`'s
Outputs:
* `OP_RETURN` payload
* `scriptPubkey` for the owner's addess. This can be a different address than
the current name owner (in which case, the name is renewed and transferred).
* `scriptPubkey` for the payer's change
* `scriptPubkey` for the burn address (to pay the name cost)
Notes:
* This transaction is identical to a `NAME_REGISTRATION`, except for the presence of the fourth output that pays for the name cost (to the burn address).
* Variation 1 simply renews the name. Variation 2 will both renew the name and
set a new name value (in practice, the hash of a new zone file).
* Both variations are supported. Variation 1 was designed for the time when
Bitcoin only supported 40-byte `OP_RETURN` outputs.
* This operation can be used to transfer a name to a new address by setting the
second output (the first `scriptPubkey`) to be the `scriptPubkey` of the new
owner key.
### NAME_UPDATE
Op: `+`
Description: This transaction sets the name state for a name to the given
`value`. In practice, this is used to announce new DNS zone file hashes to the [Atlas
network](atlas_network.md).
Example: [e2029990fa75e9fc642f149dad196ac6b64b9c4a6db254f23a580b7508fc34d7](https://www.blocktrail.com/BTC/tx/e2029990fa75e9fc642f149dad196ac6b64b9c4a6db254f23a580b7508fc34d7)
`OP_RETURN` wire format:
```
0 2 3 19 39
|-----|--|-----------------------------------|-----------------------|
magic op hash128(name.ns_id,consensus hash) zone file hash
```
Note that `hash128(name.ns_id, consensus hash)` is the first 16 bytes of a SHA256 hash over the name concatenated to the hexadecimal string of the consensus hash (not the bytes corresponding to that hex string).
See the [Method Glossary](#method-glossary) below.
Example: `hash128("jude.id" + "8d8762c37d82360b84cf4d87f32f7754") == "d1062edb9ec9c85ad1aca6d37f2f5793"`.
Inputs:
* owner `scriptSig`
* payment `scriptSig`'s
Outputs:
* `OP_RETURN` payload
* owner's `scriptPubkey`
* payment `scriptPubkey` change
### NAME_TRANSFER
Op: `>`
Description: This transaction changes the public key hash that owns the name in
BNS.
Example: [7a0a3bb7d39b89c3638abc369c85b5c028d0a55d7804ba1953ff19b0125f3c24](https://www.blocktrail.com/BTC/tx/7a0a3bb7d39b89c3638abc369c85b5c028d0a55d7804ba1953ff19b0125f3c24)
`OP_RETURN` wire format:
```
0 2 3 4 20 36
|-----|--|----|-------------------|---------------|
magic op keep hash128(name.ns_id) consensus hash
data?
```
Inputs:
* Owner `scriptSig`
* Payment `scriptSig`'s
Outputs:
* `OP_RETURN` payload
* new name owner's `scriptPubkey`
* old name owner's `scriptPubkey`
* payment `scriptPubkey` change
Notes:
* The `keep data?` byte controls whether or not the name's 20-byte value is preserved. This value is either `>` to preserve it, or `~` to delete it.
### NAME_REVOKE
Op: `~`
Description: This transaction destroys a registered name. Its name state value
in BNS will be cleared, and no further transactions will be able to affect the
name until it expires (if its namespace allows it to expire at all).
Example: [eb2e84a45cf411e528185a98cd5fb45ed349843a83d39fd4dff2de47adad8c8f](https://www.blocktrail.com/BTC/tx/eb2e84a45cf411e528185a98cd5fb45ed349843a83d39fd4dff2de47adad8c8f)
`OP_RETURN` wire format:
```
0 2 3 39
|----|--|-----------------------------|
magic op name.ns_id (37 bytes)
```
Inputs:
* owner `scriptSig`
* payment `scriptSig`'s
Outputs:
* `OP_RETURN` payload
* owner `scriptPubkey`
* payment `scriptPubkey` change
### ANNOUNCE
Op: `#`
Description: This transaction does not affect any names in BNS, but it allows a
user to send a message to other BNS nodes. In order for the message to be
received, the following must be true:
* The sender must have a BNS name
* The BNS nodes must list the sender's BNS name as being a "trusted message
sender"
* The message must have already been propagated through the [Atlas
network](atlas_network.md). This transaction references it by content hash.
`OP_RETURN` wire format:
```
0 2 3 23
|----|--|-----------------------------|
magic op ripemd160(sha256(message))
```
Inputs:
* The payer `scriptSig`'s
Outputs:
* `OP_RETURN` payload
* change `scriptPubKey`
Notes:
* The payer key should be an owner key for an existing name, since Blockstack users can subscribe to announcements from specific name-owners.
### NAMESPACE_PREORDER
Op: `*`
Description: This transaction announces the *hash* of a new namespace. It is the
first of three transactions that must be sent to create a namespace.
Example: [5f00b8e609821edd6f3369ee4ee86e03ea34b890e242236cdb66ef6c9c6a1b28](https://www.blocktrail.com/BTC/tx/5f00b8e609821edd6f3369ee4ee86e03ea34b890e242236cdb66ef6c9c6a1b28)
`OP_RETURN` wire format:
```
0 2 3 23 39
|-----|---|-----------------------------------------|----------------|
magic op hash_name(ns_id,script_pubkey,reveal_addr) consensus hash
```
Inputs:
* Namespace payer `scriptSig`
Outputs:
* `OP_RETURN` payload
* Namespace payer `scriptPubkey` change address
* `p2pkh` script to the burn address `1111111111111111111114oLvT2`, whose public key hash is 0x00000000000000000000000000000000
Notes:
* The `reveal_addr` field is the address of the namespace revealer public key. The revealer private key will be used to generate `NAME_IMPORT` transactions.
### NAMESPACE_REVEAL
Op: `&`
Description: This transaction reveals the namespace ID and namespace rules
for a previously-anounced namespace hash (sent by a previous `NAMESPACE_PREORDER`).
Example: [ab54b1c1dd5332dc86b24ca2f88b8ca0068485edf0c322416d104c5b84133a32](https://www.blocktrail.com/BTC/tx/ab54b1c1dd5332dc86b24ca2f88b8ca0068485edf0c322416d104c5b84133a32)
`OP_RETURN` wire format:
```
0 2 3 7 8 9 10 11 12 13 14 15 16 17 18 20 39
|-----|---|--------|-----|-----|----|----|----|----|----|-----|-----|-----|--------|----------|-------------------------|
magic op life coeff. base 1-2 3-4 5-6 7-8 9-10 11-12 13-14 15-16 nonalpha version namespace ID
bucket exponents no-vowel
discounts
```
Inputs:
* Namespace payer `scriptSig`s
Outputs:
* `OP_RETURN` payload
* namespace revealer `scriptPubkey`
* namespace payer change `scriptPubkey`
Notes:
* This transaction must be sent within 1 day of the `NAMESPACE_PREORDER`
* The second output (with the namespace revealer) **must** be a `p2pkh` script
* The address of the second output **must** be the `reveal_addr` in the `NAMESPACE_PREORDER`
Pricing:
The rules for a namespace are as follows:
* a name can fall into one of 16 buckets, measured by length. Bucket 16 incorporates all names at least 16 characters long.
* the pricing structure applies a multiplicative penalty for having numeric characters, or punctuation characters.
* the price of a name in a bucket is ((coeff) * (base) ^ (bucket exponent)) / ((numeric discount multiplier) * (punctuation discount multiplier))
Example:
* base = 10
* coeff = 2
* nonalpha discount: 10
* no-vowel discount: 10
* buckets 1, 2: 9
* buckets 3, 4, 5, 6: 8
* buckets 7, 8, 9, 10, 11, 12, 13, 14: 7
* buckets 15, 16+:
With the above example configuration, the following are true:
* The price of "john" would be 2 * 10^8, since "john" falls into bucket 4 and has no punctuation or numerics.
* The price of "john1" would be 2 * 10^6, since "john1" falls into bucket 5 but has a number (and thus receives a 10x discount)
* The price of "john_1" would be 2 * 10^6, since "john_1" falls into bucket 6 but has a number and punctuation (and thus receives a 10x discount)
* The price of "j0hn_1" would be 2 * 10^5, since "j0hn_1" falls into bucket 6 but has a number and punctuation and lacks vowels (and thus receives a 100x discount)
### NAME_IMPORT
Op: `;`
Description: This transaction registers a name and some name state into a
namespace that has been revealed, but not been launched. Only the namespace
creator can import names. See the [namespace creation
tutorial](namespace_creation.md) for details.
Example: [c698ac4b4a61c90b2c93dababde867dea359f971e2efcf415c37c9a4d9c4f312](https://www.blocktrail.com/BTC/tx/c698ac4b4a61c90b2c93dababde867dea359f971e2efcf415c37c9a4d9c4f312)
`OP_RETURN` wire format:
```
0 2 3 39
|----|--|-----------------------------|
magic op name.ns_id (37 bytes)
```
Inputs:
* The namespace reveal `scriptSig` (with the namespace revealer's public key), or one of its first 300 extended public keys
* Any payment inputs
Outputs:
* `OP_RETURN` payload
* recipient `scriptPubKey`
* zone file hash (using the 20-byte hash in a standard `p2pkh` script)
* payment change `scriptPubKey`
Notes:
* These transactions can only be sent between the `NAMESPACE_REVEAL` and `NAMESPACE_READY`.
* The first `NAME_IMPORT` transaction **must** have a `scriptSig` input that matches the `NAMESPACE_REVEAL`'s second output (i.e. the reveal output).
* Any subsequent `NAME_IMPORT` transactions **may** have a `scriptSig` input whose public key is one of the first 300 extended public keys from the `NAMESPACE_REVEAL`'s `scriptSig` public key.
### NAMESPACE_READY
Op: `!`
Description: This transaction launches a namesapce. Only the namespace creator
can send this transaction. Once sent, anyone can register names in the
namespace.
Example: [2bf9a97e3081886f96c4def36d99a677059fafdbd6bdb6d626c0608a1e286032](https://www.blocktrail.com/BTC/tx/2bf9a97e3081886f96c4def36d99a677059fafdbd6bdb6d626c0608a1e286032)
`OP_RETURN` wire format:
```
0 2 3 4 23
|-----|--|--|------------|
magic op . ns_id
```
Inputs:
* Namespace revealer's `scriptSig`s
Outputs:
* `OP_RETURN` payload
* Change output to the namespace revealer's `p2pkh` script
Notes:
* This transaction must be sent within 1 year of the corresponding `NAMESPACE_REVEAL` to be accepted.
## Method Glossary
Some hashing primitives are used to construct the wire-format representation of each name operation. They are enumerated here:
```
B40_REGEX = '^[a-z0-9\-_.+]*$'
def is_b40(s):
return isinstance(s, str) and re.match(B40_REGEX, s) is not None
def b40_to_bin(s):
if not is_b40(s):
raise ValueError('{} must only contain characters in the b40 char set'.format(s))
return unhexlify(charset_to_hex(s, B40_CHARS))
def hexpad(x):
return ('0' * (len(x) % 2)) + x
def charset_to_hex(s, original_charset):
return hexpad(change_charset(s, original_charset, B16_CHARS))
def bin_hash160(s, hex_format=False):
""" s is in hex or binary format
"""
if hex_format and is_hex(s):
s = unhexlify(s)
return hashlib.new('ripemd160', bin_sha256(s)).digest()
def hex_hash160(s, hex_format=False):
""" s is in hex or binary format
"""
if hex_format and is_hex(s):
s = unhexlify(s)
return hexlify(bin_hash160(s))
def hash_name(name, script_pubkey, register_addr=None):
"""
Generate the hash over a name and hex-string script pubkey.
Returns the hex-encoded string RIPEMD160(SHA256(x)), where
x is the byte string composed of the concatenation of the
binary
"""
bin_name = b40_to_bin(name)
name_and_pubkey = bin_name + unhexlify(script_pubkey)
if register_addr is not None:
name_and_pubkey += str(register_addr)
# make hex-encoded hash
return hex_hash160(name_and_pubkey)
def hash128(data):
"""
Hash a string of data by taking its 256-bit sha256 and truncating it to the
first 16 bytes
"""
return hexlify(bin_sha256(data)[0:16])
```

2
_site/feed.xml

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.8.3">Jekyll</generator><link href="https://zbabystack.netlify.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://zbabystack.netlify.com/" rel="alternate" type="text/html" /><updated>2018-09-10T15:49:53-07:00</updated><id>https://zbabystack.netlify.com/</id><title type="html">Blockstack</title><subtitle>Docs</subtitle><author><name>Blockstack</name></author><entry><title type="html">Site tags</title><link href="https://zbabystack.netlify.com/2017/05/25/post63.html" rel="alternate" type="text/html" title="Site tags" /><published>2017-05-25T00:00:00-07:00</published><updated>2017-05-25T00:00:00-07:00</updated><id>https://zbabystack.netlify.com/2017/05/25/post63</id><content type="html" xml:base="https://zbabystack.netlify.com/2017/05/25/post63.html">&lt;p&gt;https://zbabystack.netlify.com/assets/posts/&lt;/p&gt;
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.8.3">Jekyll</generator><link href="https://zbabystack.netlify.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://zbabystack.netlify.com/" rel="alternate" type="text/html" /><updated>2018-09-10T17:28:25-07:00</updated><id>https://zbabystack.netlify.com/</id><title type="html">Blockstack</title><subtitle>Docs</subtitle><author><name>Blockstack</name></author><entry><title type="html">Site tags</title><link href="https://zbabystack.netlify.com/2017/05/25/post63.html" rel="alternate" type="text/html" title="Site tags" /><published>2017-05-25T00:00:00-07:00</published><updated>2017-05-25T00:00:00-07:00</updated><id>https://zbabystack.netlify.com/2017/05/25/post63</id><content type="html" xml:base="https://zbabystack.netlify.com/2017/05/25/post63.html">&lt;p&gt;https://zbabystack.netlify.com/assets/posts/&lt;/p&gt;
&lt;p&gt;/2017/05/25/post63.html&lt;/p&gt;

6
_site/ios/tutorial.html

@ -17,9 +17,9 @@
<meta property="og:url" content="https://zbabystack.netlify.com/ios/tutorial.html" />
<meta property="og:site_name" content="Blockstack" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2018-09-10T15:49:53-07:00" />
<meta property="article:published_time" content="2018-09-10T17:28:25-07:00" />
<script type="application/ld+json">
{"description":"iOS SDK Tutorial (Pre-release)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/ios/tutorial.html","headline":"iOS SDK Tutorial (Pre-release)","dateModified":"2018-09-10T15:49:53-07:00","datePublished":"2018-09-10T15:49:53-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/ios/tutorial.html"},"@context":"http://schema.org"}</script>
{"description":"iOS SDK Tutorial (Pre-release)","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://zbabystack.netlify.com/ios/tutorial.html","headline":"iOS SDK Tutorial (Pre-release)","dateModified":"2018-09-10T17:28:25-07:00","datePublished":"2018-09-10T17:28:25-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://zbabystack.netlify.com/ios/tutorial.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://zbabystack.netlify.com/assets/posts/logo.png"/> -->
@ -176,7 +176,7 @@
<!-- Written by <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Blockstack</span></span><br> -->
<time datetime="2018-09-10T15:49:53-07:00" itemprop="datePublished">
<time datetime="2018-09-10T17:28:25-07:00" itemprop="datePublished">

2
_site/robots.txt

@ -1,2 +0,0 @@
User-agent: *
Disallow: /
Loading…
Cancel
Save