Closes#2213
Omit transaction and receipt roots from abridged block.
No longer use RLP compression.
Make ordered_trie_root generic over an iterator to save an allocation.
Breaks snapshot format backwards compatibility (with other 1.4 snapshots -- it's already been broken with 1.3).
Documentation will need updating
* Make the block header struct's internals private
Currently, this involves a lot of explicit cloning, but we
could migrate the return types of the get_* functions to
be copies rather than references since they are mostly copy
types anyway.
I opted to eliminate the constructor in favor of using
Default::default() plus calling a bunch of setters. This
is similar to the model that a Google Protobuf client uses
and I think it looks fine.
* Drop some unnecessary cloning by comparing references
* Fix compiler errors from callsites in tests.
* Address renamed to H160 at bigint library level
* moved uint specific test from util to bigint library
* naming
* unifing hashes in progress
* unifing hashes
* cleanup redundant unwraps in tests
* Removing util/crypto in progress.
* fixed compiling
* signature cleanup in progress
* new module - ethcrypto used by ethstore and ethcore-network
* fixed compiling
* fixed compiling
* fixed merge
* 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]
* moving ipc deriving to trait
* refactoring of the client
* all compiled
* proved all working
* warnings purged
* allow hypervisor to specify initialization payload in two ways
* using binary initialisation payload for sync
* some docs
* logger to separate crate
* log settings for sync bin
* forwarding logging arguments to the sync
* removed old json-tests
* simplify folds in triehash.rs
* removed unused json_aid
* removed unused squeeze.rs
* json branching tests for trie
* removing todos from util
* separated UsingQueue and Table
* further cleanup, removing unused code
* serde serialization of hash moved to rpc module
* uint wrapper for rpc in progress
* serialization of uint moved to rpc module
* updated eth-secp256k1
* updated igd, serde is no longer dependency of util
* loading trie consensus tests
* renamed aliases in rpc imports
* bump rust-crypto
* initial version of account provider utilizing secret store
* update lazy_static to latest version
* AccountProvider accounts method
* new AccountProvider tests in progress
* basic tests for new AccountProvider
* ethcore compiles with new account provider and secret store
* ethcore-rpc build now compiling with new AccountProvider
* most rpc tests passing with new accounts_provider
* fixed basic_authority tests
* fixed eth_transaction_count rpc test
* fixed mocked/eth.rs tests
* fixed personal tests
* fixed personal signer rpc tests
* removed warnings
* parity compiling fine with new sstore
* fixed import direction
* do not unlock temporarily when we have the password
* removed TODO in account import
* display warning on auto account import failure
* fixed compiling of ethstore on windows
* ethstore as a part of parity repo
* added ethkey
Soft-fork will remain default behaviour, but you can now disable
either the whole mechanism (you'll lose money if you mine with this
when the majority network doesn't) or just vote against it but
otherwise go with the flow.
* More meaningful errors when sending transaction
* Fixing returned value
* Consolidating all RPC error codes
* Fixed loosing peers on incoming connections. (#1293)
* Deactivate peer if it has no new data
* Fixed node table timer registration
* Fixed handshake timeout expiration
* Extra trace
* Fixed session count calculation
* Only deactivate incapable peers in ChainHead state
* Timer registration is not needed
* x64 path
* firewall rules
* Fix read-ahead bug.
Re-ahead 8 bytes rather than 3 to ensure large blocks import fine.
* Refactor to use a const.
* Update README.md
* Gas price statistics. (#1291)
* Gas price statistics.
Affects eth_gasPrice.
Added ethcore_gasPriceStatistics.
Closes#1265
* Fix a bug in eth_gasPrice
* Fix tests.
* Revert minor alteration.
* Tests for gas_price_statistics.
- Tests;
- Additional infrastructure for generating test blocks with
transactions.
* Key load avoid warning (#1303)
* avoid warning with key
* fix intendations
* more intendation fix
* ok() instead of expect()
* Appveyor config for windows build+installer (#1302)
* appveyor
* proper dist name
* quote
* win-build config
* proper build section
* tests in release
* plugin dir
* cache binaries
* quotes
* escaped quotes
* forces user dir
* fixes
* syntax
* proper cahce dir
* quotes?
* root nsis instead of bin
* submodules init
* artifact path fix
* no submodule
* raw link here
* another way to force cargo cache
* include vc++ 2015 redist
* fix name of the dist
* ETHCORE -> Ethcore
* Disabling ethcore_set* APIs (+ Status page)
* Deactivate peer if it has no new data
* Fixed node table timer registration
* Fixed handshake timeout expiration
* Extra trace
* Fixed session count calculation
* Only deactivate incapable peers in ChainHead state
* Timer registration is not needed
* Deactivate peer if it has no new data
* Fixed node table timer registration
* Fixed handshake timeout expiration
* Extra trace
* Fixed session count calculation
* Only deactivate incapable peers in ChainHead state
* Timer registration is not needed
* Fix --geth IPC for MacOS.
* fix pending_* methods in MinerService, add pending_receipts
* pending logs
* include pending logs when polling
* fixed returning pending logs multiple timees
* log type
* transactionHash is supplied to pending logs
* miner returns receipts together with hashes
* bring back miners all_transactions used by sync module
* execution error/result limiting
* missing trailing comma
* fix executive tests
* adding original error as string to the generic transaction error
* 'mallformed'-s all around
* Firt commit.
* First non-functional but correct implementation of BasicAuthority.
Still needs:
- Sealing infrastructure.
* Punch a hole to give miner access to key store.
* Fix test built.
* Basic version of synchronous mining.
This will seal a block whenever a new transaction comes through.
To be made better we need a timer which will wait for one second after the
last block before sealing a new one - better still would be to cooperatively
interleave blocks with other sealing nodes.
* Add tests.
* Fix minor issues from repotting.
* Address grumbles.
* Changing to wipe-out all transactions from particular sender lower then given nonce.
* Changing given nonce to be client_nonce
* Fixing test_client to support proper nonces when transactions are added to blockchain
* Fixing logic for transactions from new blocks in chain