Skip to content
Snippets Groups Projects
Commit 1e263062 authored by Éloïs's avatar Éloïs
Browse files

doc(README): precise how to launch local testnet

parent 55e150a7
No related branches found
No related tags found
No related merge requests found
...@@ -71,6 +71,42 @@ CAUTION: In order for **Polkadot-JS Apps** to be able to fully understand the in ...@@ -71,6 +71,42 @@ CAUTION: In order for **Polkadot-JS Apps** to be able to fully understand the in
If you want to see the multi-node consensus algorithm in action, refer to If you want to see the multi-node consensus algorithm in action, refer to
[our Start a Private Network tutorial](https://substrate.dev/docs/en/tutorials/start-a-private-network/). [our Start a Private Network tutorial](https://substrate.dev/docs/en/tutorials/start-a-private-network/).
### Purge previous lacal testnet
```
./target/release/lc-core purge-chain --base-path /tmp/alice --chain local
./target/release/lc-core purge-chain --base-path /tmp/bob --chain local
```
### Start Alice's node
```bash
./target/release/lc-core \
--base-path /tmp/alice \
--chain local \
--alice \
--port 30333 \
--ws-port 9945 \
--rpc-port 9933 \
--node-key 0000000000000000000000000000000000000000000000000000000000000001 \
--validator
```
### Start Bob's node
```bash
./target/release/lc-core \
--base-path /tmp/bob \
--chain local \
--bob \
--port 30334 \
--ws-port 9946 \
--rpc-port 9934 \
--validator \
--bootnodes /ip4/127.0.0.1/tcp/30333/p2p/12D3KooWEyoppNCUx8Yx66oV9fJnriXwCcXwDDUA2kj6vnc6iDEp
```
## Project Structure ## Project Structure
A Substrate project such as this consists of a number of components that are spread across a few A Substrate project such as this consists of a number of components that are spread across a few
...@@ -81,34 +117,34 @@ directories. ...@@ -81,34 +117,34 @@ directories.
A blockchain node is an application that allows users to participate in a blockchain network. A blockchain node is an application that allows users to participate in a blockchain network.
Substrate-based blockchain nodes expose a number of capabilities: Substrate-based blockchain nodes expose a number of capabilities:
- Networking: Substrate nodes use the [`libp2p`](https://libp2p.io/) networking stack to allow the - Networking: Substrate nodes use the [`libp2p`](https://libp2p.io/) networking stack to allow the
nodes in the network to communicate with one another. nodes in the network to communicate with one another.
- Consensus: Blockchains must have a way to come to - Consensus: Blockchains must have a way to come to
[consensus](https://substrate.dev/docs/en/knowledgebase/advanced/consensus) on the state of the [consensus](https://substrate.dev/docs/en/knowledgebase/advanced/consensus) on the state of the
network. Substrate makes it possible to supply custom consensus engines and also ships with network. Substrate makes it possible to supply custom consensus engines and also ships with
several consensus mechanisms that have been built on top of several consensus mechanisms that have been built on top of
[Web3 Foundation research](https://research.web3.foundation/en/latest/polkadot/NPoS/index.html). [Web3 Foundation research](https://research.web3.foundation/en/latest/polkadot/NPoS/index.html).
- RPC Server: A remote procedure call (RPC) server is used to interact with Substrate nodes. - RPC Server: A remote procedure call (RPC) server is used to interact with Substrate nodes.
There are several files in the `node` directory - take special note of the following: There are several files in the `node` directory - take special note of the following:
- [`chain_spec.rs`](./node/src/chain_spec.rs): A - [`chain_spec.rs`](./node/src/chain_spec.rs): A
[chain specification](https://substrate.dev/docs/en/knowledgebase/integrate/chain-spec) is a [chain specification](https://substrate.dev/docs/en/knowledgebase/integrate/chain-spec) is a
source code file that defines a Substrate chain's initial (genesis) state. Chain specifications source code file that defines a Substrate chain's initial (genesis) state. Chain specifications
are useful for development and testing, and critical when architecting the launch of a are useful for development and testing, and critical when architecting the launch of a
production chain. Take note of the `development_config` and `testnet_genesis` functions, which production chain. Take note of the `development_chain_spec` and `testnet_genesis` functions, which
are used to define the genesis state for the local development chain configuration. These are used to define the genesis state for the local development chain configuration. These
functions identify some functions identify some
[well-known accounts](https://substrate.dev/docs/en/knowledgebase/integrate/subkey#well-known-keys) [well-known accounts](https://substrate.dev/docs/en/knowledgebase/integrate/subkey#well-known-keys)
and use them to configure the blockchain's initial state. and use them to configure the blockchain's initial state.
- [`service.rs`](./node/src/service.rs): This file defines the node implementation. Take note of - [`service.rs`](./node/src/service.rs): This file defines the node implementation. Take note of
the libraries that this file imports and the names of the functions it invokes. In particular, the libraries that this file imports and the names of the functions it invokes. In particular,
there are references to consensus-related topics, such as the there are references to consensus-related topics, such as the
[longest chain rule](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#longest-chain-rule), [longest chain rule](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#longest-chain-rule),
the [Aura](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#aura) block authoring the [Aura](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#aura) block authoring
mechanism and the mechanism and the
[GRANDPA](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#grandpa) finality [GRANDPA](https://substrate.dev/docs/en/knowledgebase/advanced/consensus#grandpa) finality
gadget. gadget.
After the node has been [built](#build), refer to the embedded documentation to learn more about the After the node has been [built](#build), refer to the embedded documentation to learn more about the
capabilities and configuration parameters that it exposes: capabilities and configuration parameters that it exposes:
...@@ -134,13 +170,13 @@ create pallets and flexibly compose them to create blockchains that can address ...@@ -134,13 +170,13 @@ create pallets and flexibly compose them to create blockchains that can address
Review the [FRAME runtime implementation](./runtime/src/lib.rs) included in this template and note Review the [FRAME runtime implementation](./runtime/src/lib.rs) included in this template and note
the following: the following:
- This file configures several pallets to include in the runtime. Each pallet configuration is - This file configures several pallets to include in the runtime. Each pallet configuration is
defined by a code block that begins with `impl $PALLET_NAME::Config for Runtime`. defined by a code block that begins with `impl $PALLET_NAME::Config for Runtime`.
- The pallets are composed into a single runtime by way of the - The pallets are composed into a single runtime by way of the
[`construct_runtime!`](https://crates.parity.io/frame_support/macro.construct_runtime.html) [`construct_runtime!`](https://crates.parity.io/frame_support/macro.construct_runtime.html)
macro, which is part of the core macro, which is part of the core
[FRAME Support](https://substrate.dev/docs/en/knowledgebase/runtime/frame#support-library) [FRAME Support](https://substrate.dev/docs/en/knowledgebase/runtime/frame#support-library)
library. library.
### Pallets ### Pallets
...@@ -150,17 +186,17 @@ template pallet that is [defined in the `pallets`](./pallets/template/src/lib.rs ...@@ -150,17 +186,17 @@ template pallet that is [defined in the `pallets`](./pallets/template/src/lib.rs
A FRAME pallet is compromised of a number of blockchain primitives: A FRAME pallet is compromised of a number of blockchain primitives:
- Storage: FRAME defines a rich set of powerful - Storage: FRAME defines a rich set of powerful
[storage abstractions](https://substrate.dev/docs/en/knowledgebase/runtime/storage) that makes [storage abstractions](https://substrate.dev/docs/en/knowledgebase/runtime/storage) that makes
it easy to use Substrate's efficient key-value database to manage the evolving state of a it easy to use Substrate's efficient key-value database to manage the evolving state of a
blockchain. blockchain.
- Dispatchables: FRAME pallets define special types of functions that can be invoked (dispatched) - Dispatchables: FRAME pallets define special types of functions that can be invoked (dispatched)
from outside of the runtime in order to update its state. from outside of the runtime in order to update its state.
- Events: Substrate uses [events](https://substrate.dev/docs/en/knowledgebase/runtime/events) to - Events: Substrate uses [events](https://substrate.dev/docs/en/knowledgebase/runtime/events) to
notify users of important changes in the runtime. notify users of important changes in the runtime.
- Errors: When a dispatchable fails, it returns an error. - Errors: When a dispatchable fails, it returns an error.
- Config: The `Config` configuration interface is used to define the types and parameters upon - Config: The `Config` configuration interface is used to define the types and parameters upon
which a FRAME pallet depends. which a FRAME pallet depends.
## Run in Docker ## Run in Docker
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment