252
.gitlab-ci.yml
252
.gitlab-ci.yml
@@ -1,21 +1,16 @@
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
- package
|
||||
- deploy
|
||||
|
||||
- build
|
||||
- test
|
||||
- deploy
|
||||
|
||||
variables:
|
||||
VERSION: 0.3.12
|
||||
AGAMA_ARTIFACTS_LINUX: linux64.tar.gz
|
||||
AGAMA_ARTIFACTS_MACOS: osx.tar.gz
|
||||
AGAMA_ARTIFACTS_WINDOWS: win64.zip
|
||||
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-mac-v$VERSION-beta.tar.gz
|
||||
WINDOWS_INSTALLER: VerusCoin-v$VERSION-beta-windows-installer.exe
|
||||
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:
|
||||
build:linux:
|
||||
image: asherd/veruscoin-cross-compiler:linux
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
@@ -26,15 +21,15 @@ variables:
|
||||
script:
|
||||
- zcutil/build.sh -j4
|
||||
- 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/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
|
||||
- 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 ./
|
||||
- cd kmd/linux/
|
||||
- tar -czvf $VERUS_CLI_LINUX verus-cli
|
||||
- mv $VERUS_CLI_LINUX ../..
|
||||
after_script:
|
||||
- mv /root/.ccache ./ || true
|
||||
cache:
|
||||
@@ -44,8 +39,7 @@ variables:
|
||||
- .ccache
|
||||
artifacts:
|
||||
paths:
|
||||
- $VERUS_CLI_LINUX_PORTABLE
|
||||
- $AGAMA_ARTIFACTS_LINUX
|
||||
- $VERUS_CLI_LINUX
|
||||
expire_in: 1 week
|
||||
|
||||
|
||||
@@ -61,28 +55,23 @@ 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
|
||||
|
||||
|
||||
.build:mac:
|
||||
build:mac:
|
||||
stage: build
|
||||
tags: ["High Sierra"]
|
||||
cache:
|
||||
@@ -90,16 +79,13 @@ build:windows:
|
||||
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
|
||||
|
||||
|
||||
@@ -109,14 +95,14 @@ build:windows:
|
||||
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]
|
||||
|
||||
@@ -127,17 +113,17 @@ build:windows:
|
||||
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:
|
||||
@@ -146,12 +132,12 @@ build:windows:
|
||||
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]
|
||||
|
||||
@@ -162,16 +148,23 @@ build:windows:
|
||||
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:
|
||||
@@ -180,81 +173,65 @@ build:windows:
|
||||
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:
|
||||
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
|
||||
|
||||
package:
|
||||
stage: package
|
||||
image: asherd/agama-builder
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
dependencies:
|
||||
- build:windows
|
||||
before_script:
|
||||
- unzip $VERUS_CLI_WINDOWS_PORTABLE
|
||||
- echo "$AUTH_KEY" > AUTH_KEY.json
|
||||
- gcloud auth activate-service-account --key-file AUTH_KEY.json
|
||||
- rm AUTH_KEY.json
|
||||
- gsutil cp $STAGING/Agama/installer-prototype/Windows/Agama-win32-x64-v${VERSION}-beta.zip .
|
||||
- unzip Agama-win32-x64-v${VERSION}-beta.zip
|
||||
- git clone https://github.com/VerusCoin/Media-Assets --single-branch -b master
|
||||
- mkdir -p assets/imgs/
|
||||
- cp Media-Assets/Logos/PNG/* assets/imgs/
|
||||
script:
|
||||
- builder build zcutil/VerusCoin.xml windows --setvars project.version=$VERSION-beta
|
||||
- mv builds/$WINDOWS_INSTALLER .
|
||||
artifacts:
|
||||
paths: [$WINDOWS_INSTALLER]
|
||||
- build:windows
|
||||
|
||||
|
||||
deploy:
|
||||
@@ -263,19 +240,44 @@ deploy:
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
dependencies:
|
||||
#- build:linux
|
||||
#- build:windows
|
||||
#- build:mac
|
||||
- package
|
||||
- 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 $WINDOWS_INSTALLER $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/
|
||||
- gsutil cp $WINDOWS_INSTALLER $CI_COMMIT_REF_NAME/ $STAGING/VerusCoin/$CI_COMMIT_REF_NAME/Windows/
|
||||
- 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"
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
## VerusCoin version 0.3.12a-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.12-beta has portable mining working.
|
||||
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.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
VerusCoin Command Line Tools v0.3.12a-beta
|
||||
VerusCoin Command Line Tools v0.3.13-beta
|
||||
|
||||
Contents:
|
||||
komodod - VerusCoin's enhanced Komodo daemon
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
VerusCoin Command Line Tools v0.3.12a-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.
|
||||
|
||||
@@ -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
|
||||
@@ -1,4 +1,4 @@
|
||||
VerusCoin Command Line Tools v0.3.12a-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
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
cp src/komodod.exe src/komodo-cli.exe src/komodo-tx.exe kmd/windows/verus-cli
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
44
src/main.cpp
44
src/main.cpp
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user