mirror of https://github.com/lukechilds/docs.git
moxiegirl
6 years ago
23 changed files with 136 additions and 2547 deletions
@ -0,0 +1,24 @@ |
|||
- title: Overview |
|||
docs: |
|||
- core/naming/introduction |
|||
- core/naming/architecture |
|||
- core/naming/namespaces |
|||
|
|||
- title: Tutorials |
|||
docs: |
|||
- core/naming/creation_tutorial |
|||
|
|||
|
|||
- title: How to use BNS |
|||
docs: |
|||
- core/naming/pickname |
|||
- core/naming/resolving |
|||
- core/naming/register |
|||
- core/naming/manage |
|||
- core/naming/subdomains |
|||
|
|||
- title: Other topics |
|||
docs: |
|||
- core/naming/forks |
|||
- core/naming/did |
|||
- core/naming/comparison |
@ -1,59 +0,0 @@ |
|||
- title: Introduction |
|||
docs: |
|||
- naming/overview |
|||
- naming/why |
|||
- naming/architecture |
|||
- naming/howto |
|||
|
|||
- title: Tutorials |
|||
docs: |
|||
- naming/createspace |
|||
- naming/linkit |
|||
- naming/bldprofile |
|||
- naming/runsub |
|||
|
|||
- title: How to use BNS |
|||
docs: |
|||
- naming/namespaces |
|||
- naming/create |
|||
- naming/list |
|||
- naming/costregister |
|||
- naming/consensus |
|||
|
|||
- title: Resolve BNS Names |
|||
docs: |
|||
- naming/resolve |
|||
- naming/luzone |
|||
- naming/listnames |
|||
- naming/listhistory |
|||
- naming/luhistory |
|||
- naming/luhash |
|||
|
|||
- title: Register BNS Names |
|||
docs: |
|||
- naming/register |
|||
- naming/getfee |
|||
- naming/regname |
|||
- naming/gethash |
|||
|
|||
- title: Manage Names |
|||
docs: |
|||
- naming/mngover |
|||
- naming/transfer |
|||
- naming/update |
|||
- naming/revoke |
|||
- naming/renew |
|||
|
|||
- title: BNS Subdomains |
|||
docs: |
|||
- naming/subover |
|||
- naming/lifecycle |
|||
- naming/submng |
|||
- naming/subreg |
|||
|
|||
- title: BNS Forks |
|||
docs: |
|||
- naming/forkovr |
|||
- naming/forkset |
|||
- naming/did |
|||
- naming/encode |
@ -1,27 +0,0 @@ |
|||
## Docs site |
|||
|
|||
To run locally: |
|||
|
|||
1. Get the content from the downstream repos. |
|||
|
|||
``` |
|||
./get-content.sh |
|||
``` |
|||
|
|||
3. Build and serve locally. |
|||
|
|||
``` |
|||
bundle exec jekyll serve |
|||
``` |
|||
|
|||
|
|||
## Deploy via Netlify |
|||
|
|||
To deploy to Netlify: |
|||
|
|||
1. Build the site. |
|||
|
|||
``` |
|||
jeykll build |
|||
``` |
|||
2. Force add the `_site` directory. |
@ -1,351 +0,0 @@ |
|||
# Docs is a premium documentation Jekyll theme |
|||
|
|||
Desk was developed by [Ivan Chromjak](https://ivanchromjak.com) for [jekyll.plus](https://jekyll.plus/), theme [live demo](https://docs.jekyll.plus/) available. |
|||
|
|||
## Features |
|||
|
|||
* Contact form |
|||
* Live Search |
|||
* Responsive videos |
|||
* Image lightbox |
|||
* Google maps |
|||
* Github avatar |
|||
* Changelog page |
|||
* Contact form (FormSpree) |
|||
* Pre-built pages |
|||
* Disqus comments for posts |
|||
* Configurable home page header images |
|||
* Optimised for [GitHub](https://pages.github.com/) pages |
|||
* RSS feed |
|||
* SEO tags |
|||
* Google Analytics |
|||
|
|||
|
|||
## Installation |
|||
|
|||
Install the dependencies with [Bundler](http://bundler.io/): |
|||
|
|||
```bash |
|||
bundle install |
|||
``` |
|||
|
|||
Run the following to generate your site: |
|||
```bash |
|||
bundle exec jekyll serve |
|||
``` |
|||
|
|||
You can find more on [Deployment Methods](https://jekyllrb.com/docs/deployment-methods/) page on Jekyll website. |
|||
|
|||
## Setup |
|||
|
|||
### Site and author details |
|||
Add your site and author details in `_config.yml`: |
|||
```yaml |
|||
# Site title and description |
|||
title: Docs - Documentation Jekyll Theme |
|||
description: Documentation Jekyll theme. |
|||
|
|||
# Site base hostname & protocol, e.g. http://example.com |
|||
url: "https://docs.jekyll.plus" |
|||
|
|||
# Site logo, image or text |
|||
brand: |
|||
image: touch-icon.svg # e.g. logo.png, upload logo image file to /assets/img/ folder |
|||
text: Docs # if the above "logo:" image variable is not set, this text logo is displayed instead |
|||
|
|||
# Default author settings |
|||
author: |
|||
name: John Smith |
|||
github: PressApps # Github username for avatar |
|||
|
|||
# Author settings, displayed on post and doc pages if front matter references author name e.g. author: peter |
|||
authors: |
|||
peter: |
|||
name: Peter Brown |
|||
github: PressApps # Github username for avatar |
|||
|
|||
# Social icons displayed in footer |
|||
social: |
|||
email: |
|||
website: |
|||
facebook: https://www.facebook.com/ |
|||
flickr: |
|||
dribbble: |
|||
github: |
|||
googleplus: |
|||
instagram: https://www.instagram.com/ |
|||
linkedin: |
|||
pinterest: |
|||
twitter: https://twitter.com/ |
|||
vimeo: https://vimeo.com/ |
|||
youtube: |
|||
|
|||
# Twitter share button |
|||
twitter_username: |
|||
|
|||
``` |
|||
|
|||
### Navigation Bar |
|||
Set in the main navigation links in `_data/navigation_header.yml`: |
|||
```yaml |
|||
- title: About |
|||
url: /about/ |
|||
``` |
|||
|
|||
### Footer |
|||
|
|||
Edit copyright notice in `_config.yml`: |
|||
```yaml |
|||
footer: |
|||
copyright: |
|||
``` |
|||
|
|||
Set in the navigation links in `_data/navigation_footer.yml`: |
|||
```yaml |
|||
- title: About |
|||
url: /about/ |
|||
``` |
|||
|
|||
### Enabling comments (via Disqus) |
|||
|
|||
Optionally, if you have a Disqus account, you can tell Jekyll to use it to show a comments section below each post. To enable it, add the following lines to your Jekyll site: |
|||
|
|||
```yaml |
|||
disqus: |
|||
shortname: my_disqus_shortname |
|||
``` |
|||
|
|||
You can find out more about Disqus' shortnames [here](https://help.disqus.com/customer/portal/articles/466208). |
|||
|
|||
Comments are enabled by default and will only appear in production, i.e., `JEKYLL_ENV=production`. If you don't want to display comments for a particular post you can disable them by adding `comments: false` to that post's YAML Front Matter. |
|||
|
|||
### Google Analytics |
|||
|
|||
To enable Google Anaytics, add the following lines to your Jekyll site: |
|||
|
|||
```yaml |
|||
google_analytics: UA-NNNNNNNN-N |
|||
``` |
|||
|
|||
Google Analytics will only appear in production, i.e., `JEKYLL_ENV=production` |
|||
|
|||
### Google Map |
|||
|
|||
To display Google map on contact page, add the following in your page content, replacing latitude, longitude and zoom values: |
|||
|
|||
```yaml |
|||
{% include map.html latitude="40.6700" longitude="-73.9400" zoom="16" %} |
|||
``` |
|||
|
|||
### Contact Form (via FormSpree) |
|||
|
|||
Submit the form and confirm your email address at [FormSpree](https://formspree.io/). Then add the following lines to contact page YAML Front Matter, replacing the email address: |
|||
|
|||
```yaml |
|||
formspree: |
|||
email: my_name@gmail.com |
|||
redirect: /thanks/ |
|||
``` |
|||
|
|||
### Update favicon |
|||
|
|||
You can find the current favicon (favicon.png) inside the theme `/assets/img/` directory, just replace it with your new favicon. |
|||
|
|||
## Posts |
|||
|
|||
To create a new post, you can create a new markdown file inside the `_posts` directory by following the recommended file naming format: |
|||
``` |
|||
YEAR-MONTH-DAY-title.MARKUP |
|||
``` |
|||
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. For example, the following are examples of valid post filenames: |
|||
|
|||
``` |
|||
2011-12-31-new-years-eve-is-awesome.md |
|||
2012-09-12-how-to-write-a-blog.md |
|||
``` |
|||
|
|||
Post requires front matter, everything in between the first and second --- are part of the YAML Front Matter, and everything after the second --- will be rendered with Markdown and show up as “Content”. |
|||
The following is a post file with different configurations you can add as example: |
|||
|
|||
```yaml |
|||
--- |
|||
layout: post |
|||
title: How To Travel On Low Budget |
|||
--- |
|||
``` |
|||
|
|||
You can rebuild the site in many different ways, but the most common way is to run `bundle exec jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. |
|||
|
|||
To keep things more organized, add post images to `/assets/posts/` directory, and add theme images to `/assets/img/` directory. |
|||
|
|||
### Adding images |
|||
To add an image to a post or page use the following codes: |
|||
Local image from `/assets/posts/` directory: |
|||
```yaml |
|||
{% include image.html img="girl.jpg" alt="Alt for image" caption="Girl on a rock" %} |
|||
``` |
|||
External wide image with lightbox: |
|||
```yaml |
|||
{% include image.html img="https://source.unsplash.com/TT-ROxWj9nA.jpg" lightbox="true" alt="Alt for image" caption="Image in lightbox" %} |
|||
``` |
|||
|
|||
### Adding table of contents |
|||
Add the following code at the top of the post: |
|||
``` |
|||
#### Sections in this article |
|||
{:.no_toc} |
|||
* TOC |
|||
{:toc} |
|||
``` |
|||
`{:.no_toc}` excludes the `#### Sections in this article` title from indexing in table of contents |
|||
|
|||
### Responsive Videos |
|||
Embed local videos: |
|||
```html |
|||
<video controls playsinline uk-video="automute: true"> |
|||
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4" type="video/mp4"> |
|||
<source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.ogv" type="video/ogg"> |
|||
</video> |
|||
``` |
|||
Embed YouTube videos: |
|||
```html |
|||
<iframe src="http://www.youtube.com/embed/YE7VzlLtp-4?autoplay=0&showinfo=0&rel=0&modestbranding=1&playsinline=1" width="600" height="340" frameborder="0" allowfullscreen uk-responsive uk-video="automute: true"></iframe> |
|||
``` |
|||
|
|||
To create a draft post, create the post file under the `_drafts` directory, and you can find more information in [Working with Drafts](https://jekyllrb.com/docs/drafts/). |
|||
|
|||
## Home Page |
|||
|
|||
To create a home page, just create a `index.md` file inside the root directory. The following is a YAML Front Matter example for a page: |
|||
|
|||
```yaml |
|||
--- |
|||
layout: home |
|||
hero: |
|||
title: How Can We Help? # hero section settings |
|||
subtitle: Search or browse in depth articles and videos on everything Jekyll, from basic theme setup and hosting to customisation and development |
|||
image: imac.svg # display small image above title |
|||
search: true # enable search |
|||
categories: |
|||
columns: 3 # number of category columns; 1, 2, 3, 4 |
|||
title: Browse Topics |
|||
subtitle: Get your answers fast, jump to most popular documentation content |
|||
featured: # featured docs section settings |
|||
title: Popular Articles |
|||
tag: featured # tag used to populate featured section on home page |
|||
section: # display page content |
|||
title: Need More? |
|||
subtitle: This section displays optional page content lorem ipsum |
|||
cta: # call to action section |
|||
title: Didn't find an answer to your question? |
|||
subtitle: Get in touch with us for details on additional services and custom work pricing |
|||
button_text: Contact Us |
|||
button_url: /contact/ |
|||
--- |
|||
``` |
|||
|
|||
Home page category boxes are added in `_data/navigation_home.yml`, e.g.: |
|||
```yml |
|||
- title: Getting Started |
|||
desc: Get your account up and running in just few easy steps |
|||
icon: settings |
|||
doc: usage |
|||
|
|||
- title: Account and Billing |
|||
desc: Managing your account, creating new users and exporting data |
|||
icon: credit-card |
|||
doc: drafts |
|||
``` |
|||
|
|||
All available icons can be found [here](https://getuikit.com/docs/icon#library). |
|||
|
|||
## Docs |
|||
|
|||
To create a document post, just create a new page inside the root directory and add the following code in content: |
|||
``` |
|||
{% include faqs.html %} |
|||
``` |
|||
|
|||
Create new doc post entries in `_docs` folder, similar to creating posts, but with following front matter settings: |
|||
|
|||
```yml |
|||
--- |
|||
layout: doc |
|||
title: Category hosting Setting up new domain and page |
|||
subtitle: This is optional doc subtitle |
|||
tags: featured development |
|||
author: peter |
|||
--- |
|||
``` |
|||
|
|||
Sidebar navigation on docs post can edited in `_data/navigation_docs.yml`: |
|||
|
|||
```yml |
|||
- title: Getting Started # Section title |
|||
docs: |
|||
- home # Doc file name from _docs folder |
|||
- quickstart |
|||
- installation |
|||
- windows |
|||
``` |
|||
|
|||
## Changelog page |
|||
|
|||
Create new page with the following front matter: |
|||
|
|||
```yml |
|||
--- |
|||
layout: changelog |
|||
title: Changelog |
|||
permalink: /changelog/ |
|||
--- |
|||
``` |
|||
|
|||
Changelog enties are added in `_data/changelog.yml`: |
|||
|
|||
```yml |
|||
- title: Version 0.6.0 |
|||
label: |
|||
date: Aug 15, 2017 |
|||
list: |
|||
- Added style support for radio and checkbox in Firefox |
|||
- Removed class from Section component |
|||
``` |
|||
|
|||
|
|||
## Customization |
|||
|
|||
To modify the primary color, open `/_sass/theme/variables.scss` and replace the color values e.g.: |
|||
|
|||
```scss |
|||
// Main content |
|||
$color-main: #0F1214; |
|||
``` |
|||
|
|||
Further style customisation can be done in the following files: |
|||
``` |
|||
/_sass/theme/mixins.scss |
|||
/_sass/theme/variables.scss |
|||
/assets/css/main.scss |
|||
``` |
|||
|
|||
## Development |
|||
|
|||
Install [UIkit](https://getuikit.com/) font end framework dependency via Npm: |
|||
```bash |
|||
npm install |
|||
``` |
|||
Enable live browser reload with the following: |
|||
```bash |
|||
bundle exec jekyll s --livereload |
|||
``` |
|||
|
|||
## Credits and Sources |
|||
|
|||
- Google analytics https://www.google.com/analytics/ |
|||
- Google maps https://www.google.com/maps |
|||
- UIkit front end framework https://getuikit.com/ |
|||
- Jekyll CML https://jekyllrb.com/ |
|||
|
|||
## Support |
|||
Customer support is provided through our Envato profile page [contact form](https://themeforest.net/user/pressapps) for up to six months from the purchase date and is provided Monday to Friday during the business week. We aim to answer all support requests daily, most are handled within 48h. |
@ -1,17 +0,0 @@ |
|||
{ |
|||
"version": "THEVERSION", |
|||
"collections": [ |
|||
{ |
|||
"name": "core", |
|||
"repo": "https://github.com/blockstack/blockstack-core" |
|||
}, |
|||
{ |
|||
"name": "android", |
|||
"repo": "https://github.com/moxiegirl/blockstack-android" |
|||
}, |
|||
{ |
|||
"name": "browser", |
|||
"repo": "https://github.com/blockstack/blockstack-browser" |
|||
} |
|||
] |
|||
} |
File diff suppressed because it is too large
@ -1,589 +0,0 @@ |
|||
# Creating a Namespace |
|||
|
|||
**WARNING**: If you intend to create a namespace, you must read this document |
|||
_in its entirety_. You should also _install the test framework_ and experiment |
|||
with your namespace's parameters. _FAILURE TO DO SO MAY RESULT IN IRRECOVERABLE |
|||
LOSS OF FUNDS._ |
|||
|
|||
**Before you begin**: Some basic familiarity with how Bitcoin works is required to |
|||
understand this tutorial. This includes: |
|||
|
|||
* knowing the difference between mainnet, testnet, and regtest |
|||
* knowing about compressed and uncompressed ECDSA public keys |
|||
* knowing about base58-check encoding |
|||
* knowing how Bitcoin transactions are structured |
|||
* knowing how UTXOs work |
|||
|
|||
## Overview |
|||
|
|||
Creating a namespace is a three-step process. The first |
|||
step is to `preorder` the namespace, which broadcasts a salted hash of the |
|||
namespace ID. The second step is to `reveal` the namespace, which exposes the |
|||
namespace ID and price function to the blockchain. The final step is to `ready` |
|||
the namespace, which allows anyone to register names within it. |
|||
|
|||
In between the `reveal` and `ready` steps, the namespace creator will have a |
|||
"lock" on the namespace that lasts for about 1 year. During this time period, |
|||
the namespace creator can `import` names. The `import` transaction lets the |
|||
namespace creator assign the name a zone file and an owner in one step. |
|||
|
|||
## Before Trying This in Production... |
|||
|
|||
Creating namespaces is expensive. |
|||
Be sure to test your namespace in our [integration test |
|||
framework](https://github.com/blockstack/blockstack-core/tree/master/integration_tests) |
|||
first! It will let you simulate any valid namespace configuration |
|||
you want at no risk to you. |
|||
|
|||
### Setting up the Test Environment |
|||
|
|||
In this example, we will use the test framework to create a private Bitcoin |
|||
blockchain on your computer, and then create a Blockstack namespace on it. |
|||
This will let you experiment with different namespace parameters |
|||
without spending actual BTC. The test framework uses `bitcoind -regtest`, |
|||
so all of the commands you'll run here will work identically on |
|||
mainnet. |
|||
|
|||
To install the test framework, please follow these |
|||
[instructions](https://github.com/blockstack/blockstack-core/tree/master/integration_tests). |
|||
Once you have the test framework installed, you should run the `namespace_check` test in `--interactive-web` mode. |
|||
This will create an empty `.test` namespace and leave the test scenario running |
|||
once it finishes. You will be able to fund addresses and create new blocks via |
|||
your Web browser or via `curl`, as will be explained below. Also, you'll be able to use the |
|||
`blockstack` utility to interact with your private blockchain and namespaces. |
|||
|
|||
The test setup command is as follows. This will launch the `namespace_check` |
|||
test scenario, and open a web server on port 3001. |
|||
```bash |
|||
$ blockstack-test-scenario --interactive-web 3001 blockstack_integration_tests.scenarios.namespace_check |
|||
``` |
|||
|
|||
When the test is ready for us to experiment, you should see the following: |
|||
|
|||
```bash |
|||
An empty namespace called 'test' has been created |
|||
Feel free to experiment with other namespaces |
|||
|
|||
Available keys with a balance: |
|||
* 6e50431b955fe73f079469b24f06480aee44e4519282686433195b3c4b5336ef01 |
|||
* c244642ce0b4eb68da8e098facfcad889e3063c36a68b7951fb4c085de49df1b01 |
|||
* f4c3907cb5769c28ff603c145db7fc39d7d26f69f726f8a7f995a40d3897bb5201 |
|||
* 8f87d1ea26d03259371675ea3bd31231b67c5df0012c205c154764a124f5b8fe01 |
|||
* bb68eda988e768132bc6c7ca73a87fb9b0918e9a38d3618b74099be25f7cab7d01 |
|||
* 2,3,6f432642c087c2d12749284d841b02421259c4e8178f25b91542c026ae6ced6d01,65268e6267b14eb52dc1ccc500dc2624a6e37d0a98280f3275413eacb1d2915d01,cdabc10f1ff3410082448b708c0f860a948197d55fb612cb328d7a5cc07a6c8a01 |
|||
* 2,3,4c3ab2a0704dfd9fdc319cff2c3629b72ebda1580316c7fddf9fad1baa323e9601,75c9f091aa4f0b1544a59e0fce274fb1ac29d7f7e1cd020b66f941e5d260617b01,d62af1329e541871b244c4a3c69459e8666c40b683ffdcb504aa4adc6a559a7701 |
|||
* 2,3,4b396393ca030b21bc44a5eba1bb557d04be1bfe974cbebc7a2c82b4bdfba14101,d81d4ef8123852403123d416b0b4fb25bcf9fa80e12aadbc08ffde8c8084a88001,d0482fbe39abd9d9d5c7b21bb5baadb4d50188b684218429f3171da9de206bb201 |
|||
* 2,3,836dc3ac46fbe2bcd379d36b977969e5b6ef4127e111f2d3e2e7fb6f0ff1612e01,1528cb864588a6a5d77eda548fe81efc44180982e180ecf4c812c6be9788c76a01,9955cfdac199b8451ccd63ec5377a93df852dc97ea01afc47db7f870a402ff0501 |
|||
``` |
|||
|
|||
You can determine that the test framework is live by going to |
|||
`http://localhost:3001` in your Web browser. From there, you can generate |
|||
blocks in the test framework's `bitcoind` node and you can fund any address in |
|||
the test framework. |
|||
|
|||
Finally, you can use the `blockstack-test-env` command to set up your shell |
|||
environment variables so `blockstack` will interact with this test (instead of |
|||
mainnet). To do so, run the following in your shell: |
|||
|
|||
```bash |
|||
$ . $(which blockstack-test-env) namespace_check |
|||
|blockstack-test namespace_check| $ |
|||
``` |
|||
|
|||
You can verify that the environment variables by verifying that your `$PS1` |
|||
variable includes the name of your test (as shown above), and that some other |
|||
`BLOCKSTACK_`-prefixed variables are set: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ env | grep BLOCKSTACK |
|||
BLOCKSTACK_OLD_PS1=\u@\h:\w$ |
|||
BLOCKSTACK_TESTNET=1 |
|||
BLOCKSTACK_EPOCH_1_END_BLOCK=1 |
|||
BLOCKSTACK_EPOCH_2_END_BLOCK=2 |
|||
BLOCKSTACK_TEST=1 |
|||
BLOCKSTACK_DEBUG=1 |
|||
BLOCKSTACK_CLIENT_CONFIG=/tmp/blockstack-run-scenario.blockstack_integration_tests.scenarios.namespace_check/client/client.ini |
|||
``` |
|||
|
|||
## Registering a Namespace |
|||
|
|||
Suppose we're going to create the `hello` namespace. The key |
|||
`6e50431b955fe73f079469b24f06480aee44e4519282686433195b3c4b5336ef01` will be the key that |
|||
*pays* for the namespace. The key |
|||
`c244642ce0b4eb68da8e098facfcad889e3063c36a68b7951fb4c085de49df1b01` will be the key that |
|||
*creates* the namespace. The creator key will be used to `import` names and |
|||
declare the namespace `ready`. The payment key will be used to both pay for the |
|||
namespace and receive name registration and renewal fees for the first year of |
|||
the namespace's lifetime. |
|||
|
|||
In this example, we will set these keys as environment variables: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ export PAYMENT_PKEY="6e50431b955fe73f079469b24f06480aee44e4519282686433195b3c4b5336ef01" |
|||
|blockstack-test namespace_check| $ export CREATOR_PKEY="c244642ce0b4eb68da8e098facfcad889e3063c36a68b7951fb4c085de49df1b01" |
|||
``` |
|||
|
|||
#### Multisig Namespace Payment |
|||
|
|||
If you want to use a multisig address to pay for your namespace (and collect |
|||
name registration fees), then instead of using |
|||
`6e50431b955fe73f079469b24f06480aee44e4519282686433195b3c4b5336ef01`, you should |
|||
use a string formatted as `m,n,pk1,pk2,...,pk_n`. `m` is the number of |
|||
signatures required, `n` is the number of private keys, and `pk1,pk2,...,pk_n` |
|||
are the private keys. |
|||
|
|||
For example, you can use the following as your `PAYMENT_PKEY` to have a 2-of-3 |
|||
multisig script pay for your namespace and collect name registration fees: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ export PAYMENT_PKEY="2,3,6f432642c087c2d12749284d841b02421259c4e8178f25b91542c026ae6ced6d01,65268e6267b14eb52dc1ccc500dc2624a6e37d0a98280f3275413eacb1d2915d01,cdabc10f1ff3410082448b708c0f860a948197d55fb612cb328d7a5cc07a6c8a01" |
|||
``` |
|||
|
|||
### Namespace preorder |
|||
|
|||
The command to preorder the namespace would be: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ blockstack namespace_preorder hello "$PAYMENT_PKEY" "$CREATOR_PKEY" |
|||
``` |
|||
|
|||
You will be given a set of instructions on how to proceed to reveal and |
|||
launch the namespace. _READ THEM CAREFULLY_. You will be prompted to |
|||
explicitly acknowledge that you understand the main points of the instructions, |
|||
and that you understand the risks. |
|||
|
|||
The command outputs some necessary information at the very end of its execution. |
|||
In particular, you will need to remember the transaction ID of the namespace |
|||
preorder. The command will help you do so. |
|||
|
|||
Here is a sample output: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ blockstack namespace_preorder hello "$PAYMENT_PKEY" "$CREATOR_PKEY" |
|||
|
|||
<...snip...> |
|||
|
|||
Remember this transaction ID: b40dd1375ef63e5a40ee60d790ec6dccd06efcbac99d0cd5f3b07502a4ab05ac |
|||
You will need it for `blockstack namespace_reveal` |
|||
|
|||
Wait until b40dd1375ef63e5a40ee60d790ec6dccd06efcbac99d0cd5f3b07502a4ab05ac has six (6) confirmations. Then, you can reveal `hello` with: |
|||
|
|||
$ blockstack namespace_reveal "hello" "6e50431b955fe73f079469b24f06480aee44e4519282686433195b3c4b5336ef01" "c244642ce0b4eb68da8e098facfcad889e3063c36a68b7951fb4c085de49df1b01" "b40dd1375ef63e5a40ee60d790ec6dccd06efcbac99d0cd5f3b07502a4ab05ac" |
|||
|
|||
{ |
|||
"status": true, |
|||
"success": true, |
|||
"transaction_hash": "b40dd1375ef63e5a40ee60d790ec6dccd06efcbac99d0cd5f3b07502a4ab05ac" |
|||
} |
|||
``` |
|||
|
|||
If all goes well, you will get back a transaction hash (in this case, `b40dd1375ef63e5a40ee60d790ec6dccd06efcbac99d0cd5f3b07502a4ab05ac`). |
|||
To get Blockstack to process it, you will need to mine some blocks in the test framework (by default, |
|||
Blockstack will only accept a transaction that has 6 confirmations). To do |
|||
this, simply go to `http://localhost:3001` and generate at least 6 blocks. If you |
|||
observe the test log, you will see the Blockstack node process and accept it. |
|||
|
|||
Note that when you do this live, you should wait for |
|||
at least 10 confirmations before sending the `reveal` transaction, just to be |
|||
safe. |
|||
|
|||
### Namespace reveal |
|||
|
|||
The command to reveal a preordered namespace is more complicated, since it |
|||
describes the price curve. |
|||
|
|||
This command is **interactive**. The command to invoke it is as follows: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ blockstack namespace_reveal hello "$PAYMENT_PKEY" "$CREATOR_PKEY" "b40dd1375ef63e5a40ee60d790ec6dccd06efcbac99d0cd5f3b07502a4ab05ac" |
|||
``` |
|||
|
|||
When running the command, you will see the namespace creation wizard prompt you |
|||
with the price curve and the current values: |
|||
|
|||
``` |
|||
Name lifetimes (blocks): infinite |
|||
Price coefficient: 4 |
|||
Price base: 4 |
|||
Price bucket exponents: [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] |
|||
Non-alpha discount: 2 |
|||
No-vowel discount: 5 |
|||
Burn or receive fees? Receive to mr6nrMvvh44sR5MiX929mMXP5hqgaTr6fx |
|||
|
|||
Name price formula: |
|||
(UNIT_COST = 10.0 satoshi): |
|||
buckets[min(len(name)-1, 15)] |
|||
UNIT_COST * coeff * base |
|||
cost(name) = ----------------------------------------------------- |
|||
max(nonalpha_discount, no_vowel_discount) |
|||
|
|||
|
|||
Name price table: |
|||
| length | price | price, nonalpha | price, no vowel | price, both | |
|||
-------------------------------------------------------------------------- |
|||
| 1 | 42949672960 | 8589934592 | 8589934592 | 8589934592 | |
|||
| 2 | 10737418240 | 5368709120 | 2147483648 | 2147483648 | |
|||
| 3 | 2684354560 | 1342177280 | 536870912 | 536870912 | |
|||
| 4 | 671088640 | 335544320 | 134217728 | 134217728 | |
|||
| 5 | 167772160 | 83886080 | 33554432 | 33554432 | |
|||
| 6 | 41943040 | 20971520 | 8388608 | 8388608 | |
|||
| 7 | 10485760 | 5242880 | 2097152 | 2097152 | |
|||
| 8 | 2621440 | 1310720 | 524288 | 524288 | |
|||
| 9 | 655360 | 327680 | 131072 | 131072 | |
|||
| 10 | 163840 | 81920 | 32768 | 32768 | |
|||
| 11 | 40960 | 20480 | 8192 | 8192 | |
|||
| 12 | 10240 | 5120 | 2048 | 2048 | |
|||
| 13 | 2560 | 1280 | 512 | 512 | |
|||
| 14 | 640 | 320 | 128 | 128 | |
|||
| 15 | 160 | 80 | 32 | 32 | |
|||
| 16+ | 40 | 20 | 10 | 10 | |
|||
|
|||
|
|||
What would you like to do? |
|||
(0) Set name lifetime in blocks (positive integer between 1 and 4294967295, or "infinite") |
|||
(1) Set price coefficient (positive integer between 1 and 255) |
|||
(2) Set base price (positive integer between 1 and 255) |
|||
(3) Set price bucket exponents (16 comma-separated integers, each between 1 and 15) |
|||
(4) Set non-alphanumeric character discount (positive integer between 1 and 15) |
|||
(5) Set no-vowel discount (positive integer between 1 and 15) |
|||
(6) Toggle collecting name fees (True: receive fees; False: burn fees) |
|||
(7) Show name price formula |
|||
(8) Show price table |
|||
(9) Done |
|||
|
|||
(1-9) |
|||
``` |
|||
|
|||
All prices are in the "fundamental unit" of the underlying blockchain (i.e. |
|||
satoshis). |
|||
|
|||
As the formula describes, the name's price is a function of: |
|||
|
|||
* a fixed unit cost (`UNIT_COST`) |
|||
* a multiplicative constant coefficient (`coeff`) |
|||
* a fixed exponential base (`base`) |
|||
* a 16-element list of price buckets, indexed by the length of the name (`buckets`) |
|||
* a discount for having non-alphnumeric letters (`nonalpha_discount`) |
|||
* a discount for having no vowels in the name (`no_vowel_discount`) |
|||
|
|||
You can use options 1 through 8 to play with the pricing function and examine |
|||
the name costs in the price table. Enter 9 to send the transaction itself. |
|||
|
|||
Once you're happy, you can issue the namespace-reveal transaction. As with the |
|||
namespace-preorder transaction, you will get back a transaction hash, and your transaction will be |
|||
unconfirmed. Simply go to `http://localhost:3001` to generate some more blocks |
|||
to confirm your namespace-reveal. |
|||
|
|||
Once you have confirmed your namespace-reveal transaction, you can |
|||
begin to populate your namespace with some initial names. |
|||
|
|||
**Collecting Name Fees** |
|||
|
|||
Blockstack 0.17 introduced the ability to create a namespace such that for the |
|||
first year of its existence (54595 blocks), all name registration and renewal |
|||
fees will be sent to the address of the _payment key_. In this example, |
|||
this is the address `mr6nrMvvh44sR5MiX929mMXP5hqgaTr6fx`. |
|||
|
|||
The alternative is to |
|||
have all namespace fees sent to an unspendable burn address |
|||
(`1111111111111111111114oLvT2`). This is the case for the `.id` namespace, |
|||
for example. |
|||
|
|||
After the year has passed, all future name registrations and renewal fees |
|||
will be sent to the unspendable burn address. This is to disincentivize |
|||
namespace squatters. |
|||
|
|||
**Warnings** |
|||
|
|||
* You must issue this command **within 144 blocks** of the namespace-preorder transaction. Otherwise, the preorder will expire and you will need to start over from scratch. |
|||
|
|||
### Importing names |
|||
|
|||
After sending the `reveal` transaction, you can populate your namespace with |
|||
some initial names. You can do so with the `name_import` command. |
|||
|
|||
Suppose we want to import the name `example.hello` and assign it to an owner |
|||
whose public key address is `ms6Y32bcL5zhA57e8tf7awgVZuPxV8Xg8N`. Suppose also |
|||
that you wanted to give `example.hello` an initial zone file stored at |
|||
`/var/blockstack/zone_files/example.hello`. To do so, you would issue the |
|||
following command: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ blockstack name_import example.hello ms6Y32bcL5zhA57e8tf7awgVZuPxV8Xg8N /var/blockstack/zone_files/example.hello "$CREATOR_PKEY" |
|||
``` |
|||
|
|||
By default, you **must** use the private key you used to reveal the namespace |
|||
to import names (this is `$CREATOR_PKEY` in this example). |
|||
|
|||
As with namespace-preorder and namespace-reveal, the transaction this command |
|||
generates will be unconfirmed. Simply go to `http://localhost:3001` to generate |
|||
some blocks to confirm it. |
|||
|
|||
You can check the progress of the transaction with `blockstack info`, as follows: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ blockstack info |
|||
{ |
|||
"cli_version": "0.17.0.8", |
|||
"consensus_hash": "b10fdd38a20a7e46555ce3a7f68cf95c", |
|||
"last_block_processed": 694, |
|||
"last_block_seen": 694, |
|||
"queues": { |
|||
"name_import": [ |
|||
{ |
|||
"confirmations": 1, |
|||
"name": "example.hello", |
|||
"tx_hash": "10f7dcd9d6963ef5d20d010f731d5d2ddb76163a083b9d7a2b9fd4515c7fe58c" |
|||
} |
|||
] |
|||
}, |
|||
"server_alive": true, |
|||
"server_host": "localhost", |
|||
"server_port": 16264, |
|||
"server_version": "0.17.0.8" |
|||
} |
|||
``` |
|||
|
|||
The `confirmation` field indicates how deep in the blockchain the transaction is |
|||
at the time. Generating more blocks will increase its number of confirmations. |
|||
|
|||
When you do this live, |
|||
**YOU SHOULD LEAVE YOUR COMPUTER RUNNING UNTIL THE `name_import` QUEUE IS EMPTY**. |
|||
Blockstack's background API daemon will monitor the transactions and upload the |
|||
name's zone file to the Blockstack Atlas network once it is confirmed. |
|||
But to do so, your computer must remain online. If you do not do this, then |
|||
the name will not have a zone file and will be unusable in the higher layers of |
|||
Blockstack-powered software (including Blockstack applications). However, |
|||
if your computer does go offline or reboots, you can recover by |
|||
restarting the Blockstack API daemon (with |
|||
`blockstack api start`). The daemon itself will pick up where it left off, and |
|||
replicate all zone files that have confirmed transactions. |
|||
|
|||
After the zone file is uploaded, the name will be public and resolvable. You can re-import the |
|||
same name over and over, and give it a different address and/or zone file. Like |
|||
all other names, the Blockstack Atlas network will accept and propagate zone |
|||
files for imported names. |
|||
|
|||
The owner of the address `ms6Y32bcL5zhA57e8tf7awgVZuPxV8Xg8N` will **not** be |
|||
able to issue any transactions for the name `example.hello` until the namespace |
|||
creator has sent the `ready` transaction. |
|||
|
|||
#### Using multiple private keys for NAME_IMPORT |
|||
|
|||
Bitcoin itself imposes limits on how fast you can send transactions from the |
|||
same key (limited by a maximum UTXO-chain length). To work around this, |
|||
Blockstack lets you import names by using up to 300 private keys. The private |
|||
keys you can use are BIP32 unhardened children of the namespace reveal key (i.e. |
|||
`$CREATOR_PKEY` in this example). |
|||
|
|||
The first name you import **must** use the namespace reveal private key |
|||
(`$CREATOR_PKEY` in this example). However, all future names you import in this |
|||
namespace can use one of the 300 BIP32 keys. |
|||
|
|||
To get the list of keys you can use, you can use the `make_import_keys` command: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ blockstack make_import_keys example hello "$CREATOR_PKEY" |
|||
aeda50305ada40aaf53f2d8921aa717f1ec71a0a3b9b4c6397b3877f6d45c46501 (n4DVTuLLv5J1Yc17AoRYY1GtxDAuLGAESr) |
|||
92ff179901819a1ec7d32997ce3bb0d9a913895d5850cc05146722847128549201 (mib2KNBGR4az8GiUmusBZexVBqb9YB2gm5) |
|||
cc5b6a454e2b614bfa18f4deb9a8e179ab985634d63b7fedfaa59573472d209b01 (mxE2iqV4jdpn4K349Gy424TvZp6MPqSXve) |
|||
9b0265e0ac8c3c24fe1d79a734b3661ec2b5c0c2619bb6342356572b8235910101 (n4rGz8hkXTscUGWCwZvahrkEh6LHZVQUoa) |
|||
e2585af250404b7918cf6c91c6fa67f3401c0d1ae66df2fafa8fa132f4b9350f01 (moGNpEpighqc6FnkqyNVJA9xtfTiStr5YU) |
|||
{ |
|||
"status": true |
|||
} |
|||
``` |
|||
|
|||
(NOTE: in the test environment, you get only 5 keys in order to save time). |
|||
|
|||
You can use any of these keys to import names. |
|||
|
|||
#### Trying it out |
|||
|
|||
Here's an example walkthrough of how to try this out in the test framework: |
|||
|
|||
1. Import the first name, creating a zone file in the process: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ cat > /var/blockstack/zone_files/example.hello <<EOF |
|||
> $ORIGIN example.hello |
|||
> $TTL 3600 |
|||
> _file URI 10 1 "file:///home/blockstack-test/example.hello" |
|||
> EOF |
|||
|blockstack-test namespace_check| $ blockstack name_import example.hello ms6Y32bcL5zhA57e8tf7awgVZuPxV8Xg8N /var/blockstack/zone_files/example.hello "$CREATOR_PKEY" |
|||
Import cost breakdown: |
|||
{ |
|||
"name_import_tx_fee": { |
|||
"btc": 0.0003342, |
|||
"satoshis": 33420 |
|||
}, |
|||
"total_estimated_cost": { |
|||
"btc": 0.0003342, |
|||
"satoshis": 33420 |
|||
}, |
|||
"total_tx_fees": 33420 |
|||
} |
|||
Importing name 'example.hello' to be owned by 'ms6Y32bcL5zhA57e8tf7awgVZuPxV8Xg8N' with zone file hash '05c302430f4ed0a24470abf9df7e264d517fd389' |
|||
Proceed? (y/N) y |
|||
{ |
|||
"status": true, |
|||
"success": true, |
|||
"transaction_hash": "bd875f00f63bcb718bb22782c88c3edcbed79663f2f9152deab328c48746f103", |
|||
"value_hash": "05c302430f4ed0a24470abf9df7e264d517fd389" |
|||
} |
|||
``` |
|||
|
|||
2. Advance the test framework blockchain, so the indexer knows which import keys to expect: |
|||
|
|||
```bash |
|||
# NOTE: you can also do this by going to http://localhost:3001 in your Web browser |
|||
|blockstack-test namespace_check| $ curl -X POST http://localhost:3001/nextblock |
|||
``` |
|||
|
|||
3. Make import keys: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ blocksatck make_import_keys hello "$CREATOR_PKEY" |
|||
aeda50305ada40aaf53f2d8921aa717f1ec71a0a3b9b4c6397b3877f6d45c46501 (n4DVTuLLv5J1Yc17AoRYY1GtxDAuLGAESr) |
|||
92ff179901819a1ec7d32997ce3bb0d9a913895d5850cc05146722847128549201 (mib2KNBGR4az8GiUmusBZexVBqb9YB2gm5) |
|||
cc5b6a454e2b614bfa18f4deb9a8e179ab985634d63b7fedfaa59573472d209b01 (mxE2iqV4jdpn4K349Gy424TvZp6MPqSXve) |
|||
9b0265e0ac8c3c24fe1d79a734b3661ec2b5c0c2619bb6342356572b8235910101 (n4rGz8hkXTscUGWCwZvahrkEh6LHZVQUoa) |
|||
e2585af250404b7918cf6c91c6fa67f3401c0d1ae66df2fafa8fa132f4b9350f01 (moGNpEpighqc6FnkqyNVJA9xtfTiStr5YU) |
|||
{ |
|||
"status": true |
|||
} |
|||
``` |
|||
|
|||
4. Fill up one of the addresses in the test framework, so we can fund `NAME_IMPORT` transactions with it: |
|||
|
|||
```bash |
|||
# NOTE: you can also do this by going to http://localhost:3001 in your Web browser |
|||
|blockstack-test namespace_check| $ curl -X POST -F 'addr=n4DVTuLLv5J1Yc17AoRYY1GtxDAuLGAESr' -F 'value=100000000' 'http://localhost:3001/sendfunds' |
|||
``` |
|||
|
|||
5. Import another name, with the child private key we just funded: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ cat > /tmp/example.hello.zonefile <<EOF |
|||
> $ORIGIN example2.hello |
|||
> $TTL 3600 |
|||
> _file URI 10 1 "file:///home/blockstack-test/example2.hello" |
|||
> EOF |
|||
|blockstack-test namespace_check| $ blockstack name_import example2.hello n3sFkNfBQPWS25G12DqDEqHRPiqHotAkEb /tmp/example.hello.zonefile aeda50305ada40aaf53f2d8921aa717f1ec71a0a3b9b4c6397b3877f6d45c46501 |
|||
Import cost breakdown: |
|||
{ |
|||
"name_import_tx_fee": { |
|||
"btc": 0.0003342, |
|||
"satoshis": 33420 |
|||
}, |
|||
"total_estimated_cost": { |
|||
"btc": 0.0003342, |
|||
"satoshis": 33420 |
|||
}, |
|||
"total_tx_fees": 33420 |
|||
} |
|||
Importing name 'example2.hello' to be owned by 'n3sFkNfBQPWS25G12DqDEqHRPiqHotAkEb' with zone file hash '0649bc0b457f54c564d054ce20dc3745a0c4f0c0' |
|||
Proceed? (y/N) y |
|||
{ |
|||
"status": true, |
|||
"success": true, |
|||
"transaction_hash": "496a6c2aaccedd98a8403c2e61ff3bdeff221a58bf0e9c362fcae981353f459f", |
|||
"value_hash": "0649bc0b457f54c564d054ce20dc3745a0c4f0c0" |
|||
} |
|||
``` |
|||
|
|||
6. Advance the blockchain again: |
|||
|
|||
```bash |
|||
# NOTE: you can also do this by going to http://localhost:3001 in your Web browser |
|||
|blockstack-test namespace_check| $ curl -X POST http://localhost:3001/nextblock |
|||
``` |
|||
|
|||
7. See that the names are processing: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ blockstack info |
|||
{ |
|||
"cli_version": "0.17.0.8", |
|||
"consensus_hash": "2a055beeaedcaa1365ab2671a0254a03", |
|||
"last_block_processed": 711, |
|||
"last_block_seen": 711, |
|||
"queues": { |
|||
"name_import": [ |
|||
{ |
|||
"confirmations": 2, |
|||
"name": "example.hello", |
|||
"tx_hash": "bd875f00f63bcb718bb22782c88c3edcbed79663f2f9152deab328c48746f103", |
|||
}, |
|||
{ |
|||
"confirmations": 1, |
|||
"name": "example2.hello", |
|||
"tx_hash": "496a6c2aaccedd98a8403c2e61ff3bdeff221a58bf0e9c362fcae981353f459f" |
|||
} |
|||
] |
|||
}, |
|||
"server_alive": true, |
|||
"server_host": "localhost", |
|||
"server_port": 16264, |
|||
"server_version": "0.17.0.8" |
|||
} |
|||
``` |
|||
|
|||
8. Confirm all the transactions: |
|||
|
|||
```bash |
|||
# NOTE: you can also do this by going to http://localhost:3001 in your Web browser |
|||
|blockstack-test namespace_check| $ for i in $(seq 1 10); do curl -X POST http://localhost:3001/nextblock |
|||
``` |
|||
|
|||
9. Look up name zone files to confirm they were replicated to the test framework's Atlas network: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ blockstack info |
|||
{ |
|||
"cli_version": "0.17.0.8", |
|||
"consensus_hash": "ad247c1d5ff239a65db0736951078f17", |
|||
"last_block_processed": 721, |
|||
"last_block_seen": 721, |
|||
"queues": {}, |
|||
"server_alive": true, |
|||
"server_host": "localhost", |
|||
"server_port": 16264, |
|||
"server_version": "0.17.0.8" |
|||
} |
|||
|blockstack-test namespace_check| $ blockstack get_name_zonefile example.hello |
|||
$ORIGIN example.hello |
|||
$TTL 3600 |
|||
_file URI 10 1 "file:///home/blockstack-test/example.hello" |
|||
|
|||
|blockstack-test namespace_check| $ blockstack get_name_zonefile example2.hello |
|||
$ORIGIN example2.hello |
|||
$TTL 3600 |
|||
_file URI 10 1 "file:///home/blockstack-test/example2.hello" |
|||
``` |
|||
|
|||
Now, these names are imported and once the `NAMESPACE_READY` transaction is |
|||
sent, the name owners can proceed to issue name operations. |
|||
|
|||
**Warnings** |
|||
|
|||
* The first private key you use must be the same one you used to *create* the namespace (`$CREATOR_KEY`). |
|||
* You may only use the 300 private keys described above to import names. |
|||
* You must complete all `NAME_IMPORT` transactions within 52595 blocks of the `NAMESPACE_REVEAL` transaction (about 1 year). |
|||
|
|||
### Launching a Namespace |
|||
|
|||
Once you have pre-populated your namespace with all of the initial names, you |
|||
have to make it `ready` so anyone can register a name. If you do not do this |
|||
within 1 year of the `reveal` transaction, then your namespace and all of the |
|||
names will disappear, and someone else will be able to register it. |
|||
|
|||
To make a namespace `ready`, you use the creator private key as follows: |
|||
|
|||
```bash |
|||
|blockstack-test namespace_check| $ blockstack namespace_ready hello "$CREATOR_PKEY" |
|||
``` |
|||
|
|||
**Warnings** |
|||
|
|||
* You must send the `NAMESPACE_READY` transaction within 52595 blocks (about 1 year) of the `NAMESPACE_REVEAL` transaction. |
@ -1,50 +0,0 @@ |
|||
#!/bin/bash |
|||
# get the content from the downstream repos |
|||
# needs jq "brew install jq" |
|||
|
|||
collectionList=$(<collections.json) |
|||
|
|||
|
|||
for collection in $(echo "$collectionList" | jq -r '.collections[] | @base64'); do |
|||
|
|||
# Get the collection structure |
|||
|
|||
_jq() { |
|||
echo ${collection} | base64 --decode | jq -r ${1} |
|||
} |
|||
|
|||
theName=$(echo $(_jq '.name')) |
|||
theRepo=$(echo $(_jq '.repo')) |
|||
|
|||
|
|||
echo "Getting the _$theName" |
|||
|
|||
rm -rf _$theName |
|||
svn checkout $theRepo/trunk/docs _$theName |
|||
|
|||
|
|||
# |
|||
# sed -i "" "s/THETITLE/${theTitle}/g" ${DIR}/pdfconfigs/config_mydoc_pdf.yml |
|||
# |
|||
# for code in $(echo $(_jq '.codes') | jq -r '.[]'); do |
|||
# theCode=${code} |
|||
# sed -i "" "s/${code}/pdf/g" ${DIR}/_data/sidebars/mydoc_sidebar.yml |
|||
# done |
|||
# |
|||
# echo 'Killing all Jekyll instances' |
|||
# kill -9 $(ps aux | grep '[j]ekyll' | awk '{print $2}') |
|||
# clear |
|||
# |
|||
# echo "Building PDF-friendly HTML site for Mydoc ..."; |
|||
# bundle exec jekyll serve --detach --config _config.yml,pdfconfigs/config_mydoc_pdf.yml; |
|||
# echo "done"; |
|||
# |
|||
# echo "Building the PDF ..."; |
|||
# prince --javascript --pdf-keywords=prince-no-fallback --input-list=_site/pdfconfigs/prince-list.txt -o pdf/${theName}_${theVersion}.pdf; |
|||
# |
|||
# |
|||
# ## Reset everything for the next collection |
|||
# git checkout -- ${DIR}/collection-list.json |
|||
# git checkout -- ${DIR}/pdfconfigs/config_mydoc_pdf.yml |
|||
# git checkout -- ${DIR}/_data/sidebars/mydoc_sidebar.yml |
|||
done |
@ -1,17 +1,13 @@ |
|||
{ |
|||
"version": "THEVERSION", |
|||
"collections": [ |
|||
{ |
|||
"name": "core", |
|||
"repo": "https://github.com/blockstack/blockstack-core" |
|||
}, |
|||
{ |
|||
"name": "android", |
|||
"repo": "https://github.com/moxiegirl/blockstack-android" |
|||
}, |
|||
{ |
|||
"name": "browser", |
|||
"repo": "https://github.com/blockstack/blockstack-browser" |
|||
} |
|||
}, |
|||
{ |
|||
"name": "core", |
|||
"repo": "https://github.com/blockstack/blockstack-core" |
|||
} |
|||
] |
|||
} |
|||
|
Loading…
Reference in new issue