Jack Grigg
5a1e6853c1
build: Add -lpthread to univalue test LDFLAGS
...
Fixes missing symbols when running the univalue test suite.
2020-10-13 19:38:40 +01:00
Jack Grigg
e917cb614f
build: Compile secp256k1 with C99
...
The secp256k1 library is intended to be C89-compatible. Targeting both
C89 and MinGW with Clang triggers this bug that is fixed in MinGW 8.0.0:
bedff472af
Rather than requiring MinGW 8, we compile secp256k1 targeting C99.
2020-10-13 17:17:26 +01:00
Jack Grigg
2ca72adf8b
build: Add missing LIBUNIVALUE to Makefile.bench.include LDADD
2020-10-13 14:12:41 +01:00
Daira Hopwood
d3330ab797
Fix warnings surfaced by compiling with clang++.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-12 17:55:12 +01:00
Daira Hopwood
acf2d07189
Fix a new warning about use of boost::bind placeholders after updating Boost. closes #4774
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-10 21:41:46 +01:00
Jack Grigg
b42582395b
MOVEONLY: Move logging code from util.{h,cpp} to new files
...
Based on bitcoin/bitcoin#13021 but implemented from scratch.
This introduces a cyclic dependency between `logging` and `util` that
should be cleaned up in a future PR.
2020-10-09 16:32:02 +01:00
Homu
e2d3533de3
Auto merge of #4773 - str4d:4651-combined-params-init, r=daira
...
FFI: Merge librustzcash_init_zksnark_params variants into one function
Rust 1.39.0 added support for attributes on function parameters.
Closes #4651 .
2020-10-09 11:15:40 +00:00
Homu
ce26c21fb4
Auto merge of #4772 - daira:log-invalid-notept, r=daira
...
Add logging when we receive an invalid note plaintext (using the "receiveunsafe" log category)
fixes #4735
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-08 23:35:53 +00:00
Jack Grigg
508aadd2f3
FFI: Merge librustzcash_init_zksnark_params variants into one function
...
Rust 1.39.0 added support for attributes on function parameters.
Closes #4651 .
2020-10-08 22:50:57 +01:00
Daira Hopwood
007de07745
Add logging when we receive an invalid note plaintext (using the "receiveunsafe" log category).
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-08 14:29:23 +01:00
mruddy
edfb4d98e7
[depends, zmq, doc] avoid deprecated zeromq api functions
...
Zcash: Backported from bitcoin/bitcoin#13578
2020-10-05 22:54:19 +01:00
Jack Grigg
a9f62bdda0
depends: Boost 1.74.0
...
- The old patch is no longer necessary because of this upstream fix:
https://github.com/boostorg/build/pull/560
- Boost 1.72 removed a <deque> from an include, which exposed a missing
include in src/httpserver.cpp.
- Boost 1.73 moved function placeholders into the boost::placeholders
namespace.
- The new patch is a fix from just after Boost 1.74 was released, fixing
a warning that was missed.
2020-10-05 19:48:46 +01:00
Homu
eb4c9ea0a3
Auto merge of #4484 - defuse:fix-undefined-behavior-in-bitcoin-test, r=str4d
...
Fix undefined behavior in the test_bitcoin tests
2020-10-01 15:19:39 +00:00
Taylor Hornby
3693b96ed4
Fix undefined behavior in the test_bitcoin tests
2020-10-01 13:59:47 +01:00
Homu
a983344931
Auto merge of #4752 - str4d:small-httpserver-backports, r=daira
...
Small httpserver.cpp backports
Also includes a change to the `uiInterface.NotifyBlockTip` signal API.
These remove merge conflicts from subsequent backports for `sync.h`.
Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#6859
- bitcoin/bitcoin#7112
- Only the non-QT changes.
- bitcoin/bitcoin#7966
- bitcoin/bitcoin#8421
- We already backported the second commit in zcash/zcash#2555
2020-10-01 12:48:58 +00:00
str4d
2fbc111efb
httpserver: Code style cleanups
...
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2020-10-01 13:46:21 +01:00
Daira Hopwood
ce0654e13a
Cosmetics in CScriptNum code and tests.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-01 00:34:31 +01:00
Daira Hopwood
932d627753
It's unnecessary to pass int64_t by const reference.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-01 00:34:31 +01:00
Daira Hopwood
f432fe5ebf
Add assertions for CScriptNum[10] +/- int64_t to avoid the possibility of UB.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-01 00:34:31 +01:00
Daira Hopwood
9ba10a8071
Avoid undefined behaviour in scriptnum tests.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-01 00:34:31 +01:00
Cory Fields
860e6e600c
httpserver: replace boost threads with std
...
along with mutex/condvar/bind/etc.
httpserver handles its own interruption, so there's no reason not to use std
threading.
While we're at it, may as well kill the BOOST_FOREACH's as well.
2020-09-30 12:48:35 +01:00
Cory Fields
97194f2abc
httpserver: use a future rather than relying on boost's try_join_for
2020-09-30 12:48:35 +01:00
Wladimir J. van der Laan
26efd3aaf9
http: use std::move to move HTTPRequest into HTTPWorkItem
...
Thanks to Cory Fields for the idea.
2020-09-30 12:48:35 +01:00
Wladimir J. van der Laan
a500df5561
http: Change boost::scoped_ptr to std::unique_ptr in HTTPRequest
...
No need for boost here.
2020-09-30 12:48:35 +01:00
Wladimir J. van der Laan
1f106fa803
http: Add log message when work queue is full
...
More useful error reporting.
2020-09-30 12:48:35 +01:00
Wladimir J. van der Laan
fc9ce9e766
http: Do a pending c++11 simplification
...
Use std::unique_ptr for handling work items.
This makes the code more RAII and, as mentioned in the comment, is what
I planned when I wrote the code in the first place.
2020-09-30 12:48:35 +01:00
Daira Hopwood
b165ead16a
Minor additional OpenSSL scouring.
...
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-09-30 10:44:42 +01:00
Jack Grigg
ab35a260d5
Remove remaining OpenSSL references
2020-09-30 00:40:12 +01:00
Jack Grigg
ce1b5491db
util: Remove OpenSSL multithreading infrastructure
2020-09-30 00:40:12 +01:00
fanquake
4526ecf9b2
doc: remove OpenSSL from build instructions and licensing info
2020-09-30 00:40:12 +01:00
fanquake
0ad49bca44
build: remove OpenSSL detection and libs
2020-09-30 00:40:12 +01:00
fanquake
8993f1f708
build: remove SSL lib detection
2020-09-30 00:40:12 +01:00
practicalswift
c28c9b96a1
tests: Remove OldSetKeyFromPassphrase/OldEncrypt/OldDecrypt
2020-09-30 00:40:12 +01:00
Wladimir J. van der Laan
7b3cb48232
Replace scriptnum_test's normative ScriptNum implementation
...
Compare against the scriptnum from Bitcoin Core 0.10 instead of OpenSSL.
Closes #7086 .
2020-09-30 00:40:12 +01:00
Jonas Schnelli
220e166e47
Move uiInterface.NotifyBlockTip signal above the core/wallet signal
...
- This will keep getbestblockhash more in sync with blocknotify callbacks
2020-09-30 00:35:32 +01:00
Jonas Schnelli
66515b0628
NotifyBlockTip signal: switch from hash (uint256) to CBlockIndex*
...
- also adds a boolean for indication if the tip update was happening during initial sync
- emit notification also during initial sync
2020-09-30 00:35:32 +01:00
Wladimir J. van der Laan
23556e690e
http: Restrict maximum size of request line + headers
...
Prevent memory exhaustion by sending lots of data.
Also add a test to `httpbasics.py`.
Closes #6425
2020-09-30 00:35:32 +01:00
Homu
7d94064616
Auto merge of #4643 - str4d:locked-memory-manager, r=str4d
...
Locked memory manager
Add a pool for locked memory chunks, replacing `LockedPageManager`.
Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#8321
- bitcoin/bitcoin#8753
- bitcoin/bitcoin#9063
- bitcoin/bitcoin#9070
- bitcoin/bitcoin#11385
- bitcoin/bitcoin#12048
- Excludes change to benchmark.
- bitcoin/bitcoin#15117
- bitcoin/bitcoin#16161
- Excludes Travis CI changes.
- Includes change from bitcoin/bitcoin#13163
- bitcoin/bitcoin#15600
- bitcoin/bitcoin#18443
- Assorted small changes from:
- bitcoin/bitcoin#9233
- bitcoin/bitcoin#10483
- bitcoin/bitcoin#10645
- bitcoin/bitcoin#10969
- bitcoin/bitcoin#11351
- bitcoin/bitcoin#19111
- Excludes change to `src/rpc/server.cpp`
- bitcoin/bitcoin#9804
- Only the commit for `src/key.cpp`
- bitcoin/bitcoin#9598
2020-09-29 22:18:48 +00:00
Homu
94cf4a4946
Auto merge of #4558 - linuxion:master, r=str4d
...
[RPC] Add transaction size to JSON output
Cherry-picked from upstream PR https://github.com/bitcoin/bitcoin/pull/7072 .
2020-09-28 22:40:09 +00:00
Nick
abcce56fe1
[RPC] Add transaction size to JSON output
...
This may be useful for blockchain explorers.
2020-09-28 23:12:21 +01:00
Jack Grigg
55acaf4bc5
allocators: Apply Allocator named requirements to secure_allocator::deallocate
...
The named requirements for Allocator are here:
https://en.cppreference.com/w/cpp/named_req/Allocator
It gives the following requirements for `a.deallocate(p, n)`:
> Deallocates storage pointed to `p`, which must be a value returned by
> a previous call to `allocate` that has not been invalidated by an
> intervening call to `deallocate`. `n` must match the value previously
> passed to `allocate`. Does not throw exceptions.
This explicitly excludes both calling `secure_allocator::deallocate` on
`nullptr`, and throwing exceptions of any kind. We address the former by
asserting that `p != nullptr` (because `LockedPool::free` does support
`nullptr`), and we address the latter by adding the `noexcept` keyword
(which the example C++11 allocator on the page above also uses).
2020-09-28 16:22:43 +01:00
Jack Grigg
66ac442da8
LockedPool: Make Arena::free and LockedPool::free noexcept
...
Attempting to free a detectably invalid pointer should terminate, as
this would be a programming error.
2020-09-28 16:20:06 +01:00
Jack Grigg
fa6921c480
LockedPool: Fix LockedPool::free(nullptr) to be a no-op
...
It was documented as such, but nullptr is never an address within an
Arena, so it would fall through and trigger the std::runtime_error.
2020-09-28 15:46:00 +01:00
str4d
b2b5cccf39
test: Fix LFSR period in comments
...
Verified using a Python implementation.
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2020-09-26 00:56:20 +01:00
str4d
b5ddac4b71
LockedPool: Switch to HTTPS URLs in licenses and comments
...
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2020-09-26 00:30:45 +01:00
Homu
514d868179
Auto merge of #4739 - str4d:update-leveldb, r=str4d
...
Update LevelDB to upstream commit f545dfabf
Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#7911
- bitcoin/bitcoin#7982
- bitcoin/bitcoin#8133
- bitcoin/bitcoin#8784
- Only the missing changes.
- bitcoin/bitcoin#8826
- bitcoin/bitcoin#8613
- bitcoin/bitcoin#10544
- bitcoin/bitcoin#10633
- Only the changes to files and code we have.
- bitcoin/bitcoin#10806
- bitcoin/bitcoin#10958
- bitcoin/bitcoin#12451
- bitcoin/bitcoin#13925
- bitcoin/bitcoin#15270
This upgrades LevelDB in the exact same commit progression as upstream, up to January 2019.
2020-09-25 16:16:37 +00:00
str4d
f4c78c45b5
leveldb: Fix typo
...
Co-authored-by: Dimitris Apostolou <dimitris.apostolou@icloud.com>
2020-09-25 16:02:52 +01:00
str4d
e2eeabe9e0
Update license headers
...
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2020-09-25 16:02:25 +01:00
Jack Grigg
f5582677a6
leveldb: Assert that ssize_t is the same size as size_t on Windows
...
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2020-09-25 15:59:05 +01:00
Jack Grigg
3d79da1beb
build: out-of-tree fixups
...
Accidentally excluded from 9cc7497692
when
backporting upstream commit 0cb0f2626e1553426e16a52fc6928d35824827f5.
2020-09-25 15:39:08 +01:00