mirror of https://github.com/lukechilds/docs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
691 lines
25 KiB
691 lines
25 KiB
<!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>Naming system feature comparison | Blockstack</title>
|
|
<meta name="generator" content="Jekyll v3.8.3" />
|
|
<meta property="og:title" content="Naming system feature comparison" />
|
|
<meta name="author" content="Blockstack" />
|
|
<meta property="og:locale" content="en_US" />
|
|
<meta name="description" content="Naming system feature comparison" />
|
|
<meta property="og:description" content="Naming system feature comparison" />
|
|
<link rel="canonical" href="https://zbabystack.netlify.com/core/naming/comparison.html" />
|
|
<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:46:41-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:46:41-07:00","datePublished":"2018-09-10T15:46:41-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"/> -->
|
|
<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="uk-active"><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">Naming system feature comparison</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-10T15:46:41-07:00" itemprop="datePublished">
|
|
|
|
|
|
|
|
<a "target="_blank" href="https://github.com/blockstack/blockstack-core/blob/master/docs/comparison.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">w</span> Sep 10, 2018
|
|
</time>
|
|
|
|
</div>
|
|
|
|
<div class="article-content">
|
|
|
|
<p class="no_toc">BNS is not the only naming system in wide-spread use, nor is it the only
|
|
decentralized naming system that implements human-readable, globally-unique, and
|
|
strongly-owned names. This page describes some other naming systems in
|
|
comparison to Blockstack:</p>
|
|
|
|
<ul id="markdown-toc">
|
|
<li><a href="#blockstack-vs-dns" id="markdown-toc-blockstack-vs-dns">Blockstack vs DNS</a></li>
|
|
<li><a href="#blockstack-vs-namecoin" id="markdown-toc-blockstack-vs-namecoin">Blockstack vs Namecoin</a></li>
|
|
<li><a href="#blockstack-vs-ens" id="markdown-toc-blockstack-vs-ens">Blockstack vs ENS</a></li>
|
|
<li><a href="#summary-feature-comparison" id="markdown-toc-summary-feature-comparison">Summary feature comparison</a></li>
|
|
</ul>
|
|
|
|
<h2 id="blockstack-vs-dns">Blockstack vs DNS</h2>
|
|
|
|
<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
|
|
Service</a> (BNS) instead behaves
|
|
more like a decentralized
|
|
<a href="https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol">LDAP</a> system for
|
|
resolving user names to user data.</p>
|
|
|
|
<p>While DNS and BNS handle different problems, they share some terminology and
|
|
serialization formats. However, it is important to recognize that this is the
|
|
<em>only</em> thing they have in common—BNS has fundamentally different semantics
|
|
than DNS:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p><strong>Zone files</strong>: Blockstack stores a DNS zone file for each name. However,
|
|
the semantics of a BNS zone file are nothing like the semantics of a DNS zone
|
|
file—the only thing they have in common is their format.
|
|
A “standard” Blockstack zone files only have <code class="highlighter-rouge">URI</code> and <code class="highlighter-rouge">TXT</code> resource records
|
|
that point to the user’s application data. Moreover, a Blockstack ID has a
|
|
<em>history</em> of zone files, and historic zone files can alter the way in which a
|
|
Blockstack ID gets resolved (DNS has no such concept). It is conceivable that an advanced
|
|
user could add <code class="highlighter-rouge">A</code> and <code class="highlighter-rouge">AAAA</code> records to their Blockstack ID’s zone file,
|
|
but these are not honored by any Blockstack software at this time.</p>
|
|
</li>
|
|
<li>
|
|
<p><strong>Subdomains</strong>: Blockstack has the concept of a subdomain, but it is
|
|
semantically very different from a DNS subdomain. In Blockstack, a subdomain
|
|
is a Blockstack ID whose state and transaction history are anchored to the
|
|
blockchain, but stored within an on-chain Blockstack ID’s zone file history.
|
|
Unlike DNS subdomains, a BNS subdomain has
|
|
its own owner and is a first-class BNS name—all subdomains are resolvable,
|
|
and only the subdomain’s owner can update the subdomain’s records. The only thing BNS subdomains and DNS
|
|
subdomains have in common is the name format (e.g. <code class="highlighter-rouge">foo.bar.baz</code> is a subdomain
|
|
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
|
|
DNS</a> document. A feature
|
|
comparison can be found at the end of the <a href="blockstack_naming_service.md">Blockstack Naming
|
|
Service</a> document.</p>
|
|
|
|
<h2 id="blockstack-vs-namecoin">Blockstack vs Namecoin</h2>
|
|
|
|
<p>Namecoin also implements a decentralized naming service on top of a blockchain,
|
|
just like BNS. In fact, early versions of Blockstack were built on Namecoin.
|
|
However, <a href="https://www.usenix.org/node/196209">it was discovered</a> that Namecoin’s
|
|
merged mining with Bitcoin regularly placed it under the <em>de facto</em> control of a single
|
|
miner. This prompted a re-architecting of the system to be <em>portable</em> across
|
|
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
|
|
Service</a> document.</p>
|
|
|
|
<h2 id="blockstack-vs-ens">Blockstack vs ENS</h2>
|
|
|
|
<p>ENS also implements a decentralized naming system on top of a blockchain, but as
|
|
a smart contract on Ethereum. Like BNS, ENS is geared towards resolving names
|
|
to off-chain state (ENS names resolve to a hash, for example). Moreover, ENS is
|
|
geared towards providing programmatic control over names with Turing-complete
|
|
on-chain resolvers.</p>
|
|
|
|
<p>BNS has a fundamentally different relationship with blockchains than ENS.
|
|
WHereas ENS tries to use on-chain logic as much as possible, BNS
|
|
tries to use the blockchain as little as possible. BNS only uses it to store a
|
|
database log for name operations (which are interpreted with an off-chain BNS
|
|
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
|
|
paper</a> for details).</p>
|
|
|
|
<h2 id="summary-feature-comparison">Summary feature comparison</h2>
|
|
|
|
<p>The following feature table provides a quick summary how BNS differs from other naming systems</p>
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Feature</th>
|
|
<th>BNS</th>
|
|
<th><a href="https://ens.domains/">ENS</a></th>
|
|
<th>DNS</th>
|
|
<th><a href="https://namecoin.org/">Namecoin</a></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Globally unique names</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Human-readable names</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Strongly-owned names</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td> </td>
|
|
<td>X</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Names are enumerable</td>
|
|
<td>X</td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td>X</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Registration times</td>
|
|
<td>1-2 hours</td>
|
|
<td>~1 week</td>
|
|
<td>~1 day</td>
|
|
<td>1-2 hours</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Subdomain registration times</td>
|
|
<td>1 hour (instant with <a href="https://github.com/blockstack/blockstack-core/issues/750">#750</a>)</td>
|
|
<td>varies</td>
|
|
<td>instant</td>
|
|
<td>~1 hour</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Anyone can make a TLD/namespace</td>
|
|
<td>X</td>
|
|
<td>[1]</td>
|
|
<td> </td>
|
|
<td>[1]</td>
|
|
</tr>
|
|
<tr>
|
|
<td>TLD/Namespace owners get registration fees</td>
|
|
<td>X</td>
|
|
<td> </td>
|
|
<td>X</td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td>TLD/Namespace can be seeded with initial names</td>
|
|
<td>X</td>
|
|
<td> </td>
|
|
<td>X</td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td>Portable across blockchains</td>
|
|
<td>X</td>
|
|
<td> </td>
|
|
<td>N/A</td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td>Off-chain names</td>
|
|
<td>X</td>
|
|
<td> </td>
|
|
<td>N/A</td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td>Off-chain name state</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td>N/A</td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td>Name provenance</td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td> </td>
|
|
<td>X</td>
|
|
</tr>
|
|
<tr>
|
|
<td><a href="http://identity.foundation">DID</a> support</td>
|
|
<td>X</td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td>Turing-complete namespace rules</td>
|
|
<td> </td>
|
|
<td>X</td>
|
|
<td>X</td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td>Miners are rewarded for participating</td>
|
|
<td>[1]</td>
|
|
<td> </td>
|
|
<td>N/A</td>
|
|
<td>X</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<p>[1] Requires support in higher-level applications. These systems are not aware
|
|
of the existence of namespaces/TLDs at the protocol level.</p>
|
|
|
|
<p>[2] Blockstack Core destroys the underlying blockchain token to pay for
|
|
registration fees when there is no pay-to-namespace-creator address set in the
|
|
name’s namespace. This has the effect of making the blockchain miners’ holdings
|
|
slightly more valuable.</p>
|
|
|
|
<div class="share uk-text-center">
|
|
<a href="https://twitter.com/intent/tweet?text=Naming system feature comparison&url=https://zbabystack.netlify.com/core/naming/comparison.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%2Fnaming%2Fcomparison.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">© 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>
|
|
|