mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-07 02:38:02 +00:00
135 lines
3.8 KiB
Plaintext
135 lines
3.8 KiB
Plaintext
= Polkadot
|
|
:Author: Polkadot developers
|
|
:Revision: 0.2.0
|
|
:toc:
|
|
:sectnums:
|
|
|
|
Implementation of a https://polkadot.network node in Rust.
|
|
|
|
== NOTE
|
|
|
|
We have recently split our implementation of Polkadot from its platform-level component "Substrate".
|
|
When we split them, we split the Polkadot code off into another repo, leaving the substrate repo to
|
|
be what used to be Polkadot, along with its branches and releases.
|
|
|
|
Things will be a little odd for a while. Polkadot PoC-2 remains as a branch `v0.2` in the **Substrate**
|
|
repo. Polkadot PoC-3 *will be* in branch `v0.3` in the **Polkadot** repo. To play on the ("Krumme Lanke")
|
|
testnet, you'll want the PoC-2 code which is in the **Substrate** repo. These instructions are up to date
|
|
with this, but if you see "substrate" and are wondering why you need it for Polkadot, now you know.
|
|
|
|
|
|
== To play
|
|
|
|
If you'd like to play with Polkadot, you'll need to install a client like this
|
|
one. First, get Rust (1.26.1 or later) and the support software if you don't already have it:
|
|
|
|
[source, shell]
|
|
----
|
|
curl https://sh.rustup.rs -sSf | sh
|
|
sudo apt install make clang pkg-config libssl-dev
|
|
----
|
|
|
|
Then, install Polkadot PoC-2:
|
|
|
|
[source, shell]
|
|
cargo install --git https://github.com/paritytech/substrate.git --branch v0.2 polkadot
|
|
|
|
You'll now have a `polkadot` binary installed to your `PATH`. You can run `cargo install --git https://github.com/paritytech/polkadot.git polkadot` to get the very latest version of Polkadot,
|
|
but these instructions will not work in that case.
|
|
|
|
If you want a specific version of polkadot, say `0.2.5`, you may run `cargo install --git https://github.com/paritytech/substrate.git --tag v0.2.5 polkadot`.
|
|
|
|
=== Krumme Lanke Testnet
|
|
|
|
You will connect to the global Krumme Lanke testnet by default. To do this, just use:
|
|
|
|
[source, shell]
|
|
polkadot
|
|
|
|
If you want to do anything on it (not that there's much to do), then you'll need
|
|
to get some Krumme Lanke DOTs. Ask in the Polkadot watercooler.
|
|
|
|
=== Development
|
|
|
|
You can run a simple single-node development "network" on your machine by
|
|
running in a terminal:
|
|
|
|
[source, shell]
|
|
polkadot --dev
|
|
|
|
You can muck around by cloning and building the http://github.com/paritytech/polka-ui and http://github.com/paritytech/polkadot-ui or just heading to https://polkadot.js.org/apps.
|
|
|
|
|
|
== Local Two-node Testnet
|
|
|
|
If you want to see the multi-node consensus algorithm in action locally, then
|
|
you can create a local testnet. You'll need two terminals open. In one, run:
|
|
|
|
[source, shell]
|
|
polkadot --chain=local --validator --key Alice -d /tmp/alice
|
|
|
|
and in the other, run:
|
|
|
|
[source, shell]
|
|
polkadot --chain=local --validator --key Bob -d /tmp/bob --port 30334 --bootnodes '/ip4/127.0.0.1/tcp/30333/p2p/ALICE_BOOTNODE_ID_HERE'
|
|
|
|
Ensure you replace `ALICE_BOOTNODE_ID_HERE` with the node ID from the output of
|
|
the first terminal.
|
|
|
|
|
|
== Hacking on Polkadot
|
|
|
|
If you'd actually like hack on Polkadot, you can just grab the source code and
|
|
build it. Ensure you have Rust and the support software installed:
|
|
|
|
[source, shell]
|
|
----
|
|
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
|
|
sudo apt install cmake pkg-config libssl-dev git
|
|
----
|
|
|
|
Then, grab the Polkadot source code:
|
|
|
|
[source, shell]
|
|
----
|
|
git clone https://github.com/paritytech/polkadot.git
|
|
cd polkadot
|
|
----
|
|
|
|
Then build the code:
|
|
|
|
[source, shell]
|
|
----
|
|
./scripts/build.sh # Builds the WebAssembly binaries
|
|
cargo build # Builds all native code
|
|
----
|
|
|
|
You can run the tests if you like:
|
|
|
|
[source, shell]
|
|
cargo test --all
|
|
|
|
You can start a development chain with:
|
|
|
|
[source, shell]
|
|
cargo run -- --dev
|
|
|
|
include::doc/docker.adoc[]
|
|
|
|
include::doc/shell-completion.adoc[]
|
|
|
|
include::doc/packages.adoc[]
|
|
|
|
include::doc/networks/networks.adoc[leveloffset=+1]
|
|
|
|
include::CONTRIBUTING.adoc[leveloffset=+1]
|
|
|
|
== License
|
|
----
|
|
include::LICENSE[]
|
|
----
|