Go to file
Marek Kotewicz a257827f27 backports to beta (#7434)
* Merge pull request #7368 from paritytech/td-future-blocks

Wait for future blocks in AuRa

* Fix tracing failed calls.

* Problem: sending any Whisper message fails

The error is "PoW too low to compete with other messages"

This has been previously reported in #7144

Solution: prevent the move semantics

The source of the error is in PoolHandle.relay
implementation for NetPoolHandle.

Because of the move semantics, `res` variable is in fact
copied (as it implements Copy) into the closure and for
that reason, the returned result is always `false.

* Merge pull request #7433 from paritytech/td-strict-config

Strict config parsing

* Problem: AuRa's unsafeties around step duration (#7282)

Firstly, `Step.duration_remaining` casts it to u32, unnecesarily
limiting it to 2^32. While theoretically this is "good enough" (at 3
seconds steps it provides room for a little over 400 years), it is
still a lossy way to calculate the remaining time until the next step.

Secondly, step duration might be zero, triggering division by zero
in `Step.calibrate`

Solution: rework the code around the fact that duration is
typically in single digits and never grows, hence, it can be represented
by a much narrower range (u16) and this highlights the fact that
multiplying u64 by u16 will only result in an overflow in even further
future, at which point we should panic informatively (if anybody's
still around)

Similarly, panic when it is detected that incrementing the step
counter wrapped around on the overflow of usize.

As for the division by zero, prevent it by making zero an invalid
value for step duration. This will make AuRa log the constraint
mismatch and panic (after all, what purpose would zero step duration
serve? it makes no sense within the definition of the protocol,
as finality can only be achieved as per the specification
if messages are received within the step duration, which would violate
the speed of light and other physical laws in this case).

* Merge pull request #7437 from paritytech/a5-chains-expanse

Remove expanse chain

* Expanse Byzantium update w/ correct metropolis difficulty increment divisor (#7463)

* Byzantium Update for Expanse

Here the changes go. Hope I didnt miss anything.

* expip2 changes - update duration limit

* Fix missing EXPIP-2 fields

* Format numbers as hex

* Fix compilation errors

* Group expanse chain spec fields together

* Set metropolisDifficultyIncrementDivisor for Expanse

* Revert #7437

* Add Expanse block 900_000 hash checkpoint

* Advance AuRa step as far as we can and prevent invalid blocks. (#7451)

* Advance AuRa step as far as we can.

* Wait for future blocks.

* fixed panic when io is not available for export block, closes #7486 (#7495)

* Update Parity Mainnet Bootnodes (#7476)

* Update Parity Mainnet Bootnodes

* Replace the Azure HDD bootnodes with the new ones :)

* Use https connection (#7503)

Use https when connecting to etherscan.io API for price-info

* Expose default gas price percentile configuration in CLI (#7497)

* Expose gas price percentile.

* Fix light eth_call.

* fix gas_price in light client
2018-01-09 13:55:10 +01:00
.github Add GitHub issue templates. (#6259) 2017-08-09 08:43:40 +02:00
chainspec Chainspec validation (#6197) 2017-08-02 12:50:36 +02:00
dapps [beta] Kovan HF (#7234) 2017-12-08 13:08:15 +01:00
devtools Bumped version 2017-07-13 15:52:01 +02:00
docker fix docker build in master 2017-07-18 16:17:33 +03:00
docs Changelog for 1.7.3 (#6678) 2017-10-10 10:51:12 +02:00
ethash Use memmap for dag cache (#6193) 2017-09-25 19:45:33 +02:00
ethcore backports to beta (#7434) 2018-01-09 13:55:10 +01:00
ethcrypto updated tiny-keccak to 1.3 2017-08-07 10:06:02 +02:00
ethkey updated tiny-keccak to 1.3 2017-08-07 10:06:02 +02:00
ethstore Ethstore optimizations (#6827) (#6844) 2017-10-20 20:22:01 +02:00
evmbin Use memmap for dag cache (#6193) 2017-09-25 19:45:33 +02:00
evmjit updated tiny-keccak to 1.3 2017-08-07 10:06:02 +02:00
hash-fetch Update jsonrpc dependencies and rewrite dapps to futures. (#6522) 2017-10-05 12:35:01 +02:00
hw Backport #6815 and #6829 (#6837) 2017-10-20 12:51:02 +02:00
ipc fix typo: Unkown => Unknown (#6559) 2017-10-02 15:27:59 +02:00
ipc-common-types Don't reexport bigint from util 2017-09-04 16:36:49 +02:00
ipfs Update jsonrpc dependencies and rewrite dapps to futures. (#6522) 2017-10-05 12:35:01 +02:00
js Disallow builtin multisig deploy (only watch) 2017-11-10 09:31:32 +01:00
json backports to beta (#7434) 2018-01-09 13:55:10 +01:00
local-store Merge pull request #6720 from paritytech/kvdb_split 2018-01-03 13:22:31 +00:00
logger Update jsonrpc dependencies and rewrite dapps to futures. (#6522) 2017-10-05 12:35:01 +02:00
mac Bump beta to 1.8.6 (#7442) 2018-01-04 09:32:38 +01:00
machine Generalize engine trait (#6591) 2017-09-26 14:19:08 +02:00
nsis Bump beta to 1.8.6 (#7442) 2018-01-04 09:32:38 +01:00
panic_hook Add custom panic hook 2017-07-19 17:50:48 +00:00
parity backports to beta (#7434) 2018-01-09 13:55:10 +01:00
price-info backports to beta (#7434) 2018-01-09 13:55:10 +01:00
rpc backports to beta (#7434) 2018-01-09 13:55:10 +01:00
rpc_cli updated bigint with optimized mul and from_big_indian 2017-08-17 18:11:34 +02:00
rpc_client Update jsonrpc dependencies and rewrite dapps to futures. (#6522) 2017-10-05 12:35:01 +02:00
scripts Updated systemd files for linux (#6592) 2017-09-26 18:03:18 -04:00
secret_store Merge pull request #6720 from paritytech/kvdb_split 2018-01-03 13:22:31 +00:00
snap Use git for the snap version (#6271) 2017-08-29 15:14:07 +02:00
stratum Update jsonrpc dependencies and rewrite dapps to futures. (#6522) 2017-10-05 12:35:01 +02:00
sync Merge pull request #6720 from paritytech/kvdb_split 2018-01-03 13:22:31 +00:00
updater Update jsonrpc dependencies and rewrite dapps to futures. (#6522) 2017-10-05 12:35:01 +02:00
util backports to beta (#7434) 2018-01-09 13:55:10 +01:00
whisper Update jsonrpc dependencies and rewrite dapps to futures. (#6522) 2017-10-05 12:35:01 +02:00
windows/ptray Merge pull request #6921 from paritytech/windows-fixes 2017-11-13 14:49:01 +01:00
.dockerignore improved dockerfile builds (#5659) 2017-05-23 12:25:41 +02:00
.editorconfig Fixing travis.yml 2016-07-11 18:23:24 +02:00
.gitignore Separate migrations from util (#6690) 2017-10-10 20:01:27 +02:00
.gitlab-ci.yml [ci skip] move Aura test https://github.com/paritytech/parity-import-tests in nightly build 2017-07-18 16:45:58 +03:00
.gitmodules WASM contracts MVP (#5679) 2017-07-10 17:42:10 +02:00
build.rs Detect rust compiler version in Parity build script, closes 4742 (#4907) 2017-03-15 14:03:11 +01:00
Cargo.lock [beta] Backport nonces reservations (#7439) 2018-01-09 11:13:27 +01:00
Cargo.toml Bump beta to 1.8.6 (#7442) 2018-01-04 09:32:38 +01:00
CHANGELOG.md Changelog for 1.7.3 (#6678) 2017-10-10 10:51:12 +02:00
LICENSE Change to library. 2015-11-24 21:05:08 +01:00
license_header Fix whitespace (#4299) 2017-01-25 18:51:41 +01:00
README.md fix parity.io link in readme (#6617) 2017-10-02 11:21:12 +02:00
rust-toolchain rust-toolchain file on master (#6266) 2017-08-14 13:47:53 +02:00
rustfmt.toml Use memmap for dag cache (#6193) 2017-09-25 19:45:33 +02:00
SECURITY.md Update SECURITY.md 2017-07-27 15:46:26 +02:00
test.sh Fix no-default-features. 2017-12-04 15:32:24 +01:00

Parity - fast, light, and robust Ethereum client

build status Snap Status GPLv3

Join the chat!

Get in touch with us on Gitter: Gitter: Parity Gitter: Parity.js Gitter: Parity/Miners Gitter: Parity-PoA

Be sure to check out our wiki and the internal documentation for more information.


About Parity

Parity's goal is to be the fastest, lightest, and most secure Ethereum client. We are developing Parity using the sophisticated and cutting-edge Rust programming language. Parity is licensed under the GPLv3, and can be used for all your Ethereum needs.

Parity comes with a built-in wallet. To access Parity Wallet simply go to http://web3.site/ (if you don't have access to the internet, but still want to use the service, you can also use http://127.0.0.1:8180/). It includes various functionality allowing you to:

  • create and manage your Ethereum accounts;
  • manage your Ether and any Ethereum tokens;
  • create and register your own tokens;
  • and much more.

By default, Parity will also run a JSONRPC server on 127.0.0.1:8545. This is fully configurable and supports a number of RPC APIs.

If you run into an issue while using parity, feel free to file one in this repository or hop on our gitter chat room to ask a question. We are glad to help!

For security-critical issues, please refer to the security policy outlined in SECURITY.MD.

Parity's current release is 1.7. You can download it at https://github.com/paritytech/parity/releases or follow the instructions below to build from source.


Build dependencies

Parity requires Rust version 1.19.0 to build

We recommend installing Rust through rustup. If you don't already have rustup, you can install it like this:

  • Linux:

    $ curl https://sh.rustup.rs -sSf | sh
    

    Parity also requires gcc, g++, libssl-dev/openssl, libudev-dev and pkg-config packages to be installed.

  • OSX:

    $ curl https://sh.rustup.rs -sSf | sh
    

    clang is required. It comes with Xcode command line tools or can be installed with homebrew.

  • Windows

    Make sure you have Visual Studio 2015 with C++ support installed. Next, download and run the rustup installer from https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe, start "VS2015 x64 Native Tools Command Prompt", and use the following command to install and set up the msvc toolchain:

    $ rustup default stable-x86_64-pc-windows-msvc
    

Once you have rustup, install parity or download and build from source


Install from the snap store

In any of the supported Linux distros:

sudo snap install parity --edge

(Note that this is an experimental and unstable release, at the moment)


Build from source

# download Parity code
$ git clone https://github.com/paritytech/parity
$ cd parity

# build in release mode
$ cargo build --release

This will produce an executable in the ./target/release subdirectory. Note: if cargo fails to parse manifest try:

$ ~/.cargo/bin/cargo build --release

Simple one-line installer for Mac and Ubuntu

bash <(curl https://get.parity.io -Lk)

Start Parity

Manually

To start Parity manually, just run

$ ./target/release/parity

and Parity will begin syncing the Ethereum blockchain.

Using systemd service file

To start Parity as a regular user using systemd init:

  1. Copy parity/scripts/parity.service to your systemd user directory (usually ~/.config/systemd/user).

  2. To pass any argument to Parity, write a ~/.parity/parity.conf file this way: ARGS="ARG1 ARG2 ARG3".

    Example: ARGS="ui --identity MyMachine".