Merge pull request #21 from miketout/master

Reverse merge from VerusCoin through master
This commit is contained in:
miketout
2018-09-12 11:23:49 -07:00
committed by GitHub
35 changed files with 916 additions and 217 deletions

View File

@@ -1,41 +1,37 @@
stages:
- build
- test
- deploy
- build
- test
- deploy
variables:
VERSION: 0.3.10
AGAMA_ARTIFACTS_LINUX: linux64.tar.gz
AGAMA_ARTIFACTS_MACOS: osx.tar.gz
AGAMA_ARTIFACTS_WINDOWS: win64.zip
VERUS_CLI_DEBIAN: verus-cli-v${VERSION}-beta-amd64.deb
VERUS_CLI_LINUX_PORTABLE: verus-cli-linux-v$VERSION-beta.tar.gz
VERUS_CLI_WINDOWS_PORTABLE: verus-cli-windows-v$VERSION-beta.zip
VERUS_CLI_MACOS_PORTABLE: verus-cli-mac-v$VERSION-beta.tar.gz
VERSION: 0.3.13
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: "
build:linux:
image: asherd/veruscoin-cross-compiler:linux
variables:
DOCKER_DRIVER: overlay2
stage: build
cache:
key: ${CI_JOB_NAME}
paths:
- depends/built
- .ccache
before_script: # Setup Cache
- rm -rf /root/.ccache || true
- mv .ccache /root/ || true
- rm -rf /root/.ccache || true
- mv .ccache /root/ || true
script:
- zcutil/build.sh -j4
- ./makeReleaseLinux.sh
- dos2unix kmd/linux/verus-cli/README.txt
- tar -C kmd/linux/ -czvf $VERUS_CLI_LINUX_PORTABLE verus-cli ./
- mv kmd/linux/verus-cli kmd/linux/linux64
- tar -C kmd/linux/ -czvf $AGAMA_ARTIFACTS_LINUX linux64 ./
- zcutil/build.sh -j4
- 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 ../..
after_script:
- mv /root/.ccache ./ || true
- mv /root/.ccache ./ || true
cache:
key: ${CI_JOB_NAME}
paths:
@@ -43,8 +39,7 @@ build:linux:
- .ccache
artifacts:
paths:
- $VERUS_CLI_LINUX_PORTABLE
- $AGAMA_ARTIFACTS_LINUX
- $VERUS_CLI_LINUX
expire_in: 1 week
@@ -60,24 +55,19 @@ build:windows:
- .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
- 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
- ./makeReleaseWindows.sh
- cd kmd/windows/
- zip -r $VERUS_CLI_WINDOWS_PORTABLE verus-cli
- mv $VERUS_CLI_WINDOWS_PORTABLE ../..
- mv verus-cli win64
- zip -r $AGAMA_ARTIFACTS_WINDOWS win64
- mv $AGAMA_ARTIFACTS_WINDOWS ../..
- zcutil/build-win.sh -j4
- 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 ../..
artifacts:
paths:
- $VERUS_CLI_WINDOWS_PORTABLE
- $AGAMA_ARTIFACTS_WINDOWS
paths: [$VERUS_CLI_WINDOWS]
expire_in: 1 week
@@ -89,147 +79,159 @@ build:mac:
paths:
- depends/built
script:
- zcutil/build-mac.sh | xcpretty
- ./makeReleaseMac.sh
- dos2unix kmd/mac/verus-cli/README.txt
- tar -C kmd/mac/ -czvf $VERUS_CLI_MACOS_PORTABLE verus-cli ./
- mv kmd/mac/verus-cli kmd/mac/osx
- tar -C kmd/mac/ -czvf $AGAMA_ARTIFACTS_MACOS osx ./
- brew bundle
- zcutil/build-mac.sh -j6 | xcpretty
- ./makeReleaseMac.sh
- dos2unix kmd/mac/verus-cli/README.txt
- tar -C kmd/mac/ -czvf $VERUS_CLI_MACOS verus-cli ./
artifacts:
paths:
- $VERUS_CLI_MACOS_PORTABLE
- $AGAMA_ARTIFACTS_MACOS
paths: [$VERUS_CLI_MACOS]
expire_in: 1 week
code_quality:
.code_quality:
image: docker:stable
variables:
DOCKER_DRIVER: overlay2
allow_failure: true
services:
- docker:stable-dind
- docker:stable-dind
script:
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SOURCE_CODE="$PWD"
--volume "$PWD":/code
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SOURCE_CODE="$PWD"
--volume "$PWD":/code
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
artifacts:
paths: [gl-code-quality-report.json]
sast:
.sast:
image: docker:stable
variables:
DOCKER_DRIVER: overlay2
allow_failure: true
services:
- docker:stable-dind
- docker:stable-dind
script:
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
--volume "$PWD:/code"
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--env SAST_CONFIDENCE_LEVEL="${SAST_CONFIDENCE_LEVEL:-3}"
--volume "$PWD:/code"
--volume /var/run/docker.sock:/var/run/docker.sock
"registry.gitlab.com/gitlab-org/security-products/sast:$SP_VERSION" /app/bin/run /code
artifacts:
paths: [gl-sast-report.json]
license_management:
.license_management:
image: docker:stable
variables:
DOCKER_DRIVER: overlay2
allow_failure: true
services:
- docker:stable-dind
- docker:stable-dind
script:
- export LICENSE_MANAGEMENT_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--volume "$PWD:/code"
"registry.gitlab.com/gitlab-org/security-products/license-management:$LICENSE_MANAGEMENT_VERSION" analyze /code
- export LICENSE_MANAGEMENT_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
- docker run
--volume "$PWD:/code"
"registry.gitlab.com/gitlab-org/security-products/license-management:$LICENSE_MANAGEMENT_VERSION" analyze /code
artifacts:
paths: [gl-license-management-report.json]
ubuntu:xenial:
.ubuntu:xenial:
image: ubuntu:xenial
variables:
DOCKER_DRIVER: overlay2
stage: test
before_script:
- apt update && apt install -y wget g++-multilib libcurl3 python
- apt update && apt install -y wget g++-multilib libcurl3 python
- rm -rf /root/.komodo || true
- mv .komodo /root/ || true
script:
- tar -xzvf $VERUS_CLI_LINUX_PORTABLE
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
- tar -xzvf $VERUS_CLI_LINUX
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
after_script:
- mv /root/.komodo ./ || true
cache:
key: ${CI_JOB_NAME}
paths: [.komodo]
artifacts:
paths: [log.txt]
expire_in: 1 week
dependencies:
- build:linux
- build:linux
ubuntu:bionic:
.ubuntu:bionic:
image: ubuntu:bionic
variables:
DOCKER_DRIVER: overlay2
stage: test
before_script:
- apt update && apt install -y wget g++-multilib libcurl3 python
- apt update && apt install -y wget g++-multilib libcurl3 python
- rm -rf /root/.komodo || true
- mv .komodo /root/ || true
script:
- tar -xzvf $VERUS_CLI_LINUX_PORTABLE
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
- tar -xzvf $VERUS_CLI_LINUX
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
after_script:
- mv /root/.komodo ./ || true
cache:
key: ${CI_JOB_NAME}
paths: [.komodo]
artifacts:
paths: [log.txt]
expire_in: 1 week
dependencies:
- build:linux
- build:linux
.osx:sierra: # fetch-params.sh needs to be fixed for MacOS
stage: test
tags: ["Sierra"]
script:
- tar -xzvf $VERUS_CLI_MACOS_PORTABLE
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
- tar -xzvf $VERUS_CLI_MACOS
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
artifacts:
paths: [log.txt]
expire_in: 1 week
dependencies:
- build:mac
- build:mac
.osx:high-sierra: # fetch-params.sh needs to be fixed for MacOS
stage: test
tags: ["High Sierra"]
script:
- tar -xzvf $VERUS_CLI_MACOS_PORTABLE
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
- tar -xzvf $VERUS_CLI_MACOS
- export PATH=$PATH:$CI_PROJECT_DIR/verus-cli
- python qa/verus-cli-tests/verus-cli-tester.py
artifacts:
paths: [log.txt]
expire_in: 1 week
dependencies:
- build:mac
- build:mac
windows:10:
.windows:10:
stage: test
tags: ["Windows 10"]
script:
- PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS_PORTABLE% -DestinationPath %CI_PROJECT_DIR%
- set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli
- qa\verus-cli-tests\verus-cli-tester.py
- PowerShell Expand-Archive -Path %VERUS_CLI_WINDOWS% -DestinationPath %CI_PROJECT_DIR%
- set PATH=%PATH%;%CI_PROJECT_DIR%\verus-cli
- qa\verus-cli-tests\verus-cli-tester.py
artifacts:
paths: [log.txt]
expire_in: 1 week
dependencies:
- build:windows
- build:windows
deploy:
@@ -238,18 +240,44 @@ deploy:
variables:
DOCKER_DRIVER: overlay2
dependencies:
- build:linux
- build:windows
- build:mac
- build:linux
- build:windows
- build:mac
before_script:
- export VERUS_CLI_LINUX_MD5=$(md5sum $VERUS_CLI_LINUX | cut -d " " -f 1)
- export VERUS_CLI_WINDOWS_MD5=$(md5sum $VERUS_CLI_WINDOWS | cut -d " " -f 1)
- export VERUS_CLI_MACOS_MD5=$(md5sum $VERUS_CLI_MACOS | cut -d " " -f 1)
script:
- mkdir -p $CI_COMMIT_REF_NAME/Windows
- mkdir -p $CI_COMMIT_REF_NAME/Linux
- mkdir -p $CI_COMMIT_REF_NAME/MacOS
- mv $VERUS_CLI_WINDOWS_PORTABLE $AGAMA_ARTIFACTS_WINDOWS $CI_COMMIT_REF_NAME/Windows
- mv $VERUS_CLI_LINUX_PORTABLE $AGAMA_ARTIFACTS_LINUX $CI_COMMIT_REF_NAME/Linux
- mv $VERUS_CLI_MACOS_PORTABLE $AGAMA_ARTIFACTS_MACOS $CI_COMMIT_REF_NAME/MacOS
- echo "$AUTH_KEY" > AUTH_KEY.json
- gcloud auth activate-service-account --key-file AUTH_KEY.json
- gsutil rsync -r $CI_COMMIT_REF_NAME/ $STAGING/VerusCoin/$CI_COMMIT_REF_NAME/
- 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"
- curl -F file=@"$VERUS_CLI_WINDOWS"
-F channels="$CLI_POST_CHANNEL"
-F initial_comment="${POST_COMMENT}$VERUS_CLI_WINDOWS_MD5"
-H "${SLACK_BOT_AUTH}"
"https://slack.com/api/files.upload"
- curl -F file=@"$VERUS_CLI_MACOS"
-F channels="$CLI_POST_CHANNEL"
-F initial_comment="${POST_COMMENT}$VERUS_CLI_MACOS_MD5"
-H "${SLACK_BOT_AUTH}"
"https://slack.com/api/files.upload"
- mkdir Windows && mkdir Linux && mkdir 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"
"https://gitlab.com/api/v4/projects/8018592/trigger/pipeline"

View File

@@ -9,7 +9,7 @@ brew "automake"
brew "binutils"
brew "cmake"
brew "coreutils"
brew "gcc@5"
brew "gcc@6"
brew "leveldb"
brew "nanomsg"
brew "protobuf"

View File

@@ -1,6 +1,5 @@
## Install for Mac OS X
First off you need Apple's Xcode (at least version 7, preferably 8.x or later) and the Xcode Command Line Tools:
You will need Apple's Xcode (at least version 7, preferably 8.x) and the Xcode Command Line Tools:
https://itunes.apple.com/us/app/xcode/id497799835?mt=12
@@ -8,7 +7,7 @@ And Homebrew:
http://brew.sh/
then use the brewfile to install the necessary packages:
Use the brewfile to install the necessary packages:
```shell
brew bundle

View File

@@ -1,8 +1,11 @@
## VerusCoin version 0.3.10-beta
## VerusCoin version 0.3.13-beta
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/)
- [VerusCoin Explorer](https://explorer.veruscoin.io/)
Version 0.3.13-beta has portable mining working.
## Komodo with Bitcore
This version of Komodo contains Bitcore support for komodo and all its assetchains.

View File

@@ -1,6 +1,6 @@
package=googletest
$(package)_version=1.8.0
$(package)_download_path=https://github.com/google/$(package)/archive/
$(package)_download_path=https://github.com/google/$(package)/archive
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_download_file=release-$($(package)_version).tar.gz
$(package)_sha256_hash=58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8

View File

@@ -1,6 +1,6 @@
package=libevent
$(package)_version=2.1.8
$(package)_download_path=https://github.com/libevent/libevent/archive/
$(package)_download_path=https://github.com/libevent/libevent/archive
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_download_file=release-$($(package)_version)-stable.tar.gz
$(package)_sha256_hash=316ddb401745ac5d222d7c529ef1eada12f58f6376a66c1118eee803cb70f83d

View File

@@ -1,7 +1,7 @@
package=libgmp
ifeq ($(host_os),mingw32)
$(package)_download_path=https://github.com/joshuayabut/$(package)/archive/
$(package)_download_path=https://github.com/joshuayabut/$(package)/archive
$(package)_file_name=$(package)-$($(package)_git_commit).tar.gz
$(package)_download_file=$($(package)_git_commit).tar.gz
$(package)_sha256_hash=193836c1acc9dc00fe2521205d7bbe1ba13263f6cbef6f02584bf6f8b34b108f
@@ -9,7 +9,7 @@ $(package)_git_commit=053c03b1cab347671d936f43ef66b48ab5e380ee
$(package)_dependencies=
$(package)_config_opts=--enable-cxx --disable-shared
else ifeq ($(build_os),darwin)
$(package)_download_path=https://github.com/ca333/$(package)/archive/
$(package)_download_path=https://github.com/ca333/$(package)/archive
$(package)_file_name=$(package)-$($(package)_git_commit).tar.gz
$(package)_download_file=$($(package)_git_commit).tar.gz
$(package)_sha256_hash=59b2c2b5d58fdf5943bfde1fa709e9eb53e7e072c9699d28dc1c2cbb3c8cc32c

View File

@@ -1,6 +1,6 @@
package=librustzcash
$(package)_version=0.1
$(package)_download_path=https://github.com/zcash/$(package)/archive/
$(package)_download_path=https://github.com/zcash/$(package)/archive
$(package)_file_name=$(package)-$($(package)_git_commit).tar.gz
$(package)_download_file=$($(package)_git_commit).tar.gz
$(package)_sha256_hash=a5760a90d4a1045c8944204f29fa2a3cf2f800afee400f88bf89bbfe2cce1279

View File

@@ -14,15 +14,15 @@ define $(package)_set_vars
$(package)_build_env+=CXXFLAGS="$($(package)_cxxflags) -DBINARY_OUTPUT -DSTATICLIB -DNO_PT_COMPRESSION=1 "
endef
define $(package)_build_cmds
$(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64"
$(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64 -g "
endef
else ifeq ($(host_os),mingw32)
define $(package)_build_cmds
CXX="x86_64-w64-mingw32-g++-posix" CXXFLAGS="-DBINARY_OUTPUT -DPTW32_STATIC_LIB -DSTATICLIB -DNO_PT_COMPRESSION=1 -fopenmp" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64"
CXX="x86_64-w64-mingw32-g++-posix" CXXFLAGS="-DBINARY_OUTPUT -DPTW32_STATIC_LIB -DSTATICLIB -DNO_PT_COMPRESSION=1 -fopenmp" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64 -g "
endef
else
define $(package)_build_cmds
CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64"
CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64 -g "
endef
endif

View File

@@ -9,7 +9,7 @@ $(package)_config_opts=
else
package=libsodium
$(package)_version=1.0.15
$(package)_download_path=https://download.libsodium.org/libsodium/releases/
$(package)_download_path=https://download.libsodium.org/libsodium/releases
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=fb6a9e879a2f674592e4328c5d9f79f082405ee4bb05cb6e679b90afe9e178f4
$(package)_dependencies=

View File

@@ -1,6 +1,6 @@
ifeq ($(host_os),mingw32)
$(package)_version=4.2.2-1
$(package)_download_path=https://github.com/ca333/libzmq/archive/
$(package)_download_path=https://github.com/ca333/libzmq/archive
$(package)_download_file=v$($(package)_version).tar.gz
$(package)_file_name=libzmq-$($(package)_version).tar.gz
$(package)_sha256_hash=0e225b85ce11be23bf7eb7d3f25c6686728bf30d5c31f61c12d37bb646c69962
@@ -15,7 +15,7 @@ endef
else
package=zeromq
$(package)_version=4.2.1
$(package)_download_path=https://github.com/zeromq/libzmq/releases/download/v$($(package)_version)/
$(package)_download_path=https://github.com/zeromq/libzmq/releases/download/v$($(package)_version)
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=27d1e82a099228ee85a7ddb2260f40830212402c605a4a10b5e5498a7e0e9d03

View File

@@ -1,4 +1,5 @@
VerusCoin Command Line Tools v0.3.10-beta
VerusCoin Command Line Tools v0.3.13-beta
Contents:
komodod - VerusCoin's enhanced Komodo daemon
komodo-cli - VerusCoin's Komodo command line utility

View File

@@ -1,4 +1,4 @@
#!/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 -addnode=185.25.48.236 -addnode=185.64.105.111 -ac_timelockgte=19200000000 -ac_timeunlockfrom=129600 -ac_timeunlockto=1180800 -ac_veruspos=50 -gen -genproclimit=0 "$@"
./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 "$@"

View File

@@ -1,4 +1,4 @@
VerusCoin Command Line Tools v0.3.9-beta
VerusCoin Command Line Tools v0.3.13-beta
Contents:
komodod - VerusCoin's enhanced Komodo daemon.
komodo-cli - VerusCoin's enhanced Komodo command line utility.

View File

@@ -1,7 +1,199 @@
#!/bin/bash
set -eu
curl "https://z.cash/downloads/sprout-proving.key" -o "$HOME/Library/Application Support/ZcashParams/sprout-proving.key"
curl "https://z.cash/downloads/sprout-verifying.key" -o "$HOME/Library/Application Support/ZcashParams/sprout-verifying.key"
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

View File

@@ -3,4 +3,4 @@
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 -addnode=185.25.48.236 -addnode=185.64.105.111 -ac_timelockgte=19200000000 -ac_timeunlockfrom=129600 -ac_timeunlockto=1180800 -ac_veruspos=50 -gen -genproclimit=0 "$@"
./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 "$@"

View File

@@ -1,4 +1,4 @@
VerusCoin Command Line Tools v0.3.10-beta
VerusCoin Command Line Tools v0.3.13-beta
Contents:
komodod.exe - VerusCoin's enhanced Komodo daemon
komodo-cli.exe - VerusCoin's Komodo command line utility

View File

@@ -1,6 +1,6 @@
@call :GET_CURRENT_DIR
@cd %THIS_DIR%
komodod.exe -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 -addnode=185.25.48.236 -addnode=185.64.105.111 -ac_timelockgte=19200000000 -ac_timeunlockfrom=129600 -ac_timeunlockto=1180800 -ac_veruspos=50 -gen -genproclimit=0 %1 %2 %3 %4 %5 %6 %7 %8 %9
komodod.exe -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 %2 %3 %4 %5 %6 %7 %8 %9
@goto :EOF
:GET_CURRENT_DIR

View File

@@ -4,7 +4,7 @@
*** 1,30 ****
package=libsnark
$(package)_version=0.1
! $(package)_download_path=https://github.com/radix42/$(package)/archive/
! $(package)_download_path=https://github.com/radix42/$(package)/archive
$(package)_file_name=$(package)-$($(package)_git_commit).tar.gz
$(package)_download_file=$($(package)_git_commit).tar.gz
! $(package)_sha256_hash=9dbd5b44d3443e86463e934bfe1023cab4ca5948f8d74c23a67d9535c28d2584
@@ -18,7 +18,7 @@
- endef
- else
define $(package)_build_cmds
CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64"
CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64 -g "
endef
-
@@ -35,7 +35,7 @@
--- 1,17 ----
package=libsnark
$(package)_version=0.1
! $(package)_download_path=https://github.com/zcash/$(package)/archive/
! $(package)_download_path=https://github.com/zcash/$(package)/archive
$(package)_file_name=$(package)-$($(package)_git_commit).tar.gz
$(package)_download_file=$($(package)_git_commit).tar.gz
! $(package)_sha256_hash=9422b1a2a94e6b8be61f07af7f146087c2a7d70b208d07ad076622225aa7f0e4
@@ -44,7 +44,7 @@
$(package)_dependencies=libgmp libsodium
define $(package)_build_cmds
CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64"
CXXFLAGS="-fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1" $(MAKE) lib DEPINST=$(host_prefix) CURVE=ALT_BN128 MULTICORE=1 NO_PROCPS=1 NO_GTEST=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT OPTFLAGS="-O2 -march=x86-64 -g "
endef
define $(package)_stage_cmds

View File

@@ -1,3 +0,0 @@
#!/bin/sh
cp src/komodod.exe src/komodo-cli.exe src/komodo-tx.exe kmd/windows/verus-cli

View File

@@ -43,6 +43,7 @@ LIBBITCOIN_CLI=libbitcoin_cli.a
LIBBITCOIN_UTIL=libbitcoin_util.a
LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
LIBVERUS_CRYPTO=crypto/libverus_crypto.a
LIBVERUS_PORTABLE_CRYPTO=crypto/libverus_portable_crypto.a
LIBSECP256K1=secp256k1/libsecp256k1.la
LIBCRYPTOCONDITIONS=cryptoconditions/libcryptoconditions_core.la
LIBSNARK=snark/libsnark.a
@@ -50,7 +51,7 @@ LIBUNIVALUE=univalue/libunivalue.la
LIBZCASH=libzcash.a -lcurl
$(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F) OPTFLAGS="-O2 -march=x86-64 -g "
LIBSNARK_CXXFLAGS = -fPIC -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1 -fstack-protector-all
LIBSNARK_CONFIG_FLAGS = CURVE=ALT_BN128 NO_PROCPS=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT NO_COPY_DEPINST=1 NO_COMPILE_LIBGTEST=1
@@ -59,22 +60,23 @@ LIBSNARK_CONFIG_FLAGS += MULTICORE=1
endif
$(LIBSNARK): $(wildcard snark/src/*)
$(AM_V_at) CXXFLAGS="$(LIBSNARK_CXXFLAGS)" $(MAKE) $(AM_MAKEFLAGS) -C snark/ DEPINST="$(LIBSNARK_DEPINST)" $(LIBSNARK_CONFIG_FLAGS) OPTFLAGS="-O2 -march=x86-64"
$(AM_V_at) CXXFLAGS="$(LIBSNARK_CXXFLAGS)" $(MAKE) $(AM_MAKEFLAGS) -C snark/ DEPINST="$(LIBSNARK_DEPINST)" $(LIBSNARK_CONFIG_FLAGS) OPTFLAGS="-O2 -march=x86-64 -g "
libsnark-tests: $(wildcard snark/src/*)
$(AM_V_at) CXXFLAGS="$(LIBSNARK_CXXFLAGS)" $(MAKE) $(AM_MAKEFLAGS) -C snark/ check DEPINST="$(LIBSNARK_DEPINST)" $(LIBSNARK_CONFIG_FLAGS) OPTFLAGS="-O2 -march=x86-64"
$(AM_V_at) CXXFLAGS="$(LIBSNARK_CXXFLAGS)" $(MAKE) $(AM_MAKEFLAGS) -C snark/ check DEPINST="$(LIBSNARK_DEPINST)" $(LIBSNARK_CONFIG_FLAGS) OPTFLAGS="-O2 -march=x86-64 -g "
$(LIBUNIVALUE): $(wildcard univalue/lib/*)
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C univalue/
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C univalue/ OPTFLAGS="-O2 -march=x86-64 -g "
$(LIBCRYPTOCONDITIONS): $(wildcard cryptoconditions/src/*) $(wildcard cryptoconditions/include/*)
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F) OPTFLAGS="-O2 -march=x86-64 -g "
# Make is not made aware of per-object dependencies to avoid limiting building parallelization
# But to build the less dependent modules first, we manually select their order here:
EXTRA_LIBRARIES = \
crypto/libbitcoin_crypto.a \
crypto/libverus_crypto.a \
crypto/libverus_portable_crypto.a \
libbitcoin_util.a \
libbitcoin_common.a \
libbitcoin_server.a \
@@ -401,12 +403,17 @@ crypto_libbitcoin_crypto_a_SOURCES += \
${EQUIHASH_TROMP_SOURCES}
endif
# Verus hash specific library
crypto_libverus_crypto_a_CPPFLAGS = -O3 -Wint-conversion -march=native -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS)
crypto_libverus_crypto_a_CXXFLAGS = -O3 -Wint-conversion -march=native -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS)
# Verus hash specific library - optimized
crypto_libverus_crypto_a_CPPFLAGS = -O3 -Wint-conversion -march=x86-64 -msse4 -msse4.1 -msse4.2 -mssse3 -mavx -maes -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS)
crypto_libverus_crypto_a_CXXFLAGS = -O3 -Wint-conversion -march=x86-64 -msse4 -msse4.1 -msse4.2 -mssse3 -mavx -maes -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS)
crypto_libverus_crypto_a_SOURCES = \
crypto/haraka.h \
crypto/haraka.c \
crypto/haraka.c
# Verus hash specific library - portable
crypto_libverus_portable_crypto_a_CPPFLAGS = -O3 -Wint-conversion -march=x86-64 -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS)
crypto_libverus_portable_crypto_a_CXXFLAGS = -O3 -Wint-conversion -march=x86-64 -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS)
crypto_libverus_portable_crypto_a_SOURCES = \
crypto/haraka_portable.h \
crypto/haraka_portable.c
@@ -505,6 +512,7 @@ komodod_LDADD = \
$(LIBBITCOIN_UTIL) \
$(LIBBITCOIN_CRYPTO) \
$(LIBVERUS_CRYPTO) \
$(LIBVERUS_PORTABLE_CRYPTO) \
$(LIBZCASH) \
$(LIBSNARK) \
$(LIBLEVELDB) \
@@ -529,6 +537,7 @@ komodod_LDADD += \
$(EVENT_LIBS) \
$(LIBBITCOIN_CRYPTO) \
$(LIBVERUS_CRYPTO) \
$(LIBVERUS_PORTABLE_CRYPTO) \
$(LIBZCASH_LIBS)
if ENABLE_PROTON
@@ -564,6 +573,7 @@ komodo_cli_LDADD = \
$(LIBZCASH) \
$(LIBBITCOIN_CRYPTO) \
$(LIBVERUS_CRYPTO) \
$(LIBVERUS_PORTABLE_CRYPTO) \
$(LIBZCASH_LIBS)
if ENABLE_WALLET
@@ -572,6 +582,7 @@ wallet_utility_LDADD = \
$(LIBBITCOIN_COMMON) \
$(LIBBITCOIN_CRYPTO) \
$(LIBVERUS_CRYPTO) \
$(LIBVERUS_PORTABLE_CRYPTO) \
$(LIBSECP256K1) \
$(LIBBITCOIN_UTIL) \
$(BOOST_LIBS) \
@@ -603,6 +614,7 @@ komodo_tx_LDADD = \
$(LIBSNARK) \
$(LIBBITCOIN_CRYPTO) \
$(LIBVERUS_CRYPTO) \
$(LIBVERUS_PORTABLE_CRYPTO) \
$(LIBZCASH_LIBS) \
$(LIBCRYPTOCONDITIONS)

View File

@@ -235,12 +235,6 @@ void *chainparams_commandline(void *ptr)
mainParams.pchMessageStart[3] = (ASSETCHAINS_MAGIC >> 24) & 0xff;
fprintf(stderr,">>>>>>>>>> %s: p2p.%u rpc.%u magic.%08x %u %u coins\n",ASSETCHAINS_SYMBOL,ASSETCHAINS_P2PPORT,ASSETCHAINS_RPCPORT,ASSETCHAINS_MAGIC,ASSETCHAINS_MAGIC,(uint32_t)ASSETCHAINS_SUPPLY);
// only require coinbase protection on Verus from the Komodo family of coins
if (strcmp(ASSETCHAINS_SYMBOL,"VRSC") == 0)
{
mainParams.consensus.fCoinbaseMustBeProtected = true;
}
if (ASSETCHAINS_ALGO != ASSETCHAINS_EQUIHASH)
{
// this is only good for 60 second blocks with an averaging window of 45. for other parameters, use:
@@ -262,22 +256,38 @@ void *chainparams_commandline(void *ptr)
mainParams.consensus.nLwmaPOSAjustedWeight = 46531;
}
checkpointData = //(Checkpoints::CCheckpointData)
{
boost::assign::map_list_of
(0, mainParams.consensus.hashGenesisBlock)
(10000, uint256S("0xac2cd7d37177140ea4991cf630c0b9c7f94d707b84fb0351bf3a44856d2ae5dc"))
(20000, uint256S("0xb0e8cb9f77aaa7ff5bd90d6c08d06f4c4bf03e00c2b8a35a042e760845590c8a"))
(30000, uint256S("0xf2112ca577338ad7104bf905fa6a63d36b17a86f914c97b73cd31d43fcd7557c"))
(40000, uint256S("0x00000000008f83378dab727864b763ce91a4ea5f75d55939c0c1390cfb8c38f1"))
(49170, uint256S("0x2add646c0089871ec2379f02f7cd60b3af6efd9c152a6f16fc10925458c270cc")),
(int64_t)1529910234, // * UNIX timestamp of last checkpoint block
(int64_t)63661, // * total number of transactions between genesis and last checkpoint
// (the tx=... number in the SetBestChain debug.log lines)
(double)2777 // * estimated number of transactions per day after checkpoint
// total number of tx / (checkpoint block height / (24 * 24))
};
// only require coinbase protection on Verus from the Komodo family of coins
if (strcmp(ASSETCHAINS_SYMBOL,"VRSC") == 0)
{
mainParams.consensus.fCoinbaseMustBeProtected = true;
checkpointData = //(Checkpoints::CCheckpointData)
{
boost::assign::map_list_of
(0, mainParams.consensus.hashGenesisBlock)
(10000, uint256S("0xac2cd7d37177140ea4991cf630c0b9c7f94d707b84fb0351bf3a44856d2ae5dc"))
(20000, uint256S("0xb0e8cb9f77aaa7ff5bd90d6c08d06f4c4bf03e00c2b8a35a042e760845590c8a"))
(30000, uint256S("0xf2112ca577338ad7104bf905fa6a63d36b17a86f914c97b73cd31d43fcd7557c"))
(40000, uint256S("0x00000000008f83378dab727864b763ce91a4ea5f75d55939c0c1390cfb8c38f1"))
(49170, uint256S("0x2add646c0089871ec2379f02f7cd60b3af6efd9c152a6f16fc10925458c270cc")),
(int64_t)1529910234, // * UNIX timestamp of last checkpoint block
(int64_t)63661, // * total number of transactions between genesis and last checkpoint
// (the tx=... number in the SetBestChain debug.log lines)
(double)2777 // * estimated number of transactions per day after checkpoint
// total number of tx / (checkpoint block height / (24 * 24))
};
}
else
{
checkpointData = //(Checkpoints::CCheckpointData)
{
boost::assign::map_list_of
(0, mainParams.consensus.hashGenesisBlock),
(int64_t)1231006505,
(int64_t)1,
(double)2777 // * estimated number of transactions per day after checkpoint
// total number of tx / (checkpoint block height / (24 * 24))
};
}
}
else
{

View File

@@ -14,11 +14,12 @@ bit output.
void (*CVerusHash::haraka512Function)(unsigned char *out, const unsigned char *in);
void CVerusHash::Hash(void *result, const void *data, size_t len)
void CVerusHash::Hash(void *result, const void *data, size_t _len)
{
unsigned char buf[128];
unsigned char *bufPtr = buf;
int pos = 0, nextOffset = 64;
int nextOffset = 64;
uint32_t pos = 0, len = _len;
unsigned char *bufPtr2 = bufPtr + nextOffset;
unsigned char *ptr = (unsigned char *)data;
@@ -58,14 +59,15 @@ void CVerusHash::init()
}
}
CVerusHash &CVerusHash::Write(const unsigned char *data, size_t len)
CVerusHash &CVerusHash::Write(const unsigned char *data, size_t _len)
{
unsigned char *tmp;
uint32_t pos, len = _len;
// digest up to 32 bytes at a time
for ( int pos = 0; pos < len; )
for ( pos = 0; pos < len; )
{
int room = 32 - curPos;
uint32_t room = 32 - curPos;
if (len - pos >= room)
{

View File

@@ -15,7 +15,7 @@ AM_CFLAGS = -I$(top_srcdir)/src/asn -I$(top_srcdir)/include -I$(top_srcdir)/src/
LIBSECP256K1=src/include/secp256k1/libsecp256k1.la
$(LIBSECP256K1): $(wildcard src/secp256k1/*)
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F) -march:x86-64 -g
CRYPTOCONDITIONS_CORE=libcryptoconditions_core.la

View File

@@ -71,7 +71,7 @@ endif
endif
libsecp256k1_la_SOURCES = src/secp256k1.c
libsecp256k1_la_CPPFLAGS = -DSECP256K1_BUILD -I$(top_srcdir)/include -I$(top_srcdir)/src $(SECP_INCLUDES)
libsecp256k1_la_CPPFLAGS = -DSECP256K1_BUILD -I$(top_srcdir)/include -I$(top_srcdir)/src $(SECP_INCLUDES) -march=x86-64 -g
libsecp256k1_la_LIBADD = $(JNI_LIB) $(SECP_LIBS) $(COMMON_LIB)
libsecp256k1_jni_la_SOURCES = src/java/org_bitcoin_NativeSecp256k1.c src/java/org_bitcoin_Secp256k1Context.c

View File

@@ -9,5 +9,7 @@
#define KOMODO_LIMITED_NETWORKSIZE 4
#define KOMODO_MAXMEMPOOLTIME 3600 // affects consensus
#define CRYPTO777_PUBSECPSTR "020e46e79a2a8d12b9b5d12c7a91adb4e454edfae43c0a0cb805427d2ac7613fd9"
#define VRSC_KMD_MERGE_FIX 227520 // height that the inadvertent KMD merge/coinbase output changes to VRSC are removed
// approximately October 28th
#endif

View File

@@ -687,10 +687,12 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block,uint32_t prevtim
}
}
}
n = block.vtx[0].vout.size();
//script = (uint8_t *)block.vtx[0].vout[n-1].scriptPubKey.data();
//if ( n <= 2 || script[0] != 0x6a )
// we don't want any of these checks in VRSC, leave it for other chains until/unless KMD removes
if ( ASSETCHAINS_SYMBOL[0] == 0 ||
(ASSETCHAINS_COMMISSION != 0 && height > 1) ||
(strcmp(ASSETCHAINS_SYMBOL,"VRSC") == 0 && height < VRSC_KMD_MERGE_FIX) )
{
n = block.vtx[0].vout.size();
int64_t val,prevtotal = 0; int32_t strangeout=0,overflow = 0;
total = 0;
for (i=1; i<n; i++)
@@ -760,12 +762,12 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block,uint32_t prevtim
{
fprintf(stderr,"checkdeposit: ht.%d checktoshis %.8f overflow.%d total %.8f strangeout.%d\n",height,dstr(checktoshis),overflow,dstr(total),strangeout);
if ( strangeout != 0 )
fprintf(stderr,">>>>>>>>>>>>> %s DUST ht.%d strangout.%d notmatched.%d <<<<<<<<<\n",ASSETCHAINS_SYMBOL,height,strangeout,notmatched);
fprintf(stderr,">>>>>>>>>>>>> %s DUST ht.%d strangeout.%d notmatched.%d <<<<<<<<<\n",ASSETCHAINS_SYMBOL,height,strangeout,notmatched);
return(-1);
}
}
return(0);
}
return(0);
}
const char *komodo_opreturn(int32_t height,uint64_t value,uint8_t *opretbuf,int32_t opretlen,uint256 txid,uint16_t vout,char *source)

View File

@@ -1906,7 +1906,7 @@ bool IsInitialBlockDownload()
}
if (fCheckpointsEnabled && chainActive.Height() < Checkpoints::GetTotalBlocksEstimate(chainParams.Checkpoints()))
{
//fprintf(stderr,"IsInitialBlockDownload: checkpoint -> initialdownload\n");
//fprintf(stderr,"IsInitialBlockDownload: checkpoint -> initialdownload - %d blocks\n", Checkpoints::GetTotalBlocksEstimate(chainParams.Checkpoints()));
return true;
}
static bool lockIBDState = false;
@@ -1936,23 +1936,32 @@ bool IsInitialBlockDownload()
bool IsInSync()
{
const CChainParams& chainParams = Params();
LOCK(cs_main);
if (fImporting || fReindex)
{
//fprintf(stderr,"IsInitialBlockDownload: fImporting %d || %d fReindex\n",(int32_t)fImporting,(int32_t)fReindex);
//fprintf(stderr,"IsInSync: fImporting %d || %d fReindex\n",(int32_t)fImporting,(int32_t)fReindex);
return false;
}
if (fCheckpointsEnabled && chainActive.Height() < Checkpoints::GetTotalBlocksEstimate(chainParams.Checkpoints()))
if (fCheckpointsEnabled)
{
//fprintf(stderr,"IsInitialBlockDownload: checkpoint -> initialdownload\n");
return false;
if (fCheckpointsEnabled && chainActive.Height() < Checkpoints::GetTotalBlocksEstimate(chainParams.Checkpoints()))
{
//fprintf(stderr,"IsInSync: checkpoint -> initialdownload chainActive.Height().%d GetTotalBlocksEstimate(chainParams.Checkpoints().%d\n", chainActive.Height(), Checkpoints::GetTotalBlocksEstimate(chainParams.Checkpoints()));
return false;
}
}
CBlockIndex *ptr = chainActive.Tip();
if ( !ptr )
CBlockIndex *pbi = chainActive.Tip();
int longestchain = komodo_longestchain();
if ( !pbi ||
(pindexBestHeader == 0) ||
((pindexBestHeader->nHeight - 1) > pbi->nHeight) ||
(longestchain != 0 && longestchain > pbi->nHeight) )
return false;
else if ( pindexBestHeader != 0 && (pindexBestHeader->nHeight - 1) > ptr->nHeight )
return false;
//printf("IsInSync: checkpoint -> initialdownload chainActive.Height().%d longestchain.%d\n", chainActive.Height(), longestchain);
return true;
}
@@ -3436,7 +3445,7 @@ bool static DisconnectTip(CValidationState &state, bool fBare = false) {
for (int i = 0; i < block.vtx.size(); i++)
{
CTransaction &tx = block.vtx[i];
if ((i == (block.vtx.size() - 1) && (block.IsVerusPOSBlock() || (komodo_isPoS((CBlock *)&block) != 0))))
if ((i == (block.vtx.size() - 1)) && (block.IsVerusPOSBlock() || (komodo_isPoS((CBlock *)&block) != 0)))
{
EraseFromWallets(tx.GetHash());
}
@@ -5941,8 +5950,9 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
CAddress addrMe;
CAddress addrFrom;
uint64_t nNonce = 1;
vRecv >> pfrom->nVersion >> pfrom->nServices >> nTime >> addrMe;
if (pfrom->nVersion < MIN_PEER_PROTO_VERSION)
int nVersion; // use temporary for version, don't set version number until validated as connected
vRecv >> nVersion >> pfrom->nServices >> nTime >> addrMe;
if (nVersion < MIN_PEER_PROTO_VERSION)
{
// disconnect from peers older than this proto version
LogPrintf("peer=%d using obsolete version %i; disconnecting\n", pfrom->id, pfrom->nVersion);
@@ -5955,9 +5965,9 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
// When Overwinter is active, reject incoming connections from non-Overwinter nodes
const Consensus::Params& params = Params().GetConsensus();
if (NetworkUpgradeActive(GetHeight(), params, Consensus::UPGRADE_OVERWINTER)
&& pfrom->nVersion < params.vUpgrades[Consensus::UPGRADE_OVERWINTER].nProtocolVersion)
&& nVersion < params.vUpgrades[Consensus::UPGRADE_OVERWINTER].nProtocolVersion)
{
LogPrintf("peer=%d using obsolete version %i; disconnecting\n", pfrom->id, pfrom->nVersion);
LogPrintf("peer=%d using obsolete version %i; disconnecting\n", pfrom->id, nVersion);
pfrom->PushMessage("reject", strCommand, REJECT_OBSOLETE,
strprintf("Version must be %d or greater",
params.vUpgrades[Consensus::UPGRADE_OVERWINTER].nProtocolVersion));
@@ -5965,8 +5975,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
return false;
}
if (pfrom->nVersion == 10300)
pfrom->nVersion = 300;
if (nVersion == 10300)
nVersion = 300;
if (!vRecv.empty())
vRecv >> addrFrom >> nNonce;
if (!vRecv.empty()) {
@@ -5987,6 +5997,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
pfrom->fDisconnect = true;
return true;
}
pfrom->nVersion = nVersion;
pfrom->addrLocal = addrMe;
if (pfrom->fInbound && addrMe.IsRoutable())

View File

@@ -796,15 +796,16 @@ int32_t waitForPeers(const CChainParams &chainparams)
LOCK(cs_vNodes);
fvNodesEmpty = vNodes.empty();
}
if (!IsInSync() || fvNodesEmpty)
if (fvNodesEmpty || !IsInSync())
{
do {
MilliSleep(100 + rand() % 400);
if (fvNodesEmpty)
MilliSleep(1000 + rand() % 4000);
{
LOCK(cs_vNodes);
fvNodesEmpty = vNodes.empty();
}
} while (!IsInSync() || fvNodesEmpty);
} while (fvNodesEmpty || !IsInSync());
MilliSleep(100 + rand() % 400);
}
}
@@ -813,11 +814,13 @@ int32_t waitForPeers(const CChainParams &chainparams)
#ifdef ENABLE_WALLET
CBlockIndex *get_chainactive(int32_t height)
{
LOCK(cs_main);
if ( chainActive.Tip() != 0 )
if ( chainActive.LastTip() != 0 )
{
if ( height <= chainActive.Tip()->nHeight )
if ( height <= chainActive.LastTip()->nHeight )
{
LOCK(cs_main);
return(chainActive[height]);
}
// else fprintf(stderr,"get_chainactive height %d > active.%d\n",height,chainActive.Tip()->nHeight);
}
//fprintf(stderr,"get_chainactive null chainActive.Tip() height %d\n",height);

View File

@@ -1366,10 +1366,12 @@ void ThreadOpenConnections()
boost::this_thread::interruption_point();
// Add seed nodes if DNS seeds are all down (an infrastructure attack?).
if (addrman.size() == 0 && (GetTime() - nStart > 60)) {
// if (addrman.size() == 0 && (GetTime() - nStart > 60)) {
if (GetTime() - nStart > 60) {
static bool done = false;
if (!done) {
LogPrintf("Adding fixed seed nodes as DNS doesn't seem to be available.\n");
//LogPrintf("Adding fixed seed nodes as DNS doesn't seem to be available.\n");
LogPrintf("Adding fixed seed nodes.\n");
addrman.Add(convertSeed6(Params().FixedSeeds()), CNetAddr("127.0.0.1"));
done = true;
}

View File

@@ -56,7 +56,7 @@ uint32_t komodo_segid32(char *coinaddr);
int64_t komodo_coinsupply(int64_t *zfundsp,int32_t height);
int32_t notarizedtxid_height(char *dest,char *txidstr,int32_t *kmdnotarized_heightp);
#define KOMODO_VERSION "0.1.1"
#define VERUS_VERSION "0.3.12"
#define VERUS_VERSION "0.3.13"
extern uint16_t ASSETCHAINS_P2PPORT,ASSETCHAINS_RPCPORT;
extern uint32_t ASSETCHAINS_CC;
extern uint32_t ASSETCHAINS_MAGIC;

View File

@@ -15,7 +15,7 @@ endif
# To override these, use "make OPTFLAGS=..." etc.
CURVE = BN128
OPTFLAGS = -O2 -march=native -mtune=native
OPTFLAGS = -O2 -march=x86-64 -g -mtune=x86-64
FEATUREFLAGS = -DUSE_ASM -DMONTGOMERY_OUTPUT
# Initialize this using "CXXFLAGS=... make". The makefile appends to that.
@@ -158,7 +158,7 @@ ifeq ($(DEBUG),1)
endif
ifeq ($(PERFORMANCE),1)
OPTFLAGS = -O3 -march=native -mtune=native
OPTFLAGS = -O3 -march=x86-64 -g -mtune=x86-64
CXXFLAGS += -DNDEBUG
# Enable link-time optimization:
CXXFLAGS += -flto -fuse-linker-plugin

View File

@@ -2,4 +2,4 @@
#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 -gen -genproclimit=0 "$@"
./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 "$@"

View File

@@ -2346,6 +2346,8 @@ std::vector<uint256> CWallet::ResendWalletTransactionsBefore(int64_t nTime)
if ( wtx.nLockTime >= LOCKTIME_THRESHOLD && wtx.nLockTime < now-KOMODO_MAXMEMPOOLTIME )
{
LogPrintf("skip Relaying wtx %s nLockTime %u vs now.%u\n", wtx.GetHash().ToString(),(uint32_t)wtx.nLockTime,now);
//TODO: EraseFromWallet(wtx.GetHash()); //should be erased, but this creates issues, likely better to create
// vector and do it outside of this loop, but for later
continue;
}
}

432
zcutil/VerusCoin.xml Normal file
View File

@@ -0,0 +1,432 @@
<project>
<shortName>VerusCoin</shortName>
<fullName>VerusCoin</fullName>
<version>0.3.12</version>
<installerFilename>${product_shortname}-v${product_version}-${platform_name}-installer.${platform_exec_suffix}</installerFilename>
<licenseFile>../COPYING</licenseFile>
<leftImage>../assets/imgs/VRSC_256x256.png</leftImage>
<logoImage>../assets/imgs/VRSC_256x256.png</logoImage>
<splashImage>../assets/imgs/VRSC_256x256.png</splashImage>
<allowLanguageSelection>1</allowLanguageSelection>
<componentList>
<componentGroup>
<name>VerusCoin</name>
<description>VerusCoin CLI</description>
<canBeEdited>1</canBeEdited>
<downloadable>1</downloadable>
<selected>1</selected>
<show>1</show>
<componentList>
<component>
<name>Agama</name>
<description>Verus-Enhanced Agama Wallet</description>
<canBeEdited>1</canBeEdited>
<downloadable>1</downloadable>
<selected>1</selected>
<show>1</show>
<desktopShortcutList>
<shortcut>
<comment>Start Agama App</comment>
<exec></exec>
<icon>../assets/icons/agama_icons/256x256.png</icon>
<name>Agama App</name>
<path></path>
<platforms>all</platforms>
<runAsAdmin>0</runAsAdmin>
<runInTerminal>0</runInTerminal>
<windowsExec>${installdir}/Agama/Agama-win32-x64/Agama.exe</windowsExec>
<windowsExecArgs></windowsExecArgs>
<windowsIcon></windowsIcon>
<windowsPath>${windows_folder_common_programs}/</windowsPath>
</shortcut>
</desktopShortcutList>
<folderList>
<folder>
<description>Verus-Enhanced Agama Wallet</description>
<destination>${installdir}/Agama</destination>
<name>Agama</name>
<platforms>all</platforms>
<distributionFileList>
<distributionDirectory>
<origin>../Agama-win32-x64</origin>
</distributionDirectory>
</distributionFileList>
</folder>
</folderList>
</component>
</componentList>
<folderList>
<folder>
<description>Program Files</description>
<destination>${installdir}</destination>
<name>programfiles</name>
<platforms>all</platforms>
<shortcutList>
<shortcut>
<comment>Uninstall</comment>
<exec>${installdir}/${uninstallerName}</exec>
<icon></icon>
<name>Uninstall ${product_fullname}</name>
<path>${installdir}</path>
<platforms>all</platforms>
<runAsAdmin>0</runAsAdmin>
<runInTerminal>0</runInTerminal>
<windowsExec>${installdir}/${uninstallerName}.exe</windowsExec>
<windowsExecArgs></windowsExecArgs>
<windowsIcon></windowsIcon>
<windowsPath>${installdir}</windowsPath>
</shortcut>
</shortcutList>
</folder>
<folder>
<description>VerusCoin</description>
<destination>${installdir}/</destination>
<name>VerusCoin</name>
<platforms>all</platforms>
<distributionFileList>
<distributionDirectory>
<origin>../verus-cli</origin>
</distributionDirectory>
</distributionFileList>
</folder>
</folderList>
</componentGroup>
</componentList>
<preInstallationActionList>
<registryGetMatch>
<key>HKEY_LOCAL_MACHINE\SOFTWARE\${project.shortname}</key>
<name>uninstaller_path</name>
<variable>uninstaller_path</variable>
</registryGetMatch>
<setInstallerVariable>
<name>previous_installation_exists</name>
<value>1</value>
<ruleList>
<fileTest condition="exists" path="${uninstaller_path}"/>
</ruleList>
</setInstallerVariable>
</preInstallationActionList>
<readyToInstallActionList>
<runProgram>
<program>${uninstaller_path}</program>
<programArguments></programArguments>
<ruleList>
<compareValues>
<logic>equals</logic>
<value1>${previous_installation_exists}</value1>
<value2>1</value2>
</compareValues>
</ruleList>
</runProgram>
<deleteFile>
<explanation>Deleting user data</explanation>
<path>${windows_folder_appdata}/Agama</path>
<progressText>Deleting user data</progressText>
<ruleList>
<compareValues>
<logic>equals</logic>
<value1>${previous_installation_exists}</value1>
<value2>1</value2>
</compareValues>
<compareValues>
<logic>equals</logic>
<value1>${installation_type}</value1>
<value2>uninstall</value2>
</compareValues>
<compareValues>
<logic>equals</logic>
<value1>${delete_user_data}</value1>
<value2>1</value2>
</compareValues>
</ruleList>
</deleteFile>
<deleteFile>
<explanation>Deleting iguana config json</explanation>
<path>${windows_folder_appdata}/Iguana/config.json</path>
<progressText>Deleting iguana config</progressText>
<ruleList>
<compareValues>
<logic>equals</logic>
<value1>${previous_installation_exists}</value1>
<value2>1</value2>
</compareValues>
<compareValues>
<logic>equals</logic>
<value1>${installation_type}</value1>
<value2>uninstall</value2>
</compareValues>
<compareValues>
<logic>equals</logic>
<value1>${delete_config_data}</value1>
<value2>1</value2>
</compareValues>
</ruleList>
</deleteFile>
<exit>
<explanation>Uninstalled</explanation>
<progressText>Uninstalled</progressText>
<ruleList>
<compareValues>
<logic>equals</logic>
<value1>${previous_installation_exists}</value1>
<value2>1</value2>
</compareValues>
<compareValues>
<logic>equals</logic>
<value1>${installation_type}</value1>
<value2>uninstall</value2>
</compareValues>
</ruleList>
</exit>
<showProgressDialog>
<title>Downloading files</title>
<actionList>
<httpGet>
<abortOnError>0</abortOnError>
<explanation>Visual C++ Redistributable for Visual Studio 2015 library files are needed for Agama daemon</explanation>
<filename>${system_temp_directory}/vc_redist.x64.exe</filename>
<progressText>Downloading Visual C++ Redistributable for Visual Studio 2015</progressText>
<showMessageOnError>0</showMessageOnError>
<url>https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe</url>
</httpGet>
</actionList>
<ruleList>
<fileExists>
<negate>1</negate>
<path>${system_temp_directory}/vc_redist.x64.exe</path>
</fileExists>
</ruleList>
</showProgressDialog>
<runProgram>
<abortOnError>0</abortOnError>
<explanation>Visual C++ Redistributable for Visual Studio 2015 library files are needed for Agama daemon</explanation>
<program>${system_temp_directory}/vc_redist.x64.exe</program>
<programArguments>/install /passive</programArguments>
<progressText>Downloading Visual C++ Redistributable for Visual Studio 2015</progressText>
<showMessageOnError>0</showMessageOnError>
</runProgram>
<showProgressDialog>
<title>Downloading files</title>
<actionList>
<httpGet>
<abortOnError>0</abortOnError>
<explanation>Visual C++ Redistributable for Visual Studio 2015 library files are needed for Agama daemon</explanation>
<filename>${system_temp_directory}/vc_redist.x86.exe</filename>
<progressText>Downloading Visual C++ Redistributable for Visual Studio 2015</progressText>
<showMessageOnError>0</showMessageOnError>
<url>https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe</url>
</httpGet>
</actionList>
<ruleList>
<fileExists>
<negate>1</negate>
<path>${system_temp_directory}/vc_redist.x86.exe</path>
</fileExists>
</ruleList>
</showProgressDialog>
<runProgram>
<abortOnError>0</abortOnError>
<explanation>Visual C++ Redistributable for Visual Studio 2015 library files are needed for Agama daemon</explanation>
<program>${system_temp_directory}/vc_redist.x86.exe</program>
<programArguments>/install /passive</programArguments>
<progressText>Downloading Visual C++ Redistributable for Visual Studio 2015</progressText>
<showMessageOnError>0</showMessageOnError>
</runProgram>
<createDirectory>
<abortOnError>0</abortOnError>
<explanation>Creating ZcashParam directory</explanation>
<path>${windows_folder_appdata}/ZcashParams/</path>
<progressText>Creating ZcashParam directory</progressText>
<showMessageOnError>0</showMessageOnError>
</createDirectory>
<showProgressDialog>
<abortOnError>0</abortOnError>
<explanation>Zcash Params file: sprout-proving.key</explanation>
<progressText>Zcash Params file: sprout-proving.key</progressText>
<showMessageOnError>0</showMessageOnError>
<title>Downloading Zcash Params file</title>
<actionList>
<httpGet>
<abortOnError>0</abortOnError>
<explanation>Zcash Params file: sprout-proving.key</explanation>
<filename>${windows_folder_appdata}/ZcashParams/sprout-proving.key</filename>
<progressText>Zcash Params file: sprout-proving.key</progressText>
<showMessageOnError>0</showMessageOnError>
<url>https://z.cash/downloads/sprout-proving.key</url>
</httpGet>
</actionList>
<ruleList>
<fileExists>
<negate>1</negate>
<path>${windows_folder_appdata}/ZcashParams/sprout-proving.key</path>
</fileExists>
</ruleList>
</showProgressDialog>
<showProgressDialog>
<abortOnError>0</abortOnError>
<explanation>Zcash Params file: sprout-verifying.key</explanation>
<progressText>Zcash Params file: sprout-verifying.key</progressText>
<title>Downloading Zcash Params files</title>
<actionList>
<httpGet>
<abortOnError>0</abortOnError>
<explanation>Zcash Params file: sprout-verifying.key</explanation>
<filename>${windows_folder_appdata}/ZcashParams/sprout-verifying.key</filename>
<progressText>Zcash Params file: sprout-verifying.key</progressText>
<showMessageOnError>0</showMessageOnError>
<url>https://z.cash/downloads/sprout-verifying.key</url>
</httpGet>
</actionList>
<ruleList>
<fileExists>
<negate>1</negate>
<path>${windows_folder_appdata}/ZcashParams/sprout-verifying.key</path>
</fileExists>
</ruleList>
</showProgressDialog>
</readyToInstallActionList>
<postInstallationActionList>
<addEnvironmentVariable>
<name>VERUS_HOME</name>
<scope>system</scope>
<value>${installdir}/verus-cli/</value>
</addEnvironmentVariable>
<registrySet>
<key>HKEY_LOCAL_MACHINE\SOFTWARE\${project.shortname}</key>
<name>uninstaller_path</name>
<type>REG_SZ</type>
<value>${installdir}/${uninstallerName}.exe</value>
</registrySet>
<actionGroup>
<actionList>
<copyFile>
<destination>C:\Windows\System32\</destination>
<explanation>Copying ReqCopying Required DLL filesuired DLL files</explanation>
<origin>${installdir}/resources/app/windeps/x86/vcruntime140d.dll</origin>
<progressText>Copying ReqCopying Required DLL filesuired DLL files</progressText>
</copyFile>
</actionList>
<ruleList>
<platformTest type="windows-x86"/>
</ruleList>
</actionGroup>
<actionGroup>
<actionList>
<copyFile>
<destination>C:\Windows\System32\</destination>
<explanation>Copying ReqCopying Required DLL filesuired DLL files</explanation>
<origin>${installdir}/resources/app/windeps/x64/ucrtbased.dll</origin>
<progressText>Copying ReqCopying Required DLL filesuired DLL files</progressText>
</copyFile>
<copyFile>
<destination>C:\Windows\System32\</destination>
<explanation>Copying ReqCopying Required DLL filesuired DLL files</explanation>
<origin>${installdir}/resources/app/windeps/x64/vcruntime140d.dll</origin>
<progressText>Copying ReqCopying Required DLL filesuired DLL files</progressText>
</copyFile>
<copyFile>
<destination>C:\Windows\SysWOW64\</destination>
<explanation>Copying ReqCopying Required DLL filesuired DLL files</explanation>
<origin>${installdir}/resources/app/windeps/x86/ucrtbased.dll</origin>
<progressText>Copying ReqCopying Required DLL filesuired DLL files</progressText>
</copyFile>
<copyFile>
<destination>C:\Windows\SysWOW64\</destination>
<explanation>Copying ReqCopying Required DLL filesuired DLL files</explanation>
<origin>${installdir}/resources/app/windeps/x86/vcruntime140d.dll</origin>
<progressText>Copying ReqCopying Required DLL filesuired DLL files</progressText>
</copyFile>
</actionList>
<ruleList>
<platformTest type="windows-x64"/>
</ruleList>
</actionGroup>
</postInstallationActionList>
<postUninstallationActionList>
<registryDelete>
<key>HKEY_LOCAL_MACHINE\SOFTWARE\${project.shortname}</key>
<name>uninstaller_path</name>
</registryDelete>
</postUninstallationActionList>
<allowAddRemoveComponents>1</allowAddRemoveComponents>
<allowComponentSelection>1</allowComponentSelection>
<enableDebugger>1</enableDebugger>
<enableRollback>1</enableRollback>
<enableTimestamp>1</enableTimestamp>
<outputDirectory>../builds</outputDirectory>
<replaceLockedFilesOnReboot>1</replaceLockedFilesOnReboot>
<rollbackBackupDirectory>${windows_folder_appdata}</rollbackBackupDirectory>
<saveRelativePaths>1</saveRelativePaths>
<singleInstanceCheck>1</singleInstanceCheck>
<vendor>VerusCoin</vendor>
<windows64bitMode>1</windows64bitMode>
<parameterList>
<directoryParameter>
<name>installdir</name>
<description>Installer.Parameter.installdir.description</description>
<explanation>Installer.Parameter.installdir.explanation</explanation>
<value></value>
<default>${platform_install_prefix}/${product_shortname}</default>
<allowEmptyValue>0</allowEmptyValue>
<cliOptionName>prefix</cliOptionName>
<mustBeWritable>1</mustBeWritable>
<mustExist>0</mustExist>
<width>30</width>
<validationActionList>
<throwError>
<text>You don't have enough disk space to install the application,
please select another installation directory</text>
<ruleList>
<checkFreeDiskSpace>
<logic>less</logic>
<path>${installdir}</path>
<size>${required_diskspace}</size>
</checkFreeDiskSpace>
</ruleList>
</throwError>
</validationActionList>
</directoryParameter>
<choiceParameterGroup>
<name>installation_type</name>
<title>Instalation type</title>
<description>Existing instalation is detected</description>
<explanation>Existing instalation is detected</explanation>
<value>uninstall</value>
<default>uninstall</default>
<parameterList>
<parameterGroup>
<name>uninstall</name>
<title>Uninstall</title>
<explanation>Uninstall</explanation>
<value></value>
<default></default>
<parameterList>
<booleanParameter name="delete_user_data" description="Delete user data" displayStyle="checkbox-left">
<explanation></explanation>
<value>0</value>
<default>0</default>
</booleanParameter>
<booleanParameter name="delete_zcash_params" description="Delete Zcash params" displayStyle="checkbox-left">
<explanation></explanation>
<value>0</value>
<default>0</default>
</booleanParameter>
</parameterList>
</parameterGroup>
<labelParameter name="Upgrade" description="Upgrade to current version">
<title>Upgrade</title>
<explanation></explanation>
<image></image>
</labelParameter>
</parameterList>
<ruleList>
<compareValues>
<logic>equals</logic>
<value1>${previous_installation_exists}</value1>
<value2>1</value2>
</compareValues>
</ruleList>
</choiceParameterGroup>
</parameterList>
</project>