Update Local Development docs to use Makefile (#105)

* Update Local Development docs to use Makefile

* Update Makefile per @athei

Co-authored-by: Alexander Theißen <alex.theissen@me.com>

Co-authored-by: Alexander Theißen <alex.theissen@me.com>
main
Dan Forbes 2020-11-17 10:12:58 -08:00 committed by GitHub
parent aa444e2413
commit 655bfdc6fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 68 additions and 44 deletions

19
Makefile 100644
View File

@ -0,0 +1,19 @@
.PHONY: init
init:
./scripts/init.sh
.PHONY: check
check:
SKIP_WASM_BUILD=1 cargo check
.PHONY: test
test:
SKIP_WASM_BUILD=1 cargo test --all
.PHONY: run
run:
WASM_BUILD_TOOLCHAIN=nightly-2020-10-05 cargo run --release -- --dev --tmp
.PHONY: build
build:
WASM_BUILD_TOOLCHAIN=nightly-2020-10-05 cargo build --release

View File

@ -2,42 +2,70 @@
A new FRAME-based Substrate node, ready for hacking :rocket:
## Local Development
## Getting Started
Follow these steps to prepare a local Substrate development environment :hammer_and_wrench:
This project contains some configuration files to help get started :hammer_and_wrench:
### Setup
### Rust Setup
Setup instructions can be found at the
[Substrate Developer Hub](https://substrate.dev/docs/en/knowledgebase/getting-started).
Setup instructions for working with the [Rust](https://www.rust-lang.org/) programming language can
be found at the
[Substrate Developer Hub](https://substrate.dev/docs/en/knowledgebase/getting-started). Follow those
steps to install [`rustup`](https://rustup.rs/) and configure the Rust toolchain to default to the
latest stable version.
### Makefile
This project uses a [Makefile](Makefile) to document helpful commands and make it easier to execute
them. Get started by running these [`make`](https://www.gnu.org/software/make/manual/make.html)
targets:
1. `make init` - Run the [init script](scripts/init.sh) to configure the Rust toolchain for
[WebAssembly compilation](https://substrate.dev/docs/en/knowledgebase/getting-started/#webassembly-compilation).
1. `make run` - Build and launch this project in development mode.
The init script and Makefile both specify the version of the
[Rust nightly compiler](https://substrate.dev/docs/en/knowledgebase/getting-started/#rust-nightly-toolchain)
that this project depends on.
### Build
Once the development environment is set up, build the node template. This command will build the
[Wasm](https://substrate.dev/docs/en/knowledgebase/advanced/executor#wasm-execution) and
[native](https://substrate.dev/docs/en/knowledgebase/advanced/executor#native-execution) code:
The `make run` command will perform an initial build. Use the following command to build the node
without launching it:
```bash
WASM_BUILD_TOOLCHAIN=nightly-2020-10-05 cargo build --release
```sh
make build
```
### Embedded Docs
Once the project has been built, the following command can be used to explore all parameters and
subcommands:
```sh
./target/release/node-template -h
```
## Run
### Single Node Development Chain
The `make run` command will launch a temporary node and its state will be discarded after you
terminate the process. After the project has been built, there are other ways to launch the node.
Purge any existing dev chain state:
### Single-Node Development Chain
```bash
./target/release/node-template purge-chain --dev
```
Start a dev chain:
This command will start the single-node development chain with persistent state:
```bash
./target/release/node-template --dev
```
Or, start a dev chain with detailed logging:
Purge the development chain's state:
```bash
./target/release/node-template purge-chain --dev
```
Start the development chain with detailed logging:
```bash
RUST_LOG=debug RUST_BACKTRACE=1 ./target/release/node-template -lruntime=debug --dev

View File

@ -5,8 +5,10 @@ set -e
echo "*** Initializing WASM build environment"
if [ -z $CI_PROJECT_NAME ] ; then
rustup install nightly-2020-10-05
rustup update nightly
rustup update nightly-2020-10-05
rustup update stable
fi
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32-unknown-unknown --toolchain nightly-2020-10-05

View File

@ -1,25 +0,0 @@
let
mozillaOverlay =
import (builtins.fetchGit {
url = "https://github.com/mozilla/nixpkgs-mozilla.git";
rev = "57c8084c7ef41366993909c20491e359bbb90f54";
});
nixpkgs = import <nixpkgs> { overlays = [ mozillaOverlay ]; };
rust-nightly = with nixpkgs; ((rustChannelOf { date = "2020-10-05"; channel = "nightly"; }).rust.override {
targets = [ "wasm32-unknown-unknown" ];
});
in
with nixpkgs; pkgs.mkShell {
buildInputs = [
clang
cmake
pkg-config
rust-nightly
] ++ stdenv.lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
];
LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
PROTOC = "${protobuf}/bin/protoc";
ROCKSDB_LIB_DIR = "${rocksdb}/lib";
}