Updating CI config (#135)
This commit is contained in:
149
.gitlab-ci.yml
149
.gitlab-ci.yml
@@ -5,11 +5,16 @@ stages:
|
||||
|
||||
|
||||
variables:
|
||||
VERSION: 0.4.0
|
||||
VERUS_CLI_LINUX: "Verus-CLI-Linux-v${VERSION}-beta.tar.gz"
|
||||
VERUS_CLI_WINDOWS: "Verus-CLI-Windows-v${VERSION}-beta.zip"
|
||||
VERUS_CLI_MACOS: "Verus-CLI-MacOS-v${VERSION}-beta.tar.gz"
|
||||
POST_COMMENT: "Branch and Commit: ${CI_COMMIT_REF_NAME} ${CI_COMMIT_SHA} $'\n'MD5: "
|
||||
VERSION: 0.4.1
|
||||
VERUS_CLI_LINUX: Verus-CLI-Linux-v${VERSION}.tar.gz
|
||||
VERUS_CLI_WINDOWS: Verus-CLI-Windows-v${VERSION}.zip
|
||||
VERUS_CLI_MACOS: Verus-CLI-MacOS-v${VERSION}.tar.gz
|
||||
DOWNSTREAM_AGAMA_BRANCH: ${CI_COMMIT_REF_NAME}
|
||||
POST_MESSAGE: "Source: ${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}\n
|
||||
Pipeline Trigger: ${CI_PIPELINE_SOURCE}\n
|
||||
Commit: ${CI_COMMIT_SHA}$\n
|
||||
Author: ${GITLAB_USER_NAME} <${GITLAB_USER_EMAIL}>\n
|
||||
${CI_COMMIT_MESSAGE}"
|
||||
|
||||
|
||||
build:linux:
|
||||
@@ -17,43 +22,42 @@ build:linux:
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
stage: build
|
||||
before_script: # Setup Cache
|
||||
- rm -rf /root/.ccache || true
|
||||
- mv .ccache /root/ || true
|
||||
script:
|
||||
- zcutil/build.sh -j$(nproc)
|
||||
- cp src/komodod src/komodo-cli kmd/linux/verus-cli
|
||||
- chmod +x kmd/linux/verus-cli/komodod
|
||||
- chmod +x kmd/linux/verus-cli/komodo-cli
|
||||
- chmod +x kmd/linux/verus-cli/verus
|
||||
- chmod +x kmd/linux/verus-cli/verusd
|
||||
- chmod +x kmd/linux/verus-cli/fetch-params
|
||||
- dos2unix kmd/linux/verus-cli/README.txt
|
||||
- cd kmd/linux/
|
||||
- tar -czvf $VERUS_CLI_LINUX verus-cli
|
||||
- mv $VERUS_CLI_LINUX ../..
|
||||
- cd ../..
|
||||
- export VERUS_CLI_LINUX_MD5=$(md5sum $VERUS_CLI_LINUX | cut -d " " -f 1)
|
||||
- curl -F file=@"$VERUS_CLI_LINUX"
|
||||
-F channels="$CLI_POST_CHANNEL"
|
||||
-F initial_comment="${POST_COMMENT}$VERUS_CLI_LINUX_MD5"
|
||||
-H "${SLACK_BOT_AUTH}"
|
||||
"https://slack.com/api/files.upload"
|
||||
after_script:
|
||||
- mv /root/.ccache ./ || true
|
||||
cache:
|
||||
key: ${CI_JOB_NAME}
|
||||
paths:
|
||||
- depends/built
|
||||
- .ccache
|
||||
script:
|
||||
- zcutil/build.sh -j$(nproc)
|
||||
- mkdir verus-cli
|
||||
- cp src/komodod
|
||||
src/komodo-cli
|
||||
src/verus
|
||||
src/verusd
|
||||
doc/man/verus-cli/linux/README.txt
|
||||
zcutil/fetch-params.sh
|
||||
verus-cli
|
||||
- mv verus-cli/fetch-params.sh verus-cli/fetch-params
|
||||
- chmod +x verus-cli/komodod
|
||||
- chmod +x verus-cli/komodo-cli
|
||||
- chmod +x verus-cli/verus
|
||||
- chmod +x verus-cli/verusd
|
||||
- chmod +x verus-cli/fetch-params
|
||||
- tar -czvf ${VERUS_CLI_LINUX} verus-cli
|
||||
- md5sum ${VERUS_CLI_LINUX} > ${VERUS_CLI_LINUX}.md5
|
||||
- curl -F file=@"${VERUS_CLI_LINUX}"
|
||||
-F channels="${CLI_POST_CHANNEL}"
|
||||
-F initial_comment="${POST_MESSAGE}"
|
||||
-H "${SLACK_BOT_AUTH}"
|
||||
"https://slack.com/api/files.upload"
|
||||
artifacts:
|
||||
paths:
|
||||
- $VERUS_CLI_LINUX
|
||||
- ${VERUS_CLI_LINUX}
|
||||
- ${VERUS_CLI_LINUX}.md5
|
||||
expire_in: 1 week
|
||||
|
||||
|
||||
build:windows:
|
||||
image: asherd/veruscoin-cross-compiler:latest
|
||||
image: asherd/veruscoin-cross-compiler:windows
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
stage: build
|
||||
@@ -61,29 +65,27 @@ build:windows:
|
||||
key: ${CI_JOB_NAME}
|
||||
paths:
|
||||
- depends/built
|
||||
- .ccache
|
||||
- .cargo
|
||||
before_script:
|
||||
- mkdir .ccache || echo ccache exists
|
||||
- ln -s $PWD/.ccache /root/.ccache
|
||||
- mkdir .zcash-params || echo zcash-params exists
|
||||
- mkdir .cargo || echo .cargo exists
|
||||
- ln -s $PWD/.cargo /root/.cargo
|
||||
script:
|
||||
- zcutil/build-win.sh -j$(nproc)
|
||||
- cp src/komodod.exe src/komodo-cli.exe src/komodo-tx.exe kmd/windows/verus-cli
|
||||
- cd kmd/windows/
|
||||
- zip -r $VERUS_CLI_WINDOWS verus-cli
|
||||
- mv $VERUS_CLI_WINDOWS ../..
|
||||
- cd ../..
|
||||
- export VERUS_CLI_WINDOWS_MD5=$(md5sum $VERUS_CLI_WINDOWS | cut -d " " -f 1)
|
||||
- curl -F file=@"$VERUS_CLI_WINDOWS"
|
||||
-F channels="$CLI_POST_CHANNEL"
|
||||
-F initial_comment="${POST_COMMENT}$VERUS_CLI_WINDOWS_MD5"
|
||||
- mkdir verus-cli
|
||||
- cp src/komodod.exe
|
||||
src/komodo-cli.exe
|
||||
src/komodo-tx.exe
|
||||
doc/man/verus-cli/windows/README.txt
|
||||
zcutil/fetch-params.bat
|
||||
zcutil/wget64.exe
|
||||
verus-cli
|
||||
- zip -r ${VERUS_CLI_WINDOWS} verus-cli
|
||||
- md5sum ${VERUS_CLI_WINDOWS} > ${VERUS_CLI_WINDOWS}.md5
|
||||
- curl -F file=@"${VERUS_CLI_WINDOWS}"
|
||||
-F channels="${CLI_POST_CHANNEL}"
|
||||
-F initial_comment="${POST_MESSAGE}"
|
||||
-H "${SLACK_BOT_AUTH}"
|
||||
"https://slack.com/api/files.upload"
|
||||
artifacts:
|
||||
paths: [$VERUS_CLI_WINDOWS]
|
||||
paths:
|
||||
- ${VERUS_CLI_WINDOWS}
|
||||
- ${VERUS_CLI_WINDOWS}.md5
|
||||
expire_in: 1 week
|
||||
|
||||
|
||||
@@ -96,18 +98,19 @@ build:mac:
|
||||
- depends/built
|
||||
script:
|
||||
- brew bundle
|
||||
- zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu) | xcpretty
|
||||
- zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu)
|
||||
- ./makeReleaseMac.sh
|
||||
- dos2unix kmd/mac/verus-cli/README.txt
|
||||
- tar -C kmd/mac/ -czvf $VERUS_CLI_MACOS verus-cli ./
|
||||
- export VERUS_CLI_MACOS_MD5=$(md5sum $VERUS_CLI_MACOS | cut -d " " -f 1)
|
||||
- curl -F file=@"$VERUS_CLI_MACOS"
|
||||
-F channels="$CLI_POST_CHANNEL"
|
||||
-F initial_comment="${POST_COMMENT}$VERUS_CLI_MACOS_MD5"
|
||||
- tar -czvf ${VERUS_CLI_MACOS} verus-cli
|
||||
- md5sum ${VERUS_CLI_MACOS} > ${VERUS_CLI_MACOS}.md5
|
||||
- curl -F file=@"${VERUS_CLI_MACOS}"
|
||||
-F channels="${CLI_POST_CHANNEL}"
|
||||
-F initial_comment="${POST_MESSAGE}"
|
||||
-H "${SLACK_BOT_AUTH}"
|
||||
"https://slack.com/api/files.upload"
|
||||
artifacts:
|
||||
paths: [$VERUS_CLI_MACOS]
|
||||
paths:
|
||||
- ${VERUS_CLI_MACOS}
|
||||
- ${VERUS_CLI_MACOS}.md5
|
||||
expire_in: 1 week
|
||||
|
||||
|
||||
@@ -169,11 +172,11 @@ build:mac:
|
||||
DOCKER_DRIVER: overlay2
|
||||
stage: test
|
||||
before_script:
|
||||
- apt update && apt install -y wget g++-multilib libcurl3 python
|
||||
- apt update && apt install -y wget libgomp1 libcurl3 python
|
||||
- rm -rf /root/.komodo || true
|
||||
- mv .komodo /root/ || true
|
||||
script:
|
||||
- tar -xzvf $VERUS_CLI_LINUX
|
||||
- tar -xzvf ${VERUS_CLI_LINUX}
|
||||
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
|
||||
- python qa/verus-cli-tests/verus-cli-tester.py
|
||||
after_script:
|
||||
@@ -194,11 +197,11 @@ build:mac:
|
||||
DOCKER_DRIVER: overlay2
|
||||
stage: test
|
||||
before_script:
|
||||
- apt update && apt install -y wget g++-multilib libcurl3 python
|
||||
- apt update && apt install -y wget libgomp1 libcurl3 python
|
||||
- rm -rf /root/.komodo || true
|
||||
- mv .komodo /root/ || true
|
||||
script:
|
||||
- tar -xzvf $VERUS_CLI_LINUX
|
||||
- tar -xzvf ${VERUS_CLI_LINUX}
|
||||
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
|
||||
- python qa/verus-cli-tests/verus-cli-tester.py
|
||||
after_script:
|
||||
@@ -213,7 +216,7 @@ build:mac:
|
||||
- build:linux
|
||||
|
||||
|
||||
.osx:sierra: # fetch-params.sh needs to be fixed for MacOS
|
||||
.macos:sierra: # fetch-params.sh needs to be fixed for MacOS
|
||||
stage: test
|
||||
tags: ["Sierra"]
|
||||
script:
|
||||
@@ -227,11 +230,11 @@ build:mac:
|
||||
- build:mac
|
||||
|
||||
|
||||
.osx:high-sierra: # fetch-params.sh needs to be fixed for MacOS
|
||||
.macos:high-sierra:
|
||||
stage: test
|
||||
tags: ["High Sierra"]
|
||||
script:
|
||||
- tar -xzvf $VERUS_CLI_MACOS
|
||||
- tar -xzvf ${VERUS_CLI_MACOS}
|
||||
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
|
||||
- python qa/verus-cli-tests/verus-cli-tester.py
|
||||
artifacts:
|
||||
@@ -266,18 +269,18 @@ deploy:
|
||||
- build:mac
|
||||
script:
|
||||
- mkdir Windows && mkdir Linux && mkdir MacOS &&
|
||||
mv $VERUS_CLI_WINDOWS Windows &&
|
||||
mv $VERUS_CLI_LINUX Linux &&
|
||||
mv $VERUS_CLI_MACOS MacOS
|
||||
mv ${VERUS_CLI_WINDOWS} Windows &&
|
||||
mv ${VERUS_CLI_LINUX} Linux &&
|
||||
mv ${VERUS_CLI_MACOS} MacOS
|
||||
- echo "$AUTH_KEY" > AUTH_KEY.json &&
|
||||
gcloud auth activate-service-account
|
||||
--key-file AUTH_KEY.json
|
||||
- gsutil cp -r Windows Linux MacOS $STAGING/VerusCoin/$CI_COMMIT_REF_NAME/
|
||||
- curl -X POST
|
||||
-F token="$CI_JOB_TOKEN"
|
||||
-F ref=dev
|
||||
-F variables\[UPSTREAM_CLI_BRANCH\]="$CI_COMMIT_REF_NAME"
|
||||
-F variables\[VERUS_CLI_LINUX\]="$VERUS_CLI_LINUX"
|
||||
-F variables\[VERUS_CLI_WINDOWS\]="$VERUS_CLI_WINDOWS"
|
||||
-F variables\[VERUS_CLI_MACOS\]="$VERUS_CLI_MACOS"
|
||||
-F ref="$DOWNSTREAM_AGAMA_BRANCH"
|
||||
-F variables\[UPSTREAM_TRIGGER_INFO\]="${POST_MESSAGE}"
|
||||
-F variables\[VERUS_CLI_LINUX\]="${VERUS_CLI_LINUX}"
|
||||
-F variables\[VERUS_CLI_WINDOWS\]="${VERUS_CLI_WINDOWS}"
|
||||
-F variables\[VERUS_CLI_MACOS\]="${VERUS_CLI_MACOS}"
|
||||
"https://gitlab.com/api/v4/projects/8018592/trigger/pipeline"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## VerusCoin version 0.4.0-beta
|
||||
## VerusCoin version 0.4.1
|
||||
|
||||
VerusCoin is a new, mineable and stakeable cryptocurrency. It is a live fork of Komodo that retains its Zcash lineage and improves it. VerusCoin will leverage the Komodo platform and dPoW notarization for enhanced security and cross-chain interoperability. We have added a variation of a zawy12, lwma difficulty algorithm, a new CPU-optimized hash algorithm and a new algorithm for fair proof of stake. We describe these changes and vision going forward in a [our Phase I white paper](http://185.25.51.16/papers/VerusPhaseI.pdf) and [our Vision](http://185.25.51.16/papers/VerusVision.pdf).
|
||||
- [VerusCoin web site https://veruscoin.io/ Wallets and CLI tools](https://veruscoin.io/)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
VerusCoin Command Line Tools v0.4.0-beta
|
||||
VerusCoin Command Line Tools v0.4.1
|
||||
|
||||
Contents:
|
||||
komodod - VerusCoin's enhanced Komodo daemon
|
||||
@@ -1,4 +1,4 @@
|
||||
VerusCoin Command Line Tools v0.4.0-beta
|
||||
VerusCoin Command Line Tools v0.4.1
|
||||
Contents:
|
||||
komodod - VerusCoin's enhanced Komodo daemon.
|
||||
komodo-cli - VerusCoin's enhanced Komodo command line utility.
|
||||
@@ -1,4 +1,4 @@
|
||||
VerusCoin Command Line Tools v0.4.0-beta
|
||||
VerusCoin Command Line Tools v0.4.1
|
||||
Contents:
|
||||
komodod.exe - VerusCoin's enhanced Komodo daemon
|
||||
komodo-cli.exe - VerusCoin's Komodo command line utility
|
||||
@@ -1,199 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
|
||||
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"
|
||||
|
||||
SHA256CMD="$(command -v sha256sum || echo shasum)"
|
||||
SHA256ARGS="$(command -v sha256sum >/dev/null || echo '-a 256')"
|
||||
|
||||
WGETCMD="$(command -v wget || echo '')"
|
||||
IPFSCMD="$(command -v ipfs || echo '')"
|
||||
CURLCMD="$(command -v curl || echo '')"
|
||||
|
||||
# fetch methods can be disabled with ZC_DISABLE_SOMETHING=1
|
||||
ZC_DISABLE_WGET="${ZC_DISABLE_WGET:-}"
|
||||
ZC_DISABLE_IPFS="${ZC_DISABLE_IPFS:-}"
|
||||
ZC_DISABLE_CURL="${ZC_DISABLE_CURL:-}"
|
||||
|
||||
function fetch_wget {
|
||||
if [ -z "$WGETCMD" ] || ! [ -z "$ZC_DISABLE_WGET" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local filename="$1"
|
||||
local dlname="$2"
|
||||
|
||||
cat <<EOF
|
||||
Retrieving (wget): $SPROUT_URL/$filename
|
||||
EOF
|
||||
|
||||
wget \
|
||||
--progress=dot:giga \
|
||||
--output-document="$dlname" \
|
||||
--continue \
|
||||
--retry-connrefused --waitretry=3 --timeout=30 \
|
||||
"$SPROUT_URL/$filename"
|
||||
}
|
||||
|
||||
function fetch_ipfs {
|
||||
if [ -z "$IPFSCMD" ] || ! [ -z "$ZC_DISABLE_IPFS" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local filename="$1"
|
||||
local dlname="$2"
|
||||
|
||||
cat <<EOF
|
||||
Retrieving (ipfs): $SPROUT_IPFS/$filename
|
||||
EOF
|
||||
|
||||
ipfs get --output "$dlname" "$SPROUT_IPFS/$filename"
|
||||
}
|
||||
|
||||
function fetch_curl {
|
||||
if [ -z "$CURLCMD" ] || ! [ -z "$ZC_DISABLE_CURL" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local filename="$1"
|
||||
local dlname="$2"
|
||||
|
||||
cat <<EOF
|
||||
Retrieving (curl): $SPROUT_URL/$filename
|
||||
EOF
|
||||
|
||||
curl \
|
||||
--output "$dlname" \
|
||||
-# -L -C - \
|
||||
"$SPROUT_URL/$filename"
|
||||
|
||||
}
|
||||
|
||||
function fetch_failure {
|
||||
cat >&2 <<EOF
|
||||
Failed to fetch the Zcash zkSNARK parameters!
|
||||
Try installing one of the following programs and make sure you're online:
|
||||
* ipfs
|
||||
* wget
|
||||
* curl
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
function fetch_params {
|
||||
local filename="$1"
|
||||
local output="$2"
|
||||
local dlname="${output}.dl"
|
||||
local expectedhash="$3"
|
||||
|
||||
if ! [ -f "$output" ]
|
||||
then
|
||||
for method in wget ipfs curl failure; do
|
||||
if "fetch_$method" "$filename" "$dlname"; then
|
||||
echo "Download successful!"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
"$SHA256CMD" $SHA256ARGS -c <<EOF
|
||||
$expectedhash $dlname
|
||||
EOF
|
||||
|
||||
# Check the exit code of the shasum command:
|
||||
CHECKSUM_RESULT=$?
|
||||
if [ $CHECKSUM_RESULT -eq 0 ]; then
|
||||
mv -v "$dlname" "$output"
|
||||
else
|
||||
echo "Failed to verify parameter checksums!" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Use flock to prevent parallel execution.
|
||||
function lock() {
|
||||
local lockfile=/tmp/fetch_params.lock
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
if shlock -f ${lockfile} -p $$; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
# create lock file
|
||||
eval "exec 200>$lockfile"
|
||||
# acquire the lock
|
||||
flock -n 200 \
|
||||
&& return 0 \
|
||||
|| return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function exit_locked_error {
|
||||
echo "Only one instance of fetch-params.sh can be run at a time." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
function main() {
|
||||
|
||||
lock fetch-params.sh \
|
||||
|| exit_locked_error
|
||||
|
||||
cat <<EOF
|
||||
Zcash - fetch-params.sh
|
||||
This script will fetch the Zcash zkSNARK parameters 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
|
||||
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.
|
||||
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
|
||||
for your bandwidth constraints. If the files are already present and
|
||||
have the correct sha256sum, no networking is used.
|
||||
Creating params directory. For details about this directory, see:
|
||||
$README_PATH
|
||||
EOF
|
||||
fi
|
||||
|
||||
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
|
||||
rm -f /tmp/fetch_params.lock
|
||||
exit 0
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
cd $DIR
|
||||
|
||||
./komodo-cli -ac_name=VRSC "$@"
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
cd $DIR
|
||||
./komodod -ac_name=VRSC -ac_algo=verushash -ac_cc=1 -ac_supply=0 -ac_eras=3 -ac_reward=0,38400000000,2400000000 -ac_halving=1,43200,1051920 -ac_decay=100000000,0,0 -ac_end=10080,226080,0 -ac_timelockgte=19200000000 -ac_timeunlockfrom=129600 -ac_timeunlockto=1180800 -ac_veruspos=50 "$@"
|
||||
@@ -1,199 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
|
||||
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"
|
||||
|
||||
SHA256CMD="$(command -v sha256sum || echo shasum)"
|
||||
SHA256ARGS="$(command -v sha256sum >/dev/null || echo '-a 256')"
|
||||
|
||||
WGETCMD="$(command -v wget || echo '')"
|
||||
IPFSCMD="$(command -v ipfs || echo '')"
|
||||
CURLCMD="$(command -v curl || echo '')"
|
||||
|
||||
# fetch methods can be disabled with ZC_DISABLE_SOMETHING=1
|
||||
ZC_DISABLE_WGET="${ZC_DISABLE_WGET:-}"
|
||||
ZC_DISABLE_IPFS="${ZC_DISABLE_IPFS:-}"
|
||||
ZC_DISABLE_CURL="${ZC_DISABLE_CURL:-}"
|
||||
|
||||
function fetch_wget {
|
||||
if [ -z "$WGETCMD" ] || ! [ -z "$ZC_DISABLE_WGET" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local filename="$1"
|
||||
local dlname="$2"
|
||||
|
||||
cat <<EOF
|
||||
Retrieving (wget): $SPROUT_URL/$filename
|
||||
EOF
|
||||
|
||||
wget \
|
||||
--progress=dot:giga \
|
||||
--output-document="$dlname" \
|
||||
--continue \
|
||||
--retry-connrefused --waitretry=3 --timeout=30 \
|
||||
"$SPROUT_URL/$filename"
|
||||
}
|
||||
|
||||
function fetch_ipfs {
|
||||
if [ -z "$IPFSCMD" ] || ! [ -z "$ZC_DISABLE_IPFS" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local filename="$1"
|
||||
local dlname="$2"
|
||||
|
||||
cat <<EOF
|
||||
Retrieving (ipfs): $SPROUT_IPFS/$filename
|
||||
EOF
|
||||
|
||||
ipfs get --output "$dlname" "$SPROUT_IPFS/$filename"
|
||||
}
|
||||
|
||||
function fetch_curl {
|
||||
if [ -z "$CURLCMD" ] || ! [ -z "$ZC_DISABLE_CURL" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local filename="$1"
|
||||
local dlname="$2"
|
||||
|
||||
cat <<EOF
|
||||
Retrieving (curl): $SPROUT_URL/$filename
|
||||
EOF
|
||||
|
||||
curl \
|
||||
--output "$dlname" \
|
||||
-# -L -C - \
|
||||
"$SPROUT_URL/$filename"
|
||||
|
||||
}
|
||||
|
||||
function fetch_failure {
|
||||
cat >&2 <<EOF
|
||||
Failed to fetch the Zcash zkSNARK parameters!
|
||||
Try installing one of the following programs and make sure you're online:
|
||||
* ipfs
|
||||
* wget
|
||||
* curl
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
function fetch_params {
|
||||
local filename="$1"
|
||||
local output="$2"
|
||||
local dlname="${output}.dl"
|
||||
local expectedhash="$3"
|
||||
|
||||
if ! [ -f "$output" ]
|
||||
then
|
||||
for method in wget ipfs curl failure; do
|
||||
if "fetch_$method" "$filename" "$dlname"; then
|
||||
echo "Download successful!"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
"$SHA256CMD" $SHA256ARGS -c <<EOF
|
||||
$expectedhash $dlname
|
||||
EOF
|
||||
|
||||
# Check the exit code of the shasum command:
|
||||
CHECKSUM_RESULT=$?
|
||||
if [ $CHECKSUM_RESULT -eq 0 ]; then
|
||||
mv -v "$dlname" "$output"
|
||||
else
|
||||
echo "Failed to verify parameter checksums!" >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Use flock to prevent parallel execution.
|
||||
function lock() {
|
||||
local lockfile=/tmp/fetch_params.lock
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
if shlock -f ${lockfile} -p $$; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
# create lock file
|
||||
eval "exec 200>$lockfile"
|
||||
# acquire the lock
|
||||
flock -n 200 \
|
||||
&& return 0 \
|
||||
|| return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function exit_locked_error {
|
||||
echo "Only one instance of fetch-params.sh can be run at a time." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
function main() {
|
||||
|
||||
lock fetch-params.sh \
|
||||
|| exit_locked_error
|
||||
|
||||
cat <<EOF
|
||||
Zcash - fetch-params.sh
|
||||
This script will fetch the Zcash zkSNARK parameters 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
|
||||
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.
|
||||
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
|
||||
for your bandwidth constraints. If the files are already present and
|
||||
have the correct sha256sum, no networking is used.
|
||||
Creating params directory. For details about this directory, see:
|
||||
$README_PATH
|
||||
EOF
|
||||
fi
|
||||
|
||||
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
|
||||
rm -f /tmp/fetch_params.lock
|
||||
exit 0
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#set working directory to the location of this script
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
cd $DIR
|
||||
|
||||
./komodo-cli -ac_name=VRSC "$@"
|
||||
@@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
#set working directory to the location of this script
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
cd $DIR
|
||||
|
||||
./komodod -ac_name=VRSC -ac_algo=verushash -ac_cc=1 -ac_supply=0 -ac_eras=3 -ac_reward=0,38400000000,2400000000 -ac_halving=1,43200,1051920 -ac_decay=100000000,0,0 -ac_end=10080,226080,0 -ac_timelockgte=19200000000 -ac_timeunlockfrom=129600 -ac_timeunlockto=1180800 -ac_veruspos=50 "$@"
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
cp src/komodod src/komodo-cli kmd/linux/verus-cli
|
||||
chmod +x kmd/linux/verus-cli/komodo
|
||||
chmod +x kmd/linux/verus-cli/komodod
|
||||
chmod +x kmd/linux/verus-cli/verus
|
||||
chmod +x kmd/linux/verus-cli/verusd
|
||||
chmod +x kmd/linux/verus-cli/fetch-params
|
||||
@@ -1,31 +1,40 @@
|
||||
#!/bin/sh
|
||||
|
||||
KMD_DIR=kmd/mac/verus-cli
|
||||
KMD_DIR=verus-cli
|
||||
mkdir ${KMD_DIR}
|
||||
|
||||
cp src/verus \
|
||||
src/verusd \
|
||||
doc/man/verus-cli/mac/README.txt \
|
||||
zcutil/fetch-params.sh \
|
||||
verus-cli
|
||||
mv verus-cli/fetch-params.sh verus-cli/fetch-params
|
||||
chmod +x ${KMD_DIR}/fetch-params
|
||||
chmod +x ${KMD_DIR}/verus
|
||||
chmod +x ${KMD_DIR}/verusd
|
||||
|
||||
binaries=("komodo-cli" "komodod")
|
||||
alllibs=()
|
||||
for binary in "${binaries[@]}";
|
||||
do
|
||||
# do the work in the destination directory
|
||||
cp src/$binary $KMD_DIR
|
||||
cp src/${binary} ${KMD_DIR}
|
||||
# find the dylibs to copy for komodod
|
||||
DYLIBS=`otool -L $KMD_DIR/$binary | grep "/usr/local" | awk -F' ' '{ print $1 }'`
|
||||
echo "copying $DYLIBS to $KMD_DIR"
|
||||
DYLIBS=`otool -L ${KMD_DIR}/${binary} | grep "/usr/local" | awk -F' ' '{ print $1 }'`
|
||||
echo "copying ${DYLIBS} to ${KMD_DIR}"
|
||||
# copy the dylibs to the srcdir
|
||||
for dylib in $DYLIBS; do cp -rf $dylib $KMD_DIR; done
|
||||
for dylib in ${DYLIBS}; do cp -rf ${dylib} ${KMD_DIR}; done
|
||||
done
|
||||
|
||||
libraries=("libgcc_s.1.dylib" "libgomp.1.dylib" "libidn2.0.dylib" "libstdc++.6.dylib")
|
||||
|
||||
for binary in "${libraries[@]}";
|
||||
do
|
||||
# Need to undo this for the dylibs when we are done
|
||||
chmod 755 $KMD_DIR/$binary
|
||||
# find the dylibs to copy for komodod
|
||||
DYLIBS=`otool -L $KMD_DIR/$binary | grep "/usr/local" | awk -F' ' '{ print $1 }'`
|
||||
echo "copying $DYLIBS to $KMD_DIR"
|
||||
DYLIBS=`otool -L ${KMD_DIR}/${binary} | grep "/usr/local" | awk -F' ' '{ print $1 }'`
|
||||
echo "copying ${DYLIBS} to ${KMD_DIR}"
|
||||
# copy the dylibs to the srcdir
|
||||
for dylib in $DYLIBS; do cp -rf $dylib $KMD_DIR; alllibs+=($dylib); done
|
||||
for dylib in ${DYLIBS}; do cp -rf ${dylib} ${KMD_DIR}; alllibs+=(${dylib}); done
|
||||
done
|
||||
|
||||
indirectlibraries=("libintl.8.dylib" "libunistring.2.dylib")
|
||||
@@ -33,40 +42,35 @@ indirectlibraries=("libintl.8.dylib" "libunistring.2.dylib")
|
||||
for binary in "${indirectlibraries[@]}";
|
||||
do
|
||||
# Need to undo this for the dylibs when we are done
|
||||
chmod 755 src/$binary
|
||||
chmod 755 src/${binary}
|
||||
# find the dylibs to copy for komodod
|
||||
DYLIBS=`otool -L $KMD_DIR/$binary | grep "/usr/local" | awk -F' ' '{ print $1 }'`
|
||||
echo "copying indirect $DYLIBS to $KMD_DIR"
|
||||
DYLIBS=`otool -L ${KMD_DIR}/${binary} | grep "/usr/local" | awk -F' ' '{ print $1 }'`
|
||||
echo "copying indirect ${DYLIBS} to ${KMD_DIR}"
|
||||
# copy the dylibs to the dest dir
|
||||
for dylib in $DYLIBS; do cp -rf $dylib $KMD_DIR; alllibs+=($dylib); done
|
||||
for dylib in ${DYLIBS}; do cp -rf ${dylib} ${KMD_DIR}; alllibs+=(${dylib}); done
|
||||
done
|
||||
|
||||
for binary in "${binaries[@]}";
|
||||
do
|
||||
# modify komodod to point to dylibs
|
||||
echo "modifying $binary to use local libraries"
|
||||
echo "modifying ${binary} to use local libraries"
|
||||
for dylib in "${alllibs[@]}"
|
||||
do
|
||||
echo "Next lib is $dylib "
|
||||
install_name_tool -change $dylib @executable_path/`basename $dylib` $KMD_DIR/$binary
|
||||
echo "Next lib is ${dylib} "
|
||||
install_name_tool -change ${dylib} @executable_path/`basename ${dylib}` ${KMD_DIR}/${binary}
|
||||
done
|
||||
chmod +x $KMD_DIR/$binary
|
||||
chmod +x ${KMD_DIR}/${binary}
|
||||
done
|
||||
|
||||
for binary in "${libraries[@]}";
|
||||
do
|
||||
# modify libraries to point to dylibs
|
||||
echo "modifying $binary to use local libraries"
|
||||
echo "modifying ${binary} to use local libraries"
|
||||
for dylib in "${alllibs[@]}"
|
||||
do
|
||||
echo "Next lib is $dylib "
|
||||
install_name_tool -change $dylib @executable_path/`basename $dylib` $KMD_DIR/$binary
|
||||
echo "Next lib is ${dylib} "
|
||||
install_name_tool -change ${dylib} @executable_path/`basename ${dylib}` ${KMD_DIR}/${binary}
|
||||
done
|
||||
chmod +x $KMD_DIR/$binary
|
||||
done
|
||||
|
||||
chmod +x kmd/mac/verus-cli/fetch-params
|
||||
chmod +x kmd/linux/verus-cli/verus
|
||||
chmod +x kmd/linux/verus-cli/verusd
|
||||
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
#!/bin/bash
|
||||
komodo-cli -ac_name=VRSC "$@"
|
||||
./komodo-cli -ac_name=VRSC "$@"
|
||||
|
||||
Reference in New Issue
Block a user