A Parity Substrate node implementing Edgeware.
-
Download this entire repository to the file system that you are using to run the validator node.
- You can do this by going to this page and selecting "Clone or download" followed by "Download ZIP".
- If you are installing via a command line interface (e.g. SSH into a remote server), you can download by running
wget https://github.com/hicommonwealth/edgeware-node/archive/master.zip
- Once you have downloaded the zip file, unzip the
edgeware-node-master
folder onto the file system. If you are using a command line interface, you can unzip by runningunzip master.zip
- All commands referenced in this document need to be run from within the
edgeware-node-master
folder.
-
You will also need to install
rust
andcargo
by installingrustup
here.- Note: at the end of the install, you will need to log out and log in again, or run the suggested
source
command to configure the current shell.
- Note: at the end of the install, you will need to log out and log in again, or run the suggested
If your device is clean (such as a fresh cloud VM) you can use this script, otherwise, proceed with the Initial Setup.
./setup.sh
To create a keypair, install subkey with cargo install --force --git https://github.com/paritytech/substrate subkey
. Then run the following:
subkey generate
To create an ED25519 keypair, run the following:
subkey -e generate
To create derived keypairs, use the mnemonic generated from a method above and run:
subkey inspect "<mnemonic>"//<derive_path>
For example:
subkey inspect "west paper guide park design weekend radar chaos space giggle execute canoe"//edgewarerocks
Then proceed to the Running instructions or follow the instructions below for the manual setup.
curl https://sh.rustup.rs -sSf | sh
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup update stable
cargo install --git https://github.com/alexcrichton/wasm-gc
You will also need to install the following packages:
Linux:
sudo apt install cmake pkg-config libssl-dev git clang libclang-dev
Mac:
brew install cmake pkg-config openssl git llvm
./scripts/build.sh
cargo build --release
Ensure you have a fresh start if updating from another version:
./scripts/purge-chain.sh
To start up the Edgeware node and connect to the latest testnet, run:
./target/release/edgeware --chain=edgeware --name <INSERT_NAME>
If you use the --key
flag, ensure that either it is a 32-byte hex string or prefixed with //
like so:
./target/release/edgeware --chain=edgeware --name <INSERT_NAME> --key //testkey
To ensure you followed the steps correctly, check https://telemetry.polkadot.io/#/Edgeware%20Testnet%20V0.2.0. If done correctly, you should see your node with the inserted name.
- Aura
- Balances
- Consensus
- Contract
- Council
- Democracy
- Executive
- Fees
- Finality_tracker
- Grandpa
- Indices
- Session
- Staking
- System
- Timestamp
- Treasury
- Sudo
To run a chain locally for development purposes: ./target/release/edgeware --chain=local --alice --validator
To force your local to create new blocks, even if offline, add the --force-authoring
flag.
- Add its github repo to:
- Cargo.toml
- node/runtime/Cargo.toml
- node/runtime/wasm/Cargo.toml (be sure to have
default-features = false
)
- Changes to the runtime:
- Add it as an
extern crate
. - Implement its
Trait
with production types. - Add it to the
construct_runtime
macro with all implemented components.
- If its storage contains
config
elements, then you need to modify the chain spec:
- Add it to the
edgeware_runtime
's list ofConfig
types. - Add it to the
testnet_genesis
function, initializing all storage fields set toconfig()
.
- Build and run the chain.