Go to file
Robert Habermeier 76a7246369 Snapshot creation and restoration (#1679)
* to_rlp takes self by-reference

* clean up some derefs

* out-of-order insertion for blockchain

* implement block rebuilder without verification

* group block chunk header into struct

* block rebuilder does verification

* integrate snapshot service with client service; flesh out implementation more

* initial implementation of snapshot service

* remove snapshottaker trait

* snapshot writer trait with packed and loose implementations

* write chunks using "snapshotwriter" in service

* have snapshot taking use snapshotwriter

* implement snapshot readers

* back up client dbs when replacing

* use snapshot reader in snapshot service

* describe offset format

* use new get_db_path in parity, allow some errors in service

* blockchain formatting

* implement parity snapshot

* implement snapshot restore

* force blocks to be submitted in order

* fix bug loading block hashes in packed reader

* fix seal field loading

* fix uncle hash computation

* fix a few bugs

* store genesis state in db. reverse block chunk order in packed writer

* allow out-of-order import for blocks

* bring restoration types together

* only snapshot the last 30000 blocks

* restore into overlaydb instead of journaldb

* commit version to database

* use memorydbs and commit directly

* fix trie test compilation

* fix failing tests

* sha3_null_rlp, not H256::zero

* move overlaydb to ref_overlaydb, add new overlaydb without on-disk rc

* port archivedb to new overlaydb

* add deletion mode tests for overlaydb

* use new overlaydb, check state root at end

* share chain info between state and block snapshotting

* create blocks snapshot using blockchain directly

* allow snapshot from arbitrary block, remove panickers from snapshot creation

* begin test framework

* blockchain chunking test

* implement stateproducer::tick

* state snapshot test

* create block and state chunks concurrently, better restoration informant

* fix tests

* add deletion mode tests for overlaydb

* address comments

* more tests

* Fix up tests.

* remove a few printlns

* add a little more documentation to `commit`

* fix tests

* fix ref_overlaydb test names

* snapshot command skeleton

* revert ref_overlaydb renaming

* reimplement snapshot commands

* fix many errors

* everything but inject

* get ethcore compiling

* get snapshot tests passing again

* instrument snapshot commands again

* fix fallout from other changes, mark snapshots as experimental

* optimize injection patterns

* do two injections

* fix up tests

* take snapshots from 1000 blocks efore

* address minor comments

* fix a few io crate related errors

* clarify names about total difficulty

[ci skip]
2016-08-05 17:00:46 +02:00
dapps Bumping clippy & fixing warnings (#1823) 2016-08-03 19:01:48 +02:00
db Bumping clippy & fixing warnings (#1823) 2016-08-03 19:01:48 +02:00
devtools Fix ipc tests and bring to CI (#1789) 2016-08-01 06:32:07 -07: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 Snapshot creation and restoration (#1679) 2016-08-05 17:00:46 +02:00
ethkey docopt is an optional dependency of ethkey and ethstore 2016-06-20 17:50:38 +02:00
ethstore Fixing account naming (#1810) 2016-08-03 17:58:22 +02:00
evmbin Gas for mem optimization (#1768) 2016-07-30 06:38:44 -07:00
evmjit v1.3.0 (#1421) 2016-06-25 10:32:05 +02:00
ipc Util & ipc clenup (#1807) 2016-08-02 15:02:47 +01:00
json Bumping clippy & fixing warnings (#1823) 2016-08-03 19:01:48 +02:00
logger Place thread name in the log output (#1792) 2016-08-01 10:07:09 -07:00
nsis v1.3.0 (#1421) 2016-06-25 10:32:05 +02:00
parity Snapshot creation and restoration (#1679) 2016-08-05 17:00:46 +02:00
rpc Snapshot creation and restoration (#1679) 2016-08-05 17:00:46 +02:00
scripts Split IO and network crates (#1828) 2016-08-05 10:32:04 +02:00
signer Split IO and network crates (#1828) 2016-08-05 10:32:04 +02:00
sync Snapshot creation and restoration (#1679) 2016-08-05 17:00:46 +02:00
util Snapshot creation and restoration (#1679) 2016-08-05 17:00:46 +02:00
.editorconfig Fixing travis.yml 2016-07-11 18:23:24 +02:00
.gitignore fix build and remove .cargo regs 2016-06-14 18:16:41 +03:00
.gitlab-ci.yml add gitlab-ci yaml (#1753) 2016-07-28 17:34:32 +02:00
.gitmodules Submodule over https 2016-02-08 00:46:59 +01:00
.travis.yml Single DB (#1741) 2016-07-28 23:46:24 +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
Cargo.lock Snapshot creation and restoration (#1679) 2016-08-05 17:00:46 +02:00
Cargo.toml Split IO and network crates (#1828) 2016-08-05 10:32:04 +02:00
LICENSE Change to library. 2015-11-24 21:05:08 +01:00
license_header prepare for adding licenses 2016-02-05 13:36:30 +01:00
README.md mention wiki in README 2016-07-05 19:26:22 +02:00
rustfmt.toml Some tuning of rustfmt 2016-04-13 17:39:20 +02:00
test.sh Fix ipc tests and bring to CI (#1789) 2016-08-01 06:32:07 -07:00

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.