Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: bundle app config #425

Merged
merged 12 commits into from
Apr 10, 2019
Merged

feat: bundle app config #425

merged 12 commits into from
Apr 10, 2019

Conversation

doitian
Copy link
Member

@doitian doitian commented Apr 9, 2019

Proposal: [PREVIEW]

  • Add ckb_resource::ResourceLocator to load config files, which fallbacks to the bundled files.
  • Add a new subcommand ckb init to dump the bundled config files.
  • The bundled config files support template to set the different options for different specs in the same file.
  • Add many checks before starting the app.
  • Refactor the code organization in src.
  • Options logger.file, db.path and network.path are set automatically from the data dir.

Breaking Changes:

  • Remove command line argument -c, and add command line argument -C.
  • No longer search the config file nodes/default.toml.
  • Remove logger.file, db.path and network.path from config file. Add config option logger.copy_to_stdout.

Future Enhancements:

  • Better exit message.
  • Verify genesis hash when starting the app.
  • Verify database version when starting the app.

TODO

  • Add tests to load bundled config files.
  • Add tests to load the config files generated by ckb init.
  • ckb init should quit if any file already exists unless --force is specified.
  • ckb init should write file to temp file first, and move to the target location to avoid generating partial file because of interrupts.

@doitian doitian mentioned this pull request Apr 9, 2019
4 tasks
@doitian doitian added the hotfix Fixing that must be submit to RC branch. label Apr 9, 2019
@doitian doitian added the s:waiting-on-reviewers Status: Waiting for Review label Apr 9, 2019
@doitian doitian merged commit 3473406 into nervosnetwork:rc/v0.9.0 Apr 10, 2019
@doitian doitian deleted the config-rework branch April 10, 2019 12:32
doitian added a commit that referenced this pull request Apr 22, 2019
🎉[ᚬmaster] Rc/v0.9.0

### Bug Fixes

* #410: network panic errors r=jjyr a=jjyr

    * Peer Store no such table
    * get peer index panic

* #386: flatbuffers vtable `num_fields` overflow r=zhangsoledad a=doitian

    Refs nervosnetwork/cfb#16

* #385: Upgrade p2p fix repeat connection bug r=jjyr a=TheWaWaR

    Related PR: nervosnetwork/tentacle#92

* #382: reset peer store connection status when setup r=TheWaWaR a=jjyr

    1. reset peer status
    2. remove banned addrs from peer_attemps result

* #424: many bug fixes of the p2p network issues fix a=TheWaWaR,zhangsoledad

### Features

* #491: update lock cell for segwit and address format a=classicalliu

* #368: segregated witness r=janx,quake a=zhangsoledad

* #409: remove uncle cellbase r=doitian a=zhangsoledad

* #369: Embed testnet chain spec in compiled binary r=doitian a=xxuejie

* #344: Revise script structure r=xxuejie a=xxuejie

* #425: Bundle app config in compiled binary a=doitian

### Improvements

* #392: avoid recursive lock a=zhangsoledad

### BREAKING CHANGES

This release has changed core data structure, please delete the old data directory.

The testnet chain spec is also changed, which is incompatible with previous versions.

Command line argument `-c` is removed, and a new command line argument `-C` is added. See `ckb help` for details.

Now the command `ckb` no longer searches the config file `nodes/default.toml`. It looks for the config file `ckb.toml` or `ckb-miner.toml` in current directory and uses the default config options when not found. A new command `ckb init` is added, see its usage with `ckb init --help`.

Config file `ckb.toml` changes:

- Removed `logger.file`, `db.path` and `network.path` from config file.
- Added config option `logger.log_to_stdout` and `logger.log_to_file`.
- Section `block_assembler` now accepts two options `binary_hash` and `args`. 
- Added a new option to set sentry DSN.

File `miner.toml` changes:

- Option `spec` is moved under `chain`, which is consistent with `ckb.toml`.
- Move miner own config options under section `miner`.
- Remove `logger.file` from config file.
- Add config option `logger.log_to_stdout` and `logger.log_to_file`.

It is recommended to export the config files via `ckb init`, then apply the
modifications upon the new config files.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hotfix Fixing that must be submit to RC branch. s:waiting-on-reviewers Status: Waiting for Review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant