* 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.
* # This is a combination of 2 commits.
# The first commit's message is:
CLI to specify signer interface
# This is the 2nd commit message:
Fixing paths on windows
* CLI to specify signer interface
* Market-orientated transaction pricing
Avoid a strict gas-limit and let the market decide through using
a priority queue based around gas pricing for transactions. In
periods of low transaction volume, they'll be processed for a lower
fee.
* Fix tests, add/clarify documentation, fix some logic.
* Change default to reflect CLI.
* Specify type.
* Make test more precise.
* Fix doc test
* Address book for local addresses.
* Simple disk-backed address book.
* Add test and keep file with keys.
* View and import Geth keys.
* Fix test.
* Fix up author info.
[ci:skip]
* 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]
* Development mode for Signer
* CLI option for signer-dev
* Renaming CLI option
* Make obvious that CLI option is insecure.
[ci:skip]
* Additional warning over security
* Consolidation migration
* Started db amalgamation
* Using client constants for columns
* Adding with_columns constructor
* Migrating to single db
* Fixing tests.
* test.sh without verbose
* Fixing warnings
* add migration tests that catch the bug
* make multiple migrations more robust
* add moved v9
* Merge branch 'noop-migrations' into single-db
* spurious line
* clean up migrations ordering
* update comment [ci skip]
* Bumping default number of max_open_files & re-ordering columns.
* fix merge
* fix ignored analysis tests
* Caching best block content
* Faster best_block_header
* Adding progress to v8 migration
* clean up warnings
* Separate hashes and bodies in the DB
* Separate hashes and bodies in the DB
* Fixed tests
* 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 &
* cli commands
* cleanup parity/signer
* cleanup parity/signer
* remove redundant import of signer crate from main.rs
* cli cleanup in progress
* cli cleanup in progress
* moved few commonly used functions to separate methods with tests
* cleaning up blockchain import in progress
* cleaning up blockchain import in progress2
* cleaning up blockchain import in progress3
* tests for database compaction profile parsing
* cleaning up blockchain import in progress4
* cleaning up blockchain import in progress5
* blockchain import
* export blockchain in progress
* cleanup execute_export
* Configuration::to_duration cleaned up
* removed unused code, tests for to_duration
* cleanup Configuration::mode function
* parsing some of the cli params in params.rs
* rpc and signer are no longer optional
* move importing extern crates to main.rs file
* swipe dies from rpc module
* swipe dies from dapps
* finding deprecated
* several tests and fixes for parity
* parity cleanup in progress
* cleanup price parsing
* parity cleanup in progress
* swiped all dies
* parity cleanup in progress
* replace usages of from_str with parse() in parity/params.rs
* removed few more from_str
* split parity/params.rs into params and helpers
* removed wildcard import from configuration.rs
* cleanup directories/path creation
* cleaning up run cmd
* moved LoggerConfig
* defaults for cli params
* fixed indention in raise_fd_limit
* tests for rpc_apis
* tests for default ipc and rpc settings
* ipc socket
* cleanup in progress
* account service
* cleanup miner config
* BlockChain commands use Directiores structure now
* client_config
* network settings and dapps configuration
* removing warnings
* default logger config
* fixed client_path
* overhaul
* fixing export && import
* default export DataFormat
* import and export also upgrade db
* fixed export && import
* polishing pr
* polishing pr
* fixed custom bootnodes
* fixed daemonize on windows
* fixed setting up enable network
* finished pr
* fixed compiling on windows
* Fixed warning; windows build
* Better cache management
* Fixed tests on windows
* Fixed test
* Restored pruning method names
* --cache alias
* Fixed more tests
* Ensure default options actually listed as valid
[ci:skip]
* Add Ethereum Classic support
(Rename homestead-dogmatic -> classic)
* Additional change needed.
* More needed changes.
* Separate database path for known forks.
* Address minor grumble.
* Introduce persistent name() and meta() in SecretStore.
* Quick stash.
* Fix build.
* Add ethcore_set methods.
* Bug fixes for default values.
* Move to personal to ensure set API exposed.
* Add UUID to accounts info.
* Add tests.
* 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
* Use tree index for DB
* Set uncles_hash, tx_root, receipts_root from verified block
* Use Filth instead of a bool
* Fix empty root check
* Flush block queue properly
* Expunge deref
* Multi-mode logging.
Better for miners (they get immediate notification of new block).
Better for general use (less superfluous information shown).
* Remove comment.
[ci:skip]
* Minor string change
[ci:skip]
* Minor message tweak.
* Minor tweaks and indentation fix.
* Minor additions to allow resetting of code.
* Add test.
* Provisional DAO hard-fork proposal.
* Change to reflect latest HF spec.
* Include extradata restrictions and overrides.
* Introduce new tests.
* Update tests to new spec format.
* Allow JSON chain spec fields to be optional.
* Remove superfluous definitions. Fix overflow risk.
* Fix build.
* Add missing file.
* Remove old flag.
* Update to latest address set.
* Update tests and test spec to latest.
Change the mining default to release only on own transactions.
* cleanup parity/signer
* remove redundant import of signer crate from main.rs
* rpc and signer are no longer optional
* move importing extern crates to main.rs file
* partially done alternate migration scheme
* finish altering migration framework
* migrate tests to new migration framework
* address comments
* remove superfluous newline
[ci skip]
* TempIdx -> TempIndex
[ci skip]
* modify account_db to work on address hash, not address
* add a database migration for new accountdb
* preserve first 96 bits of keys when combining
* handle metadata keys in migration and preserve first 96 bits
* fix comments and hash address instead of hash
* different migrations based on pruning
* migrations mutably borrow self
* batch abstraction for migration
* added missing licence headers
* overlay recent v7 migration
* better error handling, migrate version key as well
* fix migration tests
* commit final batch and migrate journaled insertions
* two passes on journal to migrate all possible deleted keys
* Display information on journal database on startup.
* Minor restyling.
* Client handles the enode message to avoid repeats.
* Avoid unneeded copies *and* reduce code.
* Fix up typo.
* Command=line options.
* Keep alive for the eth protocol.
* Wire up final pieces.
* No network when dark.
* Passive and dark mode work.
* Ensure all RPCs keep alive.
* Fix tests.
* Fix minor bug.
* Minor whitespace.
* Split out some of the sleep-state.
* Fix help text.
* Introduce options for fine-grained management of work queue.
- Minimum reseal period between non-mandatory (transaction) reseals.
- Maximum historical cached block size.
Defaults changed to reflect real-world scenarios (2s, 20 blocks).
* Fix test bug.
* 50 -> 20.
- Optional limit for the amount of gas transactions may have;
- option to restruct transactions returned/queried to only those
which have been executed.
* use gas price statistics for default transaction gas price
* create new signing queue client properly
* replace one more usage of sensible_gas_price
* fill_optional_fields as a free function
* keep test client alive
* reserved peers: lock them, use a hashset, and provide to networkcontext
* adding and removing reserved peer service API
* add NonReservedPeerMode, and setters in host
* setting non reserved mode, restriction accepted connections
* implement RPC apis
* fix deadlock
* fix rpc tests
* 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()
* Filling-in optional fields of TransactionRequest.
* Adding reference to miner
* 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)
* 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.
* 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.