Skip to content
Substrate node implementing Edgeware
Rust Shell Dockerfile
Branch: master
Clone or download
drewstone Add v6 testnet files (#84)
* Add v6 testnet files

* Rename governance to signaling, add more restrictions to proposal lifecycle, delete all proposals eventually

* Version bump to 0.6

* More tests, more cleanup of data in identity

* Add test for used types free-up

* Setup test framework for treasury rewards

* Negation

* Give treasury proportional rewards

* Remove irrelevant comments

* Testnet files and new module
Latest commit a5e6f9e Aug 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
modules Add v6 testnet files (#84) Aug 16, 2019
node Add v6 testnet files (#84) Aug 16, 2019
scripts Drew.another - Update for 0.5.0 testnet (#82) Aug 10, 2019
testnets Add v6 testnet files (#84) Aug 16, 2019
.ackrc Update readme and add .ackrc Jul 25, 2019
.dockerignore Fixing docker build for directory change. Jan 14, 2019
.gitignore Add node script Jul 14, 2019
Cargo.lock Add v6 testnet files (#84) Aug 16, 2019
Cargo.toml Add v6 testnet files (#84) Aug 16, 2019
Dockerfile Adding apt update to setup and simplifying docker. Jun 28, 2019
LICENSE Switching license to GPL and making us authors. Dec 5, 2018
README.md Add v6 testnet files (#84) Aug 16, 2019
build.rs Drew.new up: Fixes runtime problems, adds ranked choice voting (#72) Jul 14, 2019
gen-docs.sh Changes to scripts, new testnet config Mar 26, 2019
setup.sh Source cargo env needs to be called from the same process Aug 10, 2019

README.md

edgeware-node

Edgeware is an:

  • On-chain Governed,
  • Proof-of-Stake (PoS) Blockchain
  • with a WASM Runtime.

Developer resources are available at edgewa.re/dev and more detailed documentation at our Github Wiki. For more details about the project, visit the Edgeware website, or check the blog or Twitter for the latest. Finally, for discussion and governance, you can utilize Commonwealth.im.

The latest substrate hash we pegged to is: f9e5a3742cfecb7f8f89c7c961ae900cca645b65

To get started

  • 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 dow-load 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 running unzip 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 and cargo by installing rustup 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.

Fresh start

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.

Initial Setup

curl https://sh.rustup.rs -sSf | sh
rustup update stable
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
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

Building

cargo build --release

Running

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

Visualization

To ensure you followed the steps correctly, check https://telemetry.polkadot.io/#list/Edgeware%20Testnet%20v0.4. If done correctly, you should see your node with the inserted name.

Implemented Modules

Edge

SRML

Developing on Edgeware

Running A Local Chain

To run a chain locally for development purposes: ./target/release/edgeware --chain=local --alice --validator

To allow apps in your browser to connect, as well as anyone else on your local network, add the --rpc-cors=all flag.

To force your local to create new blocks, even if offline, add the --force-authoring flag.

Adding A Module

  1. Add its github repo to:
  1. 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.
  1. If its storage contains config elements, then you need to modify the chain spec:
  • Add it to the edgeware_runtime's list of Config types.
  • Add it to the testnet_genesis function, initializing all storage fields set to config().
  1. Build and run the chain.
You can’t perform that action at this time.