Commit graph

19598 commits

Author SHA1 Message Date
Carl Dong
b0c7b54d0c init: Use systemd automatic directory creation
Tell systemd to create, set, and ensure the right mode for the PID,
configuration, and data directories.

Only the exec bit is set for groups for the aforementioned directories.
This is the least privilege perm that allows for the
reading/writing/execing of files under the directory _if_ the files
themselves give permission to its group to do so (e.g. when -sysperms is
specified). Note that this does not allow for the listing of files under
the directory.
2019-01-05 13:21:44 +08:00
John Newbery
2d5f1ea2e3 [tests] move wallet util functions to wallet_util.py
Adds a new wallet_util.py module and moves generic helper functions
there:

- get_key
- get_multisig
- test_address
2019-01-04 17:49:17 -08:00
John Newbery
6be64ef02c [tests] tidy up wallet_importmulti.py
Fixes review comments from PR 14886.
2019-01-04 17:46:33 -08:00
MarcoFalke
fe5a70b9fe
Merge #15099: tests: Use std::vector API for construction of test data
6b25f29a91 Use std::vector API for construction of test data. (Daniel Kraft)

Pull request description:

  For constructing test scripts, use `std::vector` and, in particular, `std::vector::insert` to insert 20 zero bytes rather than listing the full array of bytes explicitly.  This makes the code easier to read and makes it immediately obvious what the structure of the data is, without having to count the zeros to understand it.

  Of course, that is a matter of taste - so if you disagree that the change makes the code easier to read, let me know.

  This has been split out of #14752.

Tree-SHA512: af82d447f0077259049f1da2d6f86a6c29723c6e17bd342e9a9ecf37b13bddff40643af95c8b3a3260765a5591713d31ca8a45a5a0c20a12c139aee53ea150da
2019-01-05 00:53:13 +01:00
Jonas Schnelli
e8db6b8044
Qt: Fix update headers-count 2019-01-04 08:52:27 -10:00
Jonas Schnelli
7bb45e4b7a
Qt: update header count regardless of update delay 2019-01-04 08:52:22 -10:00
Hennadii Stepanov
a88640e123
Fix minimized window bug on Linux
On some Linux systems the minimized to the taskbar (iconified) main
window cannot be restored properly using actions from the systray icon
menu when QSystemTrayIcon::contextMenu() is a child of the main window.
2019-01-04 20:01:20 +02:00
João Barbosa
91b0c5b096 qt: Use WalletModel* instead of wallet name in console window 2019-01-04 15:24:00 +00:00
João Barbosa
b2ce86c3ad qt: Use WalletModel* instead of wallet name in main window 2019-01-04 15:22:13 +00:00
João Barbosa
d2a1adffeb qt: Factor out WalletModel::getDisplayName() 2019-01-04 15:22:13 +00:00
João Barbosa
f12e1d0b51 rpc: Avoid permanent cs_main lock in getblockheader 2019-01-04 14:58:48 +00:00
Russell Yanofsky
7e4bd19785 Add BitcoinApplication & RPCConsole tests
Add test coverage for Qt initialization code & basic RPC console functionality.
2019-01-04 06:31:07 -05:00
MarcoFalke
f7e182a973
Merge #12151: rpc: Remove cs_main lock from blockToJSON and blockheaderToJSON
b9f226b41f rpc: Remove cs_main lock from blockToJSON and blockHeaderToJSON (João Barbosa)
343b98cbcd rpc: Specify chain tip instead of chain in GetDifficulty (João Barbosa)
54dc13b6a2 rpc: Fix SoftForkMajorityDesc and SoftForkDesc signatures (João Barbosa)

Pull request description:

  Motivated by https://github.com/bitcoin/bitcoin/pull/11913#discussion_r157798157, this pull makes `blockToJSON` and `blockheaderToJSON` free of `cs_main` locks.

  Locking `cs_main` was required to access `chainActive` in order to check if the block was in the chain and to retrieve the next block index.

  With the this approach, `CBlockIndex::GetAncestor()` is used in a way to check if the block belongs to the specified chain tip and, at the same time, get the next block index.

Tree-SHA512: a6720ace0182c19033bbed1a404f729d793574db8ab16e0966ffe412145611e32c30aaab02975d225df6d439d7b9ef2070e732b16137a902b0293c8cddfeb85f
2019-01-04 12:31:07 +01:00
Russell Yanofsky
ca20b65cc0 Move BitcoinApplication to header so it can be tested
Move-only commit, no code changes
2019-01-04 07:31:07 -04:00
MarcoFalke
5b6b371c77
Merge #14855: test: Correct ineffectual WithOrVersion from transactions_tests
75778a0724 test: Correct ineffectual WithOrVersion from transactions_tests (Ben Woosley)

Pull request description:

  `WithOrVersion` uses `|` to combine the versions, and `|` with 0 is a no-op.

  NicolasDorier / sipa do you recall why the version is being overridden here?

  Introduced in ab48c5e721
  Last updated 81e3228fcb

Tree-SHA512: 2aea925497bab2da973f17752410a6759d67181a57c3b12a685d184fbfcca2984c45b702ab0bd641d75e086696a0424f1bf77c5578ca765d6882dc03b42d5f9a
2019-01-04 12:20:35 +01:00
MarcoFalke
9c64278e1a
Merge #13910: Log progress while verifying blocks at level 4
e58985c916 Log progress while verifying blocks at level 4. (Daniel Kraft)

Pull request description:

  When verifying blocks at startup, the progress is printed in 10% increments to logs.  When `-checklevel=4`, however, the second half of the verification (connecting the blocks again) does not log the progress anymore.  (It is still computed and shown in the UI, but not printed to logs.)

  This change makes the behaviour consistent, by adding the missing progress logging also for level-4 checks.

Tree-SHA512: 6a4c5914726fc1a1337de0c5130b20d4edf4e2feeb0aa0449d2ce422b2d8c41e56ede94163a02044d9a28ac4dc6624b1ad611da93ce5792ff32ad9fb1f0ea1e0
2019-01-04 11:58:52 +01:00
MarcoFalke
fd83c57d6b
Merge #14832: docs: Add more Doxygen information to Developer Notes
a62e667296 docs: Add more Doxygen information to Developer Notes (Jon Layton)

Pull request description:

  Update information about Doxygen in `doc/developer-notes.md`.

  Alternatively, this could have its own file (like `doc/web-documentation.md`), since there are installation steps included.

  For example, I had to run:
  ```
  brew install doxygen graphviz
  ```
  on MacOS, otherwise failures occurred.

  This information could also be linked to the `doc/release-process.md`.

Tree-SHA512: 5d77ee83e1b96fde036482b502f676a90a56f3f667753545a7cfba5c2e3b825644bb4cf0f8a84b7f9ba92fa5f2e1cd6ef1e27a94277f43d012355df741f7dd2f
2019-01-04 11:49:29 +01:00
Wladimir J. van der Laan
f51aeac5ad
Merge #15007: qt: Notificator class refactoring
698d0f882a Remove misplaced Q_UNUSED and others enhancements (Hennadii Stepanov)

Pull request description:

  This PR:
  - removes misplaced `Q_UNUSED(cls)`; `cls` is actually used:
  eb7daf4d60/src/qt/notificator.cpp (L188)

  - removes unused parameters in functions `notifySystray()` and `notifyMacUserNotificationCenter()`

  - improves comments

Tree-SHA512: 78c0713f2a968b471dae422e9a5a0959018923e0d24ed595921001a9895ffb6ceb0311c63e4264fdff470b021a8b8df0f6972c630a051dafed06281880acc261
2019-01-04 10:31:27 +01:00
Wladimir J. van der Laan
d3dc6d8794
Merge #15085: gui: Fix incorrect application name when passing -regtest
cc341adbbb gui: Fix for Incorrect application name when passing -regtest (Ben Carman)

Pull request description:

  Changes the application name to `Bitcoin-Qt-regtest` when instead of `Bitcoin-Qt-testnet`

  Fixes #15079

Tree-SHA512: 42ce3bea0bc3ff358708b9715f8d07c3a93e11fc4fe1a1425996ac70fd06ec8e5b186c5bbb254a7a189678ccbef3109174ca1f72c2c40c360927ec5da7315d8d
2019-01-04 10:25:53 +01:00
Daniel Kraft
6b25f29a91 Use std::vector API for construction of test data.
For constructing test scripts, use std::vector and, in particular,
std::vector::insert to insert 20 zero bytes rather than listing the full
array of bytes explicitly.  This makes the code easier to read and makes
it immediately obvious what the structure of the data is, without having
to count the zeros to understand it.
2019-01-04 08:11:44 +01:00
MarcoFalke
d71d0d7b7f
Merge #13884: depends: Enable bdb unicode support for Windows
5bb0164cee depends: Enable unicode support on dbd for Windows (Chun Kuan Lee)

Pull request description:

  define `UNICODE` and `_UNICODE` while compiling for Windows. This would make dbd read filename as utf8 string.

Tree-SHA512: 58ee86ca5333c416c7c4db8266887c085c486cabfbb68c6bd0e66519abb3abfedac6bb7d28e4228eb5c2c4436e4e5060eb7b22490044143b6676d23fc627540a
2019-01-03 23:41:59 +01:00
Ben Woosley
75778a0724
test: Correct ineffectual WithOrVersion from transactions_tests
WithOrVersion uses | to combine the versions, and | with 0 is a no-op.

Instead I run it with PROTOCOL_VERSION and 0 separately, as the original
code only tested PROTOCOL_VERSION but apparently only intended to test
version 0.

Introduced in ab48c5e721
Last updated 81e3228fcb
2019-01-03 09:10:27 -08:00
Wladimir J. van der Laan
1d73636fdf
Merge #15038: docs: Get more info about GUI-related issue on Linux
79f0a3f1f4 Get more info about GUI-related issue on Linux (Hennadii Stepanov)

Pull request description:

  There is bunch of combinations Linux Distro (Debian, Fedora, Ubuntu etc) + Desktop Environment (GNOME, KDE, Xfce etc) + Graphical Shell (Unity, GNOME Shell etc).

  This PR adds related requests to the issue template. Providing such data will make GUI-related issue reviewing and reproducing easier.

Tree-SHA512: 9728d7826108b62a916c43523572d1da1b52b43a21b3d550a84225ff67951224e0b8a9394627f274d7c65383b3f526bcd12cc40eef9d7fec174c19d1abf333d8
2019-01-03 17:01:06 +01:00
MarcoFalke
06fabfa287
Merge #15020: Build: add names to Travis jobs
1db71d4a29 Add names to Travis jobs (Graham Krizek)

Pull request description:

  This adds the `name` field to all the TravisCI jobs. This will make it more obvious in the Travis UI what job is failing or passing.

Tree-SHA512: d65841bab0a80d098a46a4bb54af2f9a93db7abca93b848aa00d25dcf4cd74323371c7c0b78b4dbf390b197e7ba32262a91631e201fc505f834021753f700b28
2019-01-03 16:42:34 +01:00
Wladimir J. van der Laan
d1effa11ad
Merge #14375: qt: Correct misleading "overridden options" label
7514361254 Correct misleading "overridden options" label (Hennadii Stepanov)

Pull request description:

  Refs: #3867, #8165.

Tree-SHA512: da3b13a0560654053aeff22a15031ae59a3136abc941f3959440c2d250add7de7ca837c96d721eed69b2cac21d340e1895a186f69383ab82a41fc1e0ee789e5c
2019-01-03 16:33:16 +01:00
Graham Krizek
1db71d4a29
Add names to Travis jobs
This also removes job name comments from .travis.yml because they are no longer necessary
2019-01-03 09:20:00 -06:00
MarcoFalke
fab3f14678
rpc: Document bytessent_per_msg and bytesrecv_per_msg 2019-01-03 15:49:24 +01:00
Wladimir J. van der Laan
031e3a32b2
Merge #15081: Doc: Update release notes for master through to 2019-01-01
f3d7d75e4e Release notes: integrate detached release notes (David A. Harding)
97fbe67940 Release notes: update notes through fb52d0684 (David A. Harding)

Pull request description:

  This adds release notes for the changes listed by `git log 11e1ac3...fb52d0684 --merges`, picking up where #14688 left off in my attempt to update the release notes every month or so (reducing the amount of work that needs to be done near release time).  I've excluded changes backported to the 0.17 branch (whether they've been released yet or not).

Tree-SHA512: 7d08fb0e1c08d038a4ca46e6c11da2d3dc093e3827796f47cb6177d2bd5303be583fb05e1eb04c0bb12ecb63a879a6075c9a32cc03e4841ffadee7b9c480eefc
2019-01-03 10:23:40 +01:00
Ben Carman
cc341adbbb gui: Fix for Incorrect application name when passing -regtest 2019-01-03 01:04:26 -06:00
David A. Harding
f3d7d75e4e
Release notes: integrate detached release notes 2019-01-02 20:27:07 -05:00
David A. Harding
97fbe67940
Release notes: update notes through fb52d0684 2019-01-02 20:27:06 -05:00
Hennadii Stepanov
fb3ce75807
Don't label transactions "Open" while catching up
Since the default `nSequence` is `0xFFFFFFFE` and locktime is enabled,
the checking `wtx.is_final` is meaningless until the syncing has
completed.
2019-01-03 00:10:24 +02:00
MarcoFalke
fb52d0684e
Merge #15000: qt: Fix broken notificator on GNOME
c8d9d9093b Fix broken notificator on GNOME (Hennadii Stepanov)

Pull request description:

  Fix #14994; that bug was introduced in #14228 (that was my fault).

  ~Also this commit explicit separates~ There are two functions of the tray icon:
   - a system tray widget (`QSystemTrayIcon::isSystemTrayAvailable() == true`)
   - a high-level notificator via balloon messages (`QSystemTrayIcon::supportsMessages() == true`)

  ~These properties are mutually independent,~ e.g., on Fedora 29 + GNOME:
  ```
  QSystemTrayIcon::isSystemTrayAvailable() == false;
  QSystemTrayIcon::supportsMessages() == true;
  ```

  UPDATE:

  `supportsMessages()` makes no sense without `isSystemTrayAvailable()`: `QSystemTrayIcon::showMessage()` just not working on Fedora 29 + GNOME.

Tree-SHA512: 3e75ed2dfcef112bd64b8c329227ae68ba57f3be55769629f4eb3b1c52ef1f33db635f00bb5fd57c25f73a692971d6a847ea14c525f41c594fddde6e970a8ad8
2019-01-02 17:16:53 +01:00
Wladimir J. van der Laan
df894fa69a
Merge #14457: test: add invalid tx templates for use in functional tests
59e387705c test: add invalid tx templates for use in functional tests (James O'Beirne)

Pull request description:

  This change adds a list of `CTransaction`-generating templates which each correspond to a specific type of invalid transaction. We then use this list to test for a wider variety of invalid tx types in `p2p_invalid_tx.py` and `feature_block.py`.

  Consolidating all invalid tx types will allow us to more easily cover all tx reject cases from a variety of tests without repeating ourselves. Validation logic doesn't differ much between mempool and block acceptance, but there *is* a difference and we should be sure we're testing both comprehensively.

  Right now, I've only added templates covering the tx reject types listed below but if this approach seems worthwhile I will expand the list to be fully comprehensive.
  ```
  bad-txns-in-belowout
  bad-txns-inputs-duplicate
  bad-txns-too-many-sigops
  bad-txns-vin-empty
  bad-txns-vout-empty
  bad-txns-vout-negative
  ```

Tree-SHA512: 05407f4a953fbd7c44c08bb49bb989cefd39a2b05ea00f5b3c92197a3f05e1b302f789e33832445734220e1c333d133aba385740b77b84139b170c583471ce20
2019-01-02 14:44:14 +01:00
Wladimir J. van der Laan
c3bb936a0f
Merge #14790: Tests: Allow running rpc_bind.py --nonloopback test without IPv6
c9066f07c9 Allow running rpc_bind.py --nonloopback test without IPv6 (Kristaps Kaupe)

Pull request description:

  Don't see a reason why this can't be tested with IPv4 only.

Tree-SHA512: 515bdf700fad420e4b1798fd4978b53e2da3ddb26e43b16d68b43071bc912c325f1ceb10046ba3d0494dab289a53c45ddc2de9064117d8c1d6bf11e88323f490
2019-01-02 14:16:12 +01:00
João Barbosa
a0ac15459a doc: Add getrpcinfo release notes 2019-01-02 12:47:32 +00:00
João Barbosa
251a91c1bf qa: Add tests for getrpcinfo 2019-01-02 12:47:32 +00:00
João Barbosa
d0730f5ce4 rpc: Add getrpcinfo command 2019-01-02 12:47:32 +00:00
João Barbosa
068a8fc05f rpc: Track active commands 2019-01-02 12:34:58 +00:00
Wladimir J. van der Laan
62cf608e93
Merge #14336: net: implement poll
4927bf2f25 Increase maxconnections limit when using poll. (Patrick Strateman)
11cc491a28 Implement poll() on systems which support it properly. (Patrick Strateman)
28211a4bc9 Move SocketEvents logic to private method. (Patrick Strateman)
7e403c0ae7 Move GenerateSelectSet logic to private method. (Patrick Strateman)
1e6afd0dbc Introduce and use constant SELECT_TIMEOUT_MILLISECONDS. (Patrick Strateman)

Pull request description:

  Implement poll() on systems which support it properly.

  This eliminates the restriction on maximum socket descriptor number.

Tree-SHA512: b945cd9294afdafcce96d547f67679d5cdd684cf257904a239cd1248de3b5e093b8d6d28d8d1b7cc923dc0b2b5723faef9bc9bf118a9ce1bdcf357c2323f5573
2019-01-02 13:14:45 +01:00
MarcoFalke
3ec4cc0a9e
Merge #15069: test: Fix rpc_net.py "pong" race condition
de23739b22 test: Fix rpc_net.py "pong" race condition (Ben Woosley)

Pull request description:

  Prior to this change, the test fails with KeyError if pong has
  a zero value at the time this is called, as getpeerinfo's
  bytesrecv_per_msg result excludes zero-values.

  Combined these to a single wait_until as well, which will be a bit more
  forgiving re the timeout while still enforcing the same 2 seconds
  overall.

  https://ci.appveyor.com/project/DrahtBot/bitcoin/builds/21310881#L62

Tree-SHA512: dc60f95a0e139c104fd81c8a7e0c9b3c25907de26c9d4e5976ae490e8ed5db0f0c492cd0e996ef6b5eb02cae82a62d4551ed36f95601871b19472050b3247bc0
2019-01-02 10:51:12 +01:00
MeshCollider
4f041ba14f
Merge #15073: docs: Botbot.me (IRC logs) not available anymore
b60ac00d2 Botbot.me (IRC logs) not available anymore (Antti Majakivi)

Pull request description:

  Remove botbot.me link as it's [not available anymore](https://lincolnloop.com/blog/saying-goodbye-botbotme/) and add two other IRC history log sources for #bitcoin-core-dev, http://www.erisian.com.au/bitcoin-core-dev/ and http://gnusha.org/bitcoin-core-dev/.

Tree-SHA512: 025477b33542c8b91fa99eec7f5cdff043da4bf11e0f8ceba8175fe3ca171ba66a66040673e487a85babe790514a1c8f9b5ce8a31013c01befb050272b6ca33a
2019-01-02 16:44:53 +13:00
Ben Woosley
de23739b22
test: Fix rpc_net.py "pong" race condition
Prior to this change, the test fails with KeyError if pong has
a zero value at the time this is called, as getpeerinfo's
bytesrecv_per_msg result excludes zero-values.

https://ci.appveyor.com/project/DrahtBot/bitcoin/builds/21310881#L62
2019-01-01 13:12:41 -08:00
MarcoFalke
fa38d3df69
[rpc] Correct reconsiderblock help text, add test 2019-01-01 18:02:12 +01:00
Antti Majakivi
b60ac00d2d
Botbot.me (IRC logs) not available anymore
Remove botbot.me link and add two other IRC history log sources: logs for #bitcoin-core-dev at http://www.erisian.com.au/bitcoin-core-dev/ and http://gnusha.org/bitcoin-core-dev/
2019-01-01 16:04:38 +02:00
Wladimir J. van der Laan
f5a70d1462
Merge #14974: doc: Removing redundant line: "Windows XP not supported"
3019ba28d1 Making supported operating systems more clear (Ben Carman)

Pull request description:

  With the doc saying that we only support Windows 7+ stating that XP isn't supported is redundant and can be removed. Bitcoin stop supporting Windows XP in 0.13 so users should have had plenty of time to learn that XP is no longer supported.

Tree-SHA512: bbaaea205ea7ec9960198e70ded83e8f384c9b8c476ed873488635b8dfe28a482f8caa50df2fd818f226cdc936a21de087e95f0f1fd7f5ae17e7889ea0bea221
2018-12-31 16:02:47 +01:00
MarcoFalke
e756eca9e8
Merge #15054: Update copyright headers to 2018
1a49a0e310 Bump manpages (DrahtBot)
06ba77973e Update copyright headers to 2018 (DrahtBot)

Pull request description:

  * `./contrib/devtools/copyright_header.py update ./`
  * `./contrib/devtools/gen-manpages.sh`

Tree-SHA512: ca0dc5e97f4c33814d4ccd17769bbf2d23a99a71d62534fe1064fedfe47de3b5c30caf9b6deb0d70bf125e08c7ae6335ac4fcded918049d6b63b13b319d798e3
2018-12-31 12:24:27 +01:00
Wladimir J. van der Laan
cc07f9ce69
Merge #15061: [Trivial] Update license year range to 2019
ae5594d51b [Trivial] Update license year range to 2019 (Emil Engler)

Pull request description:

  Bitcoin Core is going to become 10 so the license year range also needs an update.
  2019 is coming very soon so it is the time to update the year range like every year.

  Same as #12063

Tree-SHA512: 64d8b5ad12c4a9a1afdeaac7c5b5d874cda66eb9b7040b58dc253b359d0090dadab033d2ead65aad331d9dc5c56bcf8066b6d09fd85de5bfc7de7309db16d155
2018-12-31 10:31:23 +01:00
Emil Engler
ae5594d51b [Trivial] Update license year range to 2019
Update year range
2018-12-31 04:27:59 +01:00
MarcoFalke
2741b2b6f4
Merge #15026: [test] Rename rpc_timewait to rpc_timeout
4999992c34 whitespace: Split ~300 char line into multiple ones (MarcoFalke)
fa71b38168 scripted-diff: Rename rpc_timewait to rpc_timeout (MarcoFalke)
fa3e5786d0 scripted-diff: Remove unused 'split' parameter to setup_network (MarcoFalke)

Pull request description:

  This is a bugfix, since wallet_dump currently uses the wrong name:

  18857b4c40/test/functional/wallet_dump.py (L89-L92)

  Rename all to the same name with a scripted diff (and some unrelated cleanups).

Tree-SHA512: 338ddd20dae12e6cf7aa7adbcfb239cf648017a1572b373f8431fecb184bd2a65492846d81e75a023864d9e41c94afb53044c16b79651a5937d34a5a6b772f81
2018-12-29 20:18:50 +01:00