Bläddra i källkod

GitBook: [query_node_spec] 94 pages and 2 assets modified

dzlzv 4 år sedan
förälder
incheckning
ee298fccf8
96 ändrade filer med 1631 tillägg och 289 borttagningar
  1. 72 0
      .gitbook/assets/runtime-banner.svg
  2. 71 0
      .gitbook/assets/validator-node-banner.svg
  3. 17 27
      README.md
  4. 96 0
      SUMMARY.md
  5. 78 83
      cli/README.md
  6. 2 0
      cli/bin/README.md
  7. 6 0
      cli/bin/run.md
  8. 2 0
      docs/README.md
  9. 2 0
      docs/using-docker/README.md
  10. 6 5
      docs/using-docker/building-node-and-runtime.md
  11. 23 22
      pioneer/README.md
  12. 20 0
      pioneer/bounties.md
  13. 127 0
      pioneer/changelog.md
  14. 48 0
      pioneer/contributing.md
  15. 2 0
      pioneer/packages/README.md
  16. 23 0
      pioneer/packages/app-123code.md
  17. 2 1
      pioneer/packages/app-accounts/README.md
  18. 2 0
      pioneer/packages/app-accounts/src/README.md
  19. 2 0
      pioneer/packages/app-accounts/src/md/README.md
  20. 21 22
      pioneer/packages/app-accounts/src/md/basic.md
  21. 1 0
      pioneer/packages/app-address-book/README.md
  22. 2 0
      pioneer/packages/app-address-book/src/README.md
  23. 2 0
      pioneer/packages/app-address-book/src/md/README.md
  24. 3 3
      pioneer/packages/app-address-book/src/md/basic.md
  25. 2 0
      pioneer/packages/app-claims.md
  26. 1 0
      pioneer/packages/app-contracts/README.md
  27. 2 0
      pioneer/packages/app-contracts/src/README.md
  28. 2 0
      pioneer/packages/app-contracts/src/md/README.md
  29. 4 3
      pioneer/packages/app-contracts/src/md/intro.md
  30. 2 0
      pioneer/packages/app-council.md
  31. 23 0
      pioneer/packages/app-dashboard.md
  32. 1 0
      pioneer/packages/app-democracy/README.md
  33. 2 0
      pioneer/packages/app-democracy/src/README.md
  34. 2 0
      pioneer/packages/app-democracy/src/md/README.md
  35. 8 7
      pioneer/packages/app-democracy/src/md/basic.md
  36. 2 0
      pioneer/packages/app-explorer.md
  37. 2 0
      pioneer/packages/app-extrinsics.md
  38. 4 0
      pioneer/packages/app-generic-asset.md
  39. 2 0
      pioneer/packages/app-js.md
  40. 2 0
      pioneer/packages/app-parachains.md
  41. 1 0
      pioneer/packages/app-settings/README.md
  42. 2 0
      pioneer/packages/app-settings/src/README.md
  43. 2 0
      pioneer/packages/app-settings/src/md/README.md
  44. 14 11
      pioneer/packages/app-settings/src/md/basics.md
  45. 1 0
      pioneer/packages/app-staking/README.md
  46. 2 0
      pioneer/packages/app-staking/src/README.md
  47. 2 0
      pioneer/packages/app-staking/src/md/README.md
  48. 15 12
      pioneer/packages/app-staking/src/md/basic.md
  49. 2 0
      pioneer/packages/app-storage.md
  50. 2 0
      pioneer/packages/app-sudo.md
  51. 2 0
      pioneer/packages/app-toolbox.md
  52. 4 0
      pioneer/packages/app-transfer.md
  53. 1 0
      pioneer/packages/app-treasury/README.md
  54. 2 0
      pioneer/packages/app-treasury/src/README.md
  55. 2 0
      pioneer/packages/app-treasury/src/md/README.md
  56. 1 0
      pioneer/packages/app-treasury/src/md/basic.md
  57. 4 0
      pioneer/packages/apps-routing.md
  58. 2 0
      pioneer/packages/apps.md
  59. 2 0
      pioneer/packages/joy-election.md
  60. 4 0
      pioneer/packages/joy-forum.md
  61. 4 0
      pioneer/packages/joy-help.md
  62. 4 0
      pioneer/packages/joy-media.md
  63. 2 0
      pioneer/packages/joy-members.md
  64. 1 0
      pioneer/packages/joy-pages/README.md
  65. 2 0
      pioneer/packages/joy-pages/src/README.md
  66. 2 0
      pioneer/packages/joy-pages/src/md/README.md
  67. 85 0
      pioneer/packages/joy-pages/src/md/privacy.md
  68. 40 0
      pioneer/packages/joy-pages/src/md/tos.md
  69. 2 0
      pioneer/packages/joy-proposals.md
  70. 2 0
      pioneer/packages/joy-roles.md
  71. 41 0
      pioneer/packages/joy-settings.md
  72. 2 0
      pioneer/packages/joy-storage.md
  73. 2 0
      pioneer/packages/joy-utils.md
  74. 6 0
      pioneer/packages/react-api.md
  75. 6 0
      pioneer/packages/react-components.md
  76. 6 0
      pioneer/packages/react-params.md
  77. 43 0
      pioneer/packages/react-query.md
  78. 6 0
      pioneer/packages/react-signer.md
  79. 2 0
      query-node/README.md
  80. 18 17
      query-node/docs/README.md
  81. 19 0
      query-node/docs/architecture.md
  82. 41 0
      query-node/docs/install-hydra.md
  83. 29 0
      query-node/docs/mappings.md
  84. 56 61
      query-node/docs/quick-start.md
  85. 20 0
      query-node/docs/schema-spec/README.md
  86. 140 0
      query-node/docs/schema-spec/entity-relationship.md
  87. 2 0
      query-node/examples/README.md
  88. 2 0
      query-node/examples/kusama-query-node.md
  89. 145 0
      query-node/joystream-query-node.md
  90. 3 2
      query-node/substrate-query-framework/README.md
  91. 14 13
      query-node/substrate-query-framework/cli/README.md
  92. 2 0
      query-node/substrate-query-framework/cli/bin/README.md
  93. 6 0
      query-node/substrate-query-framework/cli/bin/run.md
  94. 2 0
      runtime/README.md
  95. 57 0
      runtime/changelog.md
  96. 59 0
      types.md

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 72 - 0
.gitbook/assets/runtime-banner.svg


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 71 - 0
.gitbook/assets/validator-node-banner.svg


+ 17 - 27
README.md

@@ -1,6 +1,6 @@
-# Joystream [![Build Status](https://travis-ci.org/Joystream/joystream.svg?branch=master)](https://travis-ci.org/Joystream/joystream)
+# Joystream
 
-This is the main code reposity for all joystream software. It will  house the substrate chain project, the full node and runtime and all reusable substrate runtime modules that make up the joystream runtime. In addition to all front-end apps and infrastructure servers necessary for operating the network.
+This is the main code reposity for all joystream software. It will house the substrate chain project, the full node and runtime and all reusable substrate runtime modules that make up the joystream runtime. In addition to all front-end apps and infrastructure servers necessary for operating the network.
 
 The repository is currently just a cargo workspace, but eventually will also contain yarn workspaces, and possibly other project type workspaces.
 
@@ -12,23 +12,20 @@ More detailed build history on [Travis CI](https://travis-ci.org/github/Joystrea
 
 ## Overview
 
-The Joystream network builds on a pre-release version of [substrate v2.0](https://substrate.dev/) and adds additional
-functionality to support the [various roles](https://www.joystream.org/roles) that can be entered into on the platform.
-
+The Joystream network builds on a pre-release version of [substrate v2.0](https://substrate.dev/) and adds additional functionality to support the [various roles](https://www.joystream.org/roles) that can be entered into on the platform.
 
 ## Validator
-![ Nodes for Joystream](./node/validator-node-banner.svg)
+
+![ Nodes for Joystream](.gitbook/assets/validator-node-banner.svg)
 
 Joystream node is the main server application that connects to the network, synchronizes the blockchain with other nodes and produces blocks if configured as a validator node.
 
 To setup a full node and validator review the [advanced guide from the helpdesk](https://github.com/Joystream/helpdesk/tree/master/roles/validators).
 
-
-###  Pre-built Binaries
+### Pre-built Binaries
 
 The latest pre-built binaries can be downloaded from the [releases](https://github.com/Joystream/joystream/releases) page.
 
-
 ### Building from source
 
 Clone the repository and install build tools:
@@ -57,8 +54,8 @@ cargo run --release -- --chain ./rome-testnet.json
 
 The `rome-testnet.json` chain file can be obtained from the [releases page](https://github.com/Joystream/joystream/releases/tag/v6.8.0)
 
-
 ### Installing a release build
+
 This will install the executable `joystream-node` to your `~/.cargo/bin` folder, which you would normally have in your `$PATH` environment.
 
 ```bash
@@ -92,12 +89,11 @@ cargo test
 yarn test
 ```
 
-To run the integration tests with a different chain, you can omit step running the local development chain and set the node URL using `NODE_URL` environment variable.
-Proposal grace periods should be set to 0, otherwise proposal network tests will fail.
+To run the integration tests with a different chain, you can omit step running the local development chain and set the node URL using `NODE_URL` environment variable. Proposal grace periods should be set to 0, otherwise proposal network tests will fail.
 
 ### Rome-Constantinople migration network test
 
-Ensure Rome node is up and running, and node URL is set using `NODE_URL` environment variable (default value is `localhost:9944`).
+Ensure Rome node is up and running, and node URL is set using `NODE_URL` environment variable \(default value is `localhost:9944`\).
 
 ```bash
 yarn test-migration
@@ -105,31 +101,24 @@ yarn test-migration
 
 ## Joystream Runtime
 
-![Joystream Runtime](./runtime/runtime-banner.svg)
+![Joystream Runtime](.gitbook/assets/runtime-banner.svg)
 
-
-The runtime is the code that defines the consensus rules of the Joystream protocol.
-It is compiled to WASM and lives on chain.
-Joystream node execute the code's logic to validate transactions and blocks on the blockchain.
+The runtime is the code that defines the consensus rules of the Joystream protocol. It is compiled to WASM and lives on chain. Joystream node execute the code's logic to validate transactions and blocks on the blockchain.
 
 When building joystream-node as described abot with `cargo build --release`, in addition to the joystream-node binary being built the WASM blob artifact is produced in:
 
 `target/release/wbuild/joystream-node-runtime/joystream_node_runtime.compact.wasm`
 
-
 ### Deployment
 
 Deploying the compiled runtime on a live system can be done in one of two ways:
 
 1. Joystream runtime upgrade proposals which will be voted on by the council. When the Joystream platform is live, this will be the only way to upgrade the chain's runtime code.
-
-2. During development and testnet phases, we can send an extrinsic (transaction signed with the sudo key) invoking `system::setCode()`. This can be done either from the UI/extrinsics app, or directly with an admin script.
+2. During development and testnet phases, we can send an extrinsic \(transaction signed with the sudo key\) invoking `system::setCode()`. This can be done either from the UI/extrinsics app, or directly with an admin script.
 
 ### Versioning the runtime
 
-Versioning of the runtime is set in `runtime/src/lib.rs`
-For detailed information about how to set correct version numbers when developing a new runtime, [see this](https://github.com/Joystream/joystream/issues/1)
-
+Versioning of the runtime is set in `runtime/src/lib.rs` For detailed information about how to set correct version numbers when developing a new runtime, [see this](https://github.com/Joystream/joystream/issues/1)
 
 ## Coding style
 
@@ -143,13 +132,13 @@ rustup component add rustfmt
 
 Applying code formatting on all source files recursing subfolders:
 
-```
+```text
 cargo-fmt
 ```
 
 ## Contributing
 
-Please see our [contributing guidlines](./CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
+Please see our [contributing guidlines](https://github.com/dzhelezov/joystream/tree/f07cb27a73ec74292811648cee8a92d8fab3b6c9/CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
 
 ## Authors
 
@@ -157,8 +146,9 @@ See also the list of [CONTRIBUTORS](https://github.com/Joystream/joystream/graph
 
 ## License
 
-This project is licensed under the GPLv3 License - see the [LICENSE](./LICENSE) file for details
+This project is licensed under the GPLv3 License - see the [LICENSE](https://github.com/dzhelezov/joystream/tree/f07cb27a73ec74292811648cee8a92d8fab3b6c9/LICENSE/README.md) file for details
 
 ## Acknowledgments
 
 Thanks to the whole [Parity Tech](https://www.parity.io/) team for making substrate and helping on riot chat with tips, suggestions, tutorials and answering all our questions during development.
+

+ 96 - 0
SUMMARY.md

@@ -0,0 +1,96 @@
+# Table of contents
+
+* [Joystream](README.md)
+* [README](pioneer/README.md)
+  * [packages](pioneer/packages/README.md)
+    * [@polkadot/apps-routing](pioneer/packages/apps-routing.md)
+    * [@polkadot/app-explorer](pioneer/packages/app-explorer.md)
+    * [@polkadot/app-democracy](pioneer/packages/app-democracy/README.md)
+      * [src](pioneer/packages/app-democracy/src/README.md)
+        * [md](pioneer/packages/app-democracy/src/md/README.md)
+          * [basic](pioneer/packages/app-democracy/src/md/basic.md)
+    * [@polkadot/app-toolbox](pioneer/packages/app-toolbox.md)
+    * [@polkadot/app-address-book](pioneer/packages/app-address-book/README.md)
+      * [src](pioneer/packages/app-address-book/src/README.md)
+        * [md](pioneer/packages/app-address-book/src/md/README.md)
+          * [Address book](pioneer/packages/app-address-book/src/md/basic.md)
+    * [Forum module for Joystream node](pioneer/packages/joy-forum.md)
+    * [Proposals module for Joystream node](pioneer/packages/joy-proposals.md)
+    * [@polkadot/app-123code](pioneer/packages/app-dashboard.md)
+    * [@polkadot/app-treasury](pioneer/packages/app-treasury/README.md)
+      * [src](pioneer/packages/app-treasury/src/README.md)
+        * [md](pioneer/packages/app-treasury/src/md/README.md)
+          * [Treasury](pioneer/packages/app-treasury/src/md/basic.md)
+    * [@polkadot/app-settings](pioneer/packages/app-settings/README.md)
+      * [src](pioneer/packages/app-settings/src/README.md)
+        * [md](pioneer/packages/app-settings/src/md/README.md)
+          * [basics](pioneer/packages/app-settings/src/md/basics.md)
+    * [Media content module for Joystream node](pioneer/packages/joy-media.md)
+    * [@polkadot/app-staking](pioneer/packages/app-staking/README.md)
+      * [src](pioneer/packages/app-staking/src/README.md)
+        * [md](pioneer/packages/app-staking/src/md/README.md)
+          * [basic](pioneer/packages/app-staking/src/md/basic.md)
+    * [Joystream Pages Module](pioneer/packages/joy-pages/README.md)
+      * [src](pioneer/packages/joy-pages/src/README.md)
+        * [md](pioneer/packages/joy-pages/src/md/README.md)
+          * [Terms of Service](pioneer/packages/joy-pages/src/md/tos.md)
+          * [Privacy](pioneer/packages/joy-pages/src/md/privacy.md)
+    * [@polkadot/apps](pioneer/packages/apps.md)
+    * [Election module for Joystream node](pioneer/packages/joy-election.md)
+    * [@polkadot/app-accounts](pioneer/packages/app-accounts/README.md)
+      * [src](pioneer/packages/app-accounts/src/README.md)
+        * [md](pioneer/packages/app-accounts/src/md/README.md)
+          * [basic](pioneer/packages/app-accounts/src/md/basic.md)
+    * [@polkadot/react-api](pioneer/packages/react-api.md)
+    * [@polkadot/app-generic-asset](pioneer/packages/app-generic-asset.md)
+    * [@polkadot/react-params](pioneer/packages/react-params.md)
+    * [@polkadot/app-storage](pioneer/packages/app-storage.md)
+    * [@polkadot/app-js](pioneer/packages/app-js.md)
+    * [@polkadot/app-transfer](pioneer/packages/app-transfer.md)
+    * [@polkadot/react-signer](pioneer/packages/react-signer.md)
+    * [@polkadot/app-123code](pioneer/packages/app-123code.md)
+    * [@polkadot/app-sudo](pioneer/packages/app-sudo.md)
+    * [Help module for Joystream node](pioneer/packages/joy-help.md)
+    * [@polkadot/app-council](pioneer/packages/app-council.md)
+    * [@polkadot/app-contracts](pioneer/packages/app-contracts/README.md)
+      * [src](pioneer/packages/app-contracts/src/README.md)
+        * [md](pioneer/packages/app-contracts/src/md/README.md)
+          * [contracts](pioneer/packages/app-contracts/src/md/intro.md)
+    * [@polkadot/ui-settings](pioneer/packages/joy-settings.md)
+    * [Utils for Joystream node](pioneer/packages/joy-utils.md)
+    * [@polkadot/app-parachains](pioneer/packages/app-parachains.md)
+    * [@polkadot/react-query](pioneer/packages/react-query.md)
+    * [@polkadot/app-claims](pioneer/packages/app-claims.md)
+    * [@polkadot/react-components](pioneer/packages/react-components.md)
+    * [Membership module for Joystream node](pioneer/packages/joy-members.md)
+    * [@polkadot/app-extrinsics](pioneer/packages/app-extrinsics.md)
+    * [@polkadot/joy-actors](pioneer/packages/joy-storage.md)
+    * [@polkadot/joy-roles](pioneer/packages/joy-roles.md)
+  * [CHANGELOG](pioneer/changelog.md)
+  * [Contributing](pioneer/contributing.md)
+  * [Bounties](pioneer/bounties.md)
+* [README](cli/README.md)
+  * [bin](cli/bin/README.md)
+    * [run](cli/bin/run.md)
+* [@joystream/types](types.md)
+* [docs](docs/README.md)
+  * [using-docker](docs/using-docker/README.md)
+    * [Docker](docs/using-docker/building-node-and-runtime.md)
+* [runtime](runtime/README.md)
+  * [CHANGELOG](runtime/changelog.md)
+* [query-node](query-node/README.md)
+  * [Overview](query-node/docs/README.md)
+    * [Install Hydra](query-node/docs/install-hydra.md)
+    * [Architecture](query-node/docs/architecture.md)
+    * [Schema](query-node/docs/schema-spec/README.md)
+      * [GraphQL Entity Relationships](query-node/docs/schema-spec/entity-relationship.md)
+    * [Mappings](query-node/docs/mappings.md)
+    * [Tutorial](query-node/docs/quick-start.md)
+  * [Substrate Query Node](query-node/substrate-query-framework/README.md)
+    * [cli](query-node/substrate-query-framework/cli/README.md)
+      * [bin](query-node/substrate-query-framework/cli/bin/README.md)
+        * [run](query-node/substrate-query-framework/cli/bin/run.md)
+  * [Joystream Query Node](query-node/joystream-query-node.md)
+  * [examples](query-node/examples/README.md)
+    * [kusama-query-node](query-node/examples/kusama-query-node.md)
+

+ 78 - 83
cli/README.md

@@ -1,46 +1,41 @@
-joystream-cli
-=============
+# README
+
+## joystream-cli
 
 Command Line Interface for Joystream community and governance activities
 
-[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
-[![Version](https://img.shields.io/npm/v/joystream-cli.svg)](https://npmjs.org/package/joystream-cli)
-[![Downloads/week](https://img.shields.io/npm/dw/joystream-cli.svg)](https://npmjs.org/package/joystream-cli)
-[![License](https://img.shields.io/npm/l/joystream-cli.svg)](https://github.com/Joystream/cli/blob/master/package.json)
+[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io) [![Version](https://img.shields.io/npm/v/joystream-cli.svg)](https://npmjs.org/package/joystream-cli) [![Downloads/week](https://img.shields.io/npm/dw/joystream-cli.svg)](https://npmjs.org/package/joystream-cli) [![License](https://img.shields.io/npm/l/joystream-cli.svg)](https://github.com/Joystream/cli/blob/master/package.json)
+
+* [Development](./#development)
+* [Usage](./#usage)
+* [Commands](./#commands)
 
-<!-- toc -->
-* [Development](#development)
-* [Usage](#usage)
-* [Commands](#commands)
-<!-- tocstop -->
+## Development
 
-# Development
-<!-- development -->
-To run a command in developemnt environment (without installing the package):
+To run a command in developemnt environment \(without installing the package\):
 
 1. Navigate into the CLI root directory
-1. Either execute any command like this:
+2. Either execute any command like this:
 
-    ```
+   ```text
         $ ./bin/run COMMAND
-    ```
+   ```
 
-    Or use:
+   Or use:
 
-    ```
+   ```text
         $ npm link
-    ```
+   ```
 
-    And then execute any command like this:
+   And then execute any command like this:
 
-    ```
+   ```text
         $ joystream-cli COMMAND
-    ```
-<!-- development -->
+   ```
+
+## Usage
 
-# Usage
-<!-- usage -->
-```sh-session
+```text
 $ npm install -g joystream-cli
 $ joystream-cli COMMAND
 running command...
@@ -51,38 +46,38 @@ USAGE
   $ joystream-cli COMMAND
 ...
 ```
-<!-- usagestop -->
-# Commands
-<!-- commands -->
-* [`joystream-cli account:choose`](#joystream-cli-accountchoose)
-* [`joystream-cli account:create NAME`](#joystream-cli-accountcreate-name)
-* [`joystream-cli account:current`](#joystream-cli-accountcurrent)
-* [`joystream-cli account:export PATH`](#joystream-cli-accountexport-path)
-* [`joystream-cli account:forget`](#joystream-cli-accountforget)
-* [`joystream-cli account:import BACKUPFILEPATH`](#joystream-cli-accountimport-backupfilepath)
-* [`joystream-cli account:transferTokens RECIPIENT AMOUNT`](#joystream-cli-accounttransfertokens-recipient-amount)
-* [`joystream-cli api:getUri`](#joystream-cli-apigeturi)
-* [`joystream-cli api:inspect`](#joystream-cli-apiinspect)
-* [`joystream-cli api:setUri URI`](#joystream-cli-apiseturi-uri)
-* [`joystream-cli council:info`](#joystream-cli-councilinfo)
-* [`joystream-cli help [COMMAND]`](#joystream-cli-help-command)
-
-## `joystream-cli account:choose`
+
+## Commands
+
+* [`joystream-cli account:choose`](./#joystream-cli-accountchoose)
+* [`joystream-cli account:create NAME`](./#joystream-cli-accountcreate-name)
+* [`joystream-cli account:current`](./#joystream-cli-accountcurrent)
+* [`joystream-cli account:export PATH`](./#joystream-cli-accountexport-path)
+* [`joystream-cli account:forget`](./#joystream-cli-accountforget)
+* [`joystream-cli account:import BACKUPFILEPATH`](./#joystream-cli-accountimport-backupfilepath)
+* [`joystream-cli account:transferTokens RECIPIENT AMOUNT`](./#joystream-cli-accounttransfertokens-recipient-amount)
+* [`joystream-cli api:getUri`](./#joystream-cli-apigeturi)
+* [`joystream-cli api:inspect`](./#joystream-cli-apiinspect)
+* [`joystream-cli api:setUri URI`](./#joystream-cli-apiseturi-uri)
+* [`joystream-cli council:info`](./#joystream-cli-councilinfo)
+* [`joystream-cli help [COMMAND]`](./#joystream-cli-help-command)
+
+### `joystream-cli account:choose`
 
 Choose default account to use in the CLI
 
-```
+```text
 USAGE
   $ joystream-cli account:choose
 ```
 
-_See code: [src/commands/account/choose.ts](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/choose.ts)_
+_See code:_ [_src/commands/account/choose.ts_](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/choose.ts)
 
-## `joystream-cli account:create NAME`
+### `joystream-cli account:create NAME`
 
 Create new account
 
-```
+```text
 USAGE
   $ joystream-cli account:create NAME
 
@@ -90,13 +85,13 @@ ARGUMENTS
   NAME  Account name
 ```
 
-_See code: [src/commands/account/create.ts](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/create.ts)_
+_See code:_ [_src/commands/account/create.ts_](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/create.ts)
 
-## `joystream-cli account:current`
+### `joystream-cli account:current`
 
 Display information about currently choosen default account
 
-```
+```text
 USAGE
   $ joystream-cli account:current
 
@@ -105,13 +100,13 @@ ALIASES
   $ joystream-cli account:default
 ```
 
-_See code: [src/commands/account/current.ts](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/current.ts)_
+_See code:_ [_src/commands/account/current.ts_](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/current.ts)
 
-## `joystream-cli account:export PATH`
+### `joystream-cli account:export PATH`
 
-Export account(s) to given location
+Export account\(s\) to given location
 
-```
+```text
 USAGE
   $ joystream-cli account:export PATH
 
@@ -122,24 +117,24 @@ OPTIONS
   -a, --all  If provided, exports all existing accounts into "exported_accounts" folder inside given path
 ```
 
-_See code: [src/commands/account/export.ts](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/export.ts)_
+_See code:_ [_src/commands/account/export.ts_](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/export.ts)
 
-## `joystream-cli account:forget`
+### `joystream-cli account:forget`
 
-Forget (remove) account from the list of available accounts
+Forget \(remove\) account from the list of available accounts
 
-```
+```text
 USAGE
   $ joystream-cli account:forget
 ```
 
-_See code: [src/commands/account/forget.ts](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/forget.ts)_
+_See code:_ [_src/commands/account/forget.ts_](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/forget.ts)
 
-## `joystream-cli account:import BACKUPFILEPATH`
+### `joystream-cli account:import BACKUPFILEPATH`
 
 Import account using JSON backup file
 
-```
+```text
 USAGE
   $ joystream-cli account:import BACKUPFILEPATH
 
@@ -147,13 +142,13 @@ ARGUMENTS
   BACKUPFILEPATH  Path to account backup JSON file
 ```
 
-_See code: [src/commands/account/import.ts](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/import.ts)_
+_See code:_ [_src/commands/account/import.ts_](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/import.ts)
 
-## `joystream-cli account:transferTokens RECIPIENT AMOUNT`
+### `joystream-cli account:transferTokens RECIPIENT AMOUNT`
 
 Transfer tokens from currently choosen account
 
-```
+```text
 USAGE
   $ joystream-cli account:transferTokens RECIPIENT AMOUNT
 
@@ -162,24 +157,24 @@ ARGUMENTS
   AMOUNT     Amount of tokens to transfer
 ```
 
-_See code: [src/commands/account/transferTokens.ts](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/transferTokens.ts)_
+_See code:_ [_src/commands/account/transferTokens.ts_](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/account/transferTokens.ts)
 
-## `joystream-cli api:getUri`
+### `joystream-cli api:getUri`
 
 Get current api WS provider uri
 
-```
+```text
 USAGE
   $ joystream-cli api:getUri
 ```
 
-_See code: [src/commands/api/getUri.ts](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/api/getUri.ts)_
+_See code:_ [_src/commands/api/getUri.ts_](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/api/getUri.ts)
 
-## `joystream-cli api:inspect`
+### `joystream-cli api:inspect`
 
-Lists available node API modules/methods and/or their description(s), or calls one of the API methods (depending on provided arguments and flags)
+Lists available node API modules/methods and/or their description\(s\), or calls one of the API methods \(depending on provided arguments and flags\)
 
-```
+```text
 USAGE
   $ joystream-cli api:inspect
 
@@ -217,13 +212,13 @@ EXAMPLES
   $ api:inspect -t=query -M=members -m=memberProfile -e -a=1
 ```
 
-_See code: [src/commands/api/inspect.ts](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/api/inspect.ts)_
+_See code:_ [_src/commands/api/inspect.ts_](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/api/inspect.ts)
 
-## `joystream-cli api:setUri URI`
+### `joystream-cli api:setUri URI`
 
 Set api WS provider uri
 
-```
+```text
 USAGE
   $ joystream-cli api:setUri URI
 
@@ -231,24 +226,24 @@ ARGUMENTS
   URI  Uri of the node api WS provider
 ```
 
-_See code: [src/commands/api/setUri.ts](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/api/setUri.ts)_
+_See code:_ [_src/commands/api/setUri.ts_](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/api/setUri.ts)
 
-## `joystream-cli council:info`
+### `joystream-cli council:info`
 
 Get current council and council elections information
 
-```
+```text
 USAGE
   $ joystream-cli council:info
 ```
 
-_See code: [src/commands/council/info.ts](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/council/info.ts)_
+_See code:_ [_src/commands/council/info.ts_](https://github.com/Joystream/substrate-runtime-joystream/blob/master/cli/src/commands/council/info.ts)
 
-## `joystream-cli help [COMMAND]`
+### `joystream-cli help [COMMAND]`
 
 display help for joystream-cli
 
-```
+```text
 USAGE
   $ joystream-cli help [COMMAND]
 
@@ -259,5 +254,5 @@ OPTIONS
   --all  see all commands in CLI
 ```
 
-_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v2.2.3/src/commands/help.ts)_
-<!-- commandsstop -->
+_See code:_ [_@oclif/plugin-help_](https://github.com/oclif/plugin-help/blob/v2.2.3/src/commands/help.ts) 
+

+ 2 - 0
cli/bin/README.md

@@ -0,0 +1,2 @@
+# bin
+

+ 6 - 0
cli/bin/run.md

@@ -0,0 +1,6 @@
+# run
+
+@echo off
+
+node "%~dp0\run" %\*
+

+ 2 - 0
docs/README.md

@@ -0,0 +1,2 @@
+# docs
+

+ 2 - 0
docs/using-docker/README.md

@@ -0,0 +1,2 @@
+# using-docker
+

+ 6 - 5
docs/using-docker/building-node-and-runtime.md

@@ -1,8 +1,8 @@
-### Docker
+# Docker
 
-#### Building localy
+## Building localy
 
-A joystream-node can be compiled with given [Dockerfile](./Dockerfile) file:
+A joystream-node can be compiled with given [Dockerfile](https://github.com/dzhelezov/joystream/tree/f07cb27a73ec74292811648cee8a92d8fab3b6c9/docs/using-docker/Dockerfile/README.md) file:
 
 ```bash
 # Build and tag a new image, which will compile joystream-node from source
@@ -12,13 +12,13 @@ docker build . -t joystream-node
 docker run -p 9944:9944 joystream-node --dev --ws-external
 ```
 
-#### Downloading joystream pre-built images from Docker Hub
+## Downloading joystream pre-built images from Docker Hub
 
 ```bash
 docker pull joystream/node
 ```
 
-#### Running a public node as a service
+## Running a public node as a service
 
 Create a working directory to store the node's data and where you will need to place the chain file.
 
@@ -38,3 +38,4 @@ docker ps
 # monitor logs
 docker logs --tail 100 -f my-node
 ```
+

+ 23 - 22
pioneer/README.md

@@ -1,4 +1,4 @@
-<p align="center"><img src="img/pioneer_new.svg"></p>
+# README
 
 ![Content Directory](https://user-images.githubusercontent.com/4144334/67765742-bbfab280-fa44-11e9-8b13-494b1bfb6014.jpeg)
 
@@ -10,45 +10,46 @@ This can be accessed as a hosted application via [https://testnet.joystream.org]
 
 The repo is split into a number of packages, each representing an application. These are -
 
-- [apps](packages/apps/) This is the main entry point. It handles the selection sidebar and routing to the specific application being displayed.
-- [app-accounts](packages/app-accounts/) A basic account management app.
-- [app-address-book](packages/app-address-book/) A basic address management app.
-- [app-explorer](packages/app-explorer/) A simple block explorer. It only shows the most recent blocks, updating as they become available.
-- [app-extrinsics](packages/app-extrinsics/) Submission of extrinsics to a node.
-- [app-js](packages/app-js/) An online code editor with [@polkadot-js/api](https://github.com/polkadot-js/api/tree/master/packages/api) access to the currently connected node.
-- [app-settings](packages/app-settings/) A basic settings management app, allowing choice of language, node to connect to, and theme
-- [app-staking](packages/app-staking/) A basic staking management app, allowing staking and nominations.
-- [app-storage](packages/app-storage/) A simple node storage query application. Multiple queries can be queued and updates as new values become available.
-- [app-toolbox](packages/app-toolbox/) Submission of raw data to RPC endpoints and utility hashing functions.
-- [app-transfer](packages/app-transfer/) A basic account management app, allowing transfer of Units/DOTs between accounts.
+* [apps](packages/apps.md) This is the main entry point. It handles the selection sidebar and routing to the specific application being displayed.
+* [app-accounts](packages/app-accounts/) A basic account management app.
+* [app-address-book](packages/app-address-book/) A basic address management app.
+* [app-explorer](packages/app-explorer.md) A simple block explorer. It only shows the most recent blocks, updating as they become available.
+* [app-extrinsics](packages/app-extrinsics.md) Submission of extrinsics to a node.
+* [app-js](packages/app-js.md) An online code editor with [@polkadot-js/api](https://github.com/polkadot-js/api/tree/master/packages/api) access to the currently connected node.
+* [app-settings](packages/app-settings/) A basic settings management app, allowing choice of language, node to connect to, and theme
+* [app-staking](packages/app-staking/) A basic staking management app, allowing staking and nominations.
+* [app-storage](packages/app-storage.md) A simple node storage query application. Multiple queries can be queued and updates as new values become available.
+* [app-toolbox](packages/app-toolbox.md) Submission of raw data to RPC endpoints and utility hashing functions.
+* [app-transfer](packages/app-transfer.md) A basic account management app, allowing transfer of Units/DOTs between accounts.
 
-In addition the following libraries are also included in the repo. These are to be moved to the [@polkadot/ui](https://github.com/polkadot-js/ui/) repository once it reaches a base level of stability and usability. (At this point with the framework being tested on the apps above, it makes development easier having it close)
+In addition the following libraries are also included in the repo. These are to be moved to the [@polkadot/ui](https://github.com/polkadot-js/ui/) repository once it reaches a base level of stability and usability. \(At this point with the framework being tested on the apps above, it makes development easier having it close\)
 
-- [react-components](packages/react-components/) A reactive (using RxJS) application framework with a number of useful shared components.
-- [react-signer](packages/react-signer/) Signer implementation for apps.
-- [react-query](packages/react-query) Base components that use the RxJS Observable APIs
+* [react-components](packages/react-components.md) A reactive \(using RxJS\) application framework with a number of useful shared components.
+* [react-signer](packages/react-signer.md) Signer implementation for apps.
+* [react-query](packages/react-query.md) Base components that use the RxJS Observable APIs
 
 ## development
 
 Contributions are welcome!
 
-To start off, this repo (along with others in the [@polkadot](https://github.com/polkadot-js/) family) uses yarn workspaces to organise the code. As such, after cloning dependencies _should_ be installed via `yarn`, not via npm, the latter will result in broken dependencies.
+To start off, this repo \(along with others in the [@polkadot](https://github.com/polkadot-js/) family\) uses yarn workspaces to organise the code. As such, after cloning dependencies _should_ be installed via `yarn`, not via npm, the latter will result in broken dependencies.
 
 To get started -
 
 1. Clone the repo locally, via `git clone https://github.com/joystream/apps <optional local path>`
-2. Ensure that you have a recent LTS version of Node.js, for development purposes [Node >=10.13.0](https://nodejs.org/en/) is recommended.
-3. Ensure that you have a recent version of Yarn, for development purposes [Yarn >=1.10.1](https://yarnpkg.com/docs/install) is required.
+2. Ensure that you have a recent LTS version of Node.js, for development purposes [Node &gt;=10.13.0](https://nodejs.org/en/) is recommended.
+3. Ensure that you have a recent version of Yarn, for development purposes [Yarn &gt;=1.10.1](https://yarnpkg.com/docs/install) is required.
 4. Install the dependencies by running `yarn`
-5. Ready! Now you can launch the UI (assuming you have a local Polkadot Node running), via `yarn run start`
+5. Ready! Now you can launch the UI \(assuming you have a local Polkadot Node running\), via `yarn run start`
 6. Access the UI via [http://localhost:3000](http://localhost:3000)
 
 ### Storybook
 
-There is a [StoryBook](https://storybook.js.org) implementation, the UI for which can be started with `yarn storybook` and then accessed in a browser via http://localhost:3001 (and the server will open a new browser tab by default when it starts).
+There is a [StoryBook](https://storybook.js.org) implementation, the UI for which can be started with `yarn storybook` and then accessed in a browser via [http://localhost:3001](http://localhost:3001) \(and the server will open a new browser tab by default when it starts\).
 
-Story code can be placed anywhere in the `packages` directory, and will be detected as long as the file name ends in `.stories.tsx. Stories should be defined in the [Component Story Format (CSF)](https://storybook.js.org/docs/formats/component-story-format) for consistency.
+Story code can be placed anywhere in the `packages` directory, and will be detected as long as the file name ends in \`.stories.tsx. Stories should be defined in the [Component Story Format \(CSF\)](https://storybook.js.org/docs/formats/component-story-format) for consistency.
 
 There are several StoryBook addons available, the most useful of which is [Knobs](https://www.npmjs.com/package/@storybook/addon-knobs), which allows props to be altered in real time.
 
 Note that currently StoryBook only allows for stateless components; it has no connection to polkadot.js or any Substrate node. This means that existing components, which are often tightly coupled with the Polkadot API, cannot be used in storybook.
+

+ 20 - 0
pioneer/bounties.md

@@ -0,0 +1,20 @@
+# Bounties
+
+From time-to-time we will add bounties for features.
+
+These are generously provided by the [Web3 Foundation](https://web3.foundation/) and as such employees of Parity or those of the W3F are ineligible for them. \(This includes people being by either Party for development or community work, related or un-related to polkadot-js\).
+
+The idea is that these bounties should be left open to community participation, so only if there is no outside interest for a specific issue, should those directly or indirectly paid by the W3F for work, attempt to close an issue. \(in which case it will be "un-bountied"\)
+
+Current bounties are tracked by the [!bounty](https://github.com/polkadot-js/apps/labels/%21bounty) label.
+
+## Process
+
+Once listed, the normal [Gitcoin](https://gitcoin.co/) process kicks in. This means application, work and payment is managed by this tool. The values for bounties are determined by the size estimation done by the team.
+
+## Some small requests
+
+Please don't start work on an issue until you have been approved via the gitcoin interface. We generally love enthusiasm and code in the repo, however short-cutting the process does create some issues for the management of the bounties. We certainly don't want to be playing favorites if 2 PRs for the same issue are created at the same time. And in cases where somebody else has been approved and an unapproved PR comes in... well, it gets really murky.
+
+When making changes, please do not force push in your PRs, especially not after a review has been started. We will clone your repo and work from that, doing a simple `pull` on a force-pushed branch ends up being, well, less than simple. We squash merge all PRs, so you do not clutter up the history by using stock-standard pushes to your branch.
+

+ 127 - 0
pioneer/changelog.md

@@ -0,0 +1,127 @@
+# CHANGELOG
+
+## 0.36.1
+
+* Api 0.95.1, Util 1.6.1, Extension 0.13.1
+* Support latest contracts ABI \(via API\), incl. rework of contracts UI
+* Support for Kusama CC2
+* Support for Edgeware mainnet
+* Experimental Ledger support
+* Display forks on explorer \(limited to Babe\)
+* Change settings to have Save as well as Save & Reload \(depending on changes made\)
+* Updates to struct & enum rendering \(as per extrinsic app\)
+* Backup, Password change & Delete don't show for built-in dev accounts
+* Add commissions to the staking overview
+* UI theme update
+* A large number of components refactored for React functional components
+* Allow dismiss of all notifications \(via bounty\)
+* Migrate all buttons to have icons \(via bounty\)
+* Proposal submission via modal \(via bounty\)
+* i18n string extraction \(via bounty\)
+* adjust signature validity \(via bounty\)
+* Make the network selection clickable on network name \(via bounty\)
+* ... and a number of cleanups all around
+
+## 0.35.1
+
+* Api 0.91.1, Util 1.2.1, Extension 0.10.1
+* Support for accounts added via Qr \(for instance, the Parity Signer\)
+* Support for accounts tied to specific chains \(instead of just available to all\)
+* GenericAsset app transfers
+* Support for Edgeware with default types
+* Display received heartbeats for validators
+* Allow optional params \(really as optional\) in RPC toolbox
+* Add Polkascan for Kusama
+* Fix account derivation with `///password`
+* Lots of component & maintainability cleanups
+
+## 0.34.1
+
+* Kusama support
+* Full support for Substrate 2.x & Polkadot 0.5.0 networks
+* Lots of UI updated to support both Substrate 1.x & 2.x chains
+* Add of claims app for Kusama \(and Polkadot\)
+* Basic Council, Parachains & Treasury apps
+* Moved ui- _packages to react-_
+
+## 0.33.1
+
+* Allow for externally injected accounts \(i.e. via extension, polkadot-js & SingleSource\)
+* Links to extrnisics & addresses on Polkascan
+* Rework Account & Address layouts with cards
+* Transfer can happen from any point \(via Transfer modal\)
+* Use new api.derive functions
+* Introduce multi support \(most via api.derive.\*\)
+* Update all account and address modals
+* Add seconding of proposals
+* Staking updates, including un-bonding & withdrawals
+* Update explorer with global query on hash/blocks
+* Add filters on the staking page
+* Vanitygen now supports sr25519 as well
+* Fixes for importing of old JSON
+* Latest @polkadot/util & @polkadot/api
+* A large number of optimizations and smaller fixes
+
+## 0.32.1
+
+* Support for Substrate 1.0 release & metadata v4
+* @polkadot/api 0.77.1
+
+## 0.31.1
+
+* Cleanups, fixes and features around the poc-4 staking module
+* Number of UI enhancements
+
+## 0.30.1
+
+* Staking page indicator for offline nodes \(count & block\)
+* Rework page tabs and content layouts
+* Cleanup of all UI summary headers
+* Emberic Elem support \(replaces Dried Danta\)
+
+## 0.29.1
+
+* @polkadot/util & @polkadot/api 0.75.1
+
+## 0.28.1
+
+* Support for substrate 1.0-rc
+
+## 0.27.1
+
+* Bring in new staking & nominating functions
+* Swap default keyring accounts \(on creation\) to sr25519
+* New faster crypto algorithms
+* Misc. bug fixes all around
+
+## 0.26.1
+
+* Swap keyring to HDKD derivation, mnemonic keys are now not backwards compatible with those created earlier. \(Defaults are still for ed25519\)
+* Swap crypto to new WASM-backed version \(and remove libsodium dependency\)
+* UI to allow for derived keys for ed25519 and sr25519
+* New mobile-friendly sidebar
+* Fix issues with nominating \(old non-bonds interface\)
+
+## 0.25.1
+
+* Swap to publishing -beta.x on merge \(non-breaking testing\)
+
+  **0.24.1**
+
+  Storage now handles Option type properly
+
+  **0.23.1**
+
+  JavaScript console introduced
+
+## 0.22.1
+
+* Use new Compact transaction format - this requires the latest binaries from either Polkadot or Substrate
+
+## 0.21.1
+
+* PoC-3 support with latest Substrate master & Polkadot master
+* Add support for Charred Cherry \(Substrate\) and Alexander \(Polkadot\) testnets
+* Too many changes to mention, master now only supports latest PoC-3 iteration
+* Use [https://poc-2.polkadot.io](https://poc-2.polkadot.io) if access is required to PoC-2 era networks
+

+ 48 - 0
pioneer/contributing.md

@@ -0,0 +1,48 @@
+# Contributing
+
+## What?
+
+Individuals making significant and valuable contributions are given commit-access to a project to contribute as they see fit. A project is more like an open wiki than a standard guarded open source project.
+
+## Rules
+
+There are a few basic ground-rules for contributors \(including the maintainer\(s\) of the project\):
+
+1. **No `--force` pushes** or modifying the Git history in any way. If you need to rebase, ensure you do it in your own repo.
+2. **Non-master branches**, prefixed with a short name moniker \(e.g. `<initials>-<feature>`\) must be used for ongoing work.
+3. **All modifications** must be made in a **pull-request** to solicit feedback from other contributors.
+4. A pull-request _must not be merged until CI_ has finished successfully.
+
+### Merging pull requests once CI is successful:
+
+* A pull request with no large change to logic that is an urgent fix may be merged after a non-author contributor has reviewed it well.
+* No PR should be merged until all reviews' comments are addressed.
+
+### Reviewing pull requests:
+
+When reviewing a pull request, the end-goal is to suggest useful changes to the author. Reviews should finish with approval unless there are issues that would result in:
+
+* Buggy behaviour.
+* Undue maintenance burden.
+* Breaking with house coding style.
+* Pessimisation \(i.e. reduction of speed as measured in the projects benchmarks\).
+* Feature reduction \(i.e. it removes some aspect of functionality that a significant minority of users rely on\).
+* Uselessness \(i.e. it does not strictly add a feature or fix a known issue\).
+
+### Reviews may not be used as an effective veto for a PR because:
+
+* There exists a somewhat cleaner/better/faster way of accomplishing the same feature/fix.
+* It does not fit well with some other contributors' longer-term vision for the project.
+
+## Releases
+
+Declaring formal releases remains the prerogative of the project maintainer\(s\).
+
+## Changes to this arrangement
+
+This is an experiment and feedback is welcome! This document may also be subject to pull-requests or changes by contributors where you believe you have something valuable to add or change.
+
+## Heritage
+
+These contributing guidelines are modified from the "OPEN Open Source Project" guidelines for the Level project: [https://github.com/Level/community/blob/master/CONTRIBUTING.md](https://github.com/Level/community/blob/master/CONTRIBUTING.md)
+

+ 2 - 0
pioneer/packages/README.md

@@ -0,0 +1,2 @@
+# packages
+

+ 23 - 0
pioneer/packages/app-123code.md

@@ -0,0 +1,23 @@
+# @polkadot/app-123code
+
+A simple template to get started with adding an "app" to this UI. It contains the bare minimum for a nicely hackable app \(if you just want to code _somewhere_\) and the steps needed to create, add and register an new app that appears in the UI.
+
+## adding an app
+
+If you want to add a new app to the UI, this is the place to start.
+
+1. Duplicate this `app-123code` folder and give it an appropriate name, in this case we will select `app-example` to keep things clear.
+2. Edit the `apps-example/package.json` app description, i.e. the name, author and relevant overview.
+
+And we have the basic app source setup, time to get the tooling correct.
+
+1. Add the new app to the TypeScript config in root, `tsconfig.json`, i.e. an entry such as `"@polkadot/app-example/*": [ "packages/app-example/src/*" ],`
+
+At this point the app should be buildable, but not quite reachable. The final step is to add it to the actual sidebar in `apps`.
+
+1. In `apps-routing/src` duplicate the `123code.ts` file to `example.ts` and edit it with the appropriate information, including the hash link, name and icon \(any icon name from semantic-ui-react/font-awesome 4 should be appropriate\).
+2. In the above description file, the `isHidden` field needs to be toggled to make it appear - the base template is hidden by default.
+3. Finally add the `template` to the `apps-routing/src/index.ts` file at the appropriate place for both full and light mode \(either optional\)
+
+Yes. After all that we have things hooked up. Run `yarn start` and your new app \(non-coded\) should show up. Now start having fun and building something great.
+

+ 2 - 1
pioneer/packages/app-accounts/README.md

@@ -2,4 +2,5 @@
 
 ## vanity
 
-Running `yarn run vanitygen --match <string>` runs the generator as a Node CLI app. (Orders of a magnitude faster due to the use of libsoldium bindings)
+Running `yarn run vanitygen --match <string>` runs the generator as a Node CLI app. \(Orders of a magnitude faster due to the use of libsoldium bindings\)
+

+ 2 - 0
pioneer/packages/app-accounts/src/README.md

@@ -0,0 +1,2 @@
+# src
+

+ 2 - 0
pioneer/packages/app-accounts/src/md/README.md

@@ -0,0 +1,2 @@
+# md
+

+ 21 - 22
pioneer/packages/app-accounts/src/md/basic.md

@@ -1,44 +1,43 @@
-# Account
+# basic
+
+## Account
 
 An account is identified by its public address on the network. It is totally fine to give away this address, this is also the only information needed to receive funds. The network will **not** know about the name you give to this account in this application.
 
-# Balances
+## Balances
 
 The balances for each account is broken down into a number of areas, giving an overview of the totals, transferable and bonded funds as well as the funds currently being unbonded or redeemable. These are -
 
-- **total**: The overall amount of funds in the account, this includes the vested balance, available for transfer and locked.
-- **available**: The funds that can be transferred or bonded, i.e. the funds that are available for any transaction.
-- **bonded**: The funds bonded for validating or nominating. They are locked and cannot be transferred, although it can be unlocked for future actions.
-- **redeemable**: The funds that can get redeemed, e.g made available for withdrawal, by clicking on the "lock" icon.
-- **unbonding**: The funds that are being unbonded. The funds will be redeemable after the bonding period has passed. These funds can still be slashed. The information icon tells the amount of blocks left before the funds can be redeemed.
+* **total**: The overall amount of funds in the account, this includes the vested balance, available for transfer and locked.
+* **available**: The funds that can be transferred or bonded, i.e. the funds that are available for any transaction.
+* **bonded**: The funds bonded for validating or nominating. They are locked and cannot be transferred, although it can be unlocked for future actions.
+* **redeemable**: The funds that can get redeemed, e.g made available for withdrawal, by clicking on the "lock" icon.
+* **unbonding**: The funds that are being unbonded. The funds will be redeemable after the bonding period has passed. These funds can still be slashed. The information icon tells the amount of blocks left before the funds can be redeemed.
 
-# Security
+## Security
 
-The public address is generated from a private key, itself generated from a seed or a mnemonic phrase. The seed or the mnemonic phrase should **never be shared with anybody** as they give access to your funds. It must be stored securely.
-The password needed to create an account is used to encrypt your private key. You must choose a strong and unique password.
-This password is also used to encrypt the private key in the backup file downloaded upon account creation. Thanks to this file together with your account password, you can recover your account.
+The public address is generated from a private key, itself generated from a seed or a mnemonic phrase. The seed or the mnemonic phrase should **never be shared with anybody** as they give access to your funds. It must be stored securely. The password needed to create an account is used to encrypt your private key. You must choose a strong and unique password. This password is also used to encrypt the private key in the backup file downloaded upon account creation. Thanks to this file together with your account password, you can recover your account.
 
-# Account recovery
+## Account recovery
 
 You can recover an account from its:
-- seed or mnemonic:
-  Click on the "Add account" button, type your seed or mnemonic in the associated field.
 
-- backup file (also called JSON keystore file) and the account's password:
-  Click on "Restore JSON" button. Upload your backup file and type in the password associated.
+* seed or mnemonic: Click on the "Add account" button, type your seed or mnemonic in the associated field.
+* backup file \(also called JSON keystore file\) and the account's password: Click on "Restore JSON" button. Upload your backup file and type in the password associated.
 
-# Minimum allowed balance
+## Minimum allowed balance
 
-Accounts with a balance lower than the minimal amount, 100 milliUnits (miliDOTs for Polkadot) as of writing are considered as nonexistent for the network. If an account's balance ever drops below this amount, it is removed from the network. In this application, it will still be visible, but with a balance of 0.
+Accounts with a balance lower than the minimal amount, 100 milliUnits \(miliDOTs for Polkadot\) as of writing are considered as nonexistent for the network. If an account's balance ever drops below this amount, it is removed from the network. In this application, it will still be visible, but with a balance of 0.
 
-For a fund transfer to a **new account** (read an account with a balance of 0), if the amount transferred is less than the minimum allowed balance, then the transfer will "succeed" but the destination account will not be created (read its balance will remain 0); this essentially burns the transfer balance from the sender, because the receiver's balance never exceed the minimum allowed balance.
+For a fund transfer to a **new account** \(read an account with a balance of 0\), if the amount transferred is less than the minimum allowed balance, then the transfer will "succeed" but the destination account will not be created \(read its balance will remain 0\); this essentially burns the transfer balance from the sender, because the receiver's balance never exceed the minimum allowed balance.
 
-If the receiver already exists (read it has a balance greater than 0), it is perfectly possible to transfer very low amounts.
+If the receiver already exists \(read it has a balance greater than 0\), it is perfectly possible to transfer very low amounts.
 
-# Cryptography
+## Cryptography
 
-Substrate and Polkadot use Schnorrkel/Ristretto x25519 ("sr25519") as its key derivation and signing algorithm.
+Substrate and Polkadot use Schnorrkel/Ristretto x25519 \("sr25519"\) as its key derivation and signing algorithm.
 
 Sr25519 is based on the same underlying Curve25519 as its EdDSA counterpart, Ed25519. However, it uses Schnorr signatures instead of the EdDSA scheme. Schnorr signatures bring some noticeable benefits over the ECDSA/EdDSA schemes. For one, it is more efficient and still retains the same feature set and security assumptions. Additionally, it allows for native multisignature through signature aggregation.
 
 If you wish to validate, the `session` account needs to use "ed25519" cryptography.
+

+ 1 - 0
pioneer/packages/app-address-book/README.md

@@ -1 +1,2 @@
 # @polkadot/app-address-book
+

+ 2 - 0
pioneer/packages/app-address-book/src/README.md

@@ -0,0 +1,2 @@
+# src
+

+ 2 - 0
pioneer/packages/app-address-book/src/md/README.md

@@ -0,0 +1,2 @@
+# md
+

+ 3 - 3
pioneer/packages/app-address-book/src/md/basic.md

@@ -1,6 +1,6 @@
 # Address book
 
-You can store and get quick access to the most commonly used address, such as a friends' account.
-Any contact you create in this interface will be reflected in the application.
+You can store and get quick access to the most commonly used address, such as a friends' account. Any contact you create in this interface will be reflected in the application.
+
+You can edit the name of a contact by clicking on it. To remove a contact from the list, click on the trash icon to "Forget" it.
 
-You can edit the name of a contact by clicking on it. To remove a contact from the list, click on the trash icon to "Forget" it.

+ 2 - 0
pioneer/packages/app-claims.md

@@ -0,0 +1,2 @@
+# @polkadot/app-claims
+

+ 1 - 0
pioneer/packages/app-contracts/README.md

@@ -1,3 +1,4 @@
 # @polkadot/app-contracts
 
 Substrate contracts - code deployment, instance creation and messages.
+

+ 2 - 0
pioneer/packages/app-contracts/src/README.md

@@ -0,0 +1,2 @@
+# src
+

+ 2 - 0
pioneer/packages/app-contracts/src/md/README.md

@@ -0,0 +1,2 @@
+# md
+

+ 4 - 3
pioneer/packages/app-contracts/src/md/intro.md

@@ -12,6 +12,7 @@ With all that said - if you do find issues, please log them.
 
 The interface has 3 main areas -
 
-- **Code** This allows you to deploy WASM code on-chain or attach on-chain code into your local registry. Each code blob is identified by a unique hash, when deploying this will be saved, when attaching you would need to know the unique hash. From these bundles you can then move to the next step,
-- **Instance** This allows you to create contract instances using on-chain WASM code. Select the code to use, attach the ABI, specify the contract values and the contract can be deployed. As with the Code section, you can also attach on-chain instances when you know the address.
-- **Call** This allows you to send messages to contracts, via the address and attached ABIs.
+* **Code** This allows you to deploy WASM code on-chain or attach on-chain code into your local registry. Each code blob is identified by a unique hash, when deploying this will be saved, when attaching you would need to know the unique hash. From these bundles you can then move to the next step,
+* **Instance** This allows you to create contract instances using on-chain WASM code. Select the code to use, attach the ABI, specify the contract values and the contract can be deployed. As with the Code section, you can also attach on-chain instances when you know the address.
+* **Call** This allows you to send messages to contracts, via the address and attached ABIs.
+

+ 2 - 0
pioneer/packages/app-council.md

@@ -0,0 +1,2 @@
+# @polkadot/app-council
+

+ 23 - 0
pioneer/packages/app-dashboard.md

@@ -0,0 +1,23 @@
+# @polkadot/app-123code
+
+A simple template to get started with adding an "app" to this UI. It contains the bare minimum for a nicely hackable app \(if you just want to code _somewhere_\) and the steps needed to create, add and register an new app that appears in the UI.
+
+## adding an app
+
+If you want to add a new app to the UI, this is the place to start.
+
+1. Duplicate this `app-123code` folder and give it an appropriate name, in this case we will select `app-example` to keep things clear.
+2. Edit the `apps-example/package.json` app description, i.e. the name, author and relevant overview.
+
+And we have the basic app source setup, time to get the tooling correct.
+
+1. Add the new app to the TypeScript config in root, `tsconfig.json`, i.e. an entry such as `"@polkadot/app-example/*": [ "packages/app-example/src/*" ],`
+
+At this point the app should be buildable, but not quite reachable. The final step is to add it to the actual sidebar in `apps`.
+
+1. In `apps/src/routing/` duplicate the `123code.ts` file to `example.ts` and edit it with the appropriate information, including the hash link, name and icon \(any icon name from semantic-ui-react/font-awesome 4 should be appropriate\).
+2. In the above description file, the `isHidden` field needs to be toggled to make it appear - the base template is hidden by default.
+3. Finally add the `template` to the `apps/src/routing/index.ts` file at the appropriate place for both full and light mode \(either optional\)
+
+Yes. After all that we have things hooked up. Run `yarn start` and your new app \(non-coded\) should show up. Now start having fun and building something great.
+

+ 1 - 0
pioneer/packages/app-democracy/README.md

@@ -1 +1,2 @@
 # @polkadot/app-democracy
+

+ 2 - 0
pioneer/packages/app-democracy/src/README.md

@@ -0,0 +1,2 @@
+# src
+

+ 2 - 0
pioneer/packages/app-democracy/src/md/README.md

@@ -0,0 +1,2 @@
+# md
+

+ 8 - 7
pioneer/packages/app-democracy/src/md/basic.md

@@ -1,13 +1,14 @@
-# Democracy
+# basic
 
-This application lets you view proposals and vote for or against a referendum.
-Anyone can create a proposal by bonding the minimum deposit for a certain period of time (No. of Blocks). If someone likes the proposal, they could deposit the same amount of tokens to support it. The minimum deposit is currently 5 Units/DOTs.
+## Democracy
 
-# Proposals
+This application lets you view proposals and vote for or against a referendum. Anyone can create a proposal by bonding the minimum deposit for a certain period of time \(No. of Blocks\). If someone likes the proposal, they could deposit the same amount of tokens to support it. The minimum deposit is currently 5 Units/DOTs.
+
+## Proposals
 
 This lists the proposals that you can not vote on yet. The proposal with the highest amount of Units/DOTs supporting it will be selected in the next launch period for everyone to vote. This selected proposal evolved in a referendum. The tokens locked to support each proposal will be released once the proposal is tabled.
 
-# Referendum
+## Referendum
+
+This lists the proposal that you can now vote for "aye" or against "nay". At the end of the launch period, and depending on the outcome of the referendum, the action that was subjected to vote will be executed or rejected.
 
-This lists the proposal that you can now vote for "aye" or against "nay".
-At the end of the launch period, and depending on the outcome of the referendum, the action that was subjected to vote will be executed or rejected.

+ 2 - 0
pioneer/packages/app-explorer.md

@@ -0,0 +1,2 @@
+# @polkadot/app-explorer
+

+ 2 - 0
pioneer/packages/app-extrinsics.md

@@ -0,0 +1,2 @@
+# @polkadot/app-extrinsics
+

+ 4 - 0
pioneer/packages/app-generic-asset.md

@@ -0,0 +1,4 @@
+# @polkadot/app-generic-asset
+
+A basic GenericAsset transfer application, allowing the movement of funds from one account to another.
+

+ 2 - 0
pioneer/packages/app-js.md

@@ -0,0 +1,2 @@
+# @polkadot/app-js
+

+ 2 - 0
pioneer/packages/app-parachains.md

@@ -0,0 +1,2 @@
+# @polkadot/app-parachains
+

+ 1 - 0
pioneer/packages/app-settings/README.md

@@ -1,3 +1,4 @@
 # @polkadot/app-settings
 
 Allows you to change the basic settings for the application, such as language, the node to connect to and theme
+

+ 2 - 0
pioneer/packages/app-settings/src/README.md

@@ -0,0 +1,2 @@
+# src
+

+ 2 - 0
pioneer/packages/app-settings/src/md/README.md

@@ -0,0 +1,2 @@
+# md
+

+ 14 - 11
pioneer/packages/app-settings/src/md/basics.md

@@ -1,22 +1,24 @@
-# Settings
+# basics
 
-Here you are able to tweak a number of the settings for your interface - where it connects to, the actual theme and if you are a developer, have access to some additional features to allow for a stress-free connection to a (possibly) custom chain.
+## Settings
 
-# General
+Here you are able to tweak a number of the settings for your interface - where it connects to, the actual theme and if you are a developer, have access to some additional features to allow for a stress-free connection to a \(possibly\) custom chain.
+
+## General
 
 In the general section you can setup the basic operation for your UI.
 
-- **endpoint** Defines the node to connect to. Select from one of the available hosted RPCs or connect to your own by specifying a custom URL. (Be aware that custom URLs should be behind secure WebSockets if you are using a UI hosted on a https endpoint)
-- **theme** Swap between a Polkadot or Substrate themed interface.
-- **mode** By default the UI appears in a fully-featured mode. You can select to only have the core features (which provides all the basics, unless you are a power user).
+* **endpoint** Defines the node to connect to. Select from one of the available hosted RPCs or connect to your own by specifying a custom URL. \(Be aware that custom URLs should be behind secure WebSockets if you are using a UI hosted on a https endpoint\)
+* **theme** Swap between a Polkadot or Substrate themed interface.
+* **mode** By default the UI appears in a fully-featured mode. You can select to only have the core features \(which provides all the basics, unless you are a power user\).
 
-# Developer
+## Developer
 
-In this section, you are able to define custom types to be added to the underlying API. When developing a custom chain, it is typical that additional types are added. Defining them here allows the underlying API (and therefore the UI) have an understanding how to encode and decode these types.
+In this section, you are able to define custom types to be added to the underlying API. When developing a custom chain, it is typical that additional types are added. Defining them here allows the underlying API \(and therefore the UI\) have an understanding how to encode and decode these types.
 
 Types are saved across refreshes, so it is a single operation for all future usages of the UI. For the definitions, a simple JSON format is used, and example could be -
 
-```
+```text
 {
   "TransactionInput": {
     "parent_output": "Hash",
@@ -34,9 +36,9 @@ Types are saved across refreshes, so it is a single operation for all future usa
 }
 ```
 
-Be aware that the types are registered in the order they appear here, however it does support resolution independent of the order. (Circular deps are not supported here). For a slightly more complex example, using both types, enums, tuples and Compact numbers, the following would be used -
+Be aware that the types are registered in the order they appear here, however it does support resolution independent of the order. \(Circular deps are not supported here\). For a slightly more complex example, using both types, enums, tuples and Compact numbers, the following would be used -
 
-```
+```text
 {
   "ArrayThing": "Vec<Thing>",
   "MyNumber": "u32",
@@ -59,3 +61,4 @@ Be aware that the types are registered in the order they appear here, however it
   }
 }
 ```
+

+ 1 - 0
pioneer/packages/app-staking/README.md

@@ -1 +1,2 @@
 # @polkadot/app-staking
+

+ 2 - 0
pioneer/packages/app-staking/src/README.md

@@ -0,0 +1,2 @@
+# src
+

+ 2 - 0
pioneer/packages/app-staking/src/md/README.md

@@ -0,0 +1,2 @@
+# md
+

+ 15 - 12
pioneer/packages/app-staking/src/md/basic.md

@@ -1,32 +1,35 @@
-# Staking
+# basic
 
-Welcome to the staking module. Here you can see an overview of all the validators on the network and participate in the network as either a validator (running a node that helps secure the network), or a nominator (adding funds to help secure the network).
+## Staking
+
+Welcome to the staking module. Here you can see an overview of all the validators on the network and participate in the network as either a validator \(running a node that helps secure the network\), or a nominator \(adding funds to help secure the network\).
 
 Validators and nominators earn rewards at the end of an era: the rewards are split between the validators and nominators for that validator, in proportion to the amount bonded by each individual.
 
-# Bonding
+## Bonding
 
 Bonding funds is the first step that either a validator or nominator performs. It locks up a portion of funds that is used to secure the network. These funds are placed at risk, i.e. you can be slashed and lose a portion if the validator node misbehaves. Validators and nominators share both rewards and the slashing effects. Choosing a well behaving validator to nominate is crucial.
 
-For bonding (with an intention to either validate or nominate), you need to have 2 accounts -
+For bonding \(with an intention to either validate or nominate\), you need to have 2 accounts -
 
-- **Stash** This is the primary account that holds the funds and has a portion bonded for participation;
-- **Controller** This is used to control the operation of the validator or nominator, switching between validating, nominating and idle; (It only needs enough funds to send transactions when actions are taken)
+* **Stash** This is the primary account that holds the funds and has a portion bonded for participation;
+* **Controller** This is used to control the operation of the validator or nominator, switching between validating, nominating and idle; \(It only needs enough funds to send transactions when actions are taken\)
 
 To bond, you select the stash account, bond from it and designate a controller. Additionally you can select the amount of funds to bond and set your payout preferences.
 
-# Nominating
+## Nominating
 
-Nomination (using the controller account as set as part of the bonding) is a process of selecting a number of validators (or potential validators) that you deem trustworthy. Once the validators are selected, the bonded value is assigned to participate in the network security.
+Nomination \(using the controller account as set as part of the bonding\) is a process of selecting a number of validators \(or potential validators\) that you deem trustworthy. Once the validators are selected, the bonded value is assigned to participate in the network security.
 
-At any point you could stop nominating (using the controller) or top up the funds bonded (from the stash).
+At any point you could stop nominating \(using the controller\) or top up the funds bonded \(from the stash\).
 
-# Validating
+## Validating
 
 Validators run nodes that author blocks. The primary requirement here is the ability to run a node that is available 24/7 and is well-connected to the network.
 
 In addition to the stash and controller account described above, a validator has to indicate an additional account called `Session key` -
 
-- **Session** The seed of this account should be passed to the node using the `--key` parameter. The session account does not need to have funds as it does not need to send any transaction. The best practice is to create a dedicated account to be used as session account. Although a single account can theoretically be used as both session and controller, it is not recommended to do so. Having a dedicated session account would prevent the theft of funds should the validator node be compromised and the `--key` leaked.
+* **Session** The seed of this account should be passed to the node using the `--key` parameter. The session account does not need to have funds as it does not need to send any transaction. The best practice is to create a dedicated account to be used as session account. Although a single account can theoretically be used as both session and controller, it is not recommended to do so. Having a dedicated session account would prevent the theft of funds should the validator node be compromised and the `--key` leaked.
+
+As with the nomination operations, you can stop validation at any time using the controller. \(Be it for maintenance, upgrades, or any other reason\)
 
-As with the nomination operations, you can stop validation at any time using the controller. (Be it for maintenance, upgrades, or any other reason)

+ 2 - 0
pioneer/packages/app-storage.md

@@ -0,0 +1,2 @@
+# @polkadot/app-storage
+

+ 2 - 0
pioneer/packages/app-sudo.md

@@ -0,0 +1,2 @@
+# @polkadot/app-sudo
+

+ 2 - 0
pioneer/packages/app-toolbox.md

@@ -0,0 +1,2 @@
+# @polkadot/app-toolbox
+

+ 4 - 0
pioneer/packages/app-transfer.md

@@ -0,0 +1,4 @@
+# @polkadot/app-transfer
+
+A basic DOT transfer application, allowing the movement of funds from one account to another.
+

+ 1 - 0
pioneer/packages/app-treasury/README.md

@@ -1 +1,2 @@
 # @polkadot/app-treasury
+

+ 2 - 0
pioneer/packages/app-treasury/src/README.md

@@ -0,0 +1,2 @@
+# src
+

+ 2 - 0
pioneer/packages/app-treasury/src/md/README.md

@@ -0,0 +1,2 @@
+# md
+

+ 1 - 0
pioneer/packages/app-treasury/src/md/basic.md

@@ -1,3 +1,4 @@
 # Treasury
 
 This application lets you view and vote to approve or deny treasury spend proposals.
+

+ 4 - 0
pioneer/packages/apps-routing.md

@@ -0,0 +1,4 @@
+# @polkadot/apps-routing
+
+The routing config for the application
+

+ 2 - 0
pioneer/packages/apps.md

@@ -0,0 +1,2 @@
+# @polkadot/apps
+

+ 2 - 0
pioneer/packages/joy-election.md

@@ -0,0 +1,2 @@
+# Election module for Joystream node
+

+ 4 - 0
pioneer/packages/joy-forum.md

@@ -0,0 +1,4 @@
+# Forum module for Joystream node
+
+Forum allows to create categories and subcategories, start discussion threads and reply to others.
+

+ 4 - 0
pioneer/packages/joy-help.md

@@ -0,0 +1,4 @@
+# Help module for Joystream node
+
+Here you can find a help and the latest news related to Joystream community and software.
+

+ 4 - 0
pioneer/packages/joy-media.md

@@ -0,0 +1,4 @@
+# Media content module for Joystream node
+
+This module works with multi-media content such as audio and video.
+

+ 2 - 0
pioneer/packages/joy-members.md

@@ -0,0 +1,2 @@
+# Membership module for Joystream node
+

+ 1 - 0
pioneer/packages/joy-pages/README.md

@@ -1,3 +1,4 @@
 # Joystream Pages Module
 
 Static pages rendered from markdown content.
+

+ 2 - 0
pioneer/packages/joy-pages/src/README.md

@@ -0,0 +1,2 @@
+# src
+

+ 2 - 0
pioneer/packages/joy-pages/src/md/README.md

@@ -0,0 +1,2 @@
+# md
+

+ 85 - 0
pioneer/packages/joy-pages/src/md/privacy.md

@@ -0,0 +1,85 @@
+# Privacy
+
+## Privacy and Cookies
+
+**Last updated on the 17th of April 2019**
+
+Jsgenesis values your privacy.
+
+This Privacy Policy \("Privacy Policy"\) and Cookie Policy \("Cookie Policy"\) explains how Jsgenesis AS \("Jsgenesis", "Company", "We", "Us", "Our"\) collect and use data and information when you \("User\) use on or any of the Joystream products, developed in the GitHub organization [Joystream](https://github.com/JoyStream). These products \(collectively "Software"\) include, but are not limited to, [all pages under the joystream.org domain](https://www.joystream.org/) \("Website"\), the [Joyful node](https://github.com/Joystream/substrate-node-joystream) \("Full Node"\), the [Colossus Storage Node](https://github.com/Joystream/storage-node-joystream) \("Storage node"\), and the Pioneer User Interface, either [self hosted](https://github.com/Joystream/apps) or [hosted by Us](http://testnet.joystream.org/) \("App"\).
+
+Relevant to the Privacy Policy and Cookie Policy are the following terms:
+
+* The term "Blockchain" refers to the blockchain\(s\) assembled by the Full Node.
+* The term "Content" refers to media files accessible through our Software.
+* The term "Keys" refers to a private/public cryptographic keypair, that Users can generate in order to write \(and decrypt data\) on the Blockchain.
+* The term "Membership" refers to tying your Keys to a public profile, allowing users to access Content and interact with the Blockchain.
+* The term "Memo" refers to a markdown enabled text field, where users can input data tied to their Keys.
+
+## Privacy Policy
+
+**Last updated on the 19th of May 2020**
+
+### 1. Agreement to the Policy
+
+By using any of Our Software, the User are accepting this Privacy Policy. If you are acting on behalf of another company or an employer, you must have the rights to act on their behalf. The Privacy Policy is not extended to any of our newsletters, where Users are bound by the [privacy policy](https://mailchimp.com/legal/privacy/) of [Mailchimp](https://mailchimp.com/).
+
+The Privacy Policy does not apply to any other third party services including, but not limited to, applications, websites, tools or software, even if accessible through links or guides in our Software.
+
+### 2. Changes to Policy
+
+This Privacy Policy may be changed at the sole discretion of Company. If any material changes are made, the User will be notified in the Service that is used. Note that adding new products to be included in the term Software , e.g. a new User facing product replacing the App or a new tool for uploading Content, is not considered material as it will not affect Users unless they adopt the new product. Changing softare names, terminology used in this Privacy Policy, and changin link locations are aslo examples of non-material changes.
+
+### 3. Information Collected
+
+All data written to the Blockchain, is implicitly collected not only by Company, but also anyone else in the world that is running the Full Node locally, or accessed via the App or a third party. This includes, but is not limited to, Content hashes, Membership profile, Memo field, and any other way a User can record data on the Blockchain.
+
+Company uses [Google Analytics](https://marketingplatform.google.com/about/analytics/), with IP anonymization, to collect statistics on Website and the version of App hosted by us. All customizable data sharing settings are turned off to improve the privacy of Users.
+
+Company will not sell your data for advertising, or other purposes.
+
+## Cookie Policy
+
+**Last updated on the 17th of April 2019**
+
+Company uses cookies on Website and App when hosted by Us \(collectively "Service"\). By using the Service, you consent to the use of cookies.
+
+Our Cookies Policy explains what cookies are, how we use cookies, how third-parties we partner with may use cookies on the Service, your choices regarding cookies and further information about cookies.
+
+### 1. What are Cookies?
+
+Cookies are small pieces of text sent by your web browser by a website you visit. A cookie file is stored in your web browser and allows the Service or a third-party to recognize you and make your next visit easier and the Service more useful to you.
+
+Cookies can be _persistent_ or _session_ cookies.
+
+### 2. How we use Cookies
+
+We use cookies for the following purposes our Service:
+
+* Provide Analytics
+* Store preferences
+* Persistant local storage of Keys and Membership.
+
+### 3. Third-party Cookies
+
+In addition to our own cookies, we also use various third-party cookies to report usage statistics of the Service, deliver advertisements on and through the Service, and so on. They include:
+
+* Google Analytics
+* Mailchimp \(Only when signing up for any of our newsletters\)
+* Godaddy
+
+Please see Item 3. of the Privacy Policy for more information on the extent of these providers.
+
+### Your Regarding Cookies
+
+If you would like to delete cookies or instruct your web browser to delete or refuse cookies, please visit the help pages of your web browser.
+
+Please note, however, that if you delete cookies or refuse to accept them, you might not be able to use all of the features we offer, you may not be able to store your preferences, and some of our pages might not display properly.
+
+MORE INFORMATION About Cookies
+
+You can learn more about cookies and the following third-party websites:
+
+* [AllAboutCookies](http://www.allaboutcookies.org/)
+* [Network Advertising Initiative](http://www.networkadvertising.org/)
+

+ 40 - 0
pioneer/packages/joy-pages/src/md/tos.md

@@ -0,0 +1,40 @@
+# Terms of Service
+
+**Last updated on the 17th of April 2019**
+
+The Terms of Service \("Agreement"\) is a binding obligation between you \("User"\) and Jsgenesis AS \("Company", "We", "Us", "Our"\) for use of our Products. These products \(collectively "Software"\) include [all pages under the joystream.org domain](https://www.joystream.org/) \("Website"\), the [Joyful node](https://github.com/Joystream/substrate-node-joystream) \("Full node"\), the [Colossus Storage Node](https://github.com/Joystream/storage-node-joystream) \("Storage node"\), and the Pioneer User Interface, either [self hosted ](https://github.com/Joystream/apps) or [hosted by Us](http://testnet.joystream.org/) \("App"\).
+
+## 1. Agreement to Terms
+
+By using this Software, the User are agreeing to be bound by this Agreement. If you are acting on behalf of another company or an employer, you must have the rights to act on their behalf.
+
+## 2. Changes to Terms
+
+This Agreement may be changed at the sole discretion of Company without notice. Your continued use of our Software is a confirmation of Users acceptance of the newest Agreement.
+
+## 3. Privacy Policy
+
+Please see our [privacy policy](https://joystream.org/privacy-cookies) \("Privacy Policy"\) for information regarding privacy.
+
+## 4. Membership
+
+By generating private/public cryptographic keys \("Keys"\) or applying for a membership account \("Membershp"\), you accept the risk of losing access to your Keys and Membership. Reasons include, but is not limited to: 1. Losing passwords 2. Losing recovery seeds or mnemonics 3. Deleting accounts and backups 4. Security breaches
+
+Under no circumstance will Company take any responsiblity for loss resulting of losing access to Membership or Keys.
+
+## 5. User Conduct
+
+By using any of Our Software, you agree to not state, write, link to, download, distribute, share or encourage other users to state, write, link to, download, distribute, share or encourage anything that: 1. breach or infringe any copyright or intellectual property of any third party. 2. is abusive, malicious, threatening or unlawful in any way.
+
+Company has not reviewed all content of this website, and is not responsible for content submitted or provided by individuals or groups not directly tied to them.
+
+## 6. Responsibilites and Risks
+
+In no event shall Company, its contractors, employees or owners be liable for any damage or loss of any kind to User arising out of the use or inability to use any Software made by Company.
+
+In no event shall Company, its contractors, employees or owners be liable for any damage or loss of any kind to User resulting of clicking links, following guides, using software or doing anything else recommended by Company.
+
+## 7. Governing Law
+
+These terms and conditions are governed by and construed in accordance with the laws of Norway.
+

+ 2 - 0
pioneer/packages/joy-proposals.md

@@ -0,0 +1,2 @@
+# Proposals module for Joystream node
+

+ 2 - 0
pioneer/packages/joy-roles.md

@@ -0,0 +1,2 @@
+# @polkadot/joy-roles
+

+ 41 - 0
pioneer/packages/joy-settings.md

@@ -0,0 +1,41 @@
+# @polkadot/ui-settings
+
+Manages app settings including endpoints, themes and prefixes
+
+## Usage Example
+
+User preferences are set as a settings object in the browser's local storage.
+
+```text
+import settings from '@polkadot/ui-settings';
+
+render () {
+  // get api endpoint for the selected chain
+  const WS_URL = settings.apiUrl();
+
+  // get the selected il8n language
+  const language = settings.il8nLang();
+
+  // get all available il8n languages
+  const languages = settings.availableLanguages();
+
+  // update settings
+  const updatedSettings = {
+    ...settings,
+    i18nLang: 'Arabic'
+  }
+  settings.set(updatedSettings);
+
+  // NOTE: API currently does not handle hot reconnecting properly,
+  so you need to manually reload the page after updating settings.
+  window.location.reload();
+}
+```
+
+## Used by
+
+Apps that currently use the settings package
+
+* \[polkadot-js/apps\]\('[https://www.github.com/polkadot-js/apps](https://www.github.com/polkadot-js/apps)'\)
+* [paritytech/substrate-light-ui](https://github.com/paritytech/substrate-light-ui)
+

+ 2 - 0
pioneer/packages/joy-storage.md

@@ -0,0 +1,2 @@
+# @polkadot/joy-actors
+

+ 2 - 0
pioneer/packages/joy-utils.md

@@ -0,0 +1,2 @@
+# Utils for Joystream node
+

+ 6 - 0
pioneer/packages/react-api.md

@@ -0,0 +1,6 @@
+# @polkadot/react-api
+
+WARNING: This is is not deemed stable yet for external use in React-based apps and still included in the [polkadot-js/apps](https://github.com/polkadot-js/apps) repo. Since these are generic HOC components for React, they will move to the [polkadot-js/ui](https://github.com/polkadot-js/ui) repo once deemed stable and usable by external projects.
+
+For the existing sharable components usable in external React-based projects, take a look at the [polkadot-js/ui documentation](https://polkadot.js.org/ui/)
+

+ 6 - 0
pioneer/packages/react-components.md

@@ -0,0 +1,6 @@
+# @polkadot/react-components
+
+WARNING: This is an internal package to [polkadot-js/apps](https://github.com/polkadot-js/apps) so is not inteded \(yet\) for broad use.
+
+For the existing sharable components usable in external React-based projects, take a look at the [polkadot-js/ui documentation](https://polkadot.js.org/ui/)
+

+ 6 - 0
pioneer/packages/react-params.md

@@ -0,0 +1,6 @@
+# @polkadot/react-params
+
+WARNING: This is an internal package to [polkadot-js/apps](https://github.com/polkadot-js/apps) so is not inteded \(yet\) for broad use.
+
+For the existing sharable components usable in external React-based projects, take a look at the [polkadot-js/ui documentation](https://polkadot.js.org/ui/)
+

+ 43 - 0
pioneer/packages/react-query.md

@@ -0,0 +1,43 @@
+# @polkadot/react-query
+
+WARNING: This is an internal package to [polkadot-js/apps](https://github.com/polkadot-js/apps) so is not inteded \(yet\) for broad use. Since these are generic components, they will move to the [polkadot-js/ui](https://github.com/polkadot-js/ui) repo once deemed stable and usable.
+
+For the existing sharable components usable in external React-based projects, take a look at the [polkadot-js/ui documentation](https://polkadot.js.org/ui/)
+
+## Overview
+
+A collection of RxJS enabled React components that operate with the [@polkadot/api-rx](https://github.com/polkadot-js/api) library. It automatically manages subscriptions on behalf of the developer, providing a number of unstyled components that can be used to construct UIs.
+
+## Usage
+
+Basic usage entails creating a `ContextProvider` and just using the components. For instance, to display the current node time,
+
+```javascript
+import React from 'react';
+import ReactDOM from 'react-dom';
+
+import { Api, NodeTime } from '@polkadot/react-query';
+
+...
+ReactDOM.render(
+  <Api>
+    <NodeTime />
+  </Api>,
+  document.querySelector('#container')
+);
+...
+```
+
+All components are provided unstyled making no assumptions on the actual use, however they all support \(optionally\) the `label`, `className` and `style` attributes, that can be used to style to component.
+
+```javascript
+...
+ReactDOM.render(
+  <Api>
+    <NodeTime className='rx-time' label='current node time:' />
+  </Api>,
+  document.querySelector('#container')
+);
+...
+```
+

+ 6 - 0
pioneer/packages/react-signer.md

@@ -0,0 +1,6 @@
+# @polkadot/react-signer
+
+WARNING: This is an internal package to [polkadot-js/apps](https://github.com/polkadot-js/apps) so is not inteded \(yet\) for broad use.
+
+For the existing sharable components usable in external React-based projects, take a look at the [polkadot-js/ui documentation](https://polkadot.js.org/ui/)
+

+ 2 - 0
query-node/README.md

@@ -0,0 +1,2 @@
+# query-node
+

+ 18 - 17
query-node/docs/README.md

@@ -1,27 +1,28 @@
-# Hydra Overview
+---
+description: 'Introducing Hydra, a GraphQL query node for substrate chains'
+---
 
-Hydra is a query node for Substrate-based blockains, which allows one to query and access data not
-directly available through RPC calls. For example, exprired Treasury spending proposals are pruned from the state of the Kusama blockchain (and that's of course how it should be), so quering say one year-old proposals is problematic. Indeed one has to inspect the old blocks and track the state of the proposals by looking at the events and extrinsics in each histroical block. This is exactly where Hydra get you covered, and, on top of that, it adds a convient GraphQL interface for rich data queries.
+# Overview
 
-Hydra adopts the schema-first approach. Define a strongly typed [schema](schema.md) for your data, describe in TypeScript how your data is affected by the events emitted by the blockchain and Hydra will generate a blockchain indexer and a full-fledged GraphQL server for you.
+Hydra is inspired by [TheGraph](http://thegraph.com/) protocol but targets Substrate chains.‌
 
-The project is inspired by TheGraph protocol built for Ethereum smart contracts.
+Hydra is a query node for Substrate-based blockchains. A query node ingests data from a substrate chain and provides rich, domain-specific, and highly customizable access to the blockchain data, far beyond the scope of direct RPC calls. For example, expired Kusama Treasury spending proposals are pruned from the state of the Kusama blockchain, so querying, say, one-year-old proposals becomes problematic. Indeed, one has to track the evolution of the state by sequentially applying the Treasury events and extrinsics in each historical block.
 
-- Let me try!
-- What is under the hood?
-- Examples
+This is exactly where Hydra gets you covered. Define your data model and the Hydra indexer will get it in sync with the chain. On top of that, you get a batteries-included GraphQL server with comprehensive filtering, pagination, and even full-text search capabilities. 
+
+## What's next?
+
+* [Hydra tutorial](../): spin a Hydra indexer and GraphQL server in under five minutes
+* 
 
-## Architecture
 
-Hydra query node consists of the following core parts:
+Hydra adopts the schema-first approach. Define a strongly typed [schema](https://github.com/dzhelezov/joystream/tree/f07cb27a73ec74292811648cee8a92d8fab3b6c9/query-node/docs/schema.md) for your data, describe in TypeScript how your data is affected by the events emitted by the blockchain and Hydra will generate a blockchain indexer and a full-fledged GraphQL server for you.
 
-- Blockchain [Indexer](indexer.md)
-- PostgreSQL (Data Storage)
-- GraphQL Server
-- GraphQL-like data [schema](schema.md) & event [mappings](mappings.md)
+* Let me try!
+* What is under the hood?
+* Examples
+
+## Architecture
 
-Hydra takes as an input a high-level GraphQL-like schema modelling the blockchain data ("entities") to be indexed. The mappings describe the event handlers telling the indexer how the blockchain events affect the schema entities.
 
-Once the schema and the mappings are set up, the Indexer prepares the database and starts the continuous scan of the blockchain, processing the events through the mappings and updating the entities in the database.
 
-The GraphQL Server is a separate web server providing a [GraphQL](https://graphql.org/) API for the entities in the data store. The API requests are resolved into database queries, providing quick access to the most recent state of the entities. It supports complex filtering, entity relations, pagination and text queries. Look [here](graphql-server.md) for more details.

+ 19 - 0
query-node/docs/architecture.md

@@ -0,0 +1,19 @@
+---
+description: A more in-depth look at how Hydra works under the hood
+---
+
+# Architecture
+
+A Hydra query node consists of the following core parts:
+
+* Blockchain [Indexer]()
+* PostgreSQL \(Data Storage\)
+* GraphQL Server
+* GraphQL-like data [schema](https://github.com/dzhelezov/joystream/tree/f07cb27a73ec74292811648cee8a92d8fab3b6c9/query-node/docs/schema.md) & event [mappings](https://github.com/dzhelezov/joystream/tree/f07cb27a73ec74292811648cee8a92d8fab3b6c9/query-node/docs/mappings.md)
+
+Hydra takes as an input a high-level GraphQL-like schema modeling the blockchain data \("entities"\) to be indexed. The mappings describe the event handlers telling the indexer how the blockchain events affect the schema entities.
+
+Once the schema and the mappings are set up, the Indexer prepares the database and starts the continuous scan of the blockchain, processing the events through the mappings and updating the entities in the database.
+
+The GraphQL Server is a separate web server providing a [GraphQL](https://graphql.org/) API for the entities in the data store. The API requests are resolved into database queries, providing quick access to the most recent state of the entities. It supports complex filtering, entity relations, pagination, and text queries.
+

+ 41 - 0
query-node/docs/install-hydra.md

@@ -0,0 +1,41 @@
+# Install Hydra
+
+## Prerequisites
+
+* Both Hydra-CLI and the generated project files have dependencies that require Node v10.16 or higher
+* `npm` and \(optional, but recommended\) [`npx`](https://www.npmjs.com/package/npx)
+* Hydra stores the substrate data in an external PostgresSQL 12 instance. The scaffolding tool provides a convenient shortcut for running the database instance from a Docker image. In this case the standard docker environment \(`docker` and `docker-compose`\) should be available.
+* \(Optional\) [Docker engine](https://docs.docker.com/engine/install/). The scaffolding tool provides targets for building Docker images for external deployment.
+
+## Installation
+
+_Global installation:_
+
+```bash
+npm install -g @joystream/hydra-cli
+```
+
+The path to `hydra-cli` binaries will be added to the system-wide `$PATH`.
+
+_Local installation:_
+
+```bash
+npm install @joystream/hydra-cli
+```
+
+The binaries will be installed to the local `.bin` folder. You can execute `hydra-cli` commands by adding the`.bin`folder within your local `node_modules` to `$PATH`.
+
+_Isolated set-up:_
+
+Execute `hydra-cli` commands directly by typing
+
+```bash
+npx @joystream/hydra-cli <command>
+```
+
+This provides an isolated way to execute `hydra-cli` commands.
+
+{% hint style="info" %}
+Run `hydra-cli --version` to check your installation
+{% endhint %}
+

+ 29 - 0
query-node/docs/mappings.md

@@ -0,0 +1,29 @@
+---
+description: Here we
+---
+
+# Mappings
+
+## Getting Super Powers
+
+Becoming a super hero is a fairly straight forward process:
+
+```
+$ give me super-powers
+```
+
+{% hint style="info" %}
+ Super-powers are granted randomly so please submit an issue if you're not happy with yours.
+{% endhint %}
+
+Once you're strong enough, save the world:
+
+{% code title="hello.sh" %}
+```bash
+# Ain't no code for that yet, sorry
+echo 'You got to trust me on this, I saved the world'
+```
+{% endcode %}
+
+
+

+ 56 - 61
query-node/docs/quick-start.md

@@ -1,109 +1,104 @@
-# Getting started
+---
+description: Build a Hydra Indexer and GraphQL server from scratch under five minutes
+---
 
-This guide provides step-by-step instructions on how to deploy a Hydra query node from scratch.
+# Tutorial
 
-## Prerequisites
+{% hint style="info" %}
+Before starting, make sure`hydra-cli`is [installed](install-hydra.md) on your machine together with all the prerequisites. 
+{% endhint %}
 
-- Both Hydra-CLI and the generated project files have dependencies that require Node v10.16 or higher
-
-- `npm` and (optional, but recommended) [`npx`](https://www.npmjs.com/package/npx)
-
-- Hydra stores the substrate data in an external PostgresSQL 12 instance. The scaffolding tool provides a convenient shortcut for running the database instance from a Docker image. In this case the standard docker environment (`docker` and `docker-compose`) should be available.
-
-- (Optional) [Docker engine](https://docs.docker.com/engine/install/). The scaffolding tool provides targets for building Docker images for external deployment.
-
-## Installation
-
-*Global installation:*
-
-```sh
-npm install -g @joystream/hydra-cli
-```
-
-The path to `hydra-cli` binaries will be added to the system-wide `$PATH`.
-
-*Local installation:*
-
-```sh
-npm install @joystream/hydra-cli
-```
-
-The binaries will be installed to the local `.bin` folder. You can execute `hydra-cli` commands by adding the `.bin` folder within your local `node_modules` to `$PATH`.
-
-*Isolated set-up:*
-
-Execute `hydra-cli` commands directly by typing
-
-```sh
-npx @joystream/hydra-cli <command>
-```
-
-This provides an isolated way to execute `hydra-cli` commands.
-
-## Hello-hydra project
+## 0. Hello Hydra!
 
 Start off by setting up a project folder
 
-```sh
+```bash
 mkdir hello-hydra && cd hello-hydra
 ```
 
+## 1. From zero to one
+
 Next, run the scaffold command, which generates all the required files:
 
-```sh
+```bash
 hydra-cli scaffold
 ```
 
-Answer the prompts and the scaffoder will generate a sample backbone for our Hydra project. This includes:
+Answer the prompts and the scaffolder will generate a sample backbone for our Hydra project. This includes:
 
-- Sample graphql data schema in `schema.graphql` describing proposals in the Kusama network
-  
-- Sample mapping scripts in the `mapping` folder translating substrate events into the `Proposal` entity CRUD operations
+* Sample GraphWL data [schema](schema-spec/) in `schema.graphql` describing proposals in the Kusama network
+* Sample [mapping](mappings.md) scripts in the `mapping` folder translating substrate events into the `Proposal` entity CRUD operations
+* `docker-compose.yml` for running a Postgres instance locally as a Docker service.
+* `.env` with all the necessary environment variables
 
-- `docker-compose.yml` for running a Postgres instance locally as a Docker service.
+## 2. Codegen
 
-- `.env` with all the necessary environment variables
+Now all is set for generating the Graphql server and the indexer for Kusama proposals:
 
-Now all is set for generating the graphql server and the indexer for Kusama proposals:
-
-```sh
+```bash
 hydra-cli codegen:all
 ```
 
-The codegen tool creates two separate projects:
+The codegen command creates two separate projects:
 
-- `./generated/graphql-server`: this is a GraphQL for quering the proposals
- 
-- `./generated/indexer`: this is a background indexer tool that fetches the blocks from the Substrate chain (in this case the public Kusama network) and updates the database calling the mapping scripts.
+* `./generated/graphql-server`: this is a GraphQL for querying the proposals
+* `./generated/indexer`: this is a background indexer tool that fetches the blocks from the Substrate chain \(in this case the public Kusama network\) and updates the database calling the mapping scripts.
 
+## 3. Set up the database
 
 Now it's time to set up the database:
 
-```sh
+```bash
 hydra-cli db:start
 ```
 
 This command simply spins up a Postgres Docker image.
 
-```sh
+```bash
 hydra-cli db:bootstrap
 ```
 
 This creates a DB schema for our data model described in `schema.graphql`.
 
+## 4. Start Hydra Indexer
+
 Finally, we're ready to run the indexer and the GraphQL server:
 
-```sh
+```bash
 hydra-cli indexer:start
 ```
 
+Keep an eye on the output to keep track of the indexer's progress.
+
+## 5. Start Hydra GraphQL server
+
 In a separate terminal window:
 
-```sh
+```bash
 hydra-cli server:start:dev
 ```
 
-The last command starts the server in the dev mode, so that the GraphQL playground at `localhost:4000/graphql` opens up. It's time to explore all the GraphQL queries supported out-of-the box! Note, that it takes considerable time before the indexer processes all the outstanding blocks of the Kusama network, so it will take a while before the queries return non-empty results.
+The last command starts the server in the dev mode and you will see a GraphQL playground opening in your browser \(if not, navigate manually to `localhost:4000/graphql`\). It's time to explore all the GraphQL queries supported out-of-the-box! Note, that depending on the starting block it may take a considerable time for the indexer to catch up with the Kusama network, and until then queries may return empty results.
+
+## 6. Dockerize
+
+Among other things, the scaffolder generates a top-level `package.json`with a bunch of convenient `yarn` targets. For example, putting your Hydra Indexer and GraphQL server is easy as running the following targets:
+
+```bash
+yarn docker:indexer:build
+```
+
+```bash
+yarn docker:server:build
+```
+
+This will create Docker images named `hydra-indexer` and `hydra-graphql-server`
+
+## What to do next?
+
+* Describe your own [schema](schema-spec/) in `schema.graphql`
+* Write your indexer [mappings](mappings.md)
+* Push your Hydra indexer and GraphQL Docker images to [Docker Hub](https://hub.docker.com/) and deploy  
+
 
-## What's next?
 

+ 20 - 0
query-node/docs/schema-spec/README.md

@@ -0,0 +1,20 @@
+---
+description: >-
+  The schema file describes your domain objects, relationships and the supported
+  queries.
+---
+
+# Schema
+
+## Overview
+
+The query node schema is a graphql schema file encriched with directives explained below. The schema is used by `cli codegen` in order to generate a GraphQL API server for quering the substrate blockchain data.
+
+## Entities
+
+TBD
+
+## Derivatives
+
+TBD
+

+ 140 - 0
query-node/docs/schema-spec/entity-relationship.md

@@ -0,0 +1,140 @@
+# GraphQL Entity Relationships
+
+### One-To-One \(1:1\) Relationships
+
+In One-To-One relation, one entity instance is related to only one instance of another entity. One side of the relationship should always derive.
+
+```graphql
+type User @entity {
+    name: String!
+    profile: Profile! @derivedFrom(field: "user")
+}
+
+type Profile @entity {
+    avatar: String!
+    user: User!
+}
+```
+
+Database tables:
+
+```text
+          user
+| Column  | Type
+----------|-------
+| id      | character varying
+| name    | character varying
+```
+
+```text
+          profile
+| Column  | Type
+----------|-------
+| id      | character varying
+| avatar  | character varying
+| userId  | character varying FOREIGN KEY UNIQUE CONSTRAINT
+```
+
+### One-To-Many \(1:n\) Relationships
+
+In One-To-Many relation, one entity instance is related to multiple instance of the other entity.
+
+```graphql
+type User @entity {
+    name: String
+}
+
+type Post @entity {
+    title: String
+    author: User!
+}
+```
+
+Database table for the `Post` entity:
+
+```text
+          post
+| Column  | Type
+----------|-------
+| id      | character varying
+| avatar  | character varying
+| authorId  | character varying FOREIGN KEY
+```
+
+The only difference between `1:1` and `1:n` is the unique constraint that `1:1` has.
+
+### Many-To-Many \(n:n\) Relationships
+
+Many-To-Many is a relationship where one entity instance is related to many instance of other entity and vice-versa. In this relationship one side of the relation must derive.
+
+```graphql
+type User @entity {
+    name: String
+    books: [Book!] @derivedFrom(field: "authors")
+}
+
+type Book @entity {
+    title: String
+    authors: [User!]
+}
+```
+
+A junction table is created for n:n relationship.
+
+Database tables:
+
+```text
+          book
+| Column  | Type
+----------|-------
+| id      | character varying
+| title   | character varying
+```
+
+```text
+          book_user
+| Column  | Type
+----------|-------
+| book_id | character varying
+| user_id | character varying
+```
+
+### Reverse Lookups
+
+Defining reverse lookups on an entity allows you to query other side of the relation. Use `@derivedFrom` directive to add reverse lookup to an entity.
+
+**Example** If we want to access a user's `posts` from the user entity we should add a derived field to `User` entity:
+
+```graphql
+type User @entity {
+    name: String
+    posts: [Post!] @derivedField(field: "author")
+}
+
+type Post @entity {
+    title: String
+    author: User!
+}
+```
+
+## Relationships In Mappings
+
+Each GraphQL entity has a corresponding typeorm entity and we use these entities to perform CRUD operations.
+
+**Example**
+
+We will create a new post for an existing user:
+
+```typescript
+export async function handleNewPost(db: DB, event: SubstrateEvent) {
+    const { userId, title } = event.params;
+    const user = await db.get(User, { where: { id: userId } });
+
+    const newPost = new Post();
+    newPost.title = title;
+    newPost.author = user;
+
+    db.save<Post>(newPost);
+}
+```
+

+ 2 - 0
query-node/examples/README.md

@@ -0,0 +1,2 @@
+# examples
+

+ 2 - 0
query-node/examples/kusama-query-node.md

@@ -0,0 +1,2 @@
+# kusama-query-node
+

+ 145 - 0
query-node/joystream-query-node.md

@@ -0,0 +1,145 @@
+# Joystream Query Node
+
+Joystream query node can be generated by using `substrate-query-node/cli`.
+
+## Getting Started
+
+Cli create a folder named `generated` and put everthing inside it.
+
+```text
+$ cli codegen
+```
+
+Start graphql server:
+
+```text
+$ cd generated/graphql-server
+$ yarn start:dev
+```
+
+Start block indexer:
+
+```text
+$ cd generated/indexer
+$ yarn start
+```
+
+## Add a new mapping for Joystream MemberRegistered event
+
+1. Every mapping function get a parameter of `DB` type
+
+```typescript
+import { DB } from '../generated/indexer';
+```
+
+1. `db` object is for database operations save/get/remove and access to event itself
+2. Define the event handler function with the following signature and import the entity class
+
+```typescript
+import { MemberRegistereds } from '../generated/indexer/entities/MemberRegistereds';
+export async function handleMemberRegistered(db: DB) {}
+```
+
+1. Inside the handler function create a new instance of the entity and fill properties with event data.
+
+```typescript
+// Get event data
+const { AccountId, MemberId } = db.event.event_params;
+const member = new MemberRegistereds({ accountId: AccountId.toString(), memberId: +MemberId });
+```
+
+1. Call `db.save()` method to save data on database
+
+```typescript
+// Save to database.
+db.save<MemberRegistereds>(member);
+```
+
+1. Query database
+
+```typescript
+// Query from database
+const findOptions = { where: { memberId: 123 } }; // match the record
+const m = await db.get(MemberRegistereds, findOptions);
+```
+
+Below you can find the complete code
+
+**Complete code**
+
+```typescript
+import { MemberRegistereds } from "../generated/indexer/entities/MemberRegistereds";
+import { DB } from "../generated/indexer";
+
+export async function handleMemberRegistered(db: DB) {
+  // Get event data
+  const { AccountId, MemberId } = db.event.event_params;
+
+  const member = new MemberRegistereds({ accountId: AccountId.toString(), memberId: +MemberId };
+
+  // Save to database.
+  db.save<MemberRegistereds>(member);
+
+  // Query from database
+  const m = await db.get(MemberRegistereds, { where: { memberId: 123 } });
+}
+```
+
+## Query Node Constructs Explained
+
+1. `schema.graphql` is where you define types for graphql server. Graphql server use these types to generate db models, db tables, graphql resolvers.
+
+Below you can find a type defination example:
+
+```graphql
+type Membership {
+  # Member's root account id
+  accountId: String!
+
+  # Member's id
+  memberId: Int!
+
+  # The unique handle chosen by member
+  handle: String
+
+  # A Url to member's Avatar image
+  avatarUri: String
+
+  # Short text chosen by member to share information about themselves
+  about: String
+}
+```
+
+**Important** Relationship between types not supported yet!
+
+1. Block indexer is block consumer and every block can have events that we want to store their data. So indexing data from events we need to send the event to a function or a class that can handle the event and stores the event data on the database. `mappings` are the functions that we use to update our database with events data. Functions that we define in our mappings will be called only when the event name match our function name \(function name pattern is `'handle' + eventName`\). We call mapping functions as event handlers. Each event handler have only one parameter which is the `db: DB`. Every database operation is made with `db` object and the event can be accessed with `db` object. Below you can find an example for the event a handler:
+
+```typescript
+// mappings/index.ts
+
+import { DB } from '../generated/indexer';
+
+export function handleMemberRegistered(db: DB) {
+  console.log(`Event parameters: ${db.event.event_params}`);
+}
+```
+
+1. Block indexer connects to a blockchain node via WebSocket so we need to tell block indexer where to find the address of the node. Also, on the initialization of the indexer, we must pass the type register function as a parameter. So we put these variables inside the `.env` file that indexer can find and use them. For Joystream we will be running a local development node and add the name of the function, the package for the type registration:
+
+```text
+WS_PROVIDER_ENDPOINT_URI=ws://localhost:9944
+TYPE_REGISTER_PACKAGE_NAME=@joystream/types
+TYPE_REGISTER_FUNCTION=registerJoystreamTypes
+```
+
+1. Database connections options are defined in `.env`:
+
+```text
+DB_NAME=test
+DB_USER=postgres
+DB_PASS=postgres
+DB_HOST=localhost
+DB_PORT=5432
+GRAPHQL_SERVER_PORT=4000
+```
+

+ 3 - 2
query-node/substrate-query-framework/README.md

@@ -6,10 +6,11 @@ This repository is a package that you can use to build a query node. It contains
 
 Block indexer store event data into a postgresql database. You can run the database with docker.
 
-```
+```text
 $ docker-compose up -d
 ```
 
 ## CLI Tool
 
-CLI generates a GraphQL Server and a Block Indexer for Substrate based chains. How to use CLI [CLI](./cli/README.md)
+CLI generates a GraphQL Server and a Block Indexer for Substrate based chains. How to use CLI [CLI](cli/)
+

+ 14 - 13
query-node/substrate-query-framework/cli/README.md

@@ -4,13 +4,13 @@ Create query node for substrate based chains.
 
 USAGE
 
-```
+```text
 $ cli [COMMAND]
 ```
 
 COMMANDS
 
-```
+```text
 codegen   Generate graphql server and block indexer ready to run
 ```
 
@@ -18,13 +18,13 @@ codegen   Generate graphql server and block indexer ready to run
 
 Start use CLI by navigate `query-node/substrate-query-node/cli` directory then:
 
-```
+```text
 $ ./bin/run [COMMAND]
 ```
 
 or
 
-```
+```text
 $ yarn link
 $ cli [COMMAND]
 ```
@@ -33,10 +33,10 @@ $ cli [COMMAND]
 
 CLI generates a grapqh server and a substrate block indexer.
 
-- Graphql server uses warthog underneath and generate `model/resolver/service` from the schema you will define in the current working directory (cwd). Before starting code generation make sure you have a file named `schema.json` inside the cwd and at least one type defination inside it. Later we will see an example how to add a new type defination to our schema.
-- Block indexer consumes produced blocks from a substrate based chain. Before running code generation make sure you have `.env` file inside the cwd, and `mappings` directory with `index.ts`. Which must have variables below with appropriate values:
+* Graphql server uses warthog underneath and generate `model/resolver/service` from the schema you will define in the current working directory \(cwd\). Before starting code generation make sure you have a file named `schema.json` inside the cwd and at least one type defination inside it. Later we will see an example how to add a new type defination to our schema.
+* Block indexer consumes produced blocks from a substrate based chain. Before running code generation make sure you have `.env` file inside the cwd, and `mappings` directory with `index.ts`. Which must have variables below with appropriate values:
 
-```
+```text
 WS_PROVIDER_ENDPOINT_URI=<provider>    # e.g ws://localhost:9944
 TYPE_REGISTER_PACKAGE_NAME=<packname>  # name of the package to import TYPE_REGISTER_FUNCTION
 TYPE_REGISTER_FUNCTION=<register_type> # name of the function that will called for type registration
@@ -44,10 +44,10 @@ TYPE_REGISTER_FUNCTION=<register_type> # name of the function that will called f
 
 Typical your cwd should look like this:
 
-```
+```text
 ├── .env
 ├── mappings
-│   ├── index.ts
+│   ├── index.ts
 └── schema.json
 ```
 
@@ -59,22 +59,23 @@ Run cli inside the directory where you put `mappings`, `.env`, `schema.json`.
 
 Cli create a folder named `generated` and put everthing inside it.
 
-```
+```text
 $ cli codegen
 ```
 
 Start graphql server:
 
-```
+```text
 $ cd generated/graphql-server
 $ yarn start:dev
 ```
 
 Start block indexer:
 
-```
+```text
 $ cd generated/indexer
 $ yarn start
 ```
 
-Looking for an existing example check out: [joystream-query-node](../../joystream-query-node)
+Looking for an existing example check out: [joystream-query-node](../../joystream-query-node.md)
+

+ 2 - 0
query-node/substrate-query-framework/cli/bin/README.md

@@ -0,0 +1,2 @@
+# bin
+

+ 6 - 0
query-node/substrate-query-framework/cli/bin/run.md

@@ -0,0 +1,6 @@
+# run
+
+@echo off
+
+node "%~dp0\run" %\*
+

+ 2 - 0
runtime/README.md

@@ -0,0 +1,2 @@
+# runtime
+

+ 57 - 0
runtime/changelog.md

@@ -0,0 +1,57 @@
+# CHANGELOG
+
+## Version 6.15.0 - Constantinople runtime upgrade A - June 2020
+
+* Updated runtime to sort out type name clashes between the proposal discussion module
+
+  and forum module, in preparing to roll out proposal discussion system in pioneer.
+
+* Increased ROLE\_PARAMETERS\_REWARD\_MAX\_VALUE to 100,000
+
+## Version 6.13.0 - \(Constantinople\) runtime upgrade - May 20th 2020
+
+* New proposal system that strengthens the governance structure of the platform
+* Adjusted inflation curve to better reflect a new realistic economic system for the platform
+
+## Version 6.8.0 \(Rome release - new chain\) - March 9th 2020
+
+* New versioned and permissioned content mangement system that powers a new media experience.
+* Content Working Group - introduces staked content curator roles to maintain quality of content and ensure that is meets the platform's terms of service.
+* Update of core substrate to pre-release of version 2.0 - [c37bb08](https://github.com/paritytech/substrate/commit/c37bb08535c49a12320af7facfd555ce05cce2e8)
+
+## Version 5.4.0 \(Acropolis\) - Athens testnet update 3 - June 22n 2019
+
+* New Forum - v1.0.0
+* Discovery Service to support new Storage Provider implementation.
+* Removing all previously uploaded content
+
+## Version 5.3.0 - Athens testnet update 2 - April 27th 2019
+
+* Fix to configure an onchain primary storage provider liason to work around incomplete storage server implementation.
+
+## Version 5.2.0 - Athens testnet update 1 - April 17th 2019
+
+* Fix account locking for staked roles to allow storage providers to submit transaction
+* Update substrate version to `6dfc3e8b057bb00322136251a0f10305fbb1ad8f` from v1 branch
+
+## Version 5.1.0 - Athens testnet release - April 14th 2019
+
+* Storage Role
+* Update to substrate version at `89bbb7b6d0e076f0eda736b330f5f792aa2e2991`
+
+## Version 4 - Bug Fixes - March 4th 2019 - `9941dd`
+
+* Allow illiquid accounts to pay transaction fees. Fixes unstaking and setting memo, by permitting extrinsics which do not require more than a transaction fee to be accepted into mempool.
+* Updated Cargo dependencies to use forked substrate repo `github.com/joystream/substrate`
+
+  On-chain runtime upgrade performed with sudo `consensus::setCode()`
+
+## Version 3 - Sparta - March 1st 2019 - `1ca4cc`
+
+* Basic substrate node - based on substrate `1ca4cc0a16a357782bb1028bb57376594ca232a0`
+* Block Authoring - only Aura \(enabling GRANDPA in future release\)
+* Council Elections
+* Council Runtime upgrade proposal
+* Simple PoS validator staking
+* Memo \(account status message\)
+

+ 59 - 0
types.md

@@ -0,0 +1,59 @@
+# @joystream/types
+
+The types package is required to register the custom Substrate runtime types when working with [`@polkadot/api`](https://www.npmjs.com/package/@polkadot/api#registering-custom-types) to communicate with a Joystream full node.
+
+## Installation
+
+Add the package as a dependency in your project.
+
+```text
+yarn add @joystream/types
+
+# or
+
+npm install --save @joystream/types
+```
+
+## Registering the types
+
+Call `registerJoystreamTypes()` before creating a Polkadot API client.
+
+```javascript
+import { registerJoystreamTypes } from '@joystream/types';
+import { ApiPromise, WsProvider } from '@polkadot/api';
+
+async function main () {
+  // Initialise the provider to connect to the local node
+  const provider = new WsProvider('ws://127.0.0.1:9944');
+
+  // Register types before creating the API
+  registerJoystreamTypes();
+
+  // Create the API and wait until ready
+  const api = await ApiPromise.create(provider);
+
+  // Retrieve the chain & node information information via RPC calls
+  const [chain, nodeName, nodeVersion] = await Promise.all([
+    api.rpc.system.chain(),
+    api.rpc.system.name(),
+    api.rpc.system.version()
+  ]);
+
+  console.log(`Chain ${chain} using ${nodeName} v${nodeVersion}`);
+}
+
+main();
+```
+
+## Publishing Instructions
+
+The package is published with typescipt sources pre-compiled, automated with prepublish hook in package.json
+
+```text
+npm publish
+```
+
+## Users
+
+See [joystream-api-examples](https://github.com/Joystream/joystream-api-examples) for some additional examples on usage.
+

Vissa filer visades inte eftersom för många filer har ändrats