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.
539 lines
24 KiB
539 lines
24 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>Developer FAQs | Blockstack</title>
|
|
<meta name="generator" content="Jekyll v3.8.3" />
|
|
<meta property="og:title" content="Developer FAQs" />
|
|
<meta name="author" content="Blockstack" />
|
|
<meta property="og:locale" content="en_US" />
|
|
<meta name="description" content="Developer FAQs" />
|
|
<meta property="og:description" content="Developer FAQs" />
|
|
<link rel="canonical" href="https://zbabystack.netlify.com/core/faq_developer.html" />
|
|
<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:18:11-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:18:11-07:00","datePublished":"2018-09-10T15:18:11-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"/> -->
|
|
<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>Try a tutorial</h5>
|
|
|
|
<ul class="uk-nav uk-nav-default doc-nav">
|
|
|
|
|
|
<!-- -->
|
|
|
|
<li class=""><a href="/browser/hello-blockstack.html">Hello, Blockstack Tutorial</a></li>
|
|
|
|
|
|
<!-- -->
|
|
|
|
<li class=""><a href="/browser/multi-player-storage.html">Manage Data with Gaia</a></li>
|
|
|
|
</ul>
|
|
|
|
|
|
<h5>Work with an SDK</h5>
|
|
|
|
<ul class="uk-nav uk-nav-default doc-nav">
|
|
|
|
|
|
<!-- -->
|
|
|
|
<li class=""><a href="/android/tutorial.html">Android SDK Tutorial (Pre-release)</a></li>
|
|
|
|
|
|
<!-- -->
|
|
|
|
<li class=""><a href="/ios/tutorial.html">iOS SDK Tutorial (Pre-release)</a></li>
|
|
|
|
</ul>
|
|
|
|
|
|
<h5>Reference</h5>
|
|
|
|
<ul class="uk-nav uk-nav-default doc-nav">
|
|
|
|
|
|
<!-- -->
|
|
|
|
<li class="uk-active"><a href="/core/faq_developer.html">Developer FAQs</a></li>
|
|
|
|
|
|
<!-- -->
|
|
|
|
<li class=""><a href="/common/javascript_ref.html">Blockstack Javascript Reference</a></li>
|
|
|
|
</ul>
|
|
|
|
<!-- -->
|
|
</div>
|
|
</div>
|
|
|
|
<div class="uk-width-1-1 uk-width-expand@m">
|
|
|
|
<article class="uk-article">
|
|
|
|
<h1 class="uk-article-title">Developer FAQs</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:18:11-07:00" itemprop="datePublished">
|
|
|
|
|
|
|
|
<a "target="_blank" href="https://github.com/blockstack/blockstack-core/blob/master/docs/faq_developer.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">These FAQs are intended for developers of Blockstack.</p>
|
|
|
|
<ul id="markdown-toc">
|
|
<li><a href="#im-a-web-developer--can-i-build-on-blockstack" id="markdown-toc-im-a-web-developer--can-i-build-on-blockstack">I’m a Web developer. Can I build on Blockstack?</a></li>
|
|
<li><a href="#im-a-non-web-developer--can-i-build-on-blockstack" id="markdown-toc-im-a-non-web-developer--can-i-build-on-blockstack">I’m a non-Web developer. Can I build on Blockstack?</a></li>
|
|
<li><a href="#whats-the-difference-between-a-web-app-and-a-blockstack-app" id="markdown-toc-whats-the-difference-between-a-web-app-and-a-blockstack-app">What’s the difference between a Web app and a Blockstack app?</a></li>
|
|
<li><a href="#do-i-need-to-learn-any-new-languages-or-frameworks" id="markdown-toc-do-i-need-to-learn-any-new-languages-or-frameworks">Do I need to learn any new languages or frameworks?</a></li>
|
|
<li><a href="#how-does-my-web-app-interact-with-blockstack" id="markdown-toc-how-does-my-web-app-interact-with-blockstack">How does my Web app interact with Blockstack?</a></li>
|
|
<li><a href="#what-does-blockstackjs-do" id="markdown-toc-what-does-blockstackjs-do">What does <code class="highlighter-rouge">blockstack.js</code> do?</a></li>
|
|
<li><a href="#how-do-i-use-blockstackjs" id="markdown-toc-how-do-i-use-blockstackjs">How do I use <code class="highlighter-rouge">blockstack.js</code>?</a></li>
|
|
<li><a href="#how-can-i-look-up-names-and-profiles" id="markdown-toc-how-can-i-look-up-names-and-profiles">How can I look up names and profiles?</a></li>
|
|
<li><a href="#how-can-i-read-my-public-app-data-without-blockstackjs" id="markdown-toc-how-can-i-read-my-public-app-data-without-blockstackjs">How can I read my public app data without <code class="highlighter-rouge">blockstack.js</code>?</a></li>
|
|
<li><a href="#how-do-i-register-blockstack-ids" id="markdown-toc-how-do-i-register-blockstack-ids">How do I register Blockstack IDs?</a></li>
|
|
<li><a href="#how-do-i-register-blockstack-subdomains" id="markdown-toc-how-do-i-register-blockstack-subdomains">How do I register Blockstack Subdomains?</a></li>
|
|
<li><a href="#can-i-programmatically-register-blockstack-ids" id="markdown-toc-can-i-programmatically-register-blockstack-ids">Can I programmatically register Blockstack IDs?</a></li>
|
|
<li><a href="#can-i-programmatically-register-blockstack-subdomains" id="markdown-toc-can-i-programmatically-register-blockstack-subdomains">Can I programmatically register Blockstack Subdomains?</a></li>
|
|
<li><a href="#do-you-have-a-testnet-or-sandbox-to-experiment-with-blockstack" id="markdown-toc-do-you-have-a-testnet-or-sandbox-to-experiment-with-blockstack">Do you have a testnet or sandbox to experiment with Blockstack?</a></li>
|
|
<li><a href="#does-blockstack-have-a-smart-contract-system" id="markdown-toc-does-blockstack-have-a-smart-contract-system">Does Blockstack have a smart contract system?</a></li>
|
|
<li><a href="#can-blockstack-applications-interact-with-bitcoin-ethereum-smart-contracts-other-blockchains" id="markdown-toc-can-blockstack-applications-interact-with-bitcoin-ethereum-smart-contracts-other-blockchains">Can Blockstack applications interact with Bitcoin? Ethereum? Smart contracts? Other blockchains?</a></li>
|
|
</ul>
|
|
|
|
<h2 id="im-a-web-developer--can-i-build-on-blockstack">I’m a Web developer. Can I build on Blockstack?</h2>
|
|
|
|
<p>Yes! Blockstack is geared primarily towards Web developers. All of your
|
|
existing knowledge is immediately applicable to Blockstack. Anything you can do
|
|
in a Web browser, you can do in a Blockstack app.</p>
|
|
|
|
<h2 id="im-a-non-web-developer--can-i-build-on-blockstack">I’m a non-Web developer. Can I build on Blockstack?</h2>
|
|
|
|
<p>Yes! Blockstack implements a <a href="https://core.blockstack.org">RESTful API</a> which
|
|
lets you interact with Blockstack from any language and any runtime. In fact,
|
|
the reference client
|
|
(<a href="https://github.com/blockstack/blockstack.js">blockstack.js</a>) is mainly a
|
|
wrapper around these RESTful API calls, so you won’t be missing much by using a
|
|
language other than Javascript.</p>
|
|
|
|
<h2 id="whats-the-difference-between-a-web-app-and-a-blockstack-app">What’s the difference between a Web app and a Blockstack app?</h2>
|
|
|
|
<p>Blockstack apps are built like <a href="https://en.wikipedia.org/wiki/Single-page_application">single-page Web
|
|
apps</a>—they are, in
|
|
fact, a type of Web application.</p>
|
|
|
|
<p>Blockstack apps are a subset of Web applications that use Blockstack’s
|
|
technology to preserve the user’s control over their identities and data.
|
|
As such, they tend to be simpler
|
|
in design and operation, since in many cases they don’t have to host anything
|
|
besides the application’s assets.</p>
|
|
|
|
<h2 id="do-i-need-to-learn-any-new-languages-or-frameworks">Do I need to learn any new languages or frameworks?</h2>
|
|
|
|
<p>No. Blockstack applications are built using existing Web frameworks and programming
|
|
The only new thing you need to learn is either <a href="https://github.com/blockstack/blockstack.js">blockstack.js</a> or
|
|
the <a href="https://core.blockstack.org">Blockstack RESTful API</a>.</p>
|
|
|
|
<h2 id="how-does-my-web-app-interact-with-blockstack">How does my Web app interact with Blockstack?</h2>
|
|
|
|
<p>The <a href="https://github.com/blockstack/blockstack.js">blockstack.js</a> library gives
|
|
any Web application the ability to interact with Blockstack’s authentication and
|
|
storage services. In addition, we supply a <a href="https://core.blockstack.org">public RESTful API</a>.</p>
|
|
|
|
<h2 id="what-does-blockstackjs-do">What does <code class="highlighter-rouge">blockstack.js</code> do?</h2>
|
|
|
|
<p>This is the reference client implementation for Blockstack. You use it in your
|
|
Web app to do the following:</p>
|
|
|
|
<ul>
|
|
<li>Authenticate users</li>
|
|
<li>Load and store user data</li>
|
|
<li>Read other users’ public data</li>
|
|
</ul>
|
|
|
|
<h2 id="how-do-i-use-blockstackjs">How do I use <code class="highlighter-rouge">blockstack.js</code>?</h2>
|
|
|
|
<p>Please see the API documentation <a href="https://github.com/blockstack/blockstack.js">here</a>.</p>
|
|
|
|
<h2 id="how-can-i-look-up-names-and-profiles">How can I look up names and profiles?</h2>
|
|
|
|
<p>You can use <code class="highlighter-rouge">blockstack.js</code>, or you can use the <a href="https://core.blockstack.org">public Blockstack Core
|
|
endpoint</a>.</p>
|
|
|
|
<h2 id="how-can-i-read-my-public-app-data-without-blockstackjs">How can I read my public app data without <code class="highlighter-rouge">blockstack.js</code>?</h2>
|
|
|
|
<p>The URLs to a user’s public app data are in a canonical location in their
|
|
profile. For example, here’s how you would get public data from the
|
|
<a href="https://publik.ykliao.com">Publik</a> app, stored under the Blockstack ID <code class="highlighter-rouge">ryan.id</code>.</p>
|
|
|
|
<ol>
|
|
<li>Get the bucket URL
|
|
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span><span class="nv">BUCKET_URL</span><span class="o">=</span><span class="s2">"</span><span class="k">$(</span>curl -sL https://core.blockstack.org/v1/users/ryan.id | jq -r <span class="s1">'."ryan.id"["profile"]["apps"]["http://publik.ykliao.com"]'</span><span class="k">)</span><span class="s2">"</span>
|
|
<span class="gp">$ </span><span class="nb">echo</span> <span class="s2">"</span><span class="nv">$BUCKET_URL</span><span class="s2">"</span>
|
|
https://gaia.blockstack.org/hub/1FrZTGQ8DM9TMPfGXtXMUvt2NNebLiSzad/
|
|
</code></pre>
|
|
</div>
|
|
</li>
|
|
<li>Get the data
|
|
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="gp">$ </span>curl -sL <span class="s2">"</span><span class="k">${</span><span class="nv">BUCKET_URL</span><span class="p">%%/</span><span class="k">}</span><span class="s2">/statuses.json"</span>
|
|
<span class="o">[{</span><span class="s2">"id"</span>:0,<span class="s2">"text"</span>:<span class="s2">"Hello, Blockstack!"</span>,<span class="s2">"created_at"</span>:1515786983492<span class="o">}]</span>
|
|
</code></pre>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
|
|
<h2 id="how-do-i-register-blockstack-ids">How do I register Blockstack IDs?</h2>
|
|
|
|
<p>You should use the <a href="https://github.com/blockstack/blockstack-browser">Blockstack Browser</a>.</p>
|
|
|
|
<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
|
|
use an existing one.</p>
|
|
|
|
<h2 id="can-i-programmatically-register-blockstack-ids">Can I programmatically register Blockstack IDs?</h2>
|
|
|
|
<p>Blockstack applications do not currently have
|
|
have access to the user’s wallet. Users are expected to
|
|
register Blockstack IDs themselves.</p>
|
|
|
|
<p>However, if you feel particularly ambitious, you can do one of the following:</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
|
|
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>
|
|
</li>
|
|
<li>
|
|
<p>Write a <code class="highlighter-rouge">node.js</code> program that uses <code class="highlighter-rouge">blockstack.js</code> to register
|
|
names. This is currently in development.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<h2 id="can-i-programmatically-register-blockstack-subdomains">Can I programmatically register Blockstack Subdomains?</h2>
|
|
|
|
<p>Yes! Once you deploy your own subdomain registrar, you can have your Web app
|
|
send it requests to register subdomains on your Blockstack ID. You can also
|
|
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
|
|
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>
|
|
|
|
<h2 id="does-blockstack-have-a-smart-contract-system">Does Blockstack have a smart contract system?</h2>
|
|
|
|
<p>No, not yet. This is because
|
|
Blockstack’s design philosophy focuses on keeping system complexity at the
|
|
“edges” of the network (e.g. clients), instead of the “core” of the network (e.g.
|
|
the blockchain), in accordance with the <a href="https://en.wikipedia.org/wiki/End-to-end_principle">end-to-end
|
|
principle</a>.
|
|
Generally speaking, this can be interpreted as “if you can do X without
|
|
a smart contract, you should do X without a smart contract.” This organizing
|
|
principle applies to a lot of useful decentralized applications.</p>
|
|
|
|
<h2 id="can-blockstack-applications-interact-with-bitcoin-ethereum-smart-contracts-other-blockchains">Can Blockstack applications interact with Bitcoin? Ethereum? Smart contracts? Other blockchains?</h2>
|
|
|
|
<p>Yes! Since Blockstack applications are built like Web applications, all you need to do is include the
|
|
relevant Javascript library into your application.</p>
|
|
|
|
<div class="share uk-text-center">
|
|
<a href="https://twitter.com/intent/tweet?text=Developer FAQs&url=https://zbabystack.netlify.com/core/faq_developer.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%2Ffaq_developer.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>
|
|
|