Forked from Joystream/joystream https://github.com/Joystream/joystream

Shamil Gadelshin 1c57becf00 Apply rustfmt 5 yıl önce
runtime-modules 4035df5df9 Merge remote-tracking branch 'joystream/monorepo' into monorepo 5 yıl önce
src 1c57becf00 Apply rustfmt 5 yıl önce
.dockerignore 5f62c3d0e2 update docker files 5 yıl önce
.gitignore 013d30d6c1 Prepare Cargo.toml files 5 yıl önce
.travis.yml 0109c6d189 travis 5 yıl önce
CHANGELOG.md d57bdf16ae initial commit - runtime spec version 4 6 yıl önce
Cargo.lock 4d108f1286 Fix modules tests 5 yıl önce
Cargo.toml 02e434d3ca Fix Cargo.tomls 5 yıl önce
README.md cea591183d Update README.md 5 yıl önce
banner.svg fa9c2dcb12 add banner to README 5 yıl önce
banner_new.svg edc289d3fd Added new repo cover 5 yıl önce
build-with-docker.sh 2871d6dd75 update docker build 5 yıl önce
build.rs 0e471a1dd1 Merge branch 'development' into use-polkadot-master-substrate-version 5 yıl önce
runtime_dockerfile 5f62c3d0e2 update docker files 5 yıl önce
setup.sh 63950dd1fe add new docker files 5 yıl önce
wasm_dockerfile 5f62c3d0e2 update docker files 5 yıl önce

README.md

Joystream Runtime

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. Full nodes execute the code's logic to validate transactions and blocks on the blockchain.

The joystream runtime builds on substrate v1.0 and adds additional functionality:

Prerequisites

To compile the runtime you will need some tools such as: Rust, llvm and openssl. You can install most of the dependencies with:

curl https://getsubstrate.io -sSf | bash -s -- --fast

Getting Started - Building the WASM runtime

git clone https://github.com/Joystream/substrate-runtime-joystream
cd substrate-runtime-joystream/
./setup.sh
cargo build --release

This produces the WASM "blob" output in:

target/release/wbuild/joystream-node-runtime/joystream_node_runtime.compact.wasm

See deployment for notes on how to deploy this runtime on a live system.

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 conesnsus::setCode(). This can be done either from the UI/extrinsics app, or directly with an admin script.

Running the tests

cargo test

Coding style

We use rustfmt to format the source code for consistency.

rustfmt can be installed with rustup:

rustup component add rustfmt

Running rustfmt can be applied to all source files recursing subfolders:

rustfmt src/*.*

Built With

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

Versioning of the runtime is set in src/lib.rs For detailed information about how to set correct version numbers when developing a new runtime, see this

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the GPLv3 License - see the LICENSE file for details

Acknowledgments

Thanks to the whole Parity Tech team for making substrate and helping on riot chat with tips, suggestions, tutorials and answering all our questions during development.