Go to file
keorn 02cf48681d Blocks and snapshot compression (#1687)
* new Compressible rlp trait

* new Compressible rlp trait

* make compressed rlp iterable

* make compressed rlp iterable

* invalid rlp slice swapper

* switch compress to swapper, add reverse swapper test case

* add basic account compression test

* add new rlp trait

* new Compressible rlp trait

* make compressed rlp iterable

* invalid rlp slice swapper

* invalid rlp slice swapper

* switch compress to swapper, add reverse swapper test case

* switch compress to swapper, add reverse swapper test case

* add account compress/ decompress test

* make compressor cleaner, use hashmaps for swapper

* improve compression tests

* add a DecompressingDecoder, change Decoder to take refernce

* separate rlp compression related stuff

* new Compressible rlp trait

* new Compressible rlp trait

* new Compressible rlp trait

* make compressed rlp iterable

* make compressed rlp iterable

* make compressed rlp iterable

* invalid rlp slice swapper

* invalid rlp slice swapper

* invalid rlp slice swapper

* switch compress to swapper, add reverse swapper test case

* switch compress to swapper, add reverse swapper test case

* switch compress to swapper, add reverse swapper test case

* add basic account compression test

* add new rlp trait

* add account compress/ decompress test

* make compressor cleaner, use hashmaps for swapper

* improve compression tests

* add a DecompressingDecoder, change Decoder to take refernce

* separate rlp compression related stuff

* DecompressingDecoder test

* initial compressing HashDB wrapper

* remove unused test

* change CompressedDB to struct wrapper with overlay

* simplify compressor

* failed RefCell attempt

* use denote to return reference

* compiled compresseddb

* compressdb test, add overlay emplace

* fix overlay reference count handling

* add immutable compresseddb, make account use hashdb

* simplify using trait objects

* enable hashdb for account

* initial state compression attempt

* wrap state db

* add tests for analyzing db

* add account predicate

* try to compress data fields as rlp too

* remove compression for storage trie

* add a compressing migration

* more compression stats tests

* fix migration import

* nested encoding compression test

* fix decompression, move db stats tests to rlpcompression

* added malformed rlp tests, cover a few edge cases

* new CompressingEncoder struct

* extend migrations to state

* first version working on the whole db

* clean up Compressible impl

* tests cleanup

* add a testing migration

* refactor deep compression using option, add simple compression

* put tests in a module

* fix compressed overlay loading

* simple compression for snapshots

* remove unused DecompressingDecoder

* add a general compressing migration

* add more common rlps to compress

* use static slices for swapper

* add precomputed hashes and invalid rlps

* make decoder private again

* cover more cases with tests

* style

* fix weird indentation

* remove possible panic in payload_info

* make prefix checking safe

* fix db existence check

* remove db dir from test

* pass usize by value [ci skip]

* Improve comment on panic removal.

* add common blocks db rlps

* add compression to blockchain db

* add blocks db migration

* fix the migrations

* remove state compression

* add a separate snapshot swapper

* ability to use different swappers and traversal

* update tests to new interface

* clean up code ordering

* update usage

* fix compilation

* remove unnecessary changes

* move methods to functions to reduce interface

* move test to module

* update common rlps to blocks db

* move tests to tests modules

* remove redundant &
2016-07-27 17:11:41 +02:00
dapps Host validation (again) (#1666) 2016-07-20 12:34:17 +02:00
db replace synchronization primitives with those from parking_lot (#1593) 2016-07-13 19:59:59 +02:00
devtools add account tests 2016-07-11 16:54:50 +02:00
docker Docker Arguments (#1703) 2016-07-24 17:40:38 +02:00
ethash Performance optimizations (#1642) 2016-07-17 09:18:15 +02:00
ethcore Blocks and snapshot compression (#1687) 2016-07-27 17:11:41 +02:00
ethkey docopt is an optional dependency of ethkey and ethstore 2016-06-20 17:50:38 +02:00
ethstore cli overhaul (#1600) 2016-07-25 16:09:47 +02:00
evmbin EVM gas for memory tiny optimization (#1578) 2016-07-12 09:49:16 +02:00
evmjit v1.3.0 (#1421) 2016-06-25 10:32:05 +02:00
ipc Proper errors for binary serializer (#1714) 2016-07-26 10:33:52 +02:00
json Ethereum classic (#1706) 2016-07-25 10:20:22 +02:00
logger cli overhaul (#1600) 2016-07-25 16:09:47 +02:00
nsis v1.3.0 (#1421) 2016-06-25 10:32:05 +02:00
parity Blocks and snapshot compression (#1687) 2016-07-27 17:11:41 +02:00
rpc Various improvements to tracing & diagnostics. (#1707) 2016-07-26 16:48:50 +02:00
scripts Proper errors for binary serializer (#1714) 2016-07-26 10:33:52 +02:00
signer fix typos (#1644) 2016-07-19 20:42:23 +02:00
sync Parallel block body download (#1659) 2016-07-25 18:38:36 +02:00
util Blocks and snapshot compression (#1687) 2016-07-27 17:11:41 +02:00
.editorconfig Fixing travis.yml 2016-07-11 18:23:24 +02:00
.gitignore ignore out directory 2016-02-29 21:14:38 +01:00
.gitmodules Submodule over https 2016-02-08 00:46:59 +01:00
.travis.yml Precompiled JS features 2016-07-15 10:34:33 +02:00
Cargo.lock bump json-ipc-server version 2016-07-27 15:48:23 +03:00
Cargo.toml moving to the single binary (#1710) 2016-07-26 00:21:08 +02:00
LICENSE Change to library. 2015-11-24 21:05:08 +01:00
README.md mention wiki in README 2016-07-05 19:26:22 +02:00
appveyor.yml cli overhaul (#1600) 2016-07-25 16:09:47 +02:00
build.rs bringing hypervisor as a crate in ipc dir (#1565) 2016-07-09 17:18:34 +02:00
license_header prepare for adding licenses 2016-02-05 13:36:30 +01:00
rustfmt.toml Some tuning of rustfmt 2016-04-13 17:39:20 +02:00
test.sh Verbose compilation 2016-07-18 10:39:57 +02:00

README.md

Parity

Fast, light, and robust Ethereum implementation

Build Status Coverage Status Join the chat at https://gitter.im/ethcore/parity GPLv3

Internal Documentation

Be sure to check out our wiki 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.

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

Parity also runs a server for running decentralized apps, or "Dapps", on http://127.0.0.1:8080. This includes a few useful Dapps, including Ethereum Wallet, Maker OTC, and a node status page. In a near-future release, it will be easy to install Dapps and use them through this web interface.

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!

Parity's current release is 1.2. You can download it at https://ethcore.io/parity.html or follow the instructions below to build from source.


Build dependencies

Parity is fully compatible with Stable Rust.

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

  • Linux and OSX:

    $ curl https://sh.rustup.rs -sSf | sh
    
  • 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


Quick install

cargo install --git https://github.com/ethcore/parity.git parity

Build from source

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

# build in release mode
$ cargo build --release

This will produce an executable in the ./target/release subdirectory.

To get started, just run

$ ./target/release/parity

and parity will begin syncing the Ethereum blockchain.