We add a `set +e` around the `sha256sum` invocation, otherwise the shell
errors out instantly (because of the `set -e` at the top), so we have
the chance to print out the custom error message. We `set -e` as soon as
we grab the return value from `sha256sum`.
MacOS still ships with a 15-year-old version of Bash so this removes some usage of features that
require newer (only 10 years old) versions.
Fixes#6367.
Co-authored-by: Mohamed AlFalasi <2569171+edubai@users.noreply.github.com>
Also takes the opportunity to use more standard location for the lockfile and
improves the lock-conflict error to help a user if the fetcher crashed without
removing the lock or if they are running it from a distribution in which it’s
called `zcash-fetch-params` instead of `fetch-params.sh`.
Fixes#3925
This reverts commit fb38cf0d90.
The lint fix caused a problem on macOS, where the escaped double quote
was interpreted as part of an argument, and not as defining an argument.
We will need to find another way to address the lint.
Closeszcash/zcash#5379.
zcutil/fetch-params.sh unneeded --testnet arg should warn user
If fetch-params.sh user doesn't know that testnet and mainnet params are the same, and user specifies --testnet, it's confusing that the argument is ignored.
Zcash zk-SNARK public parameters for 1.0 "Sprout".
Created in the ceremony this weekend! 🎉
We're writing a blog post about this, I'm going to publish the code shortly too.
Closes#1553
This will retry upon refused connections and similar errors, wait 1 second
before the next retry, time out after 10 seconds if no data is received or
the connection times out, plus try an infinite number of times.
Per NCC-2016-017, wget was run with --no-check-certificate,
which means that the connection can be man-in-the-middled,
even if we are verifying the integrity of the params later via hash sums.
The rationale cited in the Bash comments does not stand up to scrutiny.
There's really no persuasive reason not to verify certificates.
Fixes#1346.
Two instances of the fetch-params.sh script running at once will
result in corruption of the proving key and an error when the
hashes are computed. This implements a lock to stop such a
scenario from occurring.
We also terminate and don't create the symlinks if the downloaded
parameters fail the checksum command.