diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bef05408f..ebaf34ea2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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" diff --git a/Brewfile b/Brewfile index 8ed641c56..7a048b080 100644 --- a/Brewfile +++ b/Brewfile @@ -9,7 +9,7 @@ brew "automake" brew "binutils" brew "cmake" brew "coreutils" -brew "gcc@5" +brew "gcc@6" brew "leveldb" brew "nanomsg" brew "protobuf" diff --git a/README-mac.md b/README-mac.md index 5586e6003..5ac074dd9 100644 --- a/README-mac.md +++ b/README-mac.md @@ -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 diff --git a/README.md b/README.md index cec3b082e..78a4e0596 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/depends/packages/googletest.mk b/depends/packages/googletest.mk index 1275593f5..409c83a1b 100644 --- a/depends/packages/googletest.mk +++ b/depends/packages/googletest.mk @@ -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 diff --git a/depends/packages/libevent.mk b/depends/packages/libevent.mk index 2a1125fda..ffe6f7e79 100644 --- a/depends/packages/libevent.mk +++ b/depends/packages/libevent.mk @@ -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 diff --git a/depends/packages/libgmp.mk b/depends/packages/libgmp.mk index d8e41573a..c62fa18ed 100644 --- a/depends/packages/libgmp.mk +++ b/depends/packages/libgmp.mk @@ -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 diff --git a/depends/packages/librustzcash.mk b/depends/packages/librustzcash.mk index 20126776a..689082f8f 100644 --- a/depends/packages/librustzcash.mk +++ b/depends/packages/librustzcash.mk @@ -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 diff --git a/depends/packages/libsnark.mk b/depends/packages/libsnark.mk index cb4bc04ca..c2a620f26 100644 --- a/depends/packages/libsnark.mk +++ b/depends/packages/libsnark.mk @@ -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 diff --git a/depends/packages/libsodium.mk b/depends/packages/libsodium.mk index efa5d90de..67e096fae 100644 --- a/depends/packages/libsodium.mk +++ b/depends/packages/libsodium.mk @@ -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= diff --git a/depends/packages/zeromq.mk b/depends/packages/zeromq.mk index 850cce778..b9a57cba7 100644 --- a/depends/packages/zeromq.mk +++ b/depends/packages/zeromq.mk @@ -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 diff --git a/kmd/linux/verus-cli/README.txt b/kmd/linux/verus-cli/README.txt index 9cdfd2768..eed1a1c91 100644 --- a/kmd/linux/verus-cli/README.txt +++ b/kmd/linux/verus-cli/README.txt @@ -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 diff --git a/kmd/linux/verus-cli/verusd b/kmd/linux/verus-cli/verusd index 6ce5df644..ece180c12 100755 --- a/kmd/linux/verus-cli/verusd +++ b/kmd/linux/verus-cli/verusd @@ -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 "$@" diff --git a/kmd/mac/verus-cli/README.txt b/kmd/mac/verus-cli/README.txt index ddc238d80..3bb23f3e7 100644 --- a/kmd/mac/verus-cli/README.txt +++ b/kmd/mac/verus-cli/README.txt @@ -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. diff --git a/kmd/mac/verus-cli/fetch-params b/kmd/mac/verus-cli/fetch-params index d066ac228..fd602b858 100644 --- a/kmd/mac/verus-cli/fetch-params +++ b/kmd/mac/verus-cli/fetch-params @@ -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 <&2 <&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 <> "$README_PATH" <> 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 { diff --git a/src/crypto/verus_hash.cpp b/src/crypto/verus_hash.cpp index aeae9712b..f5cb1c9f3 100644 --- a/src/crypto/verus_hash.cpp +++ b/src/crypto/verus_hash.cpp @@ -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) { diff --git a/src/cryptoconditions/Makefile.am b/src/cryptoconditions/Makefile.am index 52f12eee0..787b11ac6 100644 --- a/src/cryptoconditions/Makefile.am +++ b/src/cryptoconditions/Makefile.am @@ -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 diff --git a/src/cryptoconditions/src/include/secp256k1/Makefile.am b/src/cryptoconditions/src/include/secp256k1/Makefile.am index c071fbe27..52303e4e4 100644 --- a/src/cryptoconditions/src/include/secp256k1/Makefile.am +++ b/src/cryptoconditions/src/include/secp256k1/Makefile.am @@ -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 diff --git a/src/komodo_defs.h b/src/komodo_defs.h index 22aded23a..3b9f85a0a 100644 --- a/src/komodo_defs.h +++ b/src/komodo_defs.h @@ -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 diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 6a8ef310b..ce8aebd24 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -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>>>>>>>>>>>> %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) diff --git a/src/main.cpp b/src/main.cpp index dc7e0090d..d3f7f3849 100644 --- a/src/main.cpp +++ b/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; } @@ -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()) diff --git a/src/miner.cpp b/src/miner.cpp index f31d6bd7c..d7a583556 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -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); diff --git a/src/net.cpp b/src/net.cpp index 26846d230..00fffa365 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -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; } diff --git a/src/rpcmisc.cpp b/src/rpcmisc.cpp index ed79a322e..cb380e126 100644 --- a/src/rpcmisc.cpp +++ b/src/rpcmisc.cpp @@ -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; diff --git a/src/snark/Makefile b/src/snark/Makefile index 17dcfdc6e..fdba63aae 100644 --- a/src/snark/Makefile +++ b/src/snark/Makefile @@ -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 diff --git a/src/verusd b/src/verusd index 2012ab860..179585519 100755 --- a/src/verusd +++ b/src/verusd @@ -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 "$@" diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index f9198e487..6b6bbdd35 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -2346,6 +2346,8 @@ std::vector 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; } } diff --git a/zcutil/VerusCoin.xml b/zcutil/VerusCoin.xml new file mode 100644 index 000000000..914e2f14b --- /dev/null +++ b/zcutil/VerusCoin.xml @@ -0,0 +1,432 @@ + + VerusCoin + VerusCoin + 0.3.12 + ${product_shortname}-v${product_version}-${platform_name}-installer.${platform_exec_suffix} + ../COPYING + ../assets/imgs/VRSC_256x256.png + ../assets/imgs/VRSC_256x256.png + ../assets/imgs/VRSC_256x256.png + 1 + + + VerusCoin + VerusCoin CLI + 1 + 1 + 1 + 1 + + + Agama + Verus-Enhanced Agama Wallet + 1 + 1 + 1 + 1 + + + Start Agama App + + ../assets/icons/agama_icons/256x256.png + Agama App + + all + 0 + 0 + ${installdir}/Agama/Agama-win32-x64/Agama.exe + + + ${windows_folder_common_programs}/ + + + + + Verus-Enhanced Agama Wallet + ${installdir}/Agama + Agama + all + + + ../Agama-win32-x64 + + + + + + + + + Program Files + ${installdir} + programfiles + all + + + Uninstall + ${installdir}/${uninstallerName} + + Uninstall ${product_fullname} + ${installdir} + all + 0 + 0 + ${installdir}/${uninstallerName}.exe + + + ${installdir} + + + + + VerusCoin + ${installdir}/ + VerusCoin + all + + + ../verus-cli + + + + + + + + + HKEY_LOCAL_MACHINE\SOFTWARE\${project.shortname} + uninstaller_path + uninstaller_path + + + previous_installation_exists + 1 + + + + + + + + ${uninstaller_path} + + + + equals + ${previous_installation_exists} + 1 + + + + + Deleting user data + ${windows_folder_appdata}/Agama + Deleting user data + + + equals + ${previous_installation_exists} + 1 + + + equals + ${installation_type} + uninstall + + + equals + ${delete_user_data} + 1 + + + + + Deleting iguana config json + ${windows_folder_appdata}/Iguana/config.json + Deleting iguana config + + + equals + ${previous_installation_exists} + 1 + + + equals + ${installation_type} + uninstall + + + equals + ${delete_config_data} + 1 + + + + + Uninstalled + Uninstalled + + + equals + ${previous_installation_exists} + 1 + + + equals + ${installation_type} + uninstall + + + + + Downloading files + + + 0 + Visual C++ Redistributable for Visual Studio 2015 library files are needed for Agama daemon + ${system_temp_directory}/vc_redist.x64.exe + Downloading Visual C++ Redistributable for Visual Studio 2015 + 0 + https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe + + + + + 1 + ${system_temp_directory}/vc_redist.x64.exe + + + + + 0 + Visual C++ Redistributable for Visual Studio 2015 library files are needed for Agama daemon + ${system_temp_directory}/vc_redist.x64.exe + /install /passive + Downloading Visual C++ Redistributable for Visual Studio 2015 + 0 + + + Downloading files + + + 0 + Visual C++ Redistributable for Visual Studio 2015 library files are needed for Agama daemon + ${system_temp_directory}/vc_redist.x86.exe + Downloading Visual C++ Redistributable for Visual Studio 2015 + 0 + https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe + + + + + 1 + ${system_temp_directory}/vc_redist.x86.exe + + + + + 0 + Visual C++ Redistributable for Visual Studio 2015 library files are needed for Agama daemon + ${system_temp_directory}/vc_redist.x86.exe + /install /passive + Downloading Visual C++ Redistributable for Visual Studio 2015 + 0 + + + 0 + Creating ZcashParam directory + ${windows_folder_appdata}/ZcashParams/ + Creating ZcashParam directory + 0 + + + 0 + Zcash Params file: sprout-proving.key + Zcash Params file: sprout-proving.key + 0 + Downloading Zcash Params file + + + 0 + Zcash Params file: sprout-proving.key + ${windows_folder_appdata}/ZcashParams/sprout-proving.key + Zcash Params file: sprout-proving.key + 0 + https://z.cash/downloads/sprout-proving.key + + + + + 1 + ${windows_folder_appdata}/ZcashParams/sprout-proving.key + + + + + 0 + Zcash Params file: sprout-verifying.key + Zcash Params file: sprout-verifying.key + Downloading Zcash Params files + + + 0 + Zcash Params file: sprout-verifying.key + ${windows_folder_appdata}/ZcashParams/sprout-verifying.key + Zcash Params file: sprout-verifying.key + 0 + https://z.cash/downloads/sprout-verifying.key + + + + + 1 + ${windows_folder_appdata}/ZcashParams/sprout-verifying.key + + + + + + + VERUS_HOME + system + ${installdir}/verus-cli/ + + + HKEY_LOCAL_MACHINE\SOFTWARE\${project.shortname} + uninstaller_path + REG_SZ + ${installdir}/${uninstallerName}.exe + + + + + C:\Windows\System32\ + Copying ReqCopying Required DLL filesuired DLL files + ${installdir}/resources/app/windeps/x86/vcruntime140d.dll + Copying ReqCopying Required DLL filesuired DLL files + + + + + + + + + + C:\Windows\System32\ + Copying ReqCopying Required DLL filesuired DLL files + ${installdir}/resources/app/windeps/x64/ucrtbased.dll + Copying ReqCopying Required DLL filesuired DLL files + + + C:\Windows\System32\ + Copying ReqCopying Required DLL filesuired DLL files + ${installdir}/resources/app/windeps/x64/vcruntime140d.dll + Copying ReqCopying Required DLL filesuired DLL files + + + C:\Windows\SysWOW64\ + Copying ReqCopying Required DLL filesuired DLL files + ${installdir}/resources/app/windeps/x86/ucrtbased.dll + Copying ReqCopying Required DLL filesuired DLL files + + + C:\Windows\SysWOW64\ + Copying ReqCopying Required DLL filesuired DLL files + ${installdir}/resources/app/windeps/x86/vcruntime140d.dll + Copying ReqCopying Required DLL filesuired DLL files + + + + + + + + + + HKEY_LOCAL_MACHINE\SOFTWARE\${project.shortname} + uninstaller_path + + + 1 + 1 + 1 + 1 + 1 + ../builds + 1 + ${windows_folder_appdata} + 1 + 1 + VerusCoin + 1 + + + installdir + Installer.Parameter.installdir.description + Installer.Parameter.installdir.explanation + + ${platform_install_prefix}/${product_shortname} + 0 + prefix + 1 + 0 + 30 + + + You don't have enough disk space to install the application, + please select another installation directory + + + less + ${installdir} + ${required_diskspace} + + + + + + + installation_type + Instalation type + Existing instalation is detected + Existing instalation is detected + uninstall + uninstall + + + uninstall + Uninstall + Uninstall + + + + + + 0 + 0 + + + + 0 + 0 + + + + + Upgrade + + + + + + + equals + ${previous_installation_exists} + 1 + + + + + +