|
@@ -1,8 +1,6 @@
|
|
|
# Joystream [](https://travis-ci.org/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.
|
|
|
-
|
|
|
-The repository is currently just a cargo workspace, but eventually will also contain yarn workspaces, and possibly other project type workspaces.
|
|
|
+This is the main code repository for all Joystream software. In the repository you will find all the software required to run a Joystream network: The Joystream full node, 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.
|
|
|
|
|
|
## Build Status
|
|
|
|
|
@@ -15,141 +13,79 @@ More detailed build history on [Travis CI](https://travis-ci.org/github/Joystrea
|
|
|
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.
|
|
|
|
|
|
+## Development
|
|
|
+Instructions on setting up software development tools
|
|
|
+rust toolchain / rustup
|
|
|
+yarn and node
|
|
|
+docker
|
|
|
+ansible
|
|
|
|
|
|
-## Validator
|
|
|
-
|
|
|
+configuring VSCode workspace settings put it in devops/vscode/settings.json
|
|
|
+simple script copy to root .vscode/ if doesn't exist.. one time setup? or more advanced
|
|
|
+to update it when new eslint project paths are added?
|
|
|
|
|
|
-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.
|
|
|
+running setup.sh
|
|
|
+any other scripts?
|
|
|
|
|
|
-To setup a full node and validator review the [advanced guide from the helpdesk](https://github.com/Joystream/helpdesk/tree/master/roles/validators).
|
|
|
+yarn install
|
|
|
+git hooks
|
|
|
|
|
|
+### Branching model
|
|
|
|
|
|
-### Pre-built Binaries
|
|
|
+### Contributing
|
|
|
+PRs
|
|
|
+code-style, linting
|
|
|
|
|
|
-The latest pre-built binaries can be downloaded from the [releases](https://github.com/Joystream/joystream/releases) page.
|
|
|
+### Licence
|
|
|
|
|
|
+### Software Components
|
|
|
|
|
|
-### Building from source
|
|
|
+#### Blockchain infrastructure
|
|
|
+Joystream Node - Full node
|
|
|
+Runtime
|
|
|
+Runtime modules
|
|
|
|
|
|
-Clone the repository and install build tools:
|
|
|
+### Server Applications
|
|
|
|
|
|
-```bash
|
|
|
-git clone https://github.com/Joystream/joystream.git
|
|
|
+### Client Applications
|
|
|
|
|
|
-cd joystream/
|
|
|
+### Tools
|
|
|
|
|
|
-./setup.sh
|
|
|
-```
|
|
|
|
|
|
-### Building
|
|
|
+## Current Active testnet
|
|
|
+To test your setup, lets join the current live testnet..
|
|
|
+Current Live testnet - Rome chain
|
|
|
|
|
|
-```bash
|
|
|
-cargo build --release
|
|
|
-```
|
|
|
+## Exploring the network with Pioneer
|
|
|
+git checkout master
|
|
|
+- visit https://testnet.joystream.org
|
|
|
+- run local version of pioneer
|
|
|
+ build pioneer open local
|
|
|
|
|
|
-### Running a public node on the Rome testnet
|
|
|
+## Running a local full node
|
|
|
+git chekout master
|
|
|
+build from source or pre-built binaries?
|
|
|
+copy chainspec.json from releases into testnets/chains/current ->
|
|
|
+include archival pruning mode so proposals pages works correctly
|
|
|
+then redirect pioneer to point at local node
|
|
|
|
|
|
Run the node and connect to the public testnet.
|
|
|
|
|
|
```bash
|
|
|
-cargo run --release -- --chain ./rome-testnet.json
|
|
|
+cargo run --release -- --chain ./testnets/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)
|
|
|
|
|
|
+[More details](node/README.md)
|
|
|
|
|
|
-### 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
|
|
|
-cargo install joystream-node --path node/
|
|
|
-```
|
|
|
-
|
|
|
-Now you can run
|
|
|
-
|
|
|
-```bash
|
|
|
-joystream-node --chain ./rome-testnet.json
|
|
|
-```
|
|
|
-
|
|
|
-### Local development
|
|
|
-
|
|
|
-This will build and run a fresh new local development chain purging existing one:
|
|
|
-
|
|
|
-```bash
|
|
|
-./scripts/run-dev-chain.sh
|
|
|
-```
|
|
|
-
|
|
|
-### Unit tests
|
|
|
-
|
|
|
-```bash
|
|
|
-cargo test
|
|
|
-```
|
|
|
-
|
|
|
-### Network tests
|
|
|
-
|
|
|
-```bash
|
|
|
-./scripts/run-test-chain.sh
|
|
|
-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.
|
|
|
-
|
|
|
-### 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`).
|
|
|
-
|
|
|
-```bash
|
|
|
-yarn test-migration
|
|
|
-```
|
|
|
-
|
|
|
-## Joystream Runtime
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-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.
|
|
|
-
|
|
|
-### 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)
|
|
|
-
|
|
|
-
|
|
|
-## Coding style
|
|
|
-
|
|
|
-We use `cargo-fmt` to format the source code for consistency.
|
|
|
-
|
|
|
-It should be available on your machine if you ran the `setup.sh` script, otherwise install it with rustup:
|
|
|
-
|
|
|
-```bash
|
|
|
-rustup component add rustfmt
|
|
|
-```
|
|
|
-
|
|
|
-Applying code formatting on all source files recursing subfolders:
|
|
|
-
|
|
|
-```
|
|
|
-cargo-fmt
|
|
|
-```
|
|
|
+[Link to more advanced guides on participating on network](blog post/guides?)
|
|
|
|
|
|
## 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 guidelines](./CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.
|
|
|
+
|
|
|
+Link to github issue on branching model?
|
|
|
|
|
|
## Authors
|
|
|
|