diff --git a/_browser/faq_general.md b/_browser/faq_general.md index 6c55d4ae..b37197d2 100644 --- a/_browser/faq_general.md +++ b/_browser/faq_general.md @@ -5,74 +5,14 @@ permalink: /:collection/:path.html # Users Frequently Asked Questions (FAQ) {:.no_toc} -This is a general FAQ intended for users of decentralized applications. If you are a developer, refer to the [technical FAQ]. +This is a FAQ intended for users of decentralized applications. A comprehensive list of FAQs that touch on general, technical, and App Mining questions is [also available]({{site.baseurl}}/faqs/allFAQS.html). * TOC {:toc} - -## What is the decentralized internet? - -The Blockstack ecosystem enables the new decentralized internet. Decentralization means authority moving from central authority to local authority. Simply put, in a decentralized internet, you own your data, not the applications or services you use. - -Blockstack envisions a world where users control their own data, and power flows back to the users. For example, when you buy something from an online company, that company collects and stores data about you: - -* your name -* the information about the product you bought -* the number on your credit card - -In the decentralied internet, that information stays with you and it isn't -collected or stored by anyone. Applications that operate in the decentralized -internet are called _decentralized applications_ or DApps for short. - -## What is Blockstack? - -Blockstack is an ecosystem to support both DApp users and DApp developers. For -users, Blockstack makes software to create Blockstack identities and find DApps. -For developers, Blockstack develops an ecosystem of software and services that developrs can use to build DApps. - -## How do DApps differ applications I typically use? - -DApps differ from Web applications in two ways: - -* **Users have identities not accounts**. The user brings their identity to the - applications; applications do not require the user to create accounts and -passwords. -* **Users own their data**. Users control access to their data. Users decide where to store their data and which applications can read or write to your. Companies and their decentralized applications don't keep or save your data. - - -## Where is my identity kept? - -Your identity is a unique string you and other people can read such as `moxiegirl.id`. A private key is a string of letters only you know. When you create an identity, a **hash** is made of your id and your private key registered with Blockstack. - -Your personal data storage is built around this ID. Apps that want to access your data use your permission and identity to find it. - -You have to remember and keep your private key in a safe place like a password manager. If you lose a private key, _no one else, no person, no software, can help you get your identity back_. - -## Can Blockstack control my data or ID when I use it? - -No. When you're using a Blockstack client you control your data and ID with a -private key. As long as no one gets access to your private key, no one can -control your data or ID. When you use Blockstack, by design, your private keys -are never sent to any remote servers. - -## Do DApps work with a regular browser? - -Yes! DApps run in the web browsers (Chrome, Safari, Internet Explorer, etc.) you know and love. - -## What is the Blockstack Browser? - -The Blockstack Browser is the DApp users use to create and manage their identities and configure their data storage. The browser is also where users can go to discover and use apps using Blockstack. - -The Blockstack Browser also handles login requests from DApps that allow their users to log in with Blockstack. When a user clicks a **Log In with Blockstack** button, they are redirected to the Blockstack Browser to approve the request before being logged into the app. - - -## Are Blockstack applications usable today? - -Yes! Blockstack applications are as easy to use as normal Web applications, if -not easier. Moreover, they are just as performant if not more so. - -If you install the [Blockstack -Browser](https://github.com/blockstack/blockstack-browser), or use our -[Web-hosted Blockstack Browser](https://browser.blockstack.org), you can get -started with them right away. +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'appusers' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} diff --git a/_config.yml b/_config.yml index c54041e2..6d670fdd 100644 --- a/_config.yml +++ b/_config.yml @@ -171,19 +171,19 @@ collections: basepath: "blockstack/blockstack-android/blob/master/docs" community: output: true - basepath: "blockstack/blockstack-core/blob/master/docs" + basepath: "moxiegirl/docs.blockstack" core: output: true - basepath: "blockstack/blockstack-core/blob/master/docs" + basepath: "moxiegirl/docs.blockstack" develop: output: true basepath: "moxiegirl/docs.blockstack" storage: output: true - basepath: "blockstack/gaia/blob/master/docs" + basepath: "moxiegirl/docs.blockstack" browser: output: true - basepath: "blockstack/blockstack-browser/blob/master/docs" + basepath: "moxiegirl/docs.blockstack" ios: output: true basepath: "blockstack/blockstack-ios/blob/master/docs" @@ -193,3 +193,6 @@ collections: org: output: true basepath: "moxiegirl/docs.blockstack" + faqs: + output: true + basepath: "moxiegirl/docs.blockstack" \ No newline at end of file diff --git a/_core/faq_developer.md b/_core/faq_developer.md index 190ee50f..dea598e3 100644 --- a/_core/faq_developer.md +++ b/_core/faq_developer.md @@ -2,141 +2,30 @@ layout: learn permalink: /:collection/:path.html --- -# Developer FAQs +# DApp Developer FAQs {:.no_toc} -These FAQs are intended for developers of Blockstack. +This document lists frequently-asked questions developers about Blockstack application development. If you are new to Blockstack, you should read the [general questions]({{site.baseurl}}/faqs/allFAQs.html) first. -* TOC -{:toc} - - -## I'm a web developer. Can I build on Blockstack? - -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. - -## I'm a non-web developer. Can I build on Blockstack? - -Yes! Blockstack implements a [RESTful API](https://core.blockstack.org) which -lets you interact with Blockstack from any language and any runtime. In fact, -the reference client -([blockstack.js](https://github.com/blockstack/blockstack.js)) is mainly a -wrapper around these RESTful API calls, so you won't be missing much by using a -language other than Javascript. - -## What's the difference between a web app and a Blockstack app? - -Blockstack apps are built like [single-page web -apps](https://en.wikipedia.org/wiki/Single-page_application)--- they are, in -fact, a type of web application. - -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 simple in design and operation, since in many cases they -don't have to host anything besides the application's assets. - -## Do I need to learn any new languages or frameworks? - -No. Blockstack applications are built using existing web frameworks and programming -The only new thing you need to learn is either [blockstack.js](https://github.com/blockstack/blockstack.js) or -the [Blockstack RESTful API](https://core.blockstack.org). - -## How does my web app interact with Blockstack? - -The [blockstack.js](https://github.com/blockstack/blockstack.js) library gives -any web application the ability to interact with Blockstack's authentication and -storage services. In addition, we supply a [public RESTful API](https://core.blockstack.org). - -## What does `blockstack.js` do? - -This is the reference client implementation for Blockstack. You use it in your -web app to do the following: - -* Authenticate users -* Load and store user data -* Read other users' public data - -## How do I use `blockstack.js`? - -We have [several examples](/browser/hello-blockstack.html) you can use to get started. Please see the API documentation [here](https://github.com/blockstack/blockstack.js). - -## How can I look up names and profiles? - -You can use `blockstack.js`, or you can use the [public Blockstack Core -endpoint](https://core.blockstack.org). +For more technical FAQs about Blockstack Core nodes, the Stacks blockchain, and other architectural elements, see the [entire set of technical FAQs]({{site.baseurl}}/core/faq_technical.html). -## How can I read my public app data without `blockstack.js`? +If you have a technical question that gets frequently asked on the +[forum](https://forum.blockstack.org) or [Slack](https://blockstack.slack.com), +feel free to send a pull-request with the question and answer. -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 -[Publik](https://publik.ykliao.com) app, stored under the Blockstack ID `ryan.id`. - -1. Get the bucket URL -```bash -$ BUCKET_URL="$(curl -sL https://core.blockstack.org/v1/users/ryan.id | jq -r '."ryan.id"["profile"]["apps"]["http://publik.ykliao.com"]')" -$ echo "$BUCKET_URL" -https://gaia.blockstack.org/hub/1FrZTGQ8DM9TMPfGXtXMUvt2NNebLiSzad/ -``` - -2. Get the data -```bash -$ curl -sL "${BUCKET_URL%%/}/statuses.json" -[{"id":0,"text":"Hello, Blockstack!","created_at":1515786983492}] -``` - -## How do I register Blockstack IDs? - -You should use the [Blockstack Browser](https://github.com/blockstack/blockstack-browser). - -## How do I register Blockstack Subdomains? - -You can deploy and use a [Blockstack Subdomain Registrar]({{ site.baseurl }}/core/naming/subdomains.html), or -use an existing one. - -## Can I programmatically register Blockstack IDs? - -Blockstack applications do not currently have -have access to the user's wallet. Users are expected to -register Blockstack IDs themselves. - -However, if you feel particularly ambitious, you can do one of the following: - -* Set up a `blockstack api` endpoint (see the project [README](https://github.com/blockstack/blockstack-core/blob/master/README.md)) and write a - program to automatically register names. Also, see the [API -documentation](https://core.blockstack.org//#managing-names-register-a-name) -for registering names on this endpoint. - -* Write a `node.js` program that uses `blockstack.js` to register - names. This is currently in development. - -## Can I programmatically register Blockstack Subdomains? - -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. - -## Do you have a testnet or sandbox to experiment with Blockstack? - -We have an [integration test framework](https://github.com/blockstack/blockstack-core/tree/master/integration_tests) that provides a -private Blockstack testnet. It uses `bitcoin -regtest` 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 -[README](https://github.com/blockstack/blockstack-core/blob/master/integration_tests/README.md) for details. - -## Does Blockstack have a smart contract system? - -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 [end-to-end -principle](https://en.wikipedia.org/wiki/End-to-end_principle). -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. - -## Can Blockstack applications interact with Bitcoin? Ethereum? Smart contracts? Other blockchains? +* TOC +{:toc} -Yes! Since Blockstack applications are built like web applications, all you need to do is include the -relevant Javascript library into your application. +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'dappdevs' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} + +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'opensource' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} diff --git a/_core/faq_technical.md b/_core/faq_technical.md index 18d6679e..a5853c52 100644 --- a/_core/faq_technical.md +++ b/_core/faq_technical.md @@ -2,184 +2,51 @@ layout: core permalink: /:collection/:path.html --- -# Blockstack Technical FAQ +# Technical FAQ {:.no_toc} -* TOC -{:toc} - - - -This document lists frequently-asked questions and answers to technical -questions about Blockstack. -If you are new to Blockstack, you should read the -[non-technical FAQ](https://blockstack.org/faq) first. +This document lists frequently-asked questions by developers interested in working with Blockstack application and core components. If you are new to Blockstack, you should read the [general questions]({{site.baseurl}}/faqs/allFAQs.html) first. If you have a technical question that gets frequently asked on the [forum](https://forum.blockstack.org) or [Slack](https://blockstack.slack.com), feel free to send a pull-request with the question and answer. -## Who should build on Blockstack? - -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. - -## What is a "serverless" app? - -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) - - -## How are Blockstack domains different from normal DNS domains? - -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. - -## What is a virtual chain? - -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). - -## What is Blockstack Core and who is working on it? - -Blockstack Core is the reference implementation of the Blockstack protocol described in our white paper. It consists of a couple of parts: - -- Virtualchain implementation: This is a python library that parses the underlying blockchain (Bitcoin) and builds the state of the Blockstack DNS. -- Blockstack Core: Uses the Virtualchain to build the DNS state and comes to a consensus on that state in a peer network (Atlas). -- Blockstack API: Indexes the data stored by Blockstack Core and makes it available in a performant way to applications. - -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 - - -## How is Blockstack different from Ethereum for building decentralized apps? - -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. - -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. - -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 - -## Can Blockstack only run on Bitcoin? - -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. - -## Does Blockstack use a DHT (Distributed Hash Table)? - -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 - -## Can the Blockstack network fork? - -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. - -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. - -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 `488500` 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 - -## How is the Blockstack network upgraded over time? What parties need to agree on an upgrade? - -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). - -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. - -## Who gets the registration fees for name registrations? - -With the current design, names are purchased by paying tribute with Bitcoin mining fees. - - -## Where are the current core developers based? What are the requirements for being a core developer? - -Most of the core developers work in NYC and Hong Kong. Developers who've contributed to the [core open-source software](https://github.com/blockstack/blockstack-core) 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. - -## I heard some companies working on Blockstack have raised venture capital, how does that impact the project? - -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 & 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. - -## Where is my data stored and how do I control who access it? - -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. - -## Why should I trust the information, like name ownership or public key mappings, read from Blockstack? - -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 [current hash rate](https://blockchain.info/charts/hash-rate) makes this task almost impossible for non-state actors. - -## Can anyone register a TLD? - -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. - - -## What programming language can I use to build these apps? - -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. - - -## Do I need to run a full Blockstack node to use Blockstack? - -tl;dr: You don't, but its very easy to. - -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 [install page](https://blockstack.org/install). It only takes about 5-10 minutes to spin up your full node! - -## What is the capacity per block for registrations using Blockstack? - -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. - -## What language is the Blockstack software written in? - -Python 2 and Node.js - -## What incentives are there to run a Blockstack node? - -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. - -## Can Blockstack apps scale, given that Blockstack uses blockchains which don't scale that well? - -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. - -## What if the current companies and developers working on Blockstack disappear, would the network keep running? - -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. - - -## Where does Blockstack keep my app data? - -As a Blockstack user, you can choose exactly where your data gets stored. -Blockstack uses a decentralized storage system called -[Gaia](https://github.com/blockstack/gaia) to host your data. Gaia is different -from other storage systems because it lets you securely host your data wherever you want — in cloud -software providers, on your personal server, or in another decentralized storage -system like BitTorrent or IPFS. - -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. - -The [Blockstack Naming Service]({{ site.baseurl }}/core/naming/introduction.html) and the [Atlas network]({{ site.baseurl }}/core/atlas/overview.html) work together to help other users discover your -app-specific public data, given your Blockstack ID. +* TOC +{:toc} -## What is a Blockstack Subdomain? +## DApp developers -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 `foo.bar.baz` -instead of `bar.baz`. For example, -[jude.personal.id](https://core.blockstack.org/v1/users/jude.personal.id) is a -Blockstack ID, and is a subdomain of `personal.id`. +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'dappdevs' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} -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. -Subdomains are considerably cheaper than Blockstack IDs, since hundreds of them -can be registered with a single transaction. The [BNS -documentation]({{ site.baseurl }}/core/naming/introduction.html) describes them in detail. +## Core developers -Subdomains provide a fast, inexpensive way to onboard many users at once. +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'coredevs' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} -## Can I get a Blockstack ID without spending Bitcoin? +## Open source developers -Blockstack subdomains can be obtained without spending Bitcoin -by asking a subdomain registrar to create one for you. +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'opensource' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} -## Is there a Blockstack name explorer? +## Miscellaneous questions -Yes! It's at https://explorer.blockstack.org +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'miscquest' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} diff --git a/_data/navigation_org.yml b/_data/navigation_org.yml index 9a65936b..88b3265c 100644 --- a/_data/navigation_org.yml +++ b/_data/navigation_org.yml @@ -1,8 +1,14 @@ - title: About Blockstack docs: - org/overview + - faqs/allFAQS - org/token - org/explore +- title: Our Whitepapers + docs: + - org/whitepaper-blockchain + - org/whitepaper-tokensale + - org/whitepaper-token - title: Manage Stacks docs: - org/wallet-intro @@ -10,13 +16,7 @@ - org/wallet-use - org/tokenholders - org/voucherholder -- title: Whitepapers - docs: - - org/whitepaper-blockchain - - org/whitepaper-tokensale - - org/whitepaper-token - title: Reference docs: - org/secureref - - org/faq - org/terms diff --git a/_data/theFAQs.json b/_data/theFAQs.json new file mode 100644 index 00000000..b356f976 --- /dev/null +++ b/_data/theFAQs.json @@ -0,0 +1 @@ +{ "faqs": [ { "category": "general", "question": "What is Blockstack?", "answer": "
Blockstack is a full-stack decentralized computing network that enables a new generation of applications where developers and users can interact fairly and securely. Blockstack uses blockchain technology to build protocols and developer tools designed to enable a fair and open Internet that returns digital rights to developers and consumers. Led by some of the world’s foremost experts on distributed systems, Blockstack allows users to own their own data that they can take with them from app to app in the ecosystem, along with their Blockstack ID that eliminates the need for password-based logins. The end result is privacy, security, and freedom.
" }, { "category": "general", "question": "What is decentralized computing?", "answer": "Decentralized computing has these attributes:
Blockstack technology, then, is a shift in how people use software, create it, and benefit from it. It puts people back in control of the computing systems that manage today’s world.
" }, { "category": "general", "question": "What is the Blockstack Ecosystem?", "answer": "The Blockstack Ecosystem is the legal entities and community structures that support the Blockstack technology, the apps that rely on it, and the people that work with it. The ecosystem’s mission is to foster an open and decentralized Internet that establishes and protects privacy, security and freedom for all users.
There are multiple business entities that have been created to focus on advancing the ecosystem, with plans for further decentralization:
Any person or organization working with the Blockstack technology in the open-source ecosystem is considered a part of it. Other than the above entities there are 80+ independent organization and apps built by teams of developers that are part of the Blockstack Ecosystem.
" }, { "category": "general", "question": "What is a decentralized internet?", "answer": "We envision an internet where users control their data, and power flows back to the users. In a decentralized internet, application creators cannot sell data without a user’s authorization. Users choose which data to share and who to share it with. In a decentralized internet, no single company or organization tracks users’ activities without permission, and that permission is the users to give or to take away.
" }, { "category": "general", "question": "What can developers achieve with the Blockstack Ecosystem?", "answer": "The Blockstack Ecosystem is working to enable developers to build software that protects users’ digital rights. This new kind of software is known as decentralized applications or DApps.
DApps use blockchain technology. Where Bitcoin is a decentralized value exchange on a blockchain, DApps use blockchain technology for more than value exchange; they use a blockchain to exchange data and support application interactions.
Decentralized applications potentially represent the next generation of computing. In an entirely decentralized world, all things occur using peer-to-peer networks, and the idea of centralized entities are non-existent. This distributed future is still being designed and built, but the early stages of development are looking promising.
" }, { "category": "general", "question": "What problems do Blockstack DApps solve for me as a user?", "answer": "Applications developed with Blockstack’s technology run like the traditional, web applications you know. Unlike traditional, web applications, DApps avoid abusing users by adhering to the following principles:
Blockstack was founded by two engineers from Princeton University, Muneeb Ali and Ryan Shea. They met at the Computer Science department at Princeton, where Muneeb was finishing his Ph.D. and Ryan was running the entrepreneurship club. In 2013, frustrated by the walled-gardens and security problems of the current internet they started working on a decentralized internet secured by blockchains. Blockstack is an open source project, you can find the code on GitHub.
" }, { "category": "appusers", "question": "What is a decentralized application or DApp?", "answer": "Decentralized applications or DApps are a new type of software application built with blockchain technology. Where Bitcoin is a decentralized value exchange on a blockchain, DApps use blockchain technology for more than value exchange; they use a blockchain to exchange data and support application interactions.
" }, { "category": "appusers", "question": "How do DApps differ from applications I typically use?", "answer": "DApps (decentralized applications) differ from Web applications in these key ways:
Yes! DApps run in the web browsers (Chrome, Safari, Internet Explorer, and so forth) you know today.
" }, { "category": "appusers", "question": "What is an identity or ID or Blockstack identity?", "answer": "A name or identity, ID for short, is your “home” on the decentralized internet. Your identity is unique, like a passport number, only you have it. To use an application, you sign into the application with your identity and a secret key only you know.
Your data and where it is stored is connected with your identity. When you sign into a DApp, you give the DApp permission to read your data and write to your data store on your behalf. When you log out of an application, it no longer has access to your data or data store — until the next time you log in with your identity.
" }, { "category": "appusers", "question": "Do I need to keep my identity secret?", "answer": "No. You can tell people your identity just as you tell them your name. What you need to secure and protect is your secret key.
" }, { "category": "appusers", "question": "How do I get an identity? Is it free?", "answer": "You can get a free identity from Blockstack in the id.blockstack namespace. A namepace is similar to a domain (checklist.com, for example) on the old internet. So, a free identity has blockstack suffix in its name; for example, moxiegirl.id.blockstack is a free Blockstack identity.
" }, { "category": "appusers", "question": "What if I forget my identity or my lose my secret key, can Blockstack help me?", "answer": "If you forget your identity or lose your secret key, no one else, no person, no software, can help you get your identity back. This restriction protects your identity and your secret key which together control access to data about you. In the new, decentralized internet, no one can keep and store your data but you, not even Blockstack.
You need to keep your identity and secret key in a safe, secure place you won’t forget.
" }, { "category": "appusers", "question": "Where is my identity kept?", "answer": "When you create an identity, your id and your private key are hashed (encrypted) and registered on Blockstack’s blockchain. The data you create through your identity is encrypted and kept off the blockchain in your data storage.
" }, { "category": "appusers", "question": "Can Blockstack delete my Blockstack ID or deny me use of it?", "answer": "No. When you’re using a Blockstack client, you control your data and ID with a private key. As long as no one gets access to your private key, no one can control your data or ID. When you use Blockstack, by design, your private keys are never sent to any remote servers.
" }, { "category": "appusers", "question": "Can I get an identity without the Blockstack in the name, like steve.id?", "answer": "Yes, you can get an identity in the .id space without Blockstack in the name. For example, you can create steve.id. You can even create a different space like username.frank without the id designation. These identities (.id) are not free; they cost a small amount of Bitcoin. A space (.frank) takes some technical knowledge to create and cost more.
" }, { "category": "appusers", "question": "Can I have more than one identity?", "answer": "Yes, you can create as many identities as you want.
" }, { "category": "appusers", "question": "Do identities last forever or do they expire?", "answer": "Identities with the like moxiegirl.id.blockstack or subdomain.name.namespace format do not expire. Names that have a single dot like name.namespace expire according to the rules set by the namespace creators. For example, name.id in the id namespace expires every two years and must be renewed. If a name.id expires, someone else can claim it.
" }, { "category": "appusers", "question": "Why do DApps ask me for an email in addition to an identity?", "answer": "Your email is not kept by DApps or by Blockstack. It is stored in your browser client’s local web storage. (See the question about data storage for more information about web storage.) When you are logged into a DApp, it can use your email to send you any information you need to operate the DApp. When you log out, your email is no longer available to the DApp.
" }, { "category": "appusers", "question": "Where can I find Blockstack DApps that I can use?", "answer": "You can see a list on the App.co site. Alternatively, you can go directly to your Blockstack Browser home page.
" }, { "category": "appusers", "question": "What is the Blockstack Browser?", "answer": "The Blockstack Browser is a DApp users use to create and manage their Blockstack identities. Users use the Blockstack Browser to manage their identities and their data storage.
Developers use the Blockstack Browser to handle login requests from DApps. From a Blockstack DApp, a user chooses the Log In with Blockstack button. Clicking this button sends users to a Blockstack Browser dialog. This dialog asks users to allow the DApp to access their data.
" }, { "category": "appusers", "question": "Do Blockstack DApps work with my web browser?", "answer": "Yes! DApps using Blockstack run in the web browsers you know and love (Chrome, Safari, Firefox, and Edge). Blockstack DApps are web applications; they happen to use the blockchain. DApps are just as fast as traditional web applications, often more so. If you use our Web-hosted Blockstack Browser, you can get started using DApps right away.
" }, { "category": "appusers", "question": "Is there a downloadable version of the Blockstack Browser?", "answer": "Yes. You can download a desktop version of the Blockstack Browser here.
" }, { "category": "appusers", "question": "What is Gaia?", "answer": "The Gaia Storage System is a feature of the Blockstack Platform. Developers or organizations can use the Gaia Storage System to create a data storage provider. Users choose a data storage provider when they create an identity.
" }, { "category": "appusers", "question": "Where is the data about me kept or what is a data store?", "answer": "Data about you appears in two locations, browser web storage and a data store. Web storage lives in your browser client, Chrome, Safari, and so forth. Data in web storage is sparse, it never leaves your device (computer or phone), and it is temporary. You can clear or remove your web storage just as you can your browser’s cache. Web storage data includes your email and your encrypted identity. Web storage never leaves your browser and never crosses a network to an external server.
Your Blockstack identity and any connected application data are kept in your data store. Unlike web storage, a data store has to live on a server accessible via the internet. That server is running the Gaia Storage System. The Gaia Storage System keeps the data encrypted. When you use an application, you give it permission to read and write from your data store. The application needs your permission to decrypt the data.
" }, { "category": "appusers", "question": "What kind of data does a Blockstack DApp keep about me?", "answer": "Blockstack does not keep any data about you. When you login into an application, you are asked to provide an email. That email is in your browser’s web storage; it doesn’t leave your device (computer or phone). When you reset the Blockstack Browser or clear your browser’s web storage, the local storage and your email are removed.
" }, { "category": "appusers", "question": "What is a data storage provider?", "answer": "A data storage provider is a person or a company that runs a Blockstack Gaia Storage System. You could, for example, run a Gaia Storage System on your own. Blockstack assumes that most users will use a commercial storage provider rather than a personal one.
Commercial storage providers typically use cloud computing services such as Digital Ocean, Amazon, or S3. These have the advantage of larger drives, regular backups, and more secure storage. Individual users can use these too, or they can use a local drive.
A Gaia Storage System has a location (URL) on the internet. The URL for a user’s storage provider is stored in their zone file. You can get a zone file with blockstack-cli
lookup
in the CLI. See the CLI documentation for more information about available commands.
Currently, moving your data from one storage provider to another is not supported via the UI. You can do this move with assistance from Blockstack.
" }, { "category": "dappdevs", "question": "Who should build with the Blockstack Platform?", "answer": "Everyone! However, more seriously, if you are building an application in JavaScript that requires sign-in and storage, you should look at using Blockstack.
" }, { "category": "dappdevs", "question": "I’m a web developer. Can I build on the Blockstack Platform?", "answer": "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.
" }, { "category": "dappdevs", "question": "I’m a non-web developer. Can I build on Blockstack Platform?", "answer": "Yes! Blockstack implements a RESTful API which lets you interact with Blockstack from any language and any runtime. In fact, the reference client (blockstack.js) is mainly a wrapper around these RESTful API calls, so you won’t be missing much by using a language other than Javascript.
" }, { "category": "dappdevs", "question": "How do I get started using Blockstack to build decentralized applications?", "answer": "The Zero-to-Dapp Tutorial is the best place to learn to build with Blockstack. The tutorial takes you through key aspects of building with Blockstack and takes less than 60 minutes. If you want something short and sweet, we have a Hello World that takes about 10 minutes. In the end, you’ll have a working demo and even get a free limited edition t-shirt!
" }, { "category": "dappdevs", "question": "What’s the difference between a web app and a Blockstack app?", "answer": "Blockstack apps are built like single-page web apps — they are, in fact, a type of web application.
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 simple in design and operation, since in many cases they don’t have to host anything besides the application’s assets.
" }, { "category": "dappdevs", "question": "Do I need to learn any new languages or frameworks?", "answer": "No. Blockstack applications are built using existing web frameworks and programming The only new thing you need to learn is either blockstack.js or the Blockstack RESTful API.
" }, { "category": "dappdevs", "question": "What is the general architecture of the Blockstack Platform?", "answer": "Applications built with Blockstack are serverless and decentralized. Developers don’t have to worry about running servers, maintaining databases, or building out user management systems.
Developers build an application in Javascript using the blockstack.js library. This library handles everything from identity and authentication to data storage. Applications can request permissions from users for read and write access to user resources. Data is stored off the blockchain in a storage provider running Blockstack’s Gaia Storage system. Gaia is simple and reliable and uses existing cloud infrastructure.
Under the hood, Blockstack provides a decentralized domain name system, the Blockstack Naming System (BNS). BNS is a decentralized public key distribution system and registry for apps and user identities.
" }, { "category": "dappdevs", "question": "What is a “serverless” app?", "answer": "The application should not run application-specific functionality on a server. All of its functionality should run on end-points. Serverless can also mean applications where the application developer still writes some amount of server-side logic, but unlike traditional architectures this logic is run in stateless compute containers that are event-triggered and ephemeral (may only last for one invocation).
However, applications may use some servers with the caveat that they must not be part of the application’s trusted computing base. The Gaia Storage System is part of most DApps’ computing base, but because user data is signed and verified end-to-end, the storage systems are not trusted to always serve correct data.
" }, { "category": "dappdevs", "question": "How does my web app interact with Blockstack?", "answer": "The blockstack.js library gives any web application the ability to interact with Blockstack’s authentication and storage services. In addition, we supply a public RESTful API.
" }, { "category": "dappdevs", "question": "What does blockstack.js do?", "answer": "This is the reference client implementation for Blockstack. You use it in your web app to do the following:
There are also mobile libraries for iOS and Android.
" }, { "category": "dappdevs", "question": "How do I use blockstack.js?", "answer": "Our documentation has several examples you can use to get started.
" }, { "category": "dappdevs", "question": "How do I register Blockstack IDs?", "answer": "You should use the Blockstack Browser.
" }, { "category": "dappdevs", "question": "How can I look up names and profiles?", "answer": "You can use blockstack.js, or you can use the public Blockstack Core endpoint.
" }, { "category": "dappdevs", "question": "What kind of scalability and performance can I expect from applications built with Blockstack?", "answer": "Blockstack uses the blockchain only for name registration. Data storage is kept off-chain in the Gaia Storage System. This basic application architecture means any application can perform and scale as they do without a blockchain.
" }, { "category": "dappdevs", "question": "Is there a limit to the file sizes I can store in a Gaia Storage System", "answer": "The file size limit is 25 MB per file.
" }, { "category": "dappdevs", "question": "Can I run a Gaia Storage System commercially?", "answer": "Yes, you can. Anyone interested in running a Gaia Storage System can run one and make it available to users.
" }, { "category": "dappdevs", "question": "Is the platform private or open sourced?", "answer": "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
" }, { "category": "dappdevs", "question": "What programming language can I use to build these apps?", "answer": "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. Blockstack Core is implemented in Python (the next major release will be in Rust), but you can use any language you like for native apps as long as it can consume a JSON REST API.
" }, { "category": "dappdevs", "question": "How is Blockstack different from Ethereum for building decentralized apps?", "answer": "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 must be handled at the blockchain level. Ethereum amounts to a “mainframe” that runs all the applications in the ecosystem.
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.
" }, { "category": "dappdevs", "question": "Can Blockstack applications interact with Bitcoin? Ethereum? Other blockchains?", "answer": "Yes! Since Blockstack applications are built like web applications, all you need to do is include the relevant Javascript library into your application.
" }, { "category": "appminers", "question": "What is App Mining?", "answer": "Traditionally the term mining in cryptocurrency refers to the process of contributing compute resources to the network and earning a reward. In the Blockstack Ecosystem, instead of just mining through computation, developers mine by building apps and the Blockstack community funds them simply for being pioneers in the emerging Blockchain software market.
We believe app mining represents a revolution in app funding, allowing small teams to bootstrap without advertising or venture capital. Each month, qualifying apps compete for funding. Qualified apps are evaluated and ranked by expert app reviewers. The better your app, the higher payout you earn.
App mining is a new mining model that we expect will evolve and improve over time. We look forward to feedback from our community regarding the App Mining process and program.
" }, { "category": "appminers", "question": "What is the App Mining timeline?", "answer": "App mining results are sent to Blockstack by app reviewer partners.
Blockstack team performs App Mining algorithm as referenced here.
The following calendar shows events each month related to App Mining:
" }, { "category": "appminers", "question": "How much can I earn and how are rewards distributed? ", "answer": "Payouts for the pilot run are $100k in total each month (the original alpha run paid out $25K. In the pilot run, the highest-ranked app receives 20% of the 100K, the next highest-ranked app receives 20% of the remaining 80%, and so on (this distribution is subject to change).
Rewards are paid in Bitcoin. The payouts are administered by Blockstack PBC and facilitated by App.co.
" }, { "category": "appminers", "question": "How is App Mining different from cryptocurrency mining?", "answer": "Traditionally the term mining in cryptocurrency refers to the process of contributing compute resources to the network and earning a distributed of new tokens as a reward. On the Stacks blockchain, developers can “mine” by contributing apps to the ecosystem and making applications the community wants.
" }, { "category": "appminers", "question": "What qualifies my app to compete in App Mining?", "answer": "Your app should integrate Blockstack authentication for logging into your app. Your finished app should be available to the public for use. In the future, App Mining may reward apps that have taken steps to further decentralize, such as utilizing Gaia storage or the publishing your app to the Blockstack Naming System. Test flight apps, hello-world apps and apps created through blockstack tutorials (e.g. animal kingdom apps) do not qualify.
" }, { "category": "appminers", "question": "Does my app have to be listed on App.co to enter App Mining?", "answer": "Yes, it does.
" }, { "category": "appminers", "question": "How do I submit my application for App Mining?", "answer": "Complete the submission form on App.co. Blockstack suggests registering several days before the ranking deadline — our team needs to verify your details to ensure your app qualifies. Full enrollment details can be found here. When you have met all the requirements, you should see your app listed on this page.
" }, { "category": "appminers", "question": "When are my submission materials due?", "answer": "Your submission materials are due at 11:59 PM Eastern Time US on the last day of each month. For example, if you are making a submission for March, your materials must be submitted on or before Feb 28 at 11:59 EST.
" }, { "category": "appminers", "question": "How often can I submit my application for App Mining?", "answer": "You need only to submit your application once. Each month after your submission, your app is competing in App Mining.
" }, { "category": "appminers", "question": "How do I launch my app on Product Hunt as an app reviewer?", "answer": "Part of the ranking process includes an assessment by the Product Hunt app reviewer via their community vote and their internal team vote. You can find information on the algorithm in this documentation.
Your product's launch on Product Hunt has an impact on your final App Mining ranking as stated in the algorithm information. If your app has not been “hunted” yet on Product Hunt, you have the option to hunt the app independently or to ask Product Hunt to hunt it for you. Make sure you understand the hunting process. Only hunted products can be featured by Product Hunt. More information on successful product hunt launches can be found on the Product Hunt blog.
Blockstack will email each miner about the hunt process at the start of each App Mining review cycle. You should feel free to let us know your preference, hunt yourself or by Product Hunt, before the review cycle.
" }, { "category": "appminers", "question": "Does my code repository need to be public?", "answer": "Your application code can be public or private.
" }, { "category": "appminers", "question": "Is Blockstack Auth difficult to integrate?", "answer": "If you’re already building your app with JavaScript, adding Blockstack authentication is easy! We have docs, tutorials, and thorough API references for you to learn from. Vist the Zero-to-Dapp tutorial for end-to-end training. Or use this short example.
If you’re developing a traditional server-side application, you can still take advantage of Blockstack authentication. For an example, check out our Ruby on Rails gem.
" }, { "category": "appminers", "question": "Who are the app reviewers?", "answer": "App reviewers are currently selected by Blockstack PBC. Reviewers are entities that have a proprietary methodology that helps them make objective judgements for why a certain app might be better than others. We strive to engage a diverse coalition of app reviewers with the goal of making application ranking objective and resilient to abuse.
As of January 2019, the reviewers were: Product Hunt, Try My UI and Democracy Earth (who uses software to collect votes by Stacks token holders). See here for more details about each reviewer. Future reviewers could expand to community election. Please see our github repository to raise issues or make suggestions for App Mining.
" }, { "category": "appminers", "question": "How are apps ranked?", "answer": "App reviewers have a proprietary methodology that helps them make objective judgments for why one app might be better than another. Each app reviewers determines the data, formula, and personnel they wish to utilize. For example, Product Hunt can tap into their community data to determine relative app popularity. Reviewers must publish their methodology periodically to ensure transparency.
To learn more see the detailed explanation of our ranking algorithm on our blog and in our documentation.
Apps may have unique circumstances such that the app cannot be ranked by all the reviewers, for example, apps that require specific hardware. In these cases, reviewers that can review and rank the app will. An app’s final ranking is determined by the average of those reviewers that can fully review the app.
" }, { "category": "appminers", "question": "Do I have to Hunt my app on Product Hunt?", "answer": "As part of the ranking process, there is an assessment by App Reviewer Product Hunt via their community vote and their internal team vote. More info on the algorithm, here. The Hunt launch will have an impact on your final ranking, as you can see in the algorithm breakdown. Here is more info on Product Hunt launch best practices. In general, sharing and responsiveness to questions are encouraged and it might help your community reception if you choose to hunt the app yourself. If not, Product Hunt can hunt your App as well.
Apps will be hunted every 6 months, so if you hunted your app in a past month, as long as you are in the 6 month time window you will not have to Hunt the app.
" }, { "category": "appminers", "question": "Can developers engage with voters on Democracy Earth?", "answer": "Yes, they can. App miners can and should create an account on Democracy Earth. From this account they can engage with voters through the debate feature. Learn more in the documentation.
" }, { "category": "appminers", "question": "When are the winning payments made?", "answer": "Payouts are made on the 15th of every month.
" }, { "category": "appminers", "question": "What’s the incentive for user voting? ", "answer": "Voters in the App Mining ecosystem use Democracy Earth to vote for applications. Voters are currently Stacks token holders with incentive to strategically allocate resources in the ecosystem to apps they consider highly valuable.
" }, { "category": "appminers", "question": "What are examples of any quantitative metrics that may be shared with app reviewers?", "answer": "Qualitative metrics are metrics that evaluate elements such as engagement, DAU/MAU ratios etc from the reviewed apps. Blockstack plans to incorporate metrics based ranking. However, before we do, any mechanism must thoughtfully incorporate the digital privacy rights of Blockstack users, and provide information in a way that cannot be gamed.
" }, { "category": "appminers", "question": "Is App Mining Decentralized?", "answer": "Given the pioneering nature of the program, we are being careful and starting in a centralized fashion that allows for necessary diligence. We don’t want to bake in assumptions that have not been validated. The downside of this protection is some level of centralization, which we are taking steps to reduce over time. The pilot is the just the first step in creating a fair system that can be relied upon by founders and contribute to the growth of the Blockstack ecosystem.
Blockstack plans to move along a path to decentralization and App Mining will too. It is important to highlight that initially App Mining will purposely have a few points of centralization highlighted below, which can become decentralized over time (all plans are subject to change, legal approval, and applicable law).
Currently, Blockstack PBC elects app reviewers. In the future, we anticipate gradually transitioning to community elections of App Reviewers.
Currently, registering apps is regulated by Blockstack PBC through app.co/mining. In the future, we anticipate transitioning to publishing on designated Blockstack namespaces via our public blockchain.
Currently, votes are aggregated by Blockstack PBC and administered via App.co. In the future, we expect that votes will be collected through the protocol itself.
Currently, payouts are issued by Blockstack PBC. In the future, we expect that payouts will over time be generated and deployed on an automated basis.
" }, { "category": "appminers", "question": "How is App Mining protected against bribery, collusion, or gaming?", "answer": "We are taking potential threats very seriously and hope to create a fair system that continuously reinforces trust within our community for the long term.
We are currently consulting with a team of 3 Ph.D. Game Theorist professors from Princeton University and New York University to determine thoughtful methods to protect App Mining from being attacked and/or abused. Our goal is to be as transparent as possible, but App Reviewers may reserve the right to keep some secrets in their formula to avoid bribes and gaming, and the algorithm that combines all of these score may be tuned in the future to account for new learnings.
The Game Theorists are working with us to create a technical paper and broader documents like blogs explaining the overall mechanism
" }, { "category": "appminers", "question": "App Mining Disclaimer", "answer": "The App Minig FAQs contain forward-looking statements, including statements regarding Blockstack PBC’s plans for its App Mining program. Forward-looking statements are subject to risks and uncertainties that could cause actual results to differ materially, and reported results should not be considered as an indication of future performance. Potential risks and uncertainties that could change our actual results include, but are not limited to, risks associated with: the failure of App Mining Program to successfully incentivize the development of applications for the Blockstack network; risks associated with attacks designed to influence the App Reviewers or game their methodologies; technical difficulties in the transition from a centralized to a decentralized administration of the program. These forward-looking statements speak only as of the date hereof. Blockstack PBC disclaims any obligation to update these forward-looking statements.
Any decisions that may be made through the App Mining Program regarding rewards provided to app developers are not recommendations as to the quality of any investments that individuals may make in a company that receives rewards. If you are considering an investment in any of these companies, you should make your own decision regarding that investment and not rely in any way on the results of the App Mining program.
" }, { "category": "coredevs", "question": "What is Blockstack Core?", "answer": "Blockstack Core is the reference implementation of the Blockstack protocol described in our white paper. Today, it consists of these components:
The next version of Blockstack core will incorporate smart contacts and do away with the virtual chain. This next version is expected toward the end of the year and will contain these components:
Proof-of-Burn is a mechanism through which potential block miners (what we call leaders) burn an existing cryptocurrency to announce their candidacy for mining a particular block. The more cryptocurrency burnt by a particular leader, the more likely they are to be selected to lead a block (a process which uses cryptographic sortition). Once elected, a leader constructs a valid block, choosing the chain tip to base their fork off of, and announces the block to the network. In the event of chain forks, clients select the longest such fork as the “correct fork.”
" }, { "category": "coredevs", "question": "What is a virtual chain", "answer": "Currently, Blockstack uses 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. The next iteration of the Blockstack chain no longer contains virtual chains.
" }, { "category": "coredevs", "question": "How are user identities managed in the Blockstack architecture?", "answer": "Identity is user-controlled and utilizes a smart contract implemented on the Stacks blockchain for secure management of keys, devices, and usernames. When users log in with apps, they are anonymous by default and use an app-specific key, but their full identity can be revealed and proven at any time. Keys are used for signing and encryption.
" }, { "category": "coredevs", "question": "Can anyone register names on Blockstack?", "answer": "Anyone can register a name or identity on Blockstack — you just need to use a Blockstack client to submit a registration request to a Blockstack core node. All of that software is Open-Source and can be run without any centralized parties.
" }, { "category": "coredevs", "question": "What is a Blockstack Subdomain?", "answer": "A Blockstack subdomain can be used for all the things a Blockstack ID can be used for. The only difference is that they have the format ~~foo.bar.baz~~
instead of ~~bar.baz~~
. For example, jude.personal.id is a Blockstack ID, and is a subdomain of ~~personal.id~~
. Hundreds of subdomains can be registered with a single transaction. The BNS documentation describes them in detail.
Blockstack subdomains can be obtained without spending Bitcoin by asking a subdomain registrar to create one for you.
" }, { "category": "coredevs", "question": "Is there a Blockstack name explorer?", "answer": "Yes! It’s at https://explorer.blockstack.org
" }, { "category": "coredevs", "question": "Why should I trust the information, like name ownership or public key mappings, read from Blockstack?", "answer": "Blockstack records are tough to tamper with. The difficulty comes from the fact that the bindings for name ownership (names on Blockstack are owned by public keys) are announced on the Stacks blockchain. To change these bindings, an attacker must initiate a winning fork of the Stacks blockchain that is longer than the true chain, but with a different history. The longer your name binding exists on the correct chain, the harder this task becomes.
" }, { "category": "coredevs", "question": "Do you have a testnet or sandbox to experiment with Blockstack?", "answer": "We have an integration test framework that provides a private Blockstack testnet. It uses bitcoin -regtest
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 README for details.
Yes, the Blockstack network can fork. We hard fork the network once a year to make protocol-breaking changes and upgrade the network. The latest fork was in 201 where we introduced the genesis block of the Stacks blockchain. For technical details, see the 2018 forum post for the annual hard fork.
" }, { "category": "coredevs", "question": "Which coin fuels the Blockstack blockchain?", "answer": "Currently, transactions fees are paid in Bitcoin. In 2018 our annual hard fork enabled the fuel payments for digital asset registration to be paid in Stacks token. For technical details, see the 2018 forum post for the annual hard fork. In the next version of the Stacks chain, which will implement Proof-of-Burn mining and leader election, all transaction fees will be paid in Stacks.
" }, { "category": "coredevs", "question": "How is the Blockstack network upgraded over time? What parties need to agree on an upgrade?", "answer": "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 is activated if a certain threshold (e.g., 80%) of votes consistently request its adoption over a given time interval (e.g., a couple of weeks).
Until then, Blockstack publicly announces the availability of new software, with the promise that each release will bring highly-desired features to make upgrading worth the users’ whiles.
" }, { "category": "coredevs", "question": "Who gets the registration fees for name registrations?", "answer": "With the current design, names are secured through proof of burn mining which uses Bitcoin. Namespace creators determine how much names costs in a space, when and if the names expire. These creators can also elect to receive fees for creating names in the first year that a namespace exists.
" }, { "category": "coredevs", "question": "Do I need to run a full Blockstack node to use Blockstack?", "answer": "No. We maintain a fleet of Blockstack Core nodes that your Blockstack applications can connect to by default.
" }, { "category": "coredevs", "question": "Can I run my own Blockstack node?", "answer": "If you want to run your own, we provide detailed instructions on our install page. It only takes about 5-10 minutes to spin up your full node! 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 many resources as a Chrome tab.
" }, { "category": "coredevs", "question": "What is the capacity per block for registrations using Blockstack?", "answer": "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.
" }, { "category": "coredevs", "question": "Can I programmatically register Blockstack IDs?", "answer": "Blockstack applications do not currently have have access to the user’s wallet. Users are expected to register Blockstack IDs themselves.
However, if you feel particularly ambitious, you can do one of the following:
Set up a blockstack api
endpoint (see the project README) and write a program to automatically register names. Also, see the API documentation for registering names on this endpoint.
Write a node.js
program that uses blockstack.js to register names. This is currently in development.
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.
" }, { "category": "coredevs", "question": "What language is the Blockstack software written in?", "answer": "The current Stacks chain is implemented in Python 2. The next version of the Stacks chain will be written in Rust.
Our libraries and many of our developer tools are written in Javascript (and we’re working on porting much of our Javascript to TypeScript).
" }, { "category": "coredevs", "question": "What if the current companies and developers working on Blockstack disappear, would the network keep running?", "answer": "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.
" }, { "category": "opensource", "question": "How old is the Blockstack project?", "answer": "Work on the project started in late 2013. First public commits on the code are from Jan 2014. The first registrar for Blockstack was launched in March 2014, and the project has been growing since then.
" }, { "category": "opensource", "question": "What is the current development roadmap look like?", "answer": "See this page for the current development roadmap.
" }, { "category": "opensource", "question": "Where are the current core developers based? What are the requirements for being a core developer?", "answer": "Our core developers work in various cities, New York City, Seattle, Toronto, Chicago, Minneapolis, NYC, San Francisco Bay Area, Barcelona, and the Netherlands . Developers who’ve contributed to the core open-source software over a long enough 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, can write high-quality code, understand distributed systems and applied crypto, and share a vision of building a genuinely decentralized internet and are dedicated to that cause.
" }, { "category": "opensource", "question": "I heard some companies working on Blockstack have raised venture capital, how does that impact the project?", "answer": "Blockstack, like Linux, is an open-source project with a Linux GPLv2 license for the core technology. Just like different companies build apps and services on top of Linux and have different individual business models, some companies are building apps & 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.
" }, { "category": "miscquest", "question": "What’s the difference between Onename and Blockstack?", "answer": "Onename was a free Blockstack ID registrar run by Blockstack. It makes it easy to register your name and set up your profile. Once the name has been registered in Onename, you can transfer it to a wallet you control, or leave it there and use it as you like.
" }, { "category": "miscquest", "question": "How is Blockstack different from Namecoin?", "answer": "Blockstack DNS differs from Namecoin DNS in a few fundamental ways: blockchain layering, storage models, name pricing models, and incentives for miners. We wrote a post where you can learn more here: https://blockstack.org/docs/blockstack-vs-namecoin
" }, { "category": "miscquest", "question": "Does Blockstack use a DHT (Distributed Hash Table)?", "answer": "It does not, as of November 2016. It uses a much more reliable system called the Atlas Network. Details here: https://blockstack.org/blog/blockstack-core-v0-14-release/
" }, { "category": "wallet", "question": "What is a seed phrase?", "answer": "When you create a wallet address, you also create a seed phrase. With one significant exception, a seed phrase is similar to a banking pin in that it gives you access to your wallet and your token allocation. Unlike a pin, if you lose your seed phrase you can never access your wallet or your token allocation ever again.
Warning: Losing a seed phrase is final and destructive. Blockstack does not keep a copy of your seed. Blockstack cannot give you a new seed, get your access to your wallet, or return your tokens if you lose your seed phrase.
Keep your seed phrase secret. Just as with a banking pin, anyone that knows or steals your seed phrase can access your allocation.
You should write your seed phrase down and store the paper you write on in at least two secure locations. A safe or lock box is a good location. You can also store it online in an encrypted password manager such as 1Password. You should never simply store a seed phrase in Apple Cloud or Dropbox.
" }, { "category": "wallet", "question": "How do I keep my tokens secure?", "answer": "The safety of your Stacks Tokens is extremely important to us. To help ensure that you complete the process of receiving your tokens correctly and securely, please read the following guidelines:
Website Safety: When inputting data on a website or verifying the presence of data on a website it is essential that you confirm that the URL is correct and that your browser is using HTTPS.
Email Safety: Blockstack will never ask for your personal identifying information over e-mail, or call you directly. When we ask verifying questions, we will only do so when you call us to confirm your identity. We will never ask you for money or your Seed Phrase (private key).
If you have large token holdings, make sure you take advantage of custodial services. A wallet does not provide the security of a custodial service.
" }, { "category": "wallet", "question": "When will the new Stacks wallet be available?", "answer": "The Stacks wallet is available for download at wallet.blockstack.org.
" }, { "category": "wallet", "question": "What is a public Stacks wallet address?", "answer": "During the initial grant process, investors submitted a public Stacks wallet address to Blockstack. This is a string of letters and numbers starting with an ‘SP’ or SM’, for example SP017AUV5YRM7HT3TSQXJF7FCCYXETAB276BQ6XY
is a wallet address.
If you purchased Stacks tokens through CoinList, you can find your address at CoinList. If you submitted your Stacks address directly to Blockstack, you can either use the “Restore from Seed Phrase” feature on the Stacks wallet or contact us at hello@stackstoken.com for help.
" }, { "category": "wallet", "question": "How do I get help from a person?", "answer": "For questions or help regarding the Stacks token, you can contact us at hello@stackstoken.com.
" }, { "category": "tokens", "question": "Where can I buy Stacks?", "answer": "Blockstack Token LLC (“Blockstack”) is not currently offering Stacks for sale. Please keep an eye out for updates at stackstoken.com, where you may also subscribe for updates by joining our mailing list.
" }, { "category": "tokens", "question": "I have a voucher for Stacks. When can I redeem my voucher?", "answer": "We cannot currently comment on future sales or offers of Stacks. Please keep an eye out for updates at stackstoken.com, where you may also subscribe for updates by joining our mailing list. Thanks for your patience!
" }, { "category": "tokens", "question": "Is there an exchange where I can buy and sell Stacks?", "answer": "There is currently no authorized exchange for buying and selling Stacks or Stacks futures, and we cannot comment on when an exchange might list Stacks at this time. Please keep an eye out for updates at stackstoken.com. If you see Stacks listed on an exchange, please let us know at legal@blockstack.com, as the listing may be illegal or a scam.
" }, { "category": "tokens", "question": "Can I sell or transfer Stacks directly to someone else?", "answer": "If you purchased Stacks from our 2017 token sale, it may be possible to sell or transfer Stacks directly to another person in a peer-to-peer transaction. We recommend you consult an attorney before engaging in such a transaction, especially if buying or selling from or to a U.S. person or entity, as we cannot give you legal or regulatory advice.
" }, { "category": "tokens", "question": "What is the Stacks holding or lock-up period?", "answer": "Stacks purchased from our 2017 token sale are subject to two separate holding or lock-up periods that run in tandem: (1) a one-year holding period required by law that prohibits sale or transfer of Stacks within one year of the date of purchase of the SAFT or fund interests that gave you the right to tokens, and (2) a monthly time-lock built into our blockchain that unlocks 1/24th of your Stacks on the date of the Blockchain launch on October 29, 2018, and then an additional 1/24th approximately each month thereafter. Because the 2017 token sale took place over one year ago, the one-year holding period should be over for most investors. You may check the status of your monthly time-lock at https://explorer.blockstack.org/.
" }, { "category": "tokens", "question": "I have a tax question about my Stacks. Whom should I talk to?", "answer": "If you have a tax question about your Stacks, we recommend you speak to an accountant or tax lawyer. If you participated in the 2017 token sale through the Blockstack Token Funds, we’ll provide you with the necessary tax reporting forms by the required deadlines, but in general, we cannot give you tax advice.
" } ] } diff --git a/_develop/appMiningFAQ.md b/_develop/appMiningFAQ.md index c9db0aef..d54b79cd 100644 --- a/_develop/appMiningFAQ.md +++ b/_develop/appMiningFAQ.md @@ -7,8 +7,9 @@ permalink: /:collection/:path.html * TOC {:toc} - -{% for faq in site.data.appFAQ.faqs %} +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'appminers' %} ## {{ faq.question }} - {{ faq.answer }} +{{ faq.answer }} + {% endif %} {% endfor %} diff --git a/_faqs/allFAQS.md b/_faqs/allFAQS.md new file mode 100644 index 00000000..5819de72 --- /dev/null +++ b/_faqs/allFAQS.md @@ -0,0 +1,92 @@ +--- +layout: org +permalink: /:collection/:path.html +--- +# Blockstack FAQs + +This is a comprehensive list of all the Blockstack FAQs. + +* TOC +{:toc} + +## General questions + +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'general' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} + +## Application users + +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'appusers' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} + +## Stacks Wallet + +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'wallet' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} + + +## Stacks tokens + +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'tokens' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} + +## DApp developers + +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'dappdevs' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} + +## Application Miners + +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'appminers' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} + +## Core developers + +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'coredevs' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} + +## Open source developers + +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'opensource' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} + +## Miscellaneous questions + +{% for faq in site.data.theFAQs.faqs %} + {% if faq.category == 'miscquest' %} +### {{ faq.question }} +{{ faq.answer }} + {% endif %} +{% endfor %} diff --git a/_faqs/allfaqs.json b/_faqs/allfaqs.json new file mode 100644 index 00000000..483355b6 --- /dev/null +++ b/_faqs/allfaqs.json @@ -0,0 +1,4 @@ +--- +layout: null +--- +{{ site.data.theFAQs | jsonify }} diff --git a/_org/overview.md b/_org/overview.md index 11da9ce2..b775fb2a 100644 --- a/_org/overview.md +++ b/_org/overview.md @@ -2,21 +2,19 @@ layout: org permalink: /:collection/:path.html --- -# What is the Blockstack Ecosystem +# Overview of Blockstack -The Blockstack Ecosystem has a mission to bring a new internet where users -control the access to, and use of, their own identity and data. With this -mission in mind, three independent entities were formed: +Blockstack is a full-stack decentralized computing network that enables a new generation of applications where developers and users can interact fairly and securely. Blockstack uses blockchain technology to build protocols and developer tools designed to enable a fair and open Internet that returns digital rights to developers and consumers. -* TOC -{:toc} -These three affiliated entities drive the advancement of the Blockstack mission. -In this section, you learn about the mechanisms each entity uses to advance the -overall mission. +## What is the Blockstack Ecosystem? +The Blockstack Ecosystem is the legal entities and community structures that support the Blockstack technology, the apps that rely on it, and the people that work with it. The ecosystem’s mission is to foster an open and decentralized Internet that establishes and protects privacy, security and freedom for all users. -## Blockstack Public Benefit Corp (PBC) +The documentation on this site focuses on the technologies produced by three entities in the ecosystem. + + +### Blockstack Public Benefit Corp (PBC) Blockstack Public Benefit Corp. (PBC) started development of the Blockstack platform in 2014 and launched an alpha of the platform in early 2017. The @@ -38,11 +36,11 @@ Using Blockstack’s technology developers can start building immediately on the blockchain with the knowledge you have today. You won’t need to spend time or effort developing expertise in specialized languages or technologies. -## Blockstack Signature Fund +### Blockstack Signature Fund {% include signature_fund.md %} -## Blockstack Token LLC +### Blockstack Token LLC Through the 2017 Blockstack token offering, Blockstack Token LLC created the Stacks token. This year's hard fork is an especially exciting milestone for the ecosystem because it distributes the first Stacks tokens to existing purchasers and recipients. This hard fork launches the Stacks blockchain v1, and enables the following two features for the Blockstack network: