Coverage
We're creating the world's fastest and lightest Ethereum client. Written in the sophisticated, cutting-edge Rust language, we can push the limits of reliability, performance and code clarity all at once.
We're happy to release our source code under the GPLv3 licence; we hope you'll have as much fun reading and using our code as we had designing and writing it. You can use it for any of your Ethereum needs.
Parity is actively developed as an open source project on github.
Currently available for Ubuntu/Debian, OSX and as a Docker container, Parity can be used to sync with both Homestead and Morden networks, can mine when used with ethminer, can power a Web3 Javascript console when used with eth attach and can be used for Ethereum JSONRPC applications such as a netstats client (allowing you to show off on the Ethereum public network page).
If you're on Mac or Ubuntu, you can just use our simple one-line installer:
bash <(curl https://get.parity.io -Lk)
This will install and configure the Parity client for you. On Ubuntu this script will also offer to install the Netstats client and connect it to stats.ethdev.com. It will ask you for a password as a means of proving your undying desire to join the netstats brotherhood. Get it from some kind soul in Gitter, the Netstats Skype channel or by consulting your crystal ball. Hint: it begins with a38e1e5....
This software and its source code is licensed to you under the terms of the GNU General Public License (version 3 or later) as published by the Free Software Foundation, the current text of which can be found via this link: http://www.gnu.org/licenses/gpl.html ("GPL"). Attribution (as required by the GPL) should take the form of (at least) a mention of our name, an appropriate copyright notice (in the form “Copyright © Eth Core Limited, 2016”) and a link to our website located at [email protected]
PLEASE NOTE THAT THIS LICENSE IS INTENDED FOR NON-COMMERCIAL USE OF THIS SOFTWARE AND ITS SOURCE CODE AND OTHERWISE IN ACCORDANCE WITH THE LICENCE TERMS ONLY. IF YOU INTEND TO USE THIS SOFTWARE OR ITS SOURCE CODE FOR A COMMERCIAL PURPOSE, PLEASE CONTACT [email protected] TO ARRANGE A COLLABORATION AGREEMENT WITH US BASED ON OUR COMMERCIAL LICENSE TERMS.
We accept no liability for your use of the software or its source code (save to the extent such liability cannot be excluded as a matter of law).
Another great and easy way to get familiar with Parity is by following one of our interactive tutorials.
What's going on right now in Parity development?
To allow you to get our latest improvements as soon as possible, we aim to make our releases at a roughly 6-week cycle. We maintain three different releases at any one time; the stable release which is our most mature and tested software. The beta release has additional features and better performance but may yet have quirks and issues to be fixed. Finally, the nightly release is our cutting-edge software build but comes with a strong caveat against using it for managing anything of value.
Making the most reliable and resilient software able to perform with excellence throughout deployments as diverse as teraflop financial servers and door handles is no task for the faint hearted. Our software is unit-tested from, quite literally, day one. From RLP and the Trie to the network subsystem, we aim for our unit tests to cover 100% of critical logic.
We pride ourselves on passing all 1,000+ consensus tests in the client consensus suite. Written according to the Yellow Paper specification and designed with the foreknowledge of the exact protocol we will need to implement, Parity achieves full consensus without pulling any punches on code design and clarity, enabling us to maintain an agile, fast-paced development cycle.
Every single line in our codebase is fully reviewed by at least one expert developer (and routinely two or more) before being placed in the main repository. We strive for excellence; static code checking is used on every compile to cut out bad idioms. Style is enforced before any alteration may be made to the main repository. Continuous integration guarantees our codebase always compiles and tests always pass.
Based upon both in-house expertise and open standards, our immediate roadmap includes IoT-friendly features such as state-tree pruning, light-syncing and enterprise features such as optimised integration APIs and a hardened process-isolation architecture.
| Parity Line | |||
|---|---|---|---|
| Parity | Civility | Tenuity | |
| Full Client | High-performance & low-footprint Ethereum client | ||
| Architecture | Process-compartmentalisation and low-level IPC API | ||
| Light-client | Ultra-minimal-resource IoT client | ||
The single thing all Ethereum clients do, in normal running, is to process blocks. This includes tasks like proof-of-work verification, transaction signature checking, EVM code execution, receipt verification, uncle validation and database population. This benchmark checks the clients' performance while doing this aggregated work.
In order to mitigate biases one way or another for each of those aspects in the benchmark, we process each of the first 1,000,000 blocks from the Frontier mainnet chain.
The Trie sits at the heart of all Ethereum client implementations, managing all contract data and account balances. It relies heavily on the expensive Keccak hashing operation. A bad implementation conducts more hashes than needed, slowing down transaction processing.
The ephemeral trie tests assume an entirely transient trie whose root is determined once for a dataset and then discarded. The persistent trie benchmarks are concerned with an ever-changing trie structure whose root is periodically queried. Both paradigms are present in the Ethereum protocol.
The numbers don't take into account potential outer optimisations inherant in a particular client's design (Go's design is more easily parallelised at the usage site, for example). If you're interested in the meaning of the numbers, check out the methodology and look into the implementations.
Parity is available through Rust's Cargo and builds with no external dependencies. Just make sure you have Rust installed then grab the Parity codebase...
git clone https://github.com/ethcore/parity.git && cd parity
...and run Parity and sync the chain with:
cargo run --release