Parity

Next Generation Ethereum Browser

We've created the world's fastest and lightest Ethereum client and integrated it directly into your web browser. Using it you can access all the features of the Ethereum network including powerful Decentralised applications and the multitude of cryptocurrencies issued on ethereum.

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.

We're open to alternative licencing arrangements for non-commercial, academic and commercial purposes. Contact info@parity.io if you want to know more about alternative licencing, support and training for Parity.

High Performance

  • Tuned, hand-optimised use of low-level Rust-language
  • JITEVM turbocharges execution of complex contracts
  • Multi-level in-memory caching

Ultra Reliable

  • Memory and concurrency safety guaranteed by Rust language
  • Actor-based modularity ensures maximal resilience
  • Unit-tested and peer-reviewed from day one

Future Proof

  • Standard, JSON-based, chain-specification format
  • EVM plugins allow native speed contracts
  • Actor-based modular architecture with IPC

Small Footprint

  • Rust's ownership tracking facilitates minimal memory footprint
  • Cache management gives fine control to user
  • State-trie pruning minimises storage footprint

Compatible

  • 100% consensus test conformant implementation
  • Complies with standard devp2p network protocol
  • Fully compatible with JSON-RPC API

Easy to use

  • 1-line install on Mac and Linux
  • Docker images available
  • Library APIs are fully documented

Sample Parity

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 -L)

This will install and configure the Parity client for you.

Ubuntu

Download
 
Checksum:
 

Windows

Download
 
Checksum:
 

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 legal@parity.io

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 legal@parity.io 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).

Development

How we make the best software for you

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.

Tested from Day One

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.

In Consensus

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.

100% Reviewed

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.

Roadmap

Our Software Vision

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 ClientHigh-performance & low-footprint Ethereum client
ArchitectureProcess-compartmentalisation and low-level IPC API
Light-clientUltra-minimal-resource IoT client

Benchmarks

Block Processing

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.

Block Processing Speed
Mean blocks processed per second
Bigger is better
Memory Footprint
Resident memory size in Megabytes
Lower number is better
■ Parity
■ eth ("C++")
■ geth ("Go")
■ EthereumJ
Measured on a standard Digital Ocean 8GB droplet running Ubuntu 14.04.03 x64. Benchmarking methodology & rationale published on the Ethereum wiki. Correct at time of publication, 19 February, 2016.

Trie Benchmarks

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.

Ephemeral Trie
Pairs processed per second, '000s,
bigger is better
Persistent Trie
Pairs processed per second, '000s,
bigger is better
Persistent Trie
Inserts achieved per hash computed,
bigger is better
■ Parity
■ eth ("C++")
■ geth ("Go")
■ PyPy
■ CPython
■ JS
Measured on Intel Core i7-4980HQ, 16GB running Ubuntu 15.10 x64. Benchmarking methodology & rationale published on the Ethereum wiki. Correct at time of publication, 10 February, 2016.

Start Developing

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/paritytech/parity.git && cd parity

...and run Parity and sync the chain with:

cargo run --release
If that doesn't work for you, better consult the wiki and/or Gitter.

Resources

Docs

The official documentation for the Parity client, its usage and the APIs.

Read Docs

Wiki

Community-maintained information regarding installation and usage of the client.

Browse Wiki

Gitter

Chat and problem solve with other members of the Parity community.

Join Gitter