mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-06 06:47:25 +00:00
392447f5c8
407bf44a8a add missing license header (#1204) 9babb19810 Custom relay strategy (#1198) c287872a11 fix clippy things (#1200) 3a40e62789 Expose some const value and type (#1186) 32b61476d1 increase sleep before connectingMillau (#1195) aabe7041fa revert messages transactions mortality (#1194) 3651f4f909 Message transactions mortality (#1191) 364d6e155d Bump dependencies (#1180) f0389acc08 cargo +nightly fmt --all (#1192) b270b6a016 Unify error enums in substrate and ethereum clients with `thiserror` (#1094) 58c4946f74 Limit max call size of Rialto/Millau runtimes (#1187) fd56a8cd56 Add UI to the deployment (#1047) 16f01dc736 Westend -> Millau alerts are pending before notifications are sent (#1184) 5628c11ece replace collective flip with babe randomness in Rialto (#1188) 1094a63b00 ignore another (pretty bad) RUSTSEC (#1185) 379fe323ea fix/ignore cargo deny issues (#1183) 92af5e6e64 additional log in finality relay + rephrase "failed" (#1182) b996a3b681 Rialto parachain in test deployments (#1178) 28d9332b44 Resubmit transactions strategy for Polkadot/Kusama (#1175) d0172c6847 Playing with CI (#1179) fb6f42456d fix checks order when registering parachain (#1177) ee828c005a Register-parachain subcommand of substrate-relay (#1170) 8cd2b1a112 Token swap pallet benchmarks (#1174) bb811accb1 fix collision with westend bridge (#1172) 8d2fba70ed add token swaps to test deployments (#1169) b6d1bdfe2c publish rialto parachain collator image (#1171) 834ae4a10a Fix OutboundLaneData types (#1159) 5ee0ea1626 copypasted -> copied (#1168) c3bb835f18 fix spelling (#1167) f90d041dc9 Upgrade `jsonrpsee` to v0.3 (#1051) 598c9b6d0d add some basic tests for swap tokens (#1164) 05e88c61f5 publish images when tag of specific format(e.g. v2021-09-27 + v2021-09-27-1) is published (#1166) 7f3f94a6e0 Fix CI again (#1165) ff37de332f Move calculation relayer reward into `MessageDeliveryAndDispatchPayment` (#1153) 36fbba839b fix clippy warning (#1163) 16da44d018 explicit wasm build (#1158) c9c8226449 Match substrate's fmt (#1148) 2fdd7f3e5e Fix/ignore clippy warnings (#1157) 43dfcc2686 Adding LookupAddress (#1156) 951eaa5582 Add rialto-parachain runtime and node (#1142) 803d266d61 Rename MessageId -> BridgeMessageId (#1152) 5f234484fc Box large arguments of GRANDPA pallet (#1154) cf9abc1011 Fix spelling (#1150) ab83ba2e58 Relay subcommand that performs token RLT <> MLAU token swap (#1141) 832536caf0 Polkadot <> Kusama relayers (#1122) 6d0daa8975 Add `OnMessageAccepted` callback (#1134) 5d03a20b3e Integrate token swap pallet into Millau runtime (#1099) ea4cfa833e Adding MultiAddress type and ValidationCodeHash (#1139) c20325a784 Add tests for `Raw` and `BridgeSendMessage` enum `Call` variants (#1125) 6d802416e2 increase pause before pining Rialto nodes (#1137) b54fa56b62 calculate fee using full message payload (#1132) ca5d8178f5 Add parachain pallets to rialto runtime (#1053) 9eaae4142e fix transaction resubmitter limits for Millau -> Rialto transactions (#1135) 9d4e17783c add --mandatory-headers-only cli option to complex relay (#1129) 1c5e0ec1cb Add local CI info to README (#1131) a8e0929e14 chore: spellchecker fixes (#1130) 3b8e2118e3 set fee for importing mandatory headers to zero (#1127) 49bba9aa52 another bunch of words for spellchecker (#1128) 8a72eafef6 Increase pause before messages generation start (#1126) 1f0ba9a191 Move some associated types from relay_substrate_client::Chain to bp_runtime::Chain (#1087) 74bc1a5b54 Transactions resubmitter (#1083) 21ba001f26 log max balance drop when sending message (#1117) 638a7ddffa Code Cleaning (#1124) be6555c51b Fix buildah logout (#1120) 87539c4a98 Format code work (#1116) 526fe7fdd7 fix spelling (#1119) bd4ce7f241 Fix spelling (#1118) 3c1147858e added missing constants to Kusama/Polkadot primitives (#1114) 52093b22ab Fix delivery transaction estimation used by rational relayer (#1109) 77a2f2fbed Remove fund account checks from upgrade. (#1111) 824334802b Rename param and update comment (#1108) d7784bfe06 Fix spellcheck (#1110) 0b18f5906a Refactor substrate messages source and substrate messages target (#1105) b27240bbff fix compilation (#1107) 9697da4fe8 Emit mortal transactions from relay (#1073) b29396c077 Change vault vars type to env vars (#1084) 35e0bbdc0c Make clippy mandatory. (#1103) a517e8541f Remove unused deps (#1102) 873dae608a Remove unnessary deps (#1101) 13450b74ee Stored conversion rate updater (#1005) 74389829f3 [BREAKING] Migrate messages pallet to frame v2 (#1088) 424da938dd README fix (#1100) 865744c909 upgrade currency exchange pallet to frame v2 (#1097) b5038148b3 Add missing docs (#1095) 0791e911c1 Common crate for substrate-relay (#1082) 3834c9d880 Update high-level-overview.md (#1093) c93553face Increase the time window for messaging alerts. (#1092) 8b9cc3cecd migrate pallet-shift-session-manager to frame v2 (#1090) dc91813c22 migrate eth PoA pallet to frame v2 (#1091) f16bb098cc Migrate dispatch pallet to frame v2 (#1089) 19f4325348 Bridge/This Chain Ids should be exposed as constants on pallet level. (#1085) 6381122df7 Change ChainSpec::from_genesis for Rialto and Millau chains to reflect the chain names. (#1079) 0f1d33e973 Make CI happy again (#1086) 238e65d96f fix typo (#1080) fc008457b6 Token-swap-over-bridge pallet (#944) 3fb97fa5ef Fix full spellcheck (#1076) eae4ed7170 fixed wrong trace (#1075) 219a0fad04 merge two weight-related loops in messages pallet (#1071) fc85632fdb increase_message_fee depends on stored mesage size (#1066) 530f37a23b companion for https://github.com/paritytech/polkadot/pull/3507 (#1067) 53b8cba683 sc_basic_authorship=trace for millau nodes (#1074) 9874e05e98 Improve traces of message generator scripts (#1069) 7b5ee84fbb extract message_details impl into runtime common (#1070) 5a4aed5a8b refund weight for mot pruning messages (#1062) 90e3d1e111 Fix Westend -> Millau sync (#1064) 427d30ddfc When restarting client, also "restart" tokio runtime (#1065) d47c05eeef Change get pipeline sensitive variables from Vault instead of GitLab settings (#1063) d775a85415 use tokio reactor to execute jsonrpsee futures (#1061) 15c8cd61cb Use BABE to author blocks on Rialto (previously: Aura) (#1050) 5186293500 Allow reading suri && password override from file (#1059) b506298262 Update jsonrpsee reference (#1049) 1734d00517 enable weight fee adjustent in Rialto/Millau (#1044) 607265afae Pay dispatch fee at target chain cli option (#1043) ce79ef91be bump dependencies before start referencing polkadot repo (#1048) 924fa24f6d Cli option for greedy relayer + run no-losses relayer by default (#1042) e21eba7b59 Yrong README Fixup + M1 Fixes (#1045) 20d08204a2 Confirm delivery detects when more than expected messages are confirmed (#1039) 994b846b52 pre and post dispatch weights of OnDeliveryConfirmed callback (#1040) 1dd5297e84 give real value to Rialto and Millau tokens (#1038) 035bee8715 Use real conversion rate in greedy relayer strategy (#1035) 9cfaecd0f7 fixed metrics prefix (#1037) 1d8d224937 Use kebab-case for bridge arguments (#1036) f30a4c79a6 Shared reference to conversion rate metric value (#1034) c34d7a5cbb estimate transaction fee (#1015) 93404b18bb change alert period from 2m to 10m for Westend -> Millau (GRANDPA or public node itself is lagging sometimes) (#1032) git-subtree-dir: bridges git-subtree-split: 407bf44a8a5f4e60aceef2dc755cd9ff09929ac3
267 lines
7.9 KiB
Markdown
267 lines
7.9 KiB
Markdown
# Polkadot
|
||
|
||
Implementation of a <https://polkadot.network> node in Rust based on the Substrate framework.
|
||
|
||
> **NOTE:** In 2018, we split our implementation of "Polkadot" from its development framework
|
||
> "Substrate". See the [Substrate][substrate-repo] repo for git history prior to 2018.
|
||
|
||
[substrate-repo]: https://github.com/paritytech/substrate
|
||
|
||
This repo contains runtimes for the Polkadot, Kusama, and Westend networks. The README provides
|
||
information about installing the `polkadot` binary and developing on the codebase. For more
|
||
specific guides, like how to be a validator, see the
|
||
[Polkadot Wiki](https://wiki.polkadot.network/docs/getting-started).
|
||
|
||
## Installation
|
||
|
||
If you just wish to run a Polkadot node without compiling it yourself, you may
|
||
either run the latest binary from our
|
||
[releases](https://github.com/paritytech/polkadot/releases) page, or install
|
||
Polkadot from one of our package repositories.
|
||
|
||
Installation from the Debian or rpm repositories will create a `systemd`
|
||
service that can be used to run a Polkadot node. This is disabled by default,
|
||
and can be started by running `systemctl start polkadot` on demand (use
|
||
`systemctl enable polkadot` to make it auto-start after reboot). By default, it
|
||
will run as the `polkadot` user. Command-line flags passed to the binary can
|
||
be customized by editing `/etc/default/polkadot`. This file will not be
|
||
overwritten on updating polkadot. You may also just run the node directly from
|
||
the command-line.
|
||
|
||
### Debian-based (Debian, Ubuntu)
|
||
|
||
Currently supports Debian 10 (Buster) and Ubuntu 20.04 (Focal), and
|
||
derivatives. Run the following commands as the `root` user.
|
||
|
||
```bash
|
||
# Import the security@parity.io GPG key
|
||
gpg --recv-keys --keyserver hkps://keys.mailvelope.com 9D4B2B6EB8F97156D19669A9FF0812D491B96798
|
||
gpg --export 9D4B2B6EB8F97156D19669A9FF0812D491B96798 > /usr/share/keyrings/parity.gpg
|
||
# Add the Parity repository and update the package index
|
||
echo 'deb [signed-by=/usr/share/keyrings/parity.gpg] https://releases.parity.io/deb release main' > /etc/apt/sources.list.d/parity.list
|
||
apt update
|
||
# Install the `parity-keyring` package - This will ensure the GPG key
|
||
# used by APT remains up-to-date
|
||
apt install parity-keyring
|
||
# Install polkadot
|
||
apt install polkadot
|
||
|
||
```
|
||
|
||
### RPM-based (Fedora, CentOS)
|
||
|
||
Currently supports Fedora 32 and CentOS 8, and derivatives.
|
||
|
||
```bash
|
||
# Install dnf-plugins-core (This might already be installed)
|
||
dnf install dnf-plugins-core
|
||
# Add the repository and enable it
|
||
dnf config-manager --add-repo https://releases.parity.io/rpm/polkadot.repo
|
||
dnf config-manager --set-enabled polkadot
|
||
# Install polkadot (You may have to confirm the import of the GPG key, which
|
||
# should have the following fingerprint: 9D4B2B6EB8F97156D19669A9FF0812D491B96798)
|
||
dnf install polkadot
|
||
```
|
||
|
||
## Building
|
||
|
||
### Install via Cargo
|
||
|
||
Make sure you have the support software installed from the **Build from Source** section
|
||
below this section.
|
||
|
||
If you want to install Polkadot in your PATH, you can do so with with:
|
||
|
||
```bash
|
||
cargo install --git https://github.com/paritytech/polkadot --tag <version> polkadot --locked
|
||
```
|
||
|
||
### Build from Source
|
||
|
||
If you'd like to build from source, first install Rust. You may need to add Cargo's bin directory
|
||
to your PATH environment variable. Restarting your computer will do this for you automatically.
|
||
|
||
```bash
|
||
curl https://sh.rustup.rs -sSf | sh
|
||
```
|
||
|
||
If you already have Rust installed, make sure you're using the latest version by running:
|
||
|
||
```bash
|
||
rustup update
|
||
```
|
||
|
||
Once done, finish installing the support software:
|
||
|
||
```bash
|
||
sudo apt install build-essential git clang libclang-dev pkg-config libssl-dev
|
||
```
|
||
|
||
Build the client by cloning this repository and running the following commands from the root
|
||
directory of the repo:
|
||
|
||
```bash
|
||
git checkout <latest tagged release>
|
||
./scripts/init.sh
|
||
cargo build --release
|
||
```
|
||
|
||
Note that compilation is a memory intensive process. We recommend having 4 GiB of physical RAM or swap available (keep in mind that if a build hits swap it tends to be very slow).
|
||
|
||
#### Build from Source with Docker
|
||
|
||
You can also build from source using
|
||
[Parity CI docker image](https://github.com/paritytech/scripts/tree/master/dockerfiles/ci-linux):
|
||
|
||
```bash
|
||
git checkout <latest tagged release>
|
||
docker run --rm -it -w /shellhere/polkadot \
|
||
-v $(pwd):/shellhere/polkadot \
|
||
paritytech/ci-linux:production cargo build --release
|
||
sudo chown -R $(id -u):$(id -g) target/
|
||
```
|
||
|
||
If you want to reproduce other steps of CI process you can use the following
|
||
[guide](https://github.com/paritytech/scripts#gitlab-ci-for-building-docker-images).
|
||
|
||
## Networks
|
||
|
||
This repo supports runtimes for Polkadot, Kusama, and Westend.
|
||
|
||
### Connect to Polkadot Mainnet
|
||
|
||
Connect to the global Polkadot Mainnet network by running:
|
||
|
||
```bash
|
||
./target/release/polkadot --chain=polkadot
|
||
```
|
||
|
||
You can see your node on [telemetry] (set a custom name with `--name "my custom name"`).
|
||
|
||
[telemetry]: https://telemetry.polkadot.io/#list/Polkadot
|
||
|
||
### Connect to the "Kusama" Canary Network
|
||
|
||
Connect to the global Kusama canary network by running:
|
||
|
||
```bash
|
||
./target/release/polkadot --chain=kusama
|
||
```
|
||
|
||
You can see your node on [telemetry] (set a custom name with `--name "my custom name"`).
|
||
|
||
[telemetry]: https://telemetry.polkadot.io/#list/Kusama
|
||
|
||
### Connect to the Westend Testnet
|
||
|
||
Connect to the global Westend testnet by running:
|
||
|
||
```bash
|
||
./target/release/polkadot --chain=westend
|
||
```
|
||
|
||
You can see your node on [telemetry] (set a custom name with `--name "my custom name"`).
|
||
|
||
[telemetry]: https://telemetry.polkadot.io/#list/Westend
|
||
|
||
### Obtaining DOTs
|
||
|
||
If you want to do anything on Polkadot, Kusama, or Westend, then you'll need to get an account and
|
||
some DOT, KSM, or WND tokens, respectively. See the
|
||
[claims instructions](https://claims.polkadot.network/) for Polkadot if you have DOTs to claim. For
|
||
Westend's WND tokens, see the faucet
|
||
[instructions](https://wiki.polkadot.network/docs/learn-DOT#getting-westies) on the Wiki.
|
||
|
||
## Hacking on Polkadot
|
||
|
||
If you'd actually like to hack on Polkadot, you can grab the source code and build it. Ensure you have
|
||
Rust and the support software installed. This script will install or update Rust and install the
|
||
required dependencies (this may take up to 30 minutes on Mac machines):
|
||
|
||
```bash
|
||
curl https://getsubstrate.io -sSf | bash -s -- --fast
|
||
```
|
||
|
||
Then, grab the Polkadot source code:
|
||
|
||
```bash
|
||
git clone https://github.com/paritytech/polkadot.git
|
||
cd polkadot
|
||
```
|
||
|
||
Then build the code. You will need to build in release mode (`--release`) to start a network. Only
|
||
use debug mode for development (faster compile times for development and testing).
|
||
|
||
```bash
|
||
./scripts/init.sh # Install WebAssembly. Update Rust
|
||
cargo build # Builds all native code
|
||
```
|
||
|
||
You can run the tests if you like:
|
||
|
||
```bash
|
||
cargo test --all
|
||
```
|
||
|
||
You can start a development chain with:
|
||
|
||
```bash
|
||
cargo run -- --dev
|
||
```
|
||
|
||
Detailed logs may be shown by running the node with the following environment variables set:
|
||
|
||
```bash
|
||
RUST_LOG=debug RUST_BACKTRACE=1 cargo run -- --dev
|
||
```
|
||
|
||
### Development
|
||
|
||
You can run a simple single-node development "network" on your machine by running:
|
||
|
||
```bash
|
||
polkadot --dev
|
||
```
|
||
|
||
You can muck around by heading to <https://polkadot.js.org/apps> and choose "Local Node" from the
|
||
Settings menu.
|
||
|
||
### 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:
|
||
|
||
```bash
|
||
polkadot --chain=polkadot-local --alice -d /tmp/alice
|
||
```
|
||
|
||
And in the other, run:
|
||
|
||
```bash
|
||
polkadot --chain=polkadot-local --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.
|
||
|
||
### Using Docker
|
||
|
||
[Using Docker](doc/docker.md)
|
||
|
||
### Shell Completion
|
||
|
||
[Shell Completion](doc/shell-completion.md)
|
||
|
||
## Contributing
|
||
|
||
### Contributing Guidelines
|
||
|
||
[Contribution Guidelines](CONTRIBUTING.md)
|
||
|
||
### Contributor Code of Conduct
|
||
|
||
[Code of Conduct](CODE_OF_CONDUCT.md)
|
||
|
||
## License
|
||
|
||
Polkadot is [GPL 3.0 licensed](LICENSE).
|