GetNextWorkRequired: clarify why this computation is equivalent to that in the protocol spec
refs https://github.com/zcash/zips/pull/418 cc: @teor2345
Comment-only change; no documentation or testing required.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
Don't compile ehHashState::* if mining is disabled
Compile currently fails if using `CONFIGURE_FLAGS=--disable-mining`, because the `ehHashState::*` functions inadvertently get included.
These are external libraries, and it does not make sense to maintain an
otherwise-meaningless diff from upstream.
This partially reverts commit 1e6d1837a0.
git-subtree-check fails if the directory is given with a trailing slash,
eg:
```
> test/lint/git-subtree-check.sh src/univalue/
ERROR: src/univalue/ is not a subtree
```
Shell autocompletes will add the trailing slash when autofilling the
path name, which will therefore cause the script to fail.
Just ignore any trailing slash.
We have several pieces of information about subtrees:
1) What their current directory contents is
2) What their directory contents was at the time of the last subtree merge
3) What the directory contents of the upstream project is in the commit referred to by the subtree merge.
Normally, all 3 should be identical. git-subtree-check.sh so far only compared (1) with (3) however.
Fix this by comparing all three, and give some more useful diff output in the case of mismatch.
The added benefit is that (1) and (2) can be compared without needing to see the upstream repository.
These are text files but their encoding does not depend on the locale.
Not all of them require utf8 but it is better to fix it at something
to remove potential unpredictability.
This is necessary on FreeBSD where no locale is set by default,
and apparently Python defaults not only the terminal encoding to the locale
but that of every text file. So without LOCALE environment it defaults text
file encoding to ASCII. This causes problems with e.g. `bitcoin.conf`.
Luckily the locale doesn't affect the default encoding for str.encode() and
bytes.decode() on Python 3, so this is the only change necessary.
Before Zcash launched, we were heavily relying on `zcutil/build.sh` to
apply our Zcash-specific hardening flags. The Gitian deterministic build
system obviously didn't use our script, so the corresponding flags were
manually added to `gitian-linux.yml`.
Since then, we have migrated all of our flags into `configure.ac`.
Manually setting them in the Gitian descriptor is no longer necessary,
and should have been removed at the same time. This didn't cause any
noticeable issues, however, leaving it undetected until we migrated to
Clang in zcash/zcash#4613, and performed a Gitian build for 4.1.0-rc1.
The Gitian failure was caused by linker flags specific to C++ being used
in configuration tests for secp256k1 (a C library). This causes ldd to
emit warnings, which are then converted to errors by the -Werror flags
that were added to CFLAGS and CXXFLAGS by `gitian-linux.yml`. CI did not
encounter this because it uses the standard `--enable-werror` config flag,
which adds `-Werror` to CXXFLAGS but not CFLAGS.
Co-authored-by: Jack Grigg <jack@z.cash>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
- Use the python standard logging library
- Run all tests and report all failing test-cases (rather than stop after one test case fails)
- If output is different from expected output, log a contextual diff.
This splits the output comparison for `bitcoin-tx` into two steps:
- First, check for data mismatch, parsing the data as json or hex
depending on the extension of the output file
- Then, check if the literal string matches
For either of these cases give a different error.
This prevents wild goose chases when e.g. a trailing space doesn't match
exactly, and makes sure that both test output and examples are valid
data of the purported format.