Browse Source

Do not fetch sprout params, which saves every new Hush node from needing to download over 1.5GB of stuff it will never use

pull/27/head
Jonathan "Duke" Leto 5 years ago
parent
commit
9d968518a3
  1. 16
      zcutil/fetch-params.bat
  2. 46
      zcutil/fetch-params.sh

16
zcutil/fetch-params.bat

@ -4,26 +4,14 @@ cd %THIS_DIR%
IF NOT EXIST %APPDATA%\ZcashParams (
MKDIR %APPDATA%\ZcashParams
)
IF NOT EXIST %APPDATA%\ZcashParams\sprout-proving.key (
ECHO Downloading Zcash trusted setup sprout-proving.key, this may take a while ...
.\wget64.exe --progress=dot:giga --continue --retry-connrefused --waitretry=3 --timeout=30 https://z.cash/downloads/sprout-proving.key -O %APPDATA%\ZcashParams\sprout-proving.key
)
IF NOT EXIST %APPDATA%\ZcashParams\sprout-verifying.key (
ECHO Downloading Zcash trusted setup sprout-verifying.key, this may take a while ...
.\wget64.exe --progress=dot:giga --continue --retry-connrefused --waitretry=3 --timeout=30 https://z.cash/downloads/sprout-verifying.key -O %APPDATA%\ZcashParams\sprout-verifying.key
)
IF NOT EXIST %APPDATA%\ZcashParams\sapling-spend.params (
ECHO Downloading Zcash trusted setup sprout-proving.key, this may take a while ...
ECHO Downloading Zcash trusted setup sapling-spend.key, this may take a while ...
.\wget64.exe --progress=dot:giga --continue --retry-connrefused --waitretry=3 --timeout=30 https://z.cash/downloads/sapling-spend.params -O %APPDATA%\ZcashParams\sapling-spend.params
)
IF NOT EXIST %APPDATA%\ZcashParams\sapling-output.params (
ECHO Downloading Zcash trusted setup sprout-verifying.key, this may take a while ...
ECHO Downloading Zcash trusted setup sapling-output.key, this may take a while ...
.\wget64.exe --progress=dot:giga --continue --retry-connrefused --waitretry=3 --timeout=30 https://z.cash/downloads/sapling-output.params -O %APPDATA%\ZcashParams\sapling-output.params
)
IF NOT EXIST %APPDATA%\ZcashParams\sprout-groth16.params (
ECHO Downloading Zcash trusted setup sprout-verifying.key, this may take a while ...
.\wget64.exe --progress=dot:giga --continue --retry-connrefused --waitretry=3 --timeout=30 https://z.cash/downloads/sprout-groth16.params -O %APPDATA%\ZcashParams\sprout-groth16.params
)
goto :EOF
:GET_CURRENT_DIR
pushd %~dp0

46
zcutil/fetch-params.sh

@ -1,20 +1,20 @@
#!/bin/bash
# Copyright 2019 The Hush developers
set -eu
# We do not declare our own location because we can use the params
# from any other installed coins
if [[ "$OSTYPE" == "darwin"* ]]; then
PARAMS_DIR="$HOME/Library/Application Support/ZcashParams"
else
PARAMS_DIR="$HOME/.zcash-params"
fi
SPROUT_PKEY_NAME='sprout-proving.key'
SPROUT_VKEY_NAME='sprout-verifying.key'
SAPLING_SPEND_NAME='sapling-spend.params'
SAPLING_OUTPUT_NAME='sapling-output.params'
SAPLING_SPROUT_GROTH16_NAME='sprout-groth16.params'
SPROUT_URL="https://z.cash/downloads"
SPROUT_IPFS="/ipfs/QmZKKx7Xup7LiAtFRhYsE1M7waXcv9ir9eCECyXAFGxhEo"
URL="https://z.cash/downloads"
IPFS="/ipfs/QmZKKx7Xup7LiAtFRhYsE1M7waXcv9ir9eCECyXAFGxhEo"
SHA256CMD="$(command -v sha256sum || echo shasum)"
SHA256ARGS="$(command -v sha256sum >/dev/null || echo '-a 256')"
@ -38,7 +38,7 @@ function fetch_wget {
cat <<EOF
Retrieving (wget): $SPROUT_URL/$filename
Retrieving (wget): $URL/$filename
EOF
wget \
@ -46,7 +46,7 @@ EOF
--output-document="$dlname" \
--continue \
--retry-connrefused --waitretry=3 --timeout=30 \
"$SPROUT_URL/$filename"
"$URL/$filename"
}
function fetch_ipfs {
@ -59,10 +59,10 @@ function fetch_ipfs {
cat <<EOF
Retrieving (ipfs): $SPROUT_IPFS/$filename
Retrieving (ipfs): $IPFS/$filename
EOF
ipfs get --output "$dlname" "$SPROUT_IPFS/$filename"
ipfs get --output "$dlname" "$IPFS/$filename"
}
function fetch_curl {
@ -75,13 +75,13 @@ function fetch_curl {
cat <<EOF
Retrieving (curl): $SPROUT_URL/$filename
Retrieving (curl): $URL/$filename
EOF
curl \
--output "$dlname" \
-# -L -C - \
"$SPROUT_URL/$filename"
"$URL/$filename"
}
@ -159,30 +159,29 @@ function main() {
|| exit_locked_error
cat <<EOF
Zcash - fetch-params.sh
Hush - fetch-params.sh
This script will fetch the Zcash zkSNARK parameters and verify their
integrity with sha256sum.
This script will fetch the zkSNARK parameters used in shield
transactions and verify their integrity with sha256sum.
If they already exist locally, it will exit now and do nothing else.
EOF
# Now create PARAMS_DIR and insert a README if necessary:
if ! [ -d "$PARAMS_DIR" ]
then
if ! [ -d "$PARAMS_DIR" ]; then
mkdir -p "$PARAMS_DIR"
README_PATH="$PARAMS_DIR/README"
cat >> "$README_PATH" <<EOF
This directory stores common Zcash zkSNARK parameters. Note that it is
distinct from the daemon's -datadir argument because the parameters are
large and may be shared across multiple distinct -datadir's such as when
setting up test networks.
This directory stores common zkSNARK parameters needed for shielded
transactions. Note that it is distinct from the daemon's -datadir argument
because the parameters are large and may be shared across multiple distinct
-datadir's such as when setting up test networks.
EOF
# This may be the first time the user's run this script, so give
# them some info, especially about bandwidth usage:
cat <<EOF
The parameters are currently just under 911MB in size, so plan accordingly
The parameters are currently about 50MB, so plan accordingly
for your bandwidth constraints. If the files are already present and
have the correct sha256sum, no networking is used.
@ -194,14 +193,9 @@ EOF
cd "$PARAMS_DIR"
# Sprout parameters:
fetch_params "$SPROUT_PKEY_NAME" "$PARAMS_DIR/$SPROUT_PKEY_NAME" "8bc20a7f013b2b58970cddd2e7ea028975c88ae7ceb9259a5344a16bc2c0eef7"
fetch_params "$SPROUT_VKEY_NAME" "$PARAMS_DIR/$SPROUT_VKEY_NAME" "4bd498dae0aacfd8e98dc306338d017d9c08dd0918ead18172bd0aec2fc5df82"
# Sapling parameters:
fetch_params "$SAPLING_SPEND_NAME" "$PARAMS_DIR/$SAPLING_SPEND_NAME" "8e48ffd23abb3a5fd9c5589204f32d9c31285a04b78096ba40a79b75677efc13"
fetch_params "$SAPLING_OUTPUT_NAME" "$PARAMS_DIR/$SAPLING_OUTPUT_NAME" "2f0ebbcbb9bb0bcffe95a397e7eba89c29eb4dde6191c339db88570e3f3fb0e4"
fetch_params "$SAPLING_SPROUT_GROTH16_NAME" "$PARAMS_DIR/$SAPLING_SPROUT_GROTH16_NAME" "b685d700c60328498fbde589c8c7c484c722b788b265b72af448a5bf0ee55b50"
}
main

Loading…
Cancel
Save