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.
 
 

696 lines
48 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>Blockstack Technical FAQ | Blockstack</title>
<meta name="generator" content="Jekyll v3.8.3" />
<meta property="og:title" content="Blockstack Technical FAQ" />
<meta name="author" content="Blockstack" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Blockstack Technical FAQ" />
<meta property="og:description" content="Blockstack Technical FAQ" />
<link rel="canonical" href="https://docs.blockstack.org/core/faq_technical.html" />
<meta property="og:url" content="https://docs.blockstack.org/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-14T09:05:56-07:00" />
<script type="application/ld+json">
{"description":"Blockstack Technical FAQ","author":{"@type":"Person","name":"Blockstack"},"@type":"BlogPosting","url":"https://docs.blockstack.org/core/faq_technical.html","headline":"Blockstack Technical FAQ","dateModified":"2018-09-14T09:05:56-07:00","datePublished":"2018-09-14T09:05:56-07:00","mainEntityOfPage":{"@type":"WebPage","@id":"https://docs.blockstack.org/core/faq_technical.html"},"@context":"http://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<!-- <meta property="og:image" content="https://docs.blockstack.org/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://docs.blockstack.org/assets/posts/logo.png" alt="Docs"></a> -->
<a class="uk-navbar-item uk-logo" href="/"><img src="/assets/posts/logo.png" alt="Docs">
&nbsp;&nbsp;&nbsp;
<svg style="width:141.602;height:11.487px" viewBox="0 0 141.602 11.487" enable-background="new 0 0 141.602 11.487"><path fill="#000000" d="M5.471,7.791c0,0.511-0.16,0.875-0.488,1.111C4.631,9.158,4.097,9.287,3.398,9.287H2.387V6.456h1.011 C5.256,6.456,5.471,7.219,5.471,7.791z M4.554,4.223C4.29,4.448,3.82,4.562,3.16,4.562H2.387V2.2h0.821 c0.611,0,1.066,0.094,1.352,0.279C4.81,2.641,4.933,2.907,4.933,3.292C4.933,3.704,4.809,4.008,4.554,4.223z M6.004,5.338 c0.325-0.181,0.59-0.418,0.79-0.709c0.327-0.476,0.493-1.001,0.493-1.562c0-0.53-0.105-0.989-0.313-1.362 c-0.208-0.374-0.5-0.677-0.867-0.9C5.754,0.59,5.333,0.432,4.855,0.335C4.391,0.24,3.879,0.192,3.334,0.192h-3.06 C0.123,0.192,0,0.317,0,0.471v10.545c0,0.154,0.123,0.278,0.274,0.278h3.315c0.591,0,1.143-0.065,1.645-0.194 c0.513-0.132,0.966-0.339,1.345-0.615c0.388-0.283,0.694-0.641,0.91-1.067C7.702,8.992,7.811,8.488,7.811,7.92 c0-0.78-0.226-1.413-0.672-1.879C6.847,5.737,6.467,5.502,6.004,5.338z M22.197,9.158h-4.595V0.471c0-0.153-0.123-0.278-0.274-0.278 h-1.824c-0.151,0-0.273,0.125-0.273,0.278v10.545c0,0.154,0.122,0.278,0.273,0.278h6.693c0.151,0,0.274-0.124,0.274-0.278v-1.58 C22.47,9.282,22.348,9.158,22.197,9.158z M35.076,5.695c0,0.567-0.051,1.086-0.151,1.543c-0.1,0.45-0.24,0.836-0.416,1.149 c-0.167,0.299-0.37,0.53-0.603,0.688c-0.461,0.312-1.061,0.3-1.505-0.001c-0.233-0.157-0.436-0.389-0.604-0.688 c-0.175-0.313-0.312-0.699-0.407-1.146c-0.096-0.458-0.144-0.978-0.144-1.546c0-1.126,0.187-2.013,0.556-2.638 c0.346-0.587,0.791-0.873,1.36-0.873c0.568,0,1.012,0.285,1.359,0.873C34.889,3.682,35.076,4.569,35.076,5.695z M36.319,1.541 c-0.378-0.494-0.844-0.879-1.381-1.144c-1.076-0.529-2.477-0.529-3.553,0c-0.538,0.265-1.003,0.65-1.381,1.144 c-0.373,0.487-0.669,1.09-0.879,1.792c-0.208,0.696-0.313,1.49-0.313,2.362c0,0.882,0.105,1.685,0.313,2.386 c0.21,0.706,0.504,1.318,0.876,1.821c0.378,0.511,0.844,0.908,1.382,1.179c0.538,0.27,1.136,0.407,1.779,0.407 c0.642,0,1.24-0.137,1.778-0.408c0.538-0.27,1.003-0.667,1.382-1.178c0.372-0.503,0.667-1.115,0.876-1.821 c0.208-0.7,0.314-1.502,0.314-2.386c0-0.873-0.105-1.667-0.314-2.363C36.988,2.631,36.692,2.028,36.319,1.541z M51.29,8.346 c-0.052-0.058-0.125-0.092-0.203-0.092c-0.077,0-0.151,0.033-0.203,0.092c-0.273,0.308-0.566,0.549-0.871,0.715 c-0.602,0.33-1.469,0.308-2.099,0.002c-0.326-0.159-0.608-0.387-0.841-0.681c-0.236-0.299-0.423-0.675-0.554-1.116 c-0.134-0.45-0.203-0.968-0.203-1.539c0-0.56,0.068-1.07,0.203-1.515c0.132-0.437,0.316-0.81,0.548-1.111 c0.227-0.293,0.504-0.522,0.825-0.68c0.614-0.302,1.45-0.317,2.02-0.032c0.283,0.142,0.543,0.333,0.775,0.568 c0.054,0.054,0.147,0.088,0.2,0.081c0.075-0.002,0.146-0.036,0.196-0.092l1.03-1.161c0.098-0.11,0.094-0.278-0.01-0.383 c-0.355-0.361-0.799-0.687-1.317-0.968c-1.105-0.597-2.643-0.547-3.841-0.044c-0.621,0.262-1.165,0.648-1.618,1.149 c-0.451,0.498-0.809,1.113-1.064,1.827c-0.253,0.71-0.381,1.521-0.381,2.408c0,0.899,0.128,1.712,0.381,2.417 c0.255,0.709,0.614,1.317,1.066,1.805c0.454,0.489,0.993,0.865,1.603,1.115c0.607,0.249,1.268,0.374,1.966,0.374 c0.695,0,1.333-0.142,1.897-0.423c0.559-0.279,1.068-0.684,1.513-1.204c0.09-0.106,0.089-0.264-0.004-0.368L51.29,8.346z M64.109,4.608l3.075-3.966c0.065-0.083,0.077-0.198,0.031-0.293c-0.045-0.096-0.141-0.157-0.245-0.157h-2.046 c-0.084,0-0.163,0.039-0.215,0.106l-3.254,4.218V0.47c0-0.153-0.123-0.277-0.274-0.277h-1.855c-0.151,0-0.274,0.124-0.274,0.277 v10.546c0,0.153,0.122,0.278,0.274,0.278h1.855c0.151,0,0.274-0.125,0.274-0.278V8.034l1.185-1.483l2.392,4.594 c0.048,0.091,0.141,0.148,0.242,0.148h2.046c0.097,0,0.186-0.052,0.236-0.138c0.049-0.085,0.05-0.19,0.003-0.276L64.109,4.608z M81.006,6.088c-0.218-0.244-0.478-0.462-0.773-0.647c-0.286-0.179-0.606-0.339-0.94-0.47l-1.368-0.598 c-0.235-0.097-0.461-0.189-0.679-0.276c-0.196-0.079-0.371-0.169-0.516-0.27c-0.134-0.092-0.24-0.197-0.315-0.311 c-0.065-0.099-0.097-0.22-0.097-0.369c0-0.297,0.112-0.514,0.351-0.683c0.263-0.187,0.64-0.281,1.12-0.281 c0.437,0,0.833,0.074,1.179,0.22c0.355,0.151,0.702,0.36,1.03,0.623c0.116,0.094,0.287,0.074,0.381-0.044l0.952-1.193 c0.091-0.114,0.079-0.279-0.026-0.38c-0.456-0.429-0.993-0.775-1.597-1.028c-1.114-0.467-2.435-0.495-3.459-0.144 c-0.469,0.161-0.88,0.389-1.221,0.678c-0.345,0.292-0.618,0.638-0.815,1.031c-0.199,0.398-0.299,0.834-0.299,1.296 c0,0.422,0.072,0.806,0.213,1.141c0.139,0.33,0.328,0.623,0.561,0.873c0.228,0.243,0.488,0.454,0.771,0.626 c0.277,0.169,0.564,0.312,0.841,0.42l1.425,0.634c0.249,0.095,0.479,0.19,0.692,0.285c0.198,0.088,0.367,0.184,0.504,0.285 c0.122,0.09,0.216,0.193,0.281,0.308c0.06,0.107,0.091,0.246,0.091,0.411c0,0.322-0.121,0.563-0.381,0.76 c-0.278,0.21-0.709,0.316-1.28,0.316c-0.467,0-0.934-0.103-1.388-0.307C75.78,8.788,75.358,8.514,74.99,8.18 c-0.056-0.05-0.127-0.077-0.201-0.07c-0.073,0.005-0.141,0.039-0.189,0.096l-1.078,1.274c-0.095,0.113-0.087,0.283,0.02,0.385 c0.541,0.516,1.167,0.92,1.862,1.2c0.695,0.281,1.434,0.423,2.195,0.423c0.63,0,1.205-0.09,1.707-0.265 c0.506-0.178,0.942-0.422,1.294-0.729c0.355-0.309,0.632-0.673,0.823-1.085c0.191-0.412,0.288-0.858,0.288-1.328 c0-0.419-0.062-0.797-0.185-1.123C81.404,6.632,81.229,6.339,81.006,6.088z M96.557,0.192h-8.374c-0.151,0-0.273,0.124-0.273,0.278 v1.58c0,0.154,0.122,0.278,0.273,0.278h2.994v8.687c0,0.154,0.122,0.278,0.274,0.278h1.84c0.151,0,0.273-0.124,0.273-0.278V2.328 h2.994c0.151,0,0.274-0.124,0.274-0.278v-1.58C96.831,0.317,96.708,0.192,96.557,0.192z M107.143,2.902 c0.074,0.282,0.149,0.566,0.226,0.851l0.725,2.664h-1.906l0.265-0.934c0.159-0.561,0.315-1.135,0.469-1.723 C106.996,3.473,107.071,3.188,107.143,2.902z M108.512,0.384c-0.037-0.114-0.142-0.192-0.261-0.192h-2.157 c-0.118,0-0.223,0.077-0.26,0.192l-3.362,10.546c-0.027,0.085-0.012,0.177,0.04,0.249c0.051,0.072,0.134,0.115,0.221,0.115h1.871 c0.122,0,0.229-0.082,0.263-0.201l0.752-2.653h3.044l0.736,2.651c0.034,0.12,0.141,0.203,0.263,0.203h1.951 c0.088,0,0.17-0.043,0.221-0.115c0.052-0.071,0.066-0.164,0.039-0.249L108.512,0.384z M125.302,8.346 c-0.104-0.117-0.302-0.117-0.406,0c-0.273,0.308-0.566,0.548-0.87,0.715c-0.603,0.329-1.469,0.308-2.1,0.002 c-0.326-0.159-0.608-0.387-0.841-0.681c-0.236-0.299-0.422-0.675-0.554-1.116c-0.134-0.449-0.202-0.966-0.202-1.539 c0-0.561,0.068-1.071,0.202-1.515c0.132-0.437,0.316-0.811,0.549-1.111c0.226-0.293,0.503-0.522,0.823-0.68 c0.614-0.302,1.45-0.317,2.02-0.032c0.283,0.142,0.544,0.332,0.775,0.567c0.053,0.055,0.131,0.089,0.2,0.082 c0.075-0.002,0.146-0.035,0.196-0.092l1.031-1.161c0.098-0.11,0.093-0.278-0.01-0.383c-0.355-0.361-0.8-0.687-1.318-0.968 c-1.105-0.597-2.644-0.547-3.841-0.044c-0.621,0.262-1.165,0.648-1.618,1.149c-0.451,0.498-0.809,1.113-1.063,1.827 c-0.254,0.71-0.382,1.521-0.382,2.409c0,0.899,0.128,1.712,0.382,2.417c0.254,0.709,0.612,1.317,1.065,1.805 c0.453,0.489,0.993,0.864,1.604,1.115c0.606,0.249,1.268,0.374,1.965,0.374c0.695,0,1.333-0.142,1.897-0.423 c0.559-0.279,1.067-0.684,1.514-1.204c0.09-0.106,0.089-0.264-0.004-0.368L125.302,8.346z M141.567,10.88l-3.448-6.272l3.075-3.966 c0.065-0.083,0.077-0.198,0.031-0.293c-0.045-0.096-0.141-0.157-0.246-0.157h-2.045c-0.084,0-0.164,0.039-0.215,0.106l-3.254,4.217 V0.47c0-0.153-0.122-0.277-0.274-0.277h-1.856c-0.151,0-0.274,0.124-0.274,0.277v10.546c0,0.153,0.123,0.278,0.274,0.278h1.856 c0.151,0,0.274-0.125,0.274-0.278V8.035l1.185-1.484l2.392,4.594c0.047,0.091,0.141,0.148,0.242,0.148h2.045 c0.097,0,0.187-0.052,0.236-0.138C141.614,11.071,141.615,10.966,141.567,10.88z"></path></svg>
</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_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>
</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>
<!-- -->
<li class=""><a href="/core/naming/forks.html">BNS Forks</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="uk-active"><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 markdown="span" class="uk-article">
<h1 class="uk-article-title">Blockstack Technical FAQ</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-14T09:05:56-07:00" itemprop="datePublished">
<a "target="_blank" href="https://github.com/blockstack/blockstack-core/blob/master/docs/faq_technical.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 14, 2018
</time>
</div>
<div markdown="span" class="article-content">
<ul class="no_toc" id="markdown-toc">
<li><a href="#who-should-build-on-blockstack" id="markdown-toc-who-should-build-on-blockstack">Who should build on Blockstack?</a></li>
<li><a href="#what-is-a-serverless-app" id="markdown-toc-what-is-a-serverless-app">What is a “serverless” app?</a></li>
<li><a href="#how-are-blockstack-domains-different-from-normal-dns-domains" id="markdown-toc-how-are-blockstack-domains-different-from-normal-dns-domains">How are Blockstack domains different from normal DNS domains?</a></li>
<li><a href="#what-is-a-virtual-chain" id="markdown-toc-what-is-a-virtual-chain">What is a virtual chain?</a></li>
<li><a href="#what-is-blockstack-core-and-who-is-working-on-it" id="markdown-toc-what-is-blockstack-core-and-who-is-working-on-it">What is Blockstack Core and who is working on it?</a></li>
<li><a href="#how-is-blockstack-different-from-ethereum-for-building-decentralized-apps" id="markdown-toc-how-is-blockstack-different-from-ethereum-for-building-decentralized-apps">How is Blockstack different from Ethereum for building decentralized apps?</a></li>
<li><a href="#can-blockstack-only-run-on-bitcoin" id="markdown-toc-can-blockstack-only-run-on-bitcoin">Can Blockstack only run on Bitcoin?</a></li>
<li><a href="#does-blockstack-use-a-dht-distributed-hash-table" id="markdown-toc-does-blockstack-use-a-dht-distributed-hash-table">Does Blockstack use a DHT (Distributed Hash Table)?</a></li>
<li><a href="#can-the-blockstack-network-fork" id="markdown-toc-can-the-blockstack-network-fork">Can the Blockstack network fork?</a></li>
<li><a href="#how-is-the-blockstack-network-upgraded-over-time-what-parties-need-to-agree-on-an-upgrade" id="markdown-toc-how-is-the-blockstack-network-upgraded-over-time-what-parties-need-to-agree-on-an-upgrade">How is the Blockstack network upgraded over time? What parties need to agree on an upgrade?</a></li>
<li><a href="#who-gets-the-registration-fees-for-name-registrations" id="markdown-toc-who-gets-the-registration-fees-for-name-registrations">Who gets the registration fees for name registrations?</a></li>
<li><a href="#where-are-the-current-core-developers-based-what-are-the-requirements-for-being-a-core-developer" id="markdown-toc-where-are-the-current-core-developers-based-what-are-the-requirements-for-being-a-core-developer">Where are the current core developers based? What are the requirements for being a core developer?</a></li>
<li><a href="#i-heard-some-companies-working-on-blockstack-have-raised-venture-capital-how-does-that-impact-the-project" id="markdown-toc-i-heard-some-companies-working-on-blockstack-have-raised-venture-capital-how-does-that-impact-the-project">I heard some companies working on Blockstack have raised venture capital, how does that impact the project?</a></li>
<li><a href="#where-is-my-data-stored-and-how-do-i-control-who-access-it" id="markdown-toc-where-is-my-data-stored-and-how-do-i-control-who-access-it">Where is my data stored and how do I control who access it?</a></li>
<li><a href="#why-should-i-trust-the-information-like-name-ownership-or-public-key-mappings-read-from-blockstack" id="markdown-toc-why-should-i-trust-the-information-like-name-ownership-or-public-key-mappings-read-from-blockstack">Why should I trust the information, like name ownership or public key mappings, read from Blockstack?</a></li>
<li><a href="#can-anyone-register-a-tld" id="markdown-toc-can-anyone-register-a-tld">Can anyone register a TLD?</a></li>
<li><a href="#what-programming-language-can-i-use-to-build-these-apps" id="markdown-toc-what-programming-language-can-i-use-to-build-these-apps">What programming language can I use to build these apps?</a></li>
<li><a href="#do-i-need-to-run-a-full-blockstack-node-to-use-blockstack" id="markdown-toc-do-i-need-to-run-a-full-blockstack-node-to-use-blockstack">Do I need to run a full Blockstack node to use Blockstack?</a></li>
<li><a href="#what-is-the-capacity-per-block-for-registrations-using-blockstack" id="markdown-toc-what-is-the-capacity-per-block-for-registrations-using-blockstack">What is the capacity per block for registrations using Blockstack?</a></li>
<li><a href="#what-language-is-the-blockstack-software-written-in" id="markdown-toc-what-language-is-the-blockstack-software-written-in">What language is the Blockstack software written in?</a></li>
<li><a href="#what-incentives-are-there-to-run-a-blockstack-node" id="markdown-toc-what-incentives-are-there-to-run-a-blockstack-node">What incentives are there to run a Blockstack node?</a></li>
<li><a href="#can-blockstack-apps-scale-given-that-blockstack-uses-blockchains-which-dont-scale-that-well" id="markdown-toc-can-blockstack-apps-scale-given-that-blockstack-uses-blockchains-which-dont-scale-that-well">Can Blockstack apps scale, given that Blockstack uses blockchains which don’t scale that well?</a></li>
<li><a href="#what-if-the-current-companies-and-developers-working-on-blockstack-disappear-would-the-network-keep-running" id="markdown-toc-what-if-the-current-companies-and-developers-working-on-blockstack-disappear-would-the-network-keep-running">What if the current companies and developers working on Blockstack disappear, would the network keep running?</a></li>
<li><a href="#where-does-blockstack-keep-my-app-data" id="markdown-toc-where-does-blockstack-keep-my-app-data">Where does Blockstack keep my app data?</a></li>
<li><a href="#what-is-a-blockstack-subdomain" id="markdown-toc-what-is-a-blockstack-subdomain">What is a Blockstack Subdomain?</a></li>
<li><a href="#can-i-get-a-blockstack-id-without-spending-bitcoin" id="markdown-toc-can-i-get-a-blockstack-id-without-spending-bitcoin">Can I get a Blockstack ID without spending Bitcoin?</a></li>
<li><a href="#is-there-a-blockstack-name-explorer" id="markdown-toc-is-there-a-blockstack-name-explorer">Is there a Blockstack name explorer?</a></li>
</ul>
<p>This document lists frequently-asked questions and answers to technical
questions about Blockstack.</p>
<p>If you are new to Blockstack, you should read the
<a href="https://blockstack.org/faq">non-technical FAQ</a> first.</p>
<p>If you have a technical question that gets frequently asked on the
<a href="https://forum.blockstack.org">forum</a> or <a href="https://blockstack.slack.com">Slack</a>,
feel free to send a pull-request with the question and answer.</p>
<h2 id="who-should-build-on-blockstack">Who should build on Blockstack?</h2>
<p>Everyone! But more seriously, if you are building an application in JavaScript
that requires sign-in and storage you should look at using Blockstack. The APIs
we provide are not only decentralized (No dependency on Google, Facebook, or
other OAuth provider) but easier to use than traditional OAuth. Also you no
longer have to maintain and secure databases with all your user information.
That data is stored securely with the people who created it.</p>
<h2 id="what-is-a-serverless-app">What is a “serverless” app?</h2>
<p>The application itself should not run application-specific functionality on a server. All of its functionality should run on end-points. However, the application may use non-app-specific servers with the caveat that they must not be part of the trusted computing base. This is the case with storage systems like Amazon S3 and Dropbox, for example, because Blockstack’s data is signed and verified end-to-end (so the storage systems are not trusted to serve data). Serverless can also mean applications where some amount of server-side logic is still written by the application developer but unlike traditional architectures is run in stateless compute containers that are event-triggered, ephemeral (may only last for one invocation)</p>
<h2 id="how-are-blockstack-domains-different-from-normal-dns-domains">How are Blockstack domains different from normal DNS domains?</h2>
<p>Blockstack domains are not registered on the traditional DNS run by an organized called ICANN. Instead they’re registered on a blockchain in a fully decentralized way. This means that Blockstack domains are truly owned by their owners and cannot be taken away. All Blockstack domains have public keys by default (public keys are required to own the domains), unlike the traditional DNS where a small fraction of domains get the (optional) public key certificates.</p>
<h2 id="what-is-a-virtual-chain">What is a virtual chain?</h2>
<p>Blockstack is designed around a “virtual chain” concept, where nodes only need to reach consensus on the shared “virtual chain” they’re interested in. Virtual chains do not interact with one another, and a single blockchain can host many virtual chains. These virtual chains can live in any blockchain for which there exists a driver, and virtual chain clients only need to execute their virtual chain transactions (i.e. Blockstack only processes Blockstack virtual chain transactions).</p>
<h2 id="what-is-blockstack-core-and-who-is-working-on-it">What is Blockstack Core and who is working on it?</h2>
<p>Blockstack Core is the reference implementation of the Blockstack protocol described in our white paper. It consists of a couple of parts:</p>
<ul>
<li>Virtualchain implementation: This is a python library that parses the underlying blockchain (Bitcoin) and builds the state of the Blockstack DNS.</li>
<li>Blockstack Core: Uses the Virtualchain to build the DNS state and comes to a consensus on that state in a peer network (Atlas).</li>
<li>Blockstack API: Indexes the data stored by Blockstack Core and makes it available in a performant way to applications.</li>
</ul>
<p>The project is open-source and anyone can contribute! The major contributors are mostly employees of Blockstack PBC. You can see the full list of contributors here: https://github.com/blockstack/blockstack-core/graphs/contributors</p>
<h2 id="how-is-blockstack-different-from-ethereum-for-building-decentralized-apps">How is Blockstack different from Ethereum for building decentralized apps?</h2>
<p>You can think of Ethereum as a “heavy” blockchain that does everything for you. All the complexity is handled on-chain, computations are run there, and all scalability and security concerns need to be handled at the blockchain level. It amounts to a “mainframe” that runs all the applications in the ecosystem.</p>
<p>Blockstack puts minimal logic into a blockchain and handles scalability outside of the blockchain by re-using existing internet infrastructure. Our architectural design mirrors how computing has developed; moving from mainframes to smaller networked entities.</p>
<p>Read more about the differences between Blockstack and Ethereum dapps in the following forum post: https://forum.blockstack.org/t/what-is-the-difference-between-blockstack-and-ethereum/781/2</p>
<h2 id="can-blockstack-only-run-on-bitcoin">Can Blockstack only run on Bitcoin?</h2>
<p>The model we’re currently exploring is where Blockstack can process multiple blockchains to construct the global state where each namespace is tied to a single blockchain. Meaning that say the .id namespace is defined to run on Bitcoin and a .eth namespace is defined to run on Ethereum. Blockstack can process transactions from both blockchains and update the state of namespaces, but the consistency of any given namespace depends only on the underlying blockchain it was defined on.</p>
<h2 id="does-blockstack-use-a-dht-distributed-hash-table">Does Blockstack use a DHT (Distributed Hash Table)?</h2>
<p>It does not, as of November 2016. It uses a much more reliable system called the Atlas Network. Details here: https://blog.blockstack.org/blockstack-core-v0-14-0-release-aad748f46d#.30gzlthdw</p>
<h2 id="can-the-blockstack-network-fork">Can the Blockstack network fork?</h2>
<p>Yes, the Blockstack network can fork if the underlying blockchain encounters a deep fork. In this case, blockstack nodes on either side of the fork will diverge from one another.</p>
<p>We have yet to encounter a deep fork. If this does happen, then Blockstack will use the virtualchain state on the majority fork once the fork resolves.</p>
<p>We also hard fork the network once a year to make protocol breaking changes and upgrade the network. The last one of these happened on block <code class="highlighter-rouge">488500</code> on the bitcoin blockchain. There are more details about the fork in this forum post: https://forum.blockstack.org/t/blockstack-annual-hard-fork-2017/1618</p>
<h2 id="how-is-the-blockstack-network-upgraded-over-time-what-parties-need-to-agree-on-an-upgrade">How is the Blockstack network upgraded over time? What parties need to agree on an upgrade?</h2>
<p>We’re working on an on-chain voting strategy similar to how mining works, where anyone can cast a vote proportional to the amount of Bitcoin burned. Similar to how Bitcoin upgrades, a new feature will activate if a certain threshold (e.g. 80%) of votes consistently request its adoption over a given time interval (e.g. a couple weeks).</p>
<p>Until then, we will publicly announce the availability of new software, with the promise that each release will bring highly-desired features to make upgrading worth the users’ whiles.</p>
<h2 id="who-gets-the-registration-fees-for-name-registrations">Who gets the registration fees for name registrations?</h2>
<p>With the current design, names are purchased by paying tribute with Bitcoin mining fees.</p>
<h2 id="where-are-the-current-core-developers-based-what-are-the-requirements-for-being-a-core-developer">Where are the current core developers based? What are the requirements for being a core developer?</h2>
<p>Most of the core developers work in NYC and Hong Kong. Developers who’ve contributed to the <a href="https://github.com/blockstack/blockstack-core">core open-source software</a> over a long enough time period, by default, get included in the list of core developers. There is no formal process for being part of this informal list. Core developers, generally, have the ability to write high-quality code, understand distributed systems and applied crypto, and share a vision of building a truly decentralized internet and are dedicated to that cause.</p>
<h2 id="i-heard-some-companies-working-on-blockstack-have-raised-venture-capital-how-does-that-impact-the-project">I heard some companies working on Blockstack have raised venture capital, how does that impact the project?</h2>
<p>Blockstack, like Linux, is an open-source project with a GPLv3 license for the core technology. Just like different companies build apps and services on top of Linux and have different individual business models, there are companies who’re building apps &amp; services for Blockstack on top of the core open-source technology and these companies have various business models and funding sources respectively. Having more venture-backed companies join the ecosystem for a decentralized internet is a good thing for everyone participating in the ecosystem including users and developers.</p>
<h2 id="where-is-my-data-stored-and-how-do-i-control-who-access-it">Where is my data stored and how do I control who access it?</h2>
<p>You control where your data is stored (you could run your own server, or use your own cloud storage - Dropbox, Amazon S3, and keep backups across all). You then use those places as locations pointed to by the URLs in your Blockstack ID’s zone file. You can get the zone file with <code class="highlighter-rouge">blockstack lookup</code> in the CLI (Check out the install video in our <a href="https://www.youtube.com/playlist?list=PLXS8JJHIn4nGCU2uW85dHXpkQJ7QA5JkX">CLI video tutorial series</a>. <em>need help on how users control who accesses the data</em></p>
<h2 id="why-should-i-trust-the-information-like-name-ownership-or-public-key-mappings-read-from-blockstack">Why should I trust the information, like name ownership or public key mappings, read from Blockstack?</h2>
<p>Blockstack records are extremely hard to tamper with. This is because the bindings for name ownership (names on Blockstack are owned by public keys) are announced in a proof-of-work blockchain (Bitcoin) and to change these binding an attacker will need to come up with a blockchain with more proof-of-work than the current Bitcoin blockchain but with a different history. Bitcoin’s <a href="https://blockchain.info/charts/hash-rate">current hash rate</a> makes this task almost impossible for non-state actors.</p>
<h2 id="can-anyone-register-a-tld">Can anyone register a TLD?</h2>
<p>Yes, anyone can register a TLD. If a TLD has not been registered already and you’re willing to pay the registration fee for it, you can go ahead and register that TLD. There is no centralized party that can stop you from registering a TLD.</p>
<h2 id="what-programming-language-can-i-use-to-build-these-apps">What programming language can I use to build these apps?</h2>
<p>To make apps that run in the web browser using Blockstack, you can use JavaScript and any of the same web frameworks or libraries you use today such as React, AngularJs, Vue.js or jQuery. The Blockstack Core is implementated in Python, but you can use any language you like for native apps as long as you are able to consume a JSON REST API.</p>
<h2 id="do-i-need-to-run-a-full-blockstack-node-to-use-blockstack">Do I need to run a full Blockstack node to use Blockstack?</h2>
<p>tl;dr: You don’t, but its very easy to.</p>
<p>To reduce the overhead involved in getting started we maintain a fleet of Blockstack Core nodes that your Blockstack applications connect to by default. If you want to run your own we provide detailed instructions on our <a href="https://blockstack.org/install">install page</a>. It only takes about 5-10 minutes to spin up your full node!</p>
<h2 id="what-is-the-capacity-per-block-for-registrations-using-blockstack">What is the capacity per block for registrations using Blockstack?</h2>
<p>Initial registrations can be done at an order of hundreds per block and once an identity is registered you can do “unlimited” updates to the data because that is off-chain. We’re also working on a more scalable solution where a very large number of identities can be registered but that’s not live yet and is in the pipeline as a rough benchmark. in summer 2015, Blockstack did 30,000+ identity registrations in a matter of few days live on the blockchain and Blockstack was actually throttling its servers and not taking up more than 100-200 transactions per block. It could’ve easily taken up more transactions without impacting the network.</p>
<h2 id="what-language-is-the-blockstack-software-written-in">What language is the Blockstack software written in?</h2>
<p>Python 2 and Node.js</p>
<h2 id="what-incentives-are-there-to-run-a-blockstack-node">What incentives are there to run a Blockstack node?</h2>
<p>Running a Blockstack node keeps you secure by ensuring that your app gets the right names and public keys. It’s not expensive; it takes as much resources as a Chrome tab.</p>
<h2 id="can-blockstack-apps-scale-given-that-blockstack-uses-blockchains-which-dont-scale-that-well">Can Blockstack apps scale, given that Blockstack uses blockchains which don’t scale that well?</h2>
<p>Yes. Blockstack only uses the blockchain for name registration. Everything else happens off-chain, so apps work just as fast as they do on the Web.</p>
<h2 id="what-if-the-current-companies-and-developers-working-on-blockstack-disappear-would-the-network-keep-running">What if the current companies and developers working on Blockstack disappear, would the network keep running?</h2>
<p>Yes, the Blockstack network will keep running. All of Blockstack’s code is open-source and anyone can deploy Blockstack nodes or maintain the code. Further, Blockstack nodes don’t need to coordinate with each other to function. Any node that a user deploys can function correctly independently.</p>
<h2 id="where-does-blockstack-keep-my-app-data">Where does Blockstack keep my app data?</h2>
<p>As a Blockstack user, you can choose exactly where your data gets stored.
Blockstack uses a decentralized storage system called
<a href="https://github.com/blockstack/gaia">Gaia</a> to host your data. Gaia is different
from other storage systems because it lets you securely host your data wherever you want—in cloud
storage providers, on your personal server, or in another decentralized storage
system like BitTorrent or IPFS.</p>
<p>When you register, you are given a default Gaia hub that replicates your
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="/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>
<p>This is also a Blockstack ID, and can be used for all the things a Blockstack ID
can be used for. The only difference is that they have the format <code class="highlighter-rouge">foo.bar.baz</code>
instead of <code class="highlighter-rouge">bar.baz</code>. For example,
<a href="https://core.blockstack.org/v1/users/jude.personal.id">jude.personal.id</a> is a
Blockstack ID, and is a subdomain of <code class="highlighter-rouge">personal.id</code>.</p>
<p>Subdomains are first-class Blockstack IDs—they can be used for all the same
things that an on-chain Blockstack ID can be used for, and they have all of
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="/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>
<h2 id="can-i-get-a-blockstack-id-without-spending-bitcoin">Can I get a Blockstack ID without spending Bitcoin?</h2>
<p>Blockstack subdomains can be obtained without spending Bitcoin
by asking a subdomain registrar to create one for you.</p>
<h2 id="is-there-a-blockstack-name-explorer">Is there a Blockstack name explorer?</h2>
<p>Yes! It’s at https://explorer.blockstack.org</p>
<div class="share uk-text-center">
<a href="https://twitter.com/intent/tweet?text=Blockstack Technical FAQ&url=https://docs.blockstack.org/core/faq_technical.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%2Fdocs.blockstack.org%2Fcore%2Ffaq_technical.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://docs.blockstack.org/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'
},
results: {
embedConfig: undefined, // {'url':undefined,'contentBlock':'.page-content-body'}, // if url is given the page will change to that URL and look for the content block there to insert the results
fullScreenConfig: undefined, // {trigger: '#ss360-search-trigger', caption: 'Search this site'}, trigger is the CSS selector to the element that starts the search full screen overlay and searchCaption the caption on the full screen search page
caption: 'Found #COUNT# search results for \"#QUERY#\"', // the caption of the search results
group: true, // whether results should be grouped if content groups are available
filters: undefined,
num: 96, // the maximum number of search results to be shown
highlightQueryTerms: true, // whether to highlight the query terms in search results
moreResultsButton: "Show more results", // HTML for the more results button, all results will be shown if this is null
noResultsText: 'Sorry, we have not found any matches for your query.', // the text to show when there are no results
queryCorrectionText: 'Did you mean "#CORRECTION#"?',
searchQueryParamName: 'ss360Query', // the name of the search query parameter
linksOpenNewTab: false, // should clicking on the result links open a new tab/window?
showSearchBoxLayover: true, //whether to show search box in search result layover
moreResultsPagingSize: 12, // the number of new results to show each time the more results button is pressed (max: 24)
orderByRelevanceText: "Relevance" // the text to be shown in order select box to describe 'order by relevance' option
},
suggestions: {
show: true, // whether to show search suggestions
maxQuerySuggestions: 3, // the maximum number of query suggestions
querySuggestionHeadline: undefined, // the headline of the query suggestions, leave blank if no headline should be shown
emptyQuerySuggestions: undefined,
showImages: false, // show images in search suggestions
num: 6, // the maximum number of search suggestions to be shown
minChars: 3, // minimum number of characters before the suggestions shows, default: 3,
maxWidth: 'auto', // the maximum width of the suggest box, default: as wide as the input box, at least 275px
throttleTime: 300, // the number of milliseconds before the suggest is triggered after finished input, default: 300ms
extraHtml: undefined, // extra HTML code that is shown in each search suggest, you can even show values of datapoints here,
highlight: true, // whether matched words should be highlighted, default: true
}
};
</script>
<script src="https://cdn.sitesearch360.com/sitesearch360-v11.min.js" async></script>
</body>
</html>