Skip to content
This repository has been archived by the owner on Nov 6, 2020. It is now read-only.

Add separate database directory for light client (#8927) #9064

Merged
merged 2 commits into from
Jul 11, 2018

Conversation

mttmartin
Copy link
Contributor

This allows for the full and light client to run at the same time when using portshift. This adds a new database directory for the light client. I don't immediately see a reason to make unique directories for any others, but please let me know if I've missed something.

I've tested this on both Linux and Windows.

@parity-cla-bot
Copy link

It looks like this contributor signed our Contributor License Agreement. 👍

Many thanks,

Parity Technologies CLA Bot

@mttmartin mttmartin changed the title Add seperate database directory for light client (#8927) Add separate database directory for light client (#8927) Jul 6, 2018
@niklasad1 niklasad1 requested a review from rphmeier July 7, 2018 06:17
@5chdn 5chdn added A0-pleasereview 🤓 Pull request needs code review. M4-core ⛓ Core client code / Rust. labels Jul 7, 2018
@5chdn 5chdn added this to the 2.0 milestone Jul 7, 2018
Copy link
Collaborator

@dvdplm dvdplm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm modulo minor readability grumbles.

@@ -978,8 +978,12 @@ impl Configuration {
let data_path = replace_home("", &base_path);
let is_using_base_path = self.args.arg_base_path.is_some();
// If base_path is set and db_path is not we default to base path subdir instead of LOCAL.
let base_db_path = if is_using_base_path && self.args.arg_db_path.is_none() {
let base_db_path = if is_using_base_path && self.args.arg_db_path.is_none() && self.args.flag_light {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe this is a little more readable?

let base_db_path = if is_using_base_path && self.args.arg_db_path.is_none() {
  if self.args.flag_light {} else {}
} else if self.args.flag_light {} else {}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the reviews today. I updated this based on your suggestions.

@5chdn 5chdn added the A1-onice 🌨 Pull request is reviewed well, but should not yet be merged. label Jul 10, 2018
@5chdn 5chdn modified the milestones: 2.0, 2.1 Jul 10, 2018
@5chdn 5chdn removed the A1-onice 🌨 Pull request is reviewed well, but should not yet be merged. label Jul 11, 2018
@tomaka
Copy link
Contributor

tomaka commented Jul 11, 2018

This will make the light database vanish for anyone who upgrades their node to after this change.
But do we need a migration? The light client should sync really quickly, so I don't know if it's worth the effort.

@Tbaut
Copy link
Contributor

Tbaut commented Jul 11, 2018

I don't know if it's worth the effort

Definitely not needed, it's quick enough and not widely used yet.

Copy link
Contributor

@tomaka tomaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, modulo the fact that we don't care about the light database vanishing.

@5chdn 5chdn merged commit 796637b into openethereum:master Jul 11, 2018
@5chdn 5chdn added the B7-releasenotes 📜 Changes should be mentioned in the release notes of the next minor version release. label Jul 11, 2018
5chdn pushed a commit that referenced this pull request Jul 12, 2018
* Add seperate default DB path for light client (#8927)

* Improve readability
@5chdn 5chdn mentioned this pull request Jul 12, 2018
15 tasks
5chdn added a commit that referenced this pull request Jul 17, 2018
* parity-version: betalize 2.0

* Multiple improvements to discovery ping handling (#8771)

* discovery: Only add nodes to routing table after receiving pong.

Previously the discovery algorithm would add nodes to the routing table
before confirming that the endpoint is participating in the protocol. This
now tracks in-flight pings and adds to the routing table only after receiving
a response.

* discovery: Refactor packet creation into its own function.

This function is useful inside unit tests.

* discovery: Additional testing for new add_node behavior.

* discovery: Track expiration of pings to non-yet-in-bucket nodes.

Now that we may ping nodes before adding to a k-bucket, the timeout tracking
must be separate from BucketEntry.

* discovery: Verify echo hash on pong packets.

Stores packet hash with in-flight requests and matches with pong response.

* discovery: Track timeouts on FIND_NODE requests.

* discovery: Retry failed pings with exponential backoff.

UDP packets may get dropped, so instead of immediately booting nodes that fail
to respond to a ping, retry 4 times with exponential backoff.

* !fixup Use slice instead of Vec for request_backoff.

* Add separate database directory for light client (#8927) (#9064)

* Add seperate default DB path for light client (#8927)

* Improve readability

* Revert "Replace `std::env::home_dir` with `dirs::home_dir` (#9077)" (#9097)

* Revert "Replace `std::env::home_dir` with `dirs::home_dir` (#9077)"

This reverts commit 7e77932.

* Restore some of the changes

* Update parity-common

* Offload cull to IoWorker. (#9099)

* Fix work-notify. (#9104)

* Update hidapi, fixes #7542 (#9108)

* docker: add cmake dependency (#9111)

* Update light client hardcoded headers (#9098)

* Insert Kovan hardcoded headers until #7690241

* Insert Kovan hardcoded headers until block 7690241

* Insert Ropsten hardcoded headers until #3612673

* Insert Mainnet hardcoded headers until block 5941249

* Make sure to produce full blocks. (#9115)

* Insert ETC (classic) hardcoded headers until block #6170625 (#9121)

* fix verification in ethcore-sync collect_blocks (#9135)

* Completely remove all dapps struct from rpc (#9107)

* Completely remove all dapps struct from rpc

* Remove unused pub use

* `evm bench` fix broken dependencies (#9134)

* `evm bench` use valid dependencies

Benchmarks of the `evm` used stale versions of a couple a crates that
this commit fixes!

* fix warnings

* Update snapcraft.yaml (#9132)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A0-pleasereview 🤓 Pull request needs code review. B7-releasenotes 📜 Changes should be mentioned in the release notes of the next minor version release. M4-core ⛓ Core client code / Rust.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants