Merge pull request #128 from miketout/dev

Merge dev branch for Sapling, nothing at stake, and many fixes/updates into VerusCoin
This commit is contained in:
Asher Dawes
2018-10-14 20:55:34 -07:00
committed by GitHub
549 changed files with 44794 additions and 9094 deletions

View File

@@ -1,10 +1,8 @@
<!--- Remove text and sections that do not apply -->
This issue tracker is only for technical issues related to zcashd.
This issue tracker is only for technical issues related to komodod
General Zcash questions and/or support requests and are best directed to the [Zcash Forums](https://forum.z.cash) or [Community Rocket.Chat](https://chat.zcashcommunity.com).
For reporting security vulnerabilities or for sensitive discussions with our security team, please contact [security@z.cash](mailto:security@z.cash). You can use the [GPG key](https://z.cash/gpg-pubkeys/security.asc) (fingerprint: `AF85 0445 546C 18B7 86F9 2C62 88FB 8B86 D8B5 A68C`) to send an encrypted message. The key and fingerprint are duplicated on our [Public Keys page](https://z.cash/support/pubkeys.html).
General Komodo questions and/or support requests and are best directed to [Discord](https://komodoplatform.com/discord)
### Describe the issue
Please provide a general summary of the issue you're experiencing
@@ -21,8 +19,8 @@ Tell us what should happen
### Actual behaviour + errors
Tell us what happens instead including any noticable error output (any messages displayed on-screen when e.g. a crash occurred)
### The version of Zcash you were using:
Run `zcashd --version` to find out
### The version of Komodo you were using:
Run `komodod --version` to find out
### Machine specs:
- OS name + version:
@@ -34,9 +32,9 @@ Run `zcashd --version` to find out
- Compiler version (gcc -version):
### Any extra information that might be useful in the debugging process.
This includes the relevant contents of `~/.zcash/debug.log`. You can paste raw text, attach the file directly in the issue or link to the text via a pastebin type site.
This includes the relevant contents of `~/.komodo/debug.log`. You can paste raw text, attach the file directly in the issue or link to the text via a pastebin type site.
Please also include any non-standard things you did during compilation (extra flags, dependency version changes etc.) if applicable.
### Do you have a backup of `~/.zcash` directory and/or take a VM snapshot?
- Backing up / making a copy of the `~/.zcash` directory might help make the problem reproducible. Please redact appropriately.
### Do you have a backup of `~/.komodo` directory and/or take a VM snapshot?
- Backing up / making a copy of the `~/.komodo` directory might help make the problem reproducible. Please redact appropriately.
- Taking a VM snapshot is really helpful for interactively testing fixes

4
.gitignore vendored
View File

@@ -7,10 +7,6 @@ src/zcash-gtest
src/zcash-tx
src/test/test_bitcoin
# Zcash utilities
src/zcash/GenerateParams
src/zcash/CreateJoinSplit
*zcashTest.pk
*zcashTest.vk

View File

@@ -3,13 +3,15 @@ stages:
- test
- deploy
variables:
VERSION: 0.3.13
VERSION: 0.3.14
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:
@@ -19,7 +21,7 @@ build:linux:
- rm -rf /root/.ccache || true
- mv .ccache /root/ || true
script:
- zcutil/build.sh -j4
- zcutil/build.sh -j$(nproc)
- cp src/komodod src/komodo-cli kmd/linux/verus-cli
- chmod +x kmd/linux/verus-cli/komodod
- chmod +x kmd/linux/verus-cli/komodo-cli
@@ -30,6 +32,13 @@ build:linux:
- cd kmd/linux/
- tar -czvf $VERUS_CLI_LINUX verus-cli
- mv $VERUS_CLI_LINUX ../..
- cd ../..
- export VERUS_CLI_LINUX_MD5=$(md5sum $VERUS_CLI_LINUX | cut -d " " -f 1)
- curl -F file=@"$VERUS_CLI_LINUX"
-F channels="$CLI_POST_CHANNEL"
-F initial_comment="${POST_COMMENT}$VERUS_CLI_LINUX_MD5"
-H "${SLACK_BOT_AUTH}"
"https://slack.com/api/files.upload"
after_script:
- mv /root/.ccache ./ || true
cache:
@@ -61,11 +70,18 @@ build:windows:
- mkdir .cargo || echo .cargo exists
- ln -s $PWD/.cargo /root/.cargo
script:
- zcutil/build-win.sh -j4
- zcutil/build-win.sh -j$(nproc)
- cp src/komodod.exe src/komodo-cli.exe src/komodo-tx.exe kmd/windows/verus-cli
- cd kmd/windows/
- zip -r $VERUS_CLI_WINDOWS verus-cli
- mv $VERUS_CLI_WINDOWS ../..
- cd ../..
- export VERUS_CLI_WINDOWS_MD5=$(md5sum $VERUS_CLI_WINDOWS | cut -d " " -f 1)
- curl -F file=@"$VERUS_CLI_WINDOWS"
-F channels="$CLI_POST_CHANNEL"
-F initial_comment="${POST_COMMENT}$VERUS_CLI_WINDOWS_MD5"
-H "${SLACK_BOT_AUTH}"
"https://slack.com/api/files.upload"
artifacts:
paths: [$VERUS_CLI_WINDOWS]
expire_in: 1 week
@@ -80,10 +96,16 @@ build:mac:
- depends/built
script:
- brew bundle
- zcutil/build-mac.sh -j6 | xcpretty
- zcutil/build-mac.sh -j$(sysctl -n hw.physicalcpu) | xcpretty
- ./makeReleaseMac.sh
- dos2unix kmd/mac/verus-cli/README.txt
- tar -C kmd/mac/ -czvf $VERUS_CLI_MACOS verus-cli ./
- export VERUS_CLI_MACOS_MD5=$(md5sum $VERUS_CLI_MACOS | cut -d " " -f 1)
- curl -F file=@"$VERUS_CLI_MACOS"
-F channels="$CLI_POST_CHANNEL"
-F initial_comment="${POST_COMMENT}$VERUS_CLI_MACOS_MD5"
-H "${SLACK_BOT_AUTH}"
"https://slack.com/api/files.upload"
artifacts:
paths: [$VERUS_CLI_MACOS]
expire_in: 1 week
@@ -125,7 +147,6 @@ build:mac:
paths: [gl-sast-report.json]
.license_management:
image: docker:stable
variables:
@@ -243,27 +264,7 @@ deploy:
- 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:
- 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 &&
@@ -280,4 +281,3 @@ deploy:
-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

@@ -1,67 +1,46 @@
sudo: required
os: linux
dist: xenial
language: cpp
matrix:
include:
- os: linux
dist: xenial
sudo: required
- os: osx
osx_image: xcode8
compiler:
- gcc
env:
global:
- CCACHE_SIZE=100M
- CCACHE_TEMPDIR=/tmp/.ccache-temp
- CCACHE_COMPRESS=1
- STORAGE_DEST=gs://$BUCKET/$PROJECT/$TRAVIS_BRANCH/
cache:
apt: true
directories:
- depends/built
- depends/sdk-sources
- "$HOME/google-cloud-sdk/"
- "$HOME/.ccache"
matrix:
fast_finish: true
include:
- compiler: ": Linux"
env: BUILD_SCRIPT=build.sh
PACKAGES="build-essential pkg-config libc6-dev m4 g++-multilib
autoconf libtool ncurses-dev unzip python zlib1g-dev wget bsdmainutils automake
libssl-dev libprotobuf-dev protobuf-compiler libqrencode-dev libdb++-dev software-properties-common
libcurl4-openssl-dev curl"
PACKAGE_NAME=verus-cli-linux.tar.gz
PACKAGING_MATRIX="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 && cd kmd/linux && tar -czf $PACKAGE_NAME verus-cli && ls"
- compiler: ": Windows"
env: RUST_TARGET=x86_64-pc-windows-gnu
BUILD_SCRIPT=build-win.sh
PACKAGES="build-essential pkg-config libcurl3-gnutls-dev
libc6-dev libevent-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git
python zlib1g-dev wget bsdmainutils automake libssl-dev libprotobuf-dev protobuf-compiler
libdb++-dev ntp ntpdate mingw-w64 wine bc"
PACKAGE_NAME=verus-cli-windows.zip
PACKAGING_MATRIX="cp src/komodod.exe src/komodo-cli.exe src/komodo-tx.exe kmd/windows/verus-cli &&
cd kmd/windows && zip -r9 $PACKAGE_NAME verus-cli && ls"
exclude:
- compiler: gcc
install:
- sudo rm -f /etc/apt/sources.list.d/travis_ci_zeromq3-source.list
- travis_retry sudo apt-get -y update && travis_retry sudo apt-get -y install -qq $PACKAGES
- if [ -n "$RUST_TARGET" ]; then curl -sSf https://build.travis-ci.org/files/rustup-init.sh
| sh -s -- --default-toolchain stable -y && export PATH=$PATH:$HOME/.cargo/bin:$PATH && rustup target add $RUST_TARGET; fi
before_script:
- unset CC; unset CXX
script:
- "./zcutil/fetch-params.sh"
- "./zcutil/$BUILD_SCRIPT -j2"
after_script:
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then eval "${PACKAGING_MATRIX}" &&
gsutil cp $PACKAGE_NAME $STORAGE_DEST; fi
notifications:
slack:
secure: FiVlFhSw5xnDu1Cx2yAo3J7miFCSRyuzR/2+8LKFjdWl5+fyIGvQ9x5vgUg6dWbv3UP9iIMqQuWfotsg8H+NE8pYRZQ0zDVxZ5h9+PA028qGb3OF4TMFNcltP5DGtAZ6AqrMNRZ4ltatPUm5H9ig1bhzjsx+3pqlqQuVXTXPjaUryB5s/fk2CjrsV6zTLfPHiI30jeMjmQrJJLik1vSWF70sB6HkQhvaT6jymkO4Vuh+cja418W1xIgkkoRsOXiZ/JK4hIypFo/sBkmIOprGqoFUahFqJlsBoSrp9iAzkwbDItIqqvNCHTEeN7lj6kK43ZK72E4etjjNc0CXWeleXBJBCj5Prq2lEkQ4NwuDTos3KLyyr2vI7f54xhb5+wjzY9dByHXGuG5UaNz0+uukuJinAdazGaNmmfesv1wg9p3jGa/TLsfHLMcUti875DzkUHnenivP5cXrc6/uuZyyQNq5+Gn/3DA8k0y7d1e23nm3nDjCNfATAn3yu1jieYY2yYI6CYGEXcD+UbP61uG6no+mm/lkQbQosyDfE0sADqGryqXswRste+R0sSVMBQtTipAZOUoYNbEmhN4+L78SSp3zpmgkrIxAw7le8oj6Evp2ofvE2Kvh+Z0MVoEJx6mtZI6hheIFSS38NeUZr/HBfRSpaElOYTN/ZNf8QwThCWo=
before_install:
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then openssl aes-256-cbc -K $encrypted_11153c0bb86c_key -iv $encrypted_11153c0bb86c_iv
-in AUTH_KEY.json.enc -out AUTH_KEY.json -d; fi
- if [ ! -d "$HOME/google-cloud-sdk/bin" ]; then rm -rf $HOME/google-cloud-sdk; export
CLOUDSDK_CORE_DISABLE_PROMPTS=1; curl https://sdk.cloud.google.com | bash; fi
- source /home/travis/google-cloud-sdk/path.bash.inc
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then gcloud auth activate-service-account --key-file AUTH_KEY.json; fi
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then rm AUTH_KEY.json; fi
- rm AUTH_KEY.json.enc
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update -qq; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libgnutls28-dev; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install build-essential pkg-config libcurl3-gnutls-dev libc6-dev libevent-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python zlib1g-dev wget bsdmainutils automake libssl-dev libprotobuf-dev protobuf-compiler libdb++-dev ntp ntpdate; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then rm '/usr/local/include/c++'; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install gcc@6; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew link --overwrite gcc@6; fi
script:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./zcutil/build.sh -j 5; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./zcutil/build-mac.sh -j 5; fi
notifications:
irc:
channels:
- chat.freenode.net#komodoplatform
template:
- "%{repository}/%{branch} (%{commit} - %{author}): %{message}"
- 'Alt Message : %{repository_slug} - (%{commit} - %{author}): %{message}, Build
Time: %{duration}'
- 'Change view : %{compare_url}'
- 'Build details : %{build_url}'
before_deploy:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then git tag "linux-$(date +'%Y%m%d%H%M')-$(git log --format=%h -1)"; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then git tag "osx-$(date +'%Y%m%d%H%M')-$(git log --format=%h -1)"; fi
deploy:
provider: releases
api_key:
secure: Jms7dz5GMZmuXUCHl5u6iZUtAybv86oW3x36DCJfdzbDiO4B9EWB04z7zA0qvoomefyujHTmQUHxyOKfd4h9/rVMFFv9hgmUxWkrcg7KyLNisOQRaovVOuNtu2lRNXTOSF16Cy+xFGkVh1ObBRhAoMsVKPhMl6PCDiKhNWIekRR9pBtjafKsClQ2ieknUYfqhuvgj7zmqCedeyVaVQyt2W/J65leD0BkfCUESTpANSprHs4bQB65VuQIKKMi+URKx2VgpDdUcWJySt9jAHVPIbI5cT5maAT6RUMnE4oha7Ca1Ox8StBqjQ/hkkMyDbN0keIlN7RjZlwdZQf/qUnT/dPQhsyUCdPXOxmEJ2jekezEK/LGr4Fb+v+vjd9dhLNkD5nVn9zp36biGSCjiMpffQ3fjMeM0YGmVEVRP9kZXLWVRYQoVKrzjyzg5dY8iChbiQEfYpTeBuU+e2rqj4mns+Jvy0zjUbMy6Tyva+iqdZ/PdsBDbiB7c+FIgB1IUTVOD+GgKx6dhCtBZEccn5EyWFwZF9IdQJHZCYV4PA7nuzfm1Ol9SDdZkGHd2OgRCqK/sTwyfTHv8exNqZ1k+epGJp2a0q4IOEknc9aPCAF+m9pHahk7s7VO5gmhO6pvbvuKoeEtEXRZHRzCkGkXfzJlBk+23X5gBexKb6inRdBlj6M=
file:
- src/komodod
- src/komodo-cli
skip_cleanup: true
on:
repo: KomodoPlatform/komodo

View File

@@ -1,6 +1,7 @@
Copyright (c) 2016-2018 The Komodo developers
Copyright (c) 2016-2017 The Zcash developers
Copyright (c) 2009-2017 The Bitcoin Core developers
Copyright (c) 2009-2018 Bitcoin Developers
Copyright (c) 2016-2017 The Zcash developers
Copyright (c) 2016-2018 The Komodo developers
Copyright (c) 2018 The VerusCoin developers
Permission is hereby granted, free of charge, to any person obtaining a copy

View File

@@ -36,6 +36,7 @@ BIN_CHECKS=$(top_srcdir)/contrib/devtools/symbol-check.py \
$(top_srcdir)/contrib/devtools/security-check.py
WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/bitcoin.ico \
$(top_srcdir)/share/pixmaps/nsis-header.bmp \
$(top_srcdir)/share/pixmaps/nsis-wizard.bmp

View File

@@ -21,15 +21,20 @@ The wallet downloads and stores the block chain or asset chain of the coin you s
- Mail: [info@komodoplatform.com](mailto:info@komodoplatform.com)
- Support: [https://support.komodoplatform.com/support/home](https://support.komodoplatform.com/support/home)
- Knowledgebase & How-to: [https://komodoplatform.atlassian.net/wiki/spaces/KPSD/pages](https://komodoplatform.atlassian.net/wiki/spaces/KPSD/pages)
- API references: [http://docs.supernet.org/](http://docs.supernet.org/) #Not up to date.
- Whitepaper: [Komodo Whitepaper](https://komodoplatform.com/wp-content/uploads/2018/06/Komodo-Whitepaper-June-3.pdf)
- API references: [http://docs.komodoplatform.com/](http://docs.komodoplatform.com/)
- Blog: [http://blog.komodoplatform.com/](http://blog.komodoplatform.com/)
- Whitepaper: [Komodo Whitepaper](https://komodoplatform.com/wp-content/uploads/2018/03/2018-03-12-Komodo-White-Paper-Full.pdf)
- Komodo Platform public material: [Komodo Platform public material](https://docs.google.com/document/d/1AbhWrtagu4vYdkl-vsWz-HSNyNvK-W-ZasHCqe7CZy0)
## List of Komodo Platform Technologies
- Delayed Proof of Work (dPoW) - Additional security layer.
- zk-SNARKs - Komodo Platform's privacy technology
- Delayed Proof of Work (dPoW) - Additional security layer and Komodos own consensus algorithm.
- zk-SNARKs - Komodo Platform's privacy technology for shielded transactions
- Tokens/Assets Technology - create "colored coins" on the Komodo Platform and use them as a layer for securites
- Reward API - Komodo CC technology for securities
- CC - Crypto Conditions to realize "smart contract" logic on top of the Komodo Platform
- Jumblr - Decentralized tumbler for KMD and other cryptocurrencies
- Assetchains - Easy way to fork Komodo coin
- Assetchains - Create your own Blockchain that inherits all Komodo Platform functionalities and blockchain interoperability
- Pegged Assets - Chains that maintain a peg to fiat currencies
- Peerchains - Scalability solution where sibling chains form a network of blockchains
- More in depth covered [here](https://docs.google.com/document/d/1AbhWrtagu4vYdkl-vsWz-HSNyNvK-W-ZasHCqe7CZy0)
@@ -40,14 +45,14 @@ The wallet downloads and stores the block chain or asset chain of the coin you s
- Max Supply: 200 million KMD.
- Block Time: 1M 2s
- Block Reward: 3KMD
- Mining Algorithm: Equihash
- Mining Algorithm: Equihash
## About this Project
Komodo is based on Zcash and has been by our innovative consensus algorithm called dPoW which utilizes Bitcoin's hashrate to store Komodo blockchain information into the Bitcoin blockchain. Other new and native Komodo features are the privacy technology called JUMBLR or our assetchain capabilities (one click plug and play blockchain solutions). More details are available under https://komodoplatform.com/.
Komodo is based on Zcash and has been extended by our innovative consensus algorithm called dPoW which utilizes Bitcoin's hashrate to store Komodo blockchain information into the Bitcoin blockchain. Other new and native Komodo features are the privacy technology called JUMBLR, our assetchain capabilities (one click plug and play blockchain solutions) and a set of financial decentralization and interoperability technologies. More details are available under https://komodoplatform.com/ and https://blog.komodoplatform.com.
## Getting started
Dependencies
------------
### Dependencies
```shell
#The following packages are needed:
@@ -76,15 +81,17 @@ Building for Windows:
```
VerusCoin
------
We develop on dev and some other branches and produce releases of of the master branch, using pull requests to manage what goes into master.
We develop on dev and some other branches and produce releases of of the master branch, using pull requests to manage what goes into master. The dev branch is considered the bleeding edge codebase, and may even be oncompatible from time to time, while the master-branch is considered tested (unit tests, runtime tests, functionality). At no point of time do the Komodo Platform developers or Verus Developers take any responsbility for any damage out of the usage of this software.
Verus builds for all operating systems out of the same codebase. Follow the OS specific instructions from below.
#### Linux
```shell
git clone https://github.com/VerusCoin/VerusCoin
cd VerusCoin
#you might want to: git checkout <branch>; git pull
./zcutil/fetch-params.sh
# -j8 uses 8 threads - replace 8 with number of threads you want to use
# -j8 = using 8 threads for the compilation - replace 8 with number of threads you want to use
./zcutil/build.sh -j8
#This can take some time.
```
@@ -101,67 +108,37 @@ Note that this directory is correct for Linux, not Mac or Windows
./src/komodo-cli help
**Zcash is unfinished and highly experimental.** Use at your own risk.
Where do I begin?
-----------------
We have a guide for joining the main Zcash network:
https://github.com/zcash/zcash/wiki/1.0-User-Guide
#### :ledger: Deprecation Policy
This release is considered deprecated 16 weeks after the release day. There
is an automatic deprecation shutdown feature which will halt the node some
time after this 16 week time period. The automatic feature is based on block
height.
#Older Komodo Details
The remaining text is from the komodo source we forked when creating VerusCoin/Veruscoin.
**To change modes:**
a) backup all privkeys (launch komodod with `-exportdir=<path>` and `dumpwallet`)
b) start a totally new sync including `wallet.dat`, launch with same `exportdir`
c) stop it before it gets too far and import all the privkeys from a) using `komodo-cli importwallet filename`
d) resume sync till it gets to chaintip
For example:
```shell
./komodod -exportdir=/tmp &
./komodo-cli dumpwallet example
./komodo-cli stop
mv ~/.komodo ~/.komodo.old && mkdir ~/.komodo && cp ~/.komodo.old/komodo.conf ~/.komodo.old/peers.dat ~/.komodo
./komodod -exchange -exportdir=/tmp &
./komodo-cli importwallet /tmp/example
./verusd -exportdir=/tmp &
./verus dumpwallet example
./verus stop
mv ~/.komodo/VRSC ~/.komodo/VRSC.old && mkdir ~/.komodo/VRSC && cp ~/.komodo/VRSC.old/VRSC.conf ~/.komodo/VRSC.old/peers.dat ~/.komodo/VRSC
./verusd -exchange -exportdir=/tmp &
./verus importwallet /tmp/example
```
---
## JUMBLR
komodod now has `jumblr_deposit` and `jumblr_secret` RPC calls.
Jumblr works like described previously where all the nodes with jumblr active synchronize their tx activity during the same block to maximize the mixing effect. However, unlike all other mixers/tumblers, you never give up control of your coins to anybody else. JUMBLR uses a one to many allocation of funds, ie. one deposit address and many secret addresses. You can always run multiple komodod daemons to get multiple active deposit addresses.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
JUMBLR implements t -> z, z -> z and z -> t transactions to maximize privacy of the destination t (transparent) address. So while it is transparent, its first activity is funds coming from an untracable z address.
The above copyright notices and this permission notice shall be included in all copies or substantial portions of the Software.
Which of the three stages is done is randomly selected at each turn. Also when there is more than one possible transaction at the selected stage, a random one is selected. This randomization prevents analyzing incoming z ->t transactions by its size to correlate it to the originating address.
`jumblr_deposit <depositaddr>` designates the deposit address as the jumblr deposit address for that session. You can select an address that already has funds in it and it will immediately start jumblr process. If there are no funds, it will wait until you send funds to it.
There are three sizes of a jumblr transaction: 10 KMD, 100 KMD and 1000 KMD. There is also a fixed interval of blocks where all jumblr nodes are active. Currently it is set to be 10, but this is subject to change. Only during every 10*10 blocks are the largest 1000 KMD transactions processed, so this concentrates all the large transactions every N*N blocks.
`jumblr_secret <secretaddress>` notifies JUMBLR where to send the final z -> t transactions. In order to allow larger accounts to obtain privacy, up to 777 secret addresses are supported. Whenever a z -> t stage is activated, a random secret address from the list of the then active secret addresses is selected.
#### Practical Advice:
Obtaining privacy used to be very difficult. JUMBLR makes it as simple as issuing two command line calls. Higher level layers can be added to help manage the addresses, ie. linking them at the passphrase level. Such matters are left to each implementation.
Once obtained, it is very easy to lose all the privacy. With a single errant transaction that combines some previously used address and the secretaddress, well, the secretaddress is no longer so private.
The advice is to setup a totally separate node!
This might seem a bit drastic, but if you want to maintain privacy, it is best to make it look like all the transactions are coming from a different node. The easiest way for most people to do this is to actually have a different node.
It can be a dedicated laptop (recommended) or a VPS (for smaller amounts) with a totally fresh komodod wallet. Generate an address on this wallet and use that as the jumblr_secret address on your main node. As the JUMBLR operates funds will teleport into your secret node's address. If you are careful and never use the same IP address for both your nodes, you will be able to maintain very good privacy.
Of course, don't send emails that link the two accounts together! Dont use secret address funds for home delivery purchases! Etc. There are many ways to lose the privacy, just think about what linkages can be dont at the IP and blockchain level and that should be a useful preparation.
What if you have 100,000 KMD and you dont want others to know you are such a whale?
Instead of generating 1 secret address, generate 100 and make a script file with:
```shell
./komodo-cli jumblr_secret <addr0>
./komodo-cli jumblr_secret <addr1>
...
./komodo-cli jumblr_secret <addr99>
```
And make sure to delete all traces of this when the JUMBLR is finished. You will end up with 100 addresses that have an average of 1000 KMD each. So as long as you are careful and dont do a 10,000 KMD transaction (that will link 10 of your secret addresses together), you can appear as 100 different people each with 1000 KMD.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -24,7 +24,9 @@ Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
threatening, offensive, or harmful. Note that contributors may be volunteers
who do not represent Zcash Company. They are free to express their own
opinions so long as they adhere to these guidelines.
By adopting this Code of Conduct, project maintainers commit themselves to
fairly and consistently applying these principles to every aspect of managing

View File

@@ -1,9 +1,9 @@
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
define(_CLIENT_VERSION_MAJOR, 1)
define(_CLIENT_VERSION_MAJOR, 2)
define(_CLIENT_VERSION_MINOR, 0)
define(_CLIENT_VERSION_REVISION, 15)
define(_CLIENT_VERSION_BUILD, 50)
define(_CLIENT_VERSION_BUILD, 25)
define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50)))
define(_CLIENT_VERSION_SUFFIX, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, _CLIENT_VERSION_REVISION-beta$1, m4_eval(_CLIENT_VERSION_BUILD < 50), 1, _CLIENT_VERSION_REVISION-rc$1, m4_eval(_CLIENT_VERSION_BUILD == 50), 1, _CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION-$1)))
define(_CLIENT_VERSION_IS_RELEASE, true)
@@ -96,12 +96,6 @@ AC_ARG_ENABLE([mining],
[enable_mining=$enableval],
[enable_mining=yes])
AC_ARG_ENABLE([rust],
[AS_HELP_STRING([--enable-rust],
[enable rust (default is yes)])],
[enable_rust=$enableval],
[enable_rust=yes])
AC_ARG_ENABLE([proton],
[AS_HELP_STRING([--disable-proton],
[disable Proton (AMQP messaging)])],
@@ -238,9 +232,9 @@ AC_ARG_WITH([utils],
AC_ARG_WITH([libs],
[AS_HELP_STRING([--with-libs],
[build libraries (default=yes)])],
[build libraries (default=no)])],
[build_bitcoin_libs=$withval],
[build_bitcoin_libs=yes])
[build_bitcoin_libs=no])
AC_ARG_WITH([daemon],
[AS_HELP_STRING([--with-daemon],
@@ -772,15 +766,20 @@ fi
#AC_CHECK_HEADER([libsnark/gadgetlib1/gadget.hpp],,AC_MSG_ERROR(libsnark headers missing))
#AC_CHECK_LIB([snark],[main],LIBSNARK_LIBS=-lsnark, [AC_MSG_ERROR(libsnark missing)], [-lgmpxx])
RUST_LIBS=""
if test x$enable_rust != xno; then
RUST_LIBS="-lrustzcash"
fi
RUST_LIBS="-lrustzcash"
case $host in
*mingw*)
;;
*)
RUST_LIBS="$RUST_LIBS -ldl"
;;
esac
dnl Check for OpenMP support
AX_OPENMP(
[AC_DEFINE(HAVE_OPENMP, 1, [Define if OpenMP is enabled])
AM_CONDITIONAL([HAVE_OPENMP], [true])
CPPFLAGS="$CPPFLAGS -DMULTICORE"
CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"],
[AC_MSG_WARN([OpenMP not supported, disabling multithreading])
AC_DEFINE(HAVE_OPENMP, 0, [Define if OpenMP is enabled])
@@ -799,7 +798,7 @@ AX_CHECK_COMPILE_FLAG([-fwrapv],[CXXFLAGS="$CXXFLAGS -fwrapv"])
AX_CHECK_COMPILE_FLAG([-fno-strict-aliasing],[CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"])
AX_CHECK_COMPILE_FLAG([-Wno-builtin-declaration-mismatch],[CXXFLAGS="$CXXFLAGS -Wno-builtin-declaration-mismatch"],,[[$CXXFLAG_WERROR]])
LIBZCASH_LIBS="-lgmp -lgmpxx -lboost_system -lcrypto -lsodium $RUST_LIBS"
LIBZCASH_LIBS="-lgmp -lgmpxx $BOOST_SYSTEM_LIB -lcrypto -lsodium $RUST_LIBS"
AC_MSG_CHECKING([whether to build bitcoind])
AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
@@ -859,16 +858,6 @@ else
AC_MSG_RESULT(no)
fi
dnl enable rust
AC_MSG_CHECKING([if rust should be enabled])
if test x$enable_rust != xno; then
AC_MSG_RESULT(yes)
AC_DEFINE(ENABLE_RUST, 1, [Define to 1 to enable Rust language dependent functions])
else
AC_MSG_RESULT(no)
fi
AM_CONDITIONAL([ENABLE_ZMQ], [test "x$use_zmq" = "xyes"])
AM_CONDITIONAL([ENABLE_PROTON], [test "x$use_proton" = "xyes"])
@@ -898,7 +887,6 @@ AM_CONDITIONAL([BUILD_DARWIN], [test x$BUILD_OS = xdarwin])
AM_CONDITIONAL([TARGET_WINDOWS], [test x$TARGET_OS = xwindows])
AM_CONDITIONAL([ENABLE_WALLET],[test x$enable_wallet = xyes])
AM_CONDITIONAL([ENABLE_MINING],[test x$enable_mining = xyes])
AM_CONDITIONAL([ENABLE_RUST],[test x$enable_rust = xyes])
AM_CONDITIONAL([ENABLE_TESTS],[test x$BUILD_TEST = xyes])
AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes])
AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes])
@@ -991,7 +979,6 @@ esac
echo
echo "Options used to compile and link:"
echo " with wallet = $enable_wallet"
echo " with rust = $enable_rust"
echo " with proton = $use_proton"
echo " with zmq = $use_zmq"
echo " with test = $use_tests"

View File

@@ -5,29 +5,29 @@ installation for use as a Buildbot worker in Zcash's CI.
# Criteria for Adding Workers
a. Don't add workers until users complain about a problem on a platform
that doesn't yet have workers or if we anticipate many users will use
a platform, we may pre-emptively add an unsupported worker for it.
a. Don't add workers until users complain about a problem on a platform that
doesn't yet have workers. However, if we anticipate many users will use a
platform, we may pre-emptively add an unsupported worker for it.
b. Prioritize the platforms that seem to have the most users.
c. When adding workers start by adding workers for the "most common"
variant of any distro, then if users later encounter problems with a
sub-variant, we can consider adding new workers at that point.
Example: add Ubuntu Desktop before Xubuntu, on the assumption the
former has a larger population base.
c. When adding workers, start by adding workers for the "most common" variant of
any distro. Then if users later encounter problems with a sub-variant, we can
consider adding new workers at that point. Example: add Ubuntu Desktop before
Xubuntu, on the assumption the former has a larger population base, and the
latter only materially differs in the GUI.
# Setting up a latent worker on Amazon EC2
- Add a regular (non-latent) worker to the master.cfg for dev-ci.z.cash, and
deploy the changes.
1. Add a regular (non-latent) worker to the master.cfg for dev-ci.z.cash, and
deploy the changes.
- This enables the Ansible playbook to run to completion, ending in the worker
connecting to the master.
- Start a basic EC2 instance using the template AMI for the target OS.
2. Start a basic EC2 instance using the template AMI for the target OS.
- Choose the smallest instance size, it won't be used for building Zcash.
- Figure out which user to log into the instance with.
3. Figure out which user to log into the instance with.
- E.g. for the Ubuntu template, use "ubuntu" instead of "root"
- If you get an Ansible error later with a message like "Failed to connect to
the host via ssh: Received message too long 1349281121\r\n", that means the
@@ -35,28 +35,28 @@ c. When adding workers start by adding workers for the "most common"
Ansible protocol is balking. Try manually logging in with the same
credentials to diagnose.
- Create `inventory/hosts` containing the following:
4. Create `inventory/hosts` containing the following:
[zcash-ci-worker-unix]
some-name ansible_host=<INSTANCE_IP> ansible_ssh_user=<USERNAME>
- Run `ansible-playbook -e buildbot_worker_host_template=templates/host.ec2.j2 -i inventory/hosts unix.yml`,
passing in the worker's Buildbot name and password.
5. Run `ansible-playbook -e buildbot_worker_host_template=templates/host.ec2.j2 -i inventory/hosts unix.yml`,
passing in the worker's Buildbot name and password.
- After a successful run, the worker should be connected to dev-ci.z.cash and
visible in its worker list.
- Create an AMI from the instance. This is the worker AMI to put into the
master.cfg for dev-ci.z.cash.
6. Create an AMI from the instance. This is the worker AMI to put into the
master.cfg for dev-ci.z.cash.
- 16 GB of storage should be sufficient.
- SSH into the instance, and edit the worker config to connect to ci.z.cash.
7. SSH into the instance, and edit the worker config to connect to ci.z.cash.
- Create an AMI from the instance. This is the worker AMI to put into the
master.cfg for ci.z.cash.
8. Create an AMI from the instance. This is the worker AMI to put into the
master.cfg for ci.z.cash.
- 16 GB of storage should be sufficient.
- Delete the instance (it is no longer needed).
9. Delete the instance (it is no longer needed).
- Edit the master.cfg to turn the new worker into a latent (using the new AMI
IDs), add it to the appropriate worker groups, set up new builders etc.
10. Edit the master.cfg to turn the new worker into a latent (using the new AMI
IDs), add it to the appropriate worker groups, set up new builders etc.
- Deploy this via the normal PR review process.

View File

@@ -0,0 +1,2 @@
export PATH=$HOME/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export EDITOR=vim

View File

@@ -0,0 +1,10 @@
---
- name: Check if brew is installed
stat:
path: /usr/local/bin/brew
register: brew_check
- name: Fail if brew is unavailable
fail:
msg: 'brew is not installed! Please install Homebrew: https://docs.brew.sh/Installation.html'
when: not brew_check.stat.exists

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.buildbot.worker</string>
<key>ProgramArguments</key>
<array>
<string>{{ buildbot_worker_dir }}/venv/bin/buildbot-worker</string>
<string>start</string>
<string>{{ buildbot_worker_name }}</string>
</array>
<key>WorkingDirectory</key>
<string>{{ buildbot_worker_dir }}</string>
<key>UserName</key>
<string>{{ buildbot_worker_user }}</string>
<key>KeepAlive</key>
<dict>
<key>NetworkState</key>
<true/>
</dict>
</dict>
</plist>

View File

@@ -5,11 +5,11 @@ After=network.target
[Service]
Type=forking
PIDFile=/home/{{ buildbot_worker_user }}/{{ buildbot_worker_name }}/twistd.pid
WorkingDirectory=/home/{{ buildbot_worker_user }}
ExecStart={{ pip_bin_dir }}/buildbot-worker start {{ buildbot_worker_name }}
ExecReload={{ pip_bin_dir }}/buildbot-worker restart {{ buildbot_worker_name }}
ExecStop={{ pip_bin_dir }}/buildbot-worker stop {{ buildbot_worker_name }}
PIDFile={{ buildbot_worker_dir }}/{{ buildbot_worker_name }}/twistd.pid
WorkingDirectory={{ buildbot_worker_dir }}
ExecStart={{ buildbot_worker_dir }}/venv/bin/buildbot-worker start {{ buildbot_worker_name }}
ExecReload={{ buildbot_worker_dir }}/venv/bin/buildbot-worker restart {{ buildbot_worker_name }}
ExecStop={{ buildbot_worker_dir }}/venv/bin/buildbot-worker stop {{ buildbot_worker_name }}
Restart=always
User={{ buildbot_worker_user }}

View File

@@ -1,3 +1,3 @@
OS: {{ ansible_distribution }} {{ ansible_distribution_version }}
Memory: {{ ansible_memtotal_mb }} MB
CPU: {{ ansible_processor[1] }}
CPU: {{ ansible_processor if ansible_processor is string else ansible_processor[1] }} ({{ ansible_processor_cores }} cores)

View File

@@ -50,6 +50,7 @@
- name: Gathering Facts
setup:
tags: deps
- name: Fail if Python is the wrong version
fail:
@@ -66,34 +67,44 @@
- "vars/{{ ansible_distribution }}.yml"
- "vars/{{ ansible_os_family }}.yml"
skip: true
tags: deps
- name: Collate dependencies
set_fact:
package_deps: "{{ buildbot_deps + fetch_deps + conf_deps + build_deps + link_deps + dist_deps }}"
python_modules: "{{ buildbot_modules + rpc_test_modules }}"
tags: deps
- name: Install Homebrew [MacOSX]
include: tasks/install-brew.yml
when: ansible_distribution == 'MacOSX'
tags: deps
- name: Update rolling release [Arch Linux]
pacman:
update_cache: yes
upgrade: yes
when: ansible_distribution == 'Archlinux'
tags: deps
- name: Install required packages
package:
name: "{{ item }}"
state: present
with_items: "{{ package_deps }}"
become_user: "{{ ansible_ssh_user if ansible_distribution == 'MacOSX' else 'root' }}"
tags: deps
- name: Install pip [CentOS]
- name: Install pip [CentOS, MacOSX]
include: tasks/install-pip.yml
when: ansible_distribution == 'CentOS'
when: ansible_distribution in ['CentOS', 'MacOSX']
- name: Install required Python modules
- name: Install required Python system modules
pip:
name: "{{ item }}"
state: latest
with_items: "{{ python_modules }}"
notify: restart buildbot-worker
executable: "{{ '/usr/local/bin/pip' if ansible_distribution == 'MacOSX' else omit }}"
with_items: "{{ system_modules }}"
- name: Set up the Buildbot worker user
user:
@@ -102,9 +113,28 @@
shell: /bin/bash
state: present
- name: Get absolute path to Buildbot worker home directory
command: echo ~
register: homedir
become_user: "{{ buildbot_worker_user }}"
- name: Save absolute path to Buildbot worker home directory
set_fact:
buildbot_worker_dir: "{{ homedir.stdout }}"
- name: Install required Python modules
pip:
name: "{{ item }}"
state: latest
virtualenv: "~{{ buildbot_worker_user }}/venv"
virtualenv_command: "{{ '/usr/local/bin/virtualenv' if ansible_distribution == 'MacOSX' else omit }}"
with_items: "{{ python_modules }}"
become_user: "{{ buildbot_worker_user }}"
notify: restart buildbot-worker
- name: Create Buildbot worker
command: >
buildbot-worker create-worker ~/{{ buildbot_worker_name }}
~{{ buildbot_worker_user }}/venv/bin/buildbot-worker create-worker ~/{{ buildbot_worker_name }}
{{ buildbot_master_host }}:{{ buildbot_master_port }}
{{ buildbot_worker_name|quote }} {{ buildbot_worker_password|quote }}
args:
@@ -116,7 +146,7 @@
content: "{{ buildbot_worker_admin }}"
dest: "~{{ buildbot_worker_user }}/{{ buildbot_worker_name }}/info/admin"
owner: "{{ buildbot_worker_user }}"
group: "{{ buildbot_worker_user }}"
group: "{{ omit if ansible_distribution == 'MacOSX' else buildbot_worker_user }}"
mode: "0644"
- name: Set host details for Buildbot worker
@@ -124,7 +154,15 @@
src: "{{ buildbot_worker_host_template }}"
dest: "~{{ buildbot_worker_user }}/{{ buildbot_worker_name }}/info/host"
owner: "{{ buildbot_worker_user }}"
group: "{{ buildbot_worker_user }}"
group: "{{ omit if ansible_distribution == 'MacOSX' else buildbot_worker_user }}"
mode: "0644"
- name: Install custom bashrc for virtualenv
copy:
src: bashrc
dest: "~{{ buildbot_worker_user }}/.bashrc"
owner: "{{ buildbot_worker_user }}"
group: "{{ omit if ansible_distribution == 'MacOSX' else buildbot_worker_user }}"
mode: "0644"
- name: Copy Buildbot worker systemd service unit
@@ -134,13 +172,32 @@
owner: root
group: root
mode: "0644"
when: ansible_distribution != 'MacOSX'
notify: reload systemd
- name: Start Buildbot worker.
- name: Copy Buildbot worker launchd service unit
template:
src: templates/buildbot-worker.plist.j2
dest: "/Library/LaunchDaemons/net.buildbot.worker.plist"
owner: root
group: wheel
mode: "0644"
when: ansible_distribution == 'MacOSX'
- name: Start Buildbot worker
service:
name: buildbot-worker
state: started
enabled: yes
when: ansible_distribution != 'MacOSX'
- name: Load Buildbot worker service [MacOSX]
command: launchctl load /Library/LaunchDaemons/net.buildbot.worker.plist
when: ansible_distribution == 'MacOSX'
- name: Start Buildbot worker [MacOSX]
command: launchctl start net.buildbot.worker
when: ansible_distribution == 'MacOSX'
handlers:
- name: restart buildbot-worker

View File

@@ -2,6 +2,6 @@
buildbot_deps:
- python2-pip
build_deps:
- cmake
- multilib/gcc
- make
pip_bin_dir: /usr/bin

View File

@@ -2,6 +2,7 @@
buildbot_deps: [] # Empty to remove python-pip
build_deps:
- bzip2
- cmake
- gcc
- gcc-c++
- make
@@ -10,4 +11,3 @@ dist_deps:
- pkgconfig # Required until b556beda264308e040f8d88aca4f2f386a0183d9 is pulled in
- python-devel
- redhat-rpm-config
pip_bin_dir: /usr/bin

View File

@@ -1,6 +1,6 @@
---
build_deps:
- build-essential # Depends on g++, libc6-dev, make
- cmake
dist_deps:
- pkg-config # Required until b556beda264308e040f8d88aca4f2f386a0183d9 is pulled in
- python-dev

View File

@@ -1,5 +1,6 @@
---
build_deps:
- cmake
- gcc
- gcc-c++
- make

View File

@@ -2,6 +2,7 @@
buildbot_deps:
- py27-pip
build_deps:
- cmake
- gcc
- gmake
dist_deps:

View File

@@ -0,0 +1,6 @@
---
buildbot_deps:
- coreutils # For gnproc etc.
# Most are already installed
build_deps:
- cmake

View File

@@ -1,5 +1,4 @@
---
build_deps:
- build-essential # Depends on g++, libc6-dev, make
dist_deps:
- pkg-config # Required until b556beda264308e040f8d88aca4f2f386a0183d9 is pulled in
- cmake

View File

@@ -7,6 +7,7 @@ buildbot_deps:
# Dependencies required to download files
fetch_deps:
- curl # For depends/
- git
- wget # For zcutil/fetch-params.sh
@@ -15,9 +16,11 @@ conf_deps:
- autoconf
- automake
- m4
- pkg-config
# Dependencies required to compile Zcash
build_deps:
- cmake
- g++
- gcc
- make
@@ -34,6 +37,10 @@ grind_deps:
- lcov
- valgrind
# Python modules required on the system
system_modules:
- virtualenv
# Python modules required for a Zcash Buildbot worker
buildbot_modules:
- pip # Needs to be updated first so Buildbot installs
@@ -44,6 +51,3 @@ buildbot_modules:
rpc_test_modules:
- pyblake2
- pyzmq
# Environment variables
pip_bin_dir: /usr/local/bin

View File

@@ -1,3 +1,63 @@
zcash (2.0.1~rc1) stable; urgency=medium
* 2.0.1-rc1 release.
-- Zcash Company <team@z.cash> Mon, 08 Oct 2018 12:40:54 -0700
zcash (2.0.0) stable; urgency=medium
* 2.0.0 release.
-- Zcash Company <team@z.cash> Wed, 15 Aug 2018 17:57:50 -0700
zcash (2.0.0~rc1) stable; urgency=medium
* 2.0.0-rc1 release.
-- Zcash Company <team@z.cash> Thu, 09 Aug 2018 16:56:56 +0000
zcash (1.1.2) stable; urgency=medium
* 1.1.2 release.
-- Zcash Company <team@z.cash> Sun, 01 Jul 2018 20:12:33 -0700
zcash (1.1.2~rc1) stable; urgency=medium
* 1.1.2-rc1 release.
-- Zcash Company <team@z.cash> Fri, 22 Jun 2018 17:03:41 -0700
zcash (1.1.1) stable; urgency=medium
* 1.1.1 release.
-- Zcash Company <team@z.cash> Fri, 25 May 2018 15:49:34 +1200
zcash (1.1.1~rc2) stable; urgency=medium
* 1.1.1-rc2 release.
-- Zcash Company <team@z.cash> Wed, 23 May 2018 09:28:50 -0700
zcash (1.1.1~rc1) stable; urgency=medium
* 1.1.1-rc1 release.
-- Zcash Company <team@z.cash> Sat, 19 May 2018 10:16:14 +1200
zcash (1.1.0) stable; urgency=medium
* 1.1.0 release.
-- Zcash Company <team@z.cash> Wed, 11 Apr 2018 20:15:29 -0600
zcash (1.1.0~rc1) stable; urgency=medium
* 1.1.0-rc1 release.
-- Zcash Company <team@z.cash> Thu, 05 Apr 2018 03:26:17 +0100
zcash (1.0.15) stable; urgency=medium
* 1.0.15 release.

View File

@@ -4,8 +4,9 @@ Upstream-Contact: Zcash Company <team@z.cash>
Source: https://github.com/zcash/zcash
Files: *
Copyright: 2016-2017, The Zcash developers
2009-2017, Bitcoin Core developers
Copyright: 2016-2018, The Zcash developers
2009-2018, Bitcoin Core developers
2009-2018, Bitcoin Developers
License: Expat
Comment: The Bitcoin Core developers encompasses the current developers listed on bitcoin.org,
as well as the numerous contributors to the project.

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/env python
'''
Perform basic ELF security checks on a series of executables.
Exit status will be 0 if successful, and the program will be silent.
@@ -6,6 +6,7 @@ Otherwise the exit status will be 1 and it will log which executables failed whi
Needs `readelf` (for ELF) and `objdump` (for PE).
'''
from __future__ import division,print_function,unicode_literals
import struct
import subprocess
import sys
import os
@@ -171,6 +172,8 @@ CHECKS = {
('DYNAMIC_BASE', check_PE_DYNAMIC_BASE),
('HIGH_ENTROPY_VA', check_PE_HIGH_ENTROPY_VA),
('NX', check_PE_NX)
],
'MachO64': [
]
}
@@ -181,6 +184,8 @@ def identify_executable(executable):
return 'PE'
elif magic.startswith(b'\x7fELF'):
return 'ELF'
elif struct.unpack('I', magic)[0] == 0xFEEDFACF:
return 'MachO64'
return None
if __name__ == '__main__':

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/env python
# Copyright (c) 2014 Wladimir J. van der Laan
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/env python2
'''
Test script for security-check.py
'''

View File

@@ -1,5 +1,5 @@
---
name: "zcash-1.0.15"
name: "zcash-2.0.1-rc1"
enable_cache: true
distro: "debian"
suites:
@@ -124,7 +124,8 @@ script: |
find . -name "lib*.a" -delete
rm -rf ${DISTNAME}/lib/pkgconfig
find ${DISTNAME}/bin -type f -executable -exec objcopy --only-keep-debug {} {}.dbg \; -exec strip -s {} \; -exec objcopy --add-gnu-debuglink={}.dbg {} \;
find ${DISTNAME}/lib -type f -exec objcopy --only-keep-debug {} {}.dbg \; -exec strip -s {} \; -exec objcopy --add-gnu-debuglink={}.dbg {} \;
# Commented out while we don't build any libraries
#find ${DISTNAME}/lib -type f -exec objcopy --only-keep-debug {} {}.dbg \; -exec strip -s {} \; -exec objcopy --add-gnu-debuglink={}.dbg {} \;
find ${DISTNAME} -not -name "*.dbg" | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz
find ${DISTNAME} -name "*.dbg" | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}-debug.tar.gz
cd ../../

View File

@@ -150,7 +150,8 @@ script: |
find . -name "lib*.a" -delete
rm -rf ${DISTNAME}/lib/pkgconfig
find ${DISTNAME}/bin -type f -executable -exec ${i}-objcopy --only-keep-debug {} {}.dbg \; -exec ${i}-strip -s {} \; -exec ${i}-objcopy --add-gnu-debuglink={}.dbg {} \;
find ${DISTNAME}/lib -type f -exec ${i}-objcopy --only-keep-debug {} {}.dbg \; -exec ${i}-strip -s {} \; -exec ${i}-objcopy --add-gnu-debuglink={}.dbg {} \;
# Commented out while we don't build any libraries
#find ${DISTNAME}/lib -type f -exec ${i}-objcopy --only-keep-debug {} {}.dbg \; -exec ${i}-strip -s {} \; -exec ${i}-objcopy --add-gnu-debuglink={}.dbg {} \;
find ${DISTNAME} -not -name "*.dbg" -type f | sort | zip -X@ ${OUTDIR}/${DISTNAME}-${i}.zip
find ${DISTNAME} -name "*.dbg" -type f | sort | zip -X@ ${OUTDIR}/${DISTNAME}-${i}-debug.zip
cd ../../

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python
#
# linearize-data.py: Construct a linear, no-fork version of the chain.
#

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python
#
# linearize-hashes.py: List blocks in a linear, no-fork version of the chain.
#

View File

@@ -1,5 +1,5 @@
#!/usr/bin/python
# Copyright (c) 2014 Wladmir J. van der Laan
#!/usr/bin/env python
# Copyright (c) 2014 Wladimir J. van der Laan
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
'''

View File

@@ -14,6 +14,7 @@ BASEDIR = $(CURDIR)
HASH_LENGTH:=11
DOWNLOAD_CONNECT_TIMEOUT:=10
DOWNLOAD_RETRIES:=3
CRATE_REGISTRY:=vendored-sources
host:=$(BUILD)
ifneq ($(HOST),)
@@ -72,15 +73,14 @@ include builders/$(build_os).mk
include builders/default.mk
include packages/packages.mk
rust_packages_$(NO_RUST) = $(rust_packages)
wallet_packages_$(NO_WALLET) = $(wallet_packages)
proton_packages_$(NO_PROTON) = $(proton_packages)
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(rust_packages_) $(proton_packages_) $(wallet_packages_)
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(rust_packages) $(proton_packages_) $(wallet_packages_)
native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages)
all_packages = $(packages) $(native_packages)
meta_depends = Makefile funcs.mk builders/default.mk hosts/default.mk hosts/$(host_os).mk builders/$(build_os).mk
meta_depends = Makefile funcs.mk builders/default.mk hosts/default.mk hosts/$(host_os).mk builders/$(build_os).mk cargo-checksum.sh
$(host_arch)_$(host_os)_native_toolchain?=$($(host_os)_native_toolchain)

13
depends/cargo-checksum.sh Executable file
View File

@@ -0,0 +1,13 @@
echo "{\"files\":{$(
find . -type f | # Get list of file paths
grep -v $1 | # Exclude Makefile hashes
grep -v '[.]stamp_' | # Exclude Makefile stamps
sed 's|^[.]/||' | # Remove leading ./
sort | # Sort (for uniformity)
xargs $2 | # Get SHA256 hashes (assumes standard 'H(A) A' format)
awk -v OFS='":"' '{print $2, $1}' | # 'H(A) A' -> 'A":"H(A)'
sed 's|^|"|' | # 'A":"H(A)' -> '"A":"H(A)'
sed 's|$|"|' | # '"A":"H(A)' -> '"A":"H(A)"'
tr '\n' ',' | # Concatenate lines with commas
sed 's|,$||' # Remove any trailing comma (to fit JSON spec)
)},\"package\":$3}" > .cargo-checksum.json

View File

@@ -30,6 +30,21 @@ define fetch_file
rm -rf $$($(1)_download_dir) ))
endef
define generate_crate_checksum
$(BASEDIR)/cargo-checksum.sh "$($(1)_file_name)" "$(build_SHA256SUM)" "\"$($(1)_sha256_hash)\""
endef
define generate_unpackaged_crate_checksum
$(BASEDIR)/cargo-checksum.sh "$($(1)_file_name)" "$(build_SHA256SUM)" "null"
endef
define vendor_crate_source
mkdir -p $($(1)_staging_prefix_dir)/$(CRATE_REGISTRY) && \
cp -r $($(1)_extract_dir) $($(1)_staging_prefix_dir)/$(CRATE_REGISTRY)/$($(1)_crate_name) && \
cd $($(1)_staging_prefix_dir)/$(CRATE_REGISTRY)/$($(1)_crate_versioned_name) && \
rm -r `basename $($(1)_patch_dir)` .stamp_* .$($(1)_file_name).hash
endef
define int_get_build_recipe_hash
$(eval $(1)_all_file_checksums:=$(shell $(build_SHA256SUM) $(meta_depends) packages/$(1).mk $(addprefix $(PATCHES_PATH)/$(1)/,$($(1)_patches)) | cut -d" " -f1))
$(eval $(1)_recipe_hash:=$(shell echo -n "$($(1)_all_file_checksums)" | $(build_SHA256SUM) | cut -d" " -f1))

View File

@@ -8,7 +8,7 @@ darwin_CXX=g++-6 -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysro
darwin_CFLAGS=-pipe
darwin_CXXFLAGS=$(darwin_CFLAGS)
darwin_release_CFLAGS=-O2
darwin_release_CFLAGS=-O1
darwin_release_CXXFLAGS=$(darwin_release_CFLAGS)
darwin_debug_CFLAGS=-O1

View File

@@ -3,7 +3,7 @@ mingw32_CXX=x86_64-w64-mingw32-g++-posix
mingw32_CFLAGS=-pipe -std=c11
mingw32_CXXFLAGS=$(mingw32_CFLAGS) -std=c++11
mingw32_release_CFLAGS=-O2
mingw32_release_CFLAGS=-O1
mingw32_release_CXXFLAGS=$(mingw32_release_CFLAGS)
mingw32_debug_CFLAGS=-O1

View File

@@ -1,6 +1,6 @@
package=bdb
$(package)_version=6.2.23
$(package)_download_path=http://download.oracle.com/berkeley-db
$(package)_download_path=https://download.oracle.com/berkeley-db
$(package)_file_name=db-$($(package)_version).tar.gz
$(package)_sha256_hash=47612c8991aa9ac2f6be721267c8d3cdccf5ac83105df8e50809daea24e95dc7
$(package)_build_subdir=build_unix
@@ -13,6 +13,7 @@ $(package)_cxxflags=-std=c++11
endef
define $(package)_preprocess_cmds
sed -i.old 's/WinIoCtl.h/winioctl.h/g' src/dbinc/win_db.h && \
sed -i.old 's/__atomic_compare_exchange\\(/__atomic_compare_exchange_db(/' src/dbinc/atomic.h && \
sed -i.old 's/atomic_init/atomic_init_db/' src/dbinc/atomic.h src/mp/mp_region.c src/mp/mp_mvcc.c src/mp/mp_fget.c src/mutex/mut_method.c src/mutex/mut_tas.c
endef

View File

@@ -0,0 +1,15 @@
package=crate_aes
$(package)_crate_name=aes
$(package)_version=0.2.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=e6fb1737cdc8da3db76e90ca817a194249a38fcb500c2e6ecec39b29448aa873
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_aes_soft
$(package)_crate_name=aes-soft
$(package)_version=0.2.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=67cc03b0a090a05cb01e96998a01905d7ceedce1bc23b756c0bb7faa0682ccb1
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_aesni
$(package)_crate_name=aesni
$(package)_version=0.4.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=f2838c142db62c0c6aea0a24054c46d35488532fdaea0f51dbeba430f0985df5
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_arrayvec
$(package)_crate_name=arrayvec
$(package)_version=0.4.7
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_bellman
$(package)_crate_name=bellman
$(package)_version=0.1.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=eae372472c7ea8f7c8fc6a62f7d5535db8302de7f1aafda2e13a97c4830d3bcf
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_bit_vec
$(package)_crate_name=bit-vec
$(package)_version=0.4.4
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=02b4ff8b16e6076c3e14220b39fbc1fabb6737522281a388998046859400895f
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_bitflags
$(package)_crate_name=bitflags
$(package)_version=1.0.1
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=b3c30d3802dfb7281680d6285f2ccdaa8c2d8fee41f93805dba5c4cf50dc23cf
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,16 @@
package=crate_blake2_rfc
$(package)_crate_name=blake2-rfc
$(package)_download_path=https://github.com/gtank/$($(package)_crate_name)/archive/
$(package)_file_name=$(package)-$($(package)_git_commit).tar.gz
$(package)_download_file=$($(package)_git_commit).tar.gz
$(package)_sha256_hash=8a873cc41f02e669e8071ab5919931dd4263f050becf0c19820b0497c07b0ca3
$(package)_git_commit=7a5b5fc99ae483a0043db7547fb79a6fa44b88a9
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_unpackaged_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_block_cipher_trait
$(package)_crate_name=block-cipher-trait
$(package)_version=0.5.3
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=370424437b9459f3dfd68428ed9376ddfe03d8b70ede29cc533b3557df186ab4
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_byte_tools
$(package)_crate_name=byte-tools
$(package)_version=0.2.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_byteorder
$(package)_crate_name=byteorder
$(package)_version=1.2.2
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=73b5bdfe7ee3ad0b99c9801d58807a9dbc9e09196365b0203853b99889ab3c87
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_constant_time_eq
$(package)_crate_name=constant_time_eq
$(package)_version=0.1.3
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_crossbeam
$(package)_crate_name=crossbeam
$(package)_version=0.3.2
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=24ce9782d4d5c53674646a6a4c1863a21a8fc0cb649b3c94dfc16e45071dea19
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_digest
$(package)_crate_name=digest
$(package)_version=0.7.2
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=00a49051fef47a72c9623101b19bd71924a45cca838826caae3eaa4d00772603
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_fpe
$(package)_crate_name=fpe
$(package)_version=0.1.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=ce3371c82bfbd984f624cab093f55e7336f5a6e589f8518e1258f54f011b89ad
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_fuchsia_zircon
$(package)_crate_name=fuchsia-zircon
$(package)_version=0.3.3
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_fuchsia_zircon_sys
$(package)_crate_name=fuchsia-zircon-sys
$(package)_version=0.3.3
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_futures
$(package)_crate_name=futures
$(package)_version=0.1.21
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=1a70b146671de62ec8c8ed572219ca5d594d9b06c0b364d5e67b722fc559b48c
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_futures_cpupool
$(package)_crate_name=futures-cpupool
$(package)_version=0.1.8
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_generic_array
$(package)_crate_name=generic-array
$(package)_version=0.9.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_lazy_static
$(package)_crate_name=lazy_static
$(package)_version=1.0.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=c8f31047daa365f19be14b47c29df4f7c3b581832407daabe6ae77397619237d
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_libc
$(package)_crate_name=libc
$(package)_version=0.2.40
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=6fd41f331ac7c5b8ac259b8bf82c75c0fb2e469bbf37d2becbba9a6a2221965b
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_nodrop
$(package)_crate_name=nodrop
$(package)_version=0.1.12
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_num_bigint
$(package)_crate_name=num-bigint
$(package)_version=0.2.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=3eceac7784c5dc97c2d6edf30259b4e153e6e2b42b3c85e9a6e9f45d06caef6e
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_num_cpus
$(package)_crate_name=num_cpus
$(package)_version=1.8.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_num_integer
$(package)_crate_name=num-integer
$(package)_version=0.1.39
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_num_traits
$(package)_crate_name=num-traits
$(package)_version=0.2.5
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=630de1ef5cc79d0cdd78b7e33b81f083cbfe90de0f4b2b2f07f905867c70e9fe
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_opaque_debug
$(package)_crate_name=opaque-debug
$(package)_version=0.1.1
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=d620c9c26834b34f039489ac0dfdb12c7ac15ccaf818350a64c9b5334a452ad7
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_pairing
$(package)_crate_name=pairing
$(package)_version=0.14.2
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=ceda21136251c6d5a422d3d798d8ac22515a6e8d3521bb60c59a8349d36d0d57
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_rand
$(package)_crate_name=rand
$(package)_version=0.4.2
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,16 @@
package=crate_sapling_crypto
$(package)_crate_name=sapling-crypto
$(package)_download_path=https://github.com/zcash-hackworks/$($(package)_crate_name)/archive/
$(package)_file_name=$(package)-$($(package)_git_commit).tar.gz
$(package)_download_file=$($(package)_git_commit).tar.gz
$(package)_sha256_hash=ae3a122b1f1ce97b4e80e0e8542e19aa1516e99e6c72875688c886af1a881558
$(package)_git_commit=21084bde2019c04bd34208e63c3560fe2c02fb0e
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_unpackaged_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_stream_cipher
$(package)_crate_name=stream-cipher
$(package)_version=0.1.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=ac49bc6cb2847200d18bfb738ce89448570f4aa1c34ac0348db6205ee69a0777
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_typenum
$(package)_crate_name=typenum
$(package)_version=1.10.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_winapi
$(package)_crate_name=winapi
$(package)_version=0.3.4
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=04e3bd221fcbe8a271359c04f21a76db7d0c6028862d1bb5512d85e1e2eb5bb3
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_winapi_i686_pc_windows_gnu
$(package)_crate_name=winapi-i686-pc-windows-gnu
$(package)_version=0.4.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,15 @@
package=crate_winapi_x86_64_pc_windows_gnu
$(package)_crate_name=winapi-x86_64-pc-windows-gnu
$(package)_version=0.4.0
$(package)_download_path=https://static.crates.io/crates/$($(package)_crate_name)
$(package)_file_name=$($(package)_crate_name)-$($(package)_version).crate
$(package)_sha256_hash=712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -0,0 +1,16 @@
package=crate_zip32
$(package)_crate_name=zip32
$(package)_download_path=https://github.com/zcash-hackworks/$($(package)_crate_name)/archive/
$(package)_file_name=$(package)-$($(package)_git_commit).tar.gz
$(package)_download_file=$($(package)_git_commit).tar.gz
$(package)_sha256_hash=b0b011ea96524f0d918a44c7ab8a3dec6270879d1ff03d7dbda6c676d25caa7e
$(package)_git_commit=176470ef41583b5bd0bd749bd1b61d417aa8ec79
$(package)_crate_versioned_name=$($(package)_crate_name)
define $(package)_preprocess_cmds
$(call generate_unpackaged_crate_checksum,$(package))
endef
define $(package)_stage_cmds
$(call vendor_crate_source,$(package))
endef

View File

@@ -5,6 +5,11 @@ $(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_download_file=release-$($(package)_version).tar.gz
$(package)_sha256_hash=58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8
define $(package)_set_vars
$(package)_cxxflags+=-std=c++11
$(package)_cxxflags_linux=-fPIC
endef
ifeq ($(build_os),darwin)
define $(package)_set_vars
$(package)_build_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" CXX="$($(package)_cxx)" CXXFLAGS="$($(package)_cxxflags)"
@@ -19,9 +24,10 @@ define $(package)_build_cmds
endef
else
$(package)_install=install
define $(package)_build_cmds
$(MAKE) -C googlemock/make CXXFLAGS=-fPIC gmock.a && \
$(MAKE) -C googletest/make CXXFLAGS=-fPIC gtest.a
$(MAKE) -C googlemock/make CC="$($(package)_cc)" CXX="$($(package)_cxx)" AR="$($(package)_ar)" CXXFLAGS="$($(package)_cxxflags)" gmock.a && \
$(MAKE) -C googletest/make CC="$($(package)_cc)" CXX="$($(package)_cxx)" AR="$($(package)_ar)" CXXFLAGS="$($(package)_cxxflags)" gtest.a
endef
endif

View File

@@ -3,9 +3,26 @@ $(package)_version=0.1
$(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
$(package)_git_commit=91348647a86201a9482ad4ad68398152dc3d635e
$(package)_dependencies=rust
$(package)_sha256_hash=e9a488a8bbecf7fb237a32dadd65133211ef61616d44cf55609e029837a41004
$(package)_git_commit=f5e5cb24e1bd756a02fc4a3fd2b824238ccd15ad
$(package)_dependencies=rust $(rust_crates)
$(package)_patches=cargo.config
ifeq ($(host_os),mingw32)
$(package)_library_file=target/x86_64-pc-windows-gnu/release/rustzcash.lib
else
$(package)_library_file=target/release/librustzcash.a
endif
define $(package)_set_vars
$(package)_build_opts=--frozen --release
$(package)_build_opts_mingw32=--target=x86_64-pc-windows-gnu
endef
define $(package)_preprocess_cmds
mkdir .cargo && \
cat $($(package)_patch_dir)/cargo.config | sed 's|CRATE_REGISTRY|$(host_prefix)/$(CRATE_REGISTRY)|' > .cargo/config
endef
ifeq ($(host_os),mingw32)
define $(package)_build_cmds
@@ -13,7 +30,7 @@ define $(package)_build_cmds
endef
else
define $(package)_build_cmds
cargo build --release
cargo build $($(package)_build_opts)
endef
endif
@@ -28,7 +45,7 @@ else
define $(package)_stage_cmds
mkdir $($(package)_staging_dir)$(host_prefix)/lib/ && \
mkdir $($(package)_staging_dir)$(host_prefix)/include/ && \
cp target/release/librustzcash.a $($(package)_staging_dir)$(host_prefix)/lib/ && \
cp $($(package)_library_file) $($(package)_staging_dir)$(host_prefix)/lib/ && \
cp include/librustzcash.h $($(package)_staging_dir)$(host_prefix)/include/
endef
endif

View File

@@ -1,8 +1,8 @@
package=openssl
$(package)_version=1.1.0d
$(package)_version=1.1.0h
$(package)_download_path=https://www.openssl.org/source
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=7d5ebb9e89756545c156ff9c13cf2aa6214193b010a468a3bc789c3c28fe60df
$(package)_sha256_hash=5835626cde9e99656585fc7aaa2302a73a7e1340bf8c14fd635a62c66802a517
define $(package)_set_vars
$(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)"

View File

@@ -7,12 +7,52 @@ else
zcash_packages := libgmp libsodium
endif
rust_crates := \
crate_aes \
crate_aesni \
crate_aes_soft \
crate_arrayvec \
crate_bellman \
crate_bitflags \
crate_bit_vec \
crate_blake2_rfc \
crate_block_cipher_trait \
crate_byte_tools \
crate_byteorder \
crate_constant_time_eq \
crate_crossbeam \
crate_digest \
crate_fpe \
crate_fuchsia_zircon \
crate_fuchsia_zircon_sys \
crate_futures_cpupool \
crate_futures \
crate_generic_array \
crate_lazy_static \
crate_libc \
crate_nodrop \
crate_num_bigint \
crate_num_cpus \
crate_num_integer \
crate_num_traits \
crate_opaque_debug \
crate_pairing \
crate_rand \
crate_sapling_crypto \
crate_stream_cipher \
crate_typenum \
crate_winapi_i686_pc_windows_gnu \
crate_winapi \
crate_winapi_x86_64_pc_windows_gnu \
crate_zip32
rust_packages := rust $(rust_crates) librustzcash
native_packages := native_ccache
wallet_packages=bdb
ifeq ($(host_os),linux)
packages := boost openssl libevent zeromq $(zcash_packages) googletest #googlemock
else
packages := boost openssl libevent zeromq $(zcash_packages) libcurl googletest #googlemock
endif
native_packages := native_ccache
wallet_packages=bdb

View File

@@ -1,17 +1,52 @@
package=rust
$(package)_version=1.16.0
$(package)_version=1.28.0
$(package)_download_path=https://static.rust-lang.org/dist
$(package)_file_name_linux=rust-$($(package)_version)-x86_64-unknown-linux-gnu.tar.gz
$(package)_sha256_hash_linux=2a1390340db1d24a9498036884e6b2748e9b4b057fc5219694e298bdaa37b810
$(package)_file_name_darwin=rust-$($(package)_version)-x86_64-apple-darwin.tar.gz
$(package)_sha256_hash_darwin=5d7a70ed4701fe9410041c1eea025c95cad97e5b3d8acc46426f9ac4f9f02393
$(package)_file_name_mingw32=rust-$($(package)_version)-x86_64-pc-windows-gnu.tar.gz
$(package)_sha256_hash_mingw32=55c07426f791c51c8a2b6934b35784175c4abb4e03f123f3e847109c4dc1ad8b
ifeq ($(build_os),darwin)
$(package)_file_name=rust-$($(package)_version)-x86_64-apple-darwin.tar.gz
$(package)_sha256_hash=2d08259ee038d3a2c77a93f1a31fc59e7a1d6d1bbfcba3dba3c8213b2e5d1926
$(package)_file_name=$($(package)_file_name_darwin)
$(package)_sha256_hash=$($(package)_sha256_hash_darwin)
else ifeq ($(host_os),mingw32)
$(package)_file_name=rust-$($(package)_version)-i686-unknown-linux-gnu.tar.gz
$(package)_sha256_hash=b5859161ebb182d3b75fa14a5741e5de87b088146fb0ef4a30f3b2439c6179c5
$(package)_file_name=$($(package)_file_name_mingw32)
$(package)_sha256_hash=$($(package)_sha256_hash_mingw32)
else
$(package)_file_name=rust-$($(package)_version)-x86_64-unknown-linux-gnu.tar.gz
$(package)_sha256_hash=48621912c242753ba37cad5145df375eeba41c81079df46f93ffb4896542e8fd
$(package)_file_name=$($(package)_file_name_linux)
$(package)_sha256_hash=$($(package)_sha256_hash_linux)
endif
ifeq ($(host_os),mingw32)
$(package)_build_subdir=buildos
$(package)_extra_sources = $($(package)_file_name_$(build_os))
define $(package)_fetch_cmds
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_file_name_$(build_os)),$($(package)_file_name_$(build_os)),$($(package)_sha256_hash_$(build_os)))
endef
define $(package)_extract_cmds
mkdir -p $($(package)_extract_dir) && \
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_sha256_hash_$(build_os)) $($(package)_source_dir)/$($(package)_file_name_$(build_os))" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
mkdir mingw32 && \
tar --strip-components=1 -xf $($(package)_source) -C mingw32 && \
mkdir buildos && \
tar --strip-components=1 -xf $($(package)_source_dir)/$($(package)_file_name_$(build_os)) -C buildos
endef
define $(package)_stage_cmds
./install.sh --destdir=$($(package)_staging_dir) --prefix=$(host_prefix)/native --disable-ldconfig && \
cp -r ../mingw32/rust-std-x86_64-pc-windows-gnu/lib/rustlib/x86_64-pc-windows-gnu $($(package)_staging_dir)$(host_prefix)/native/lib/rustlib
endef
else
define $(package)_stage_cmds
./install.sh --destdir=$($(package)_staging_dir) --prefix=$(host_prefix)/native --disable-ldconfig
endef
endif

View File

@@ -1,30 +0,0 @@
--- boost_1_62_0-orig/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp 2016-09-29 14:03:47.317997658 +1300
+++ boost_1_62_0/boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp 2016-09-29 14:07:41.308726372 +1300
@@ -13,10 +13,16 @@
#if !defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE)
#include <boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp>
+#include <boost/smart_ptr/detail/sp_disable_deprecated.hpp>
#include <algorithm>
#include <functional>
#include <memory> // for std::auto_ptr
#include <boost/weak_ptr.hpp>
+
+#if defined( BOOST_SP_DISABLE_DEPRECATED )
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
#endif
#ifdef BOOST_SPIRIT_THREADSAFE
@@ -370,4 +376,10 @@
}} // namespace boost::spirit
+#if !defined(BOOST_SPIRIT_SINGLE_GRAMMAR_INSTANCE)
+#if defined( BOOST_SP_DISABLE_DEPRECATED )
+#pragma GCC diagnostic pop
+#endif
+#endif
+
#endif

View File

@@ -1,11 +0,0 @@
--- boost_1_62_0-orig/boost/asio/detail/socket_types.hpp 2016-09-21 15:33:21.000000000 +0100
+++ boost_1_62_0/boost/asio/detail/socket_types.hpp 2016-10-18 03:08:41.712254217 +0100
@@ -58,7 +58,7 @@
#else
# include <sys/ioctl.h>
# if !defined(__SYMBIAN32__)
-# include <sys/poll.h>
+# include <poll.h>
# endif
# include <sys/types.h>
# include <sys/stat.h>

View File

@@ -0,0 +1,23 @@
[source.crates-io]
replace-with = "vendored-sources"
[source."https://github.com/gtank/blake2-rfc"]
git = "https://github.com/gtank/blake2-rfc"
rev = "7a5b5fc99ae483a0043db7547fb79a6fa44b88a9"
replace-with = "vendored-sources"
[source."https://github.com/zcash-hackworks/sapling-crypto"]
git = "https://github.com/zcash-hackworks/sapling-crypto"
rev = "21084bde2019c04bd34208e63c3560fe2c02fb0e"
replace-with = "vendored-sources"
[source."https://github.com/zcash-hackworks/zip32"]
git = "https://github.com/zcash-hackworks/zip32"
rev = "176470ef41583b5bd0bd749bd1b61d417aa8ec79"
replace-with = "vendored-sources"
[source.vendored-sources]
directory = "CRATE_REGISTRY"
[target.x86_64-pc-windows-gnu]
linker = "x86_64-w64-mingw32-gcc"

View File

@@ -870,7 +870,7 @@ HTML_FILE_EXTENSION = .html
# standard header. Note that when using a custom header you are responsible
# for the proper inclusion of any scripts and style sheets that doxygen
# needs, which is dependent on the configuration options used.
# It is adviced to generate a default header using "doxygen -w html
# It is advised to generate a default header using "doxygen -w html
# header.html footer.html stylesheet.css YourConfigFile" and then modify
# that header. Note that the header is subject to change so you typically
# have to redo this when upgrading to a newer version of doxygen or when

View File

@@ -1,64 +1,80 @@
Zcash Contributors
==================
Jack Grigg (601)
Simon Liu (297)
Sean Bowe (193)
Daira Hopwood (102)
Wladimir J. van der Laan (71)
Jack Grigg (760)
Simon Liu (352)
Sean Bowe (263)
Daira Hopwood (110)
Jay Graber (84)
Wladimir J. van der Laan (81)
Taylor Hornby (65)
Jay Graber (61)
Nathan Wilcox (56)
Jonas Schnelli (49)
Jonas Schnelli (55)
Pieter Wuille (50)
Kevin Gallagher (38)
Cory Fields (30)
Pieter Wuille (24)
Eirik Ogilvie-Wigley (36)
Cory Fields (35)
syd (15)
Matt Corallo (13)
Paige Peterson (10)
MarcoFalke (10)
nomnombtc (9)
Paige Peterson (9)
Matt Corallo (9)
Jonathan "Duke" Leto (9)
kozyilmaz (8)
fanquake (8)
MarcoFalke (7)
Jeff Garzik (7)
Gregory Maxwell (7)
Ariel Gabizon (7)
Luke Dashjr (6)
Larry Ruane (6)
Daniel Cousens (6)
Pavel Janík (5)
Karl-Johan Alm (5)
Johnathan Corgan (5)
Gregory Maxwell (5)
Ariel Gabizon (5)
kozyilmaz (4)
Philip Kaufmann (4)
Peter Todd (4)
Patrick Strateman (4)
Karl-Johan Alm (4)
João Barbosa (4)
Jorge Timón (4)
Jeff Garzik (4)
Duke Leto (4)
David Mercer (4)
Daniel Cousens (4)
lpescher (3)
Suhas Daftuar (3)
Pavel Janík (3)
João Barbosa (3)
Per Grön (3)
Patick Strateman (3)
Jason Davies (3)
James O'Beirne (3)
Daniel Kraft (3)
Ariel (3)
Alfie John (3)
str4d (2)
rofl0r (2)
paveljanik (2)
mruddy (2)
kpcyrd (2)
ca333 (2)
aniemerg (2)
UdjinM6 (2)
Scott (2)
Robert C. Seacord (2)
Per Grön (2)
Pejvan (2)
Pavol Rusnak (2)
Pavel Vasin (2)
Matthew King (2)
Kaz Wesley (2)
Joe Turgeon (2)
Jason Davies (2)
Jack Gavigan (2)
ITH4Coinomia (2)
Gavin Andresen (2)
Daniel Kraft (2)
Brad Miller (2)
Bjorn Hjortsberg (2)
Amgad Abdelhafez (2)
Alex Morcos (2)
zathras-crypto (1)
unsystemizer (1)
practicalswift (1)
mruddy (1)
mrbandrews (1)
mdr0id (1)
kazcw (1)
jc (1)
isle2983 (1)
@@ -69,10 +85,16 @@ daniel (1)
calebogden (1)
ayleph (1)
Tom Ritter (1)
Tom Harding (1)
Stephen (1)
S. Matthew English (1)
Ross Nicoll (1)
Richard Littauer (1)
René Nyffenegger (1)
R E Broadley (1)
Puru (1)
Peter Pratscher (1)
Pedro Branco (1)
Paul Georgiou (1)
Paragon Initiative Enterprises, LLC (1)
Nicolas DORIER (1)
@@ -84,10 +106,11 @@ Mark Friedenbach (1)
Marius Kjærstad (1)
Louis Nyffenegger (1)
Leo Arias (1)
Lauda (1)
Lars-Magnus Skog (1)
Kevin Pan (1)
Jonathan "Duke" Leto (1)
Jonas Nick (1)
Jeremy Rubin (1)
Jeffrey Walton (1)
Ian Kelling (1)
Gaurav Rana (1)
@@ -95,9 +118,12 @@ Forrest Voight (1)
Florian Schmaus (1)
Ethan Heilman (1)
Eran Tromer (1)
Duke Leto (1)
Dimitris Apostolou (1)
David Llop (1)
Christian von Roques (1)
Chirag Davé (1)
Charlie OKeefe (1)
Charlie O'Keefe (1)
Casey Rodarmor (1)
Cameron Boehmer (1)
Bryan Stitt (1)
@@ -109,7 +135,6 @@ Ashley Holman (1)
Anthony Towns (1)
Allan Niemerg (1)
Alex van der Peet (1)
Alex Morcos (1)
Alex (1)
Adam Weiss (1)
Adam Brown (1)

View File

@@ -0,0 +1,12 @@
rpcuser=dontuseweakusernameoryougetrobbed
rpcpassword=dontuseweakpasswordoryougetrobbed
txindex=1
server=1
rpcworkqueue=64
addnode=5.9.102.210
addnode=78.47.196.146
addnode=178.63.69.164
addnode=88.198.65.74
addnode=5.9.122.241
addnode=144.76.94.38
addnode=89.248.166.91

4
doc/bips.md Normal file
View File

@@ -0,0 +1,4 @@
BIPs that are implemented by Zcash (up-to-date up to **v1.1.0**):
* Numerous historic BIPs were present in **v1.0.0** at launch; see [the protocol spec](https://github.com/zcash/zips/blob/master/protocol/protocol.pdf) for details.
* [`BIP 111`](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki): `NODE_BLOOM` service bit added, but only enforced for peer versions `>=170004` as of **v1.1.0** ([PR #2814](https://github.com/zcash/zcash/pull/2814)).

BIN
doc/imgs/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
doc/imgs/zcashd_screen.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View File

@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
.TH ZCASH-CLI "1" "February 2018" "zcash-cli v1.0.15" "User Commands"
.TH ZCASH-CLI "1" "October 2018" "zcash-cli v2.0.1-rc1" "User Commands"
.SH NAME
zcash-cli \- manual page for zcash-cli v1.0.15
zcash-cli \- manual page for zcash-cli v2.0.1-rc1
.SH DESCRIPTION
Zcash RPC client version v1.0.15
Zcash RPC client version v2.0.1\-rc1
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
@@ -65,6 +65,11 @@ Password for JSON\-RPC connections
.IP
Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
900)
.HP
\fB\-stdin\fR
.IP
Read extra arguments from standard input, one per line until EOF/Ctrl\-D
(recommended for sensitive information such as passphrases)
.SH COPYRIGHT
In order to ensure you are adequately protecting your privacy when using Zcash,

View File

@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
.TH ZCASH-TX "1" "February 2018" "zcash-tx v1.0.15" "User Commands"
.TH ZCASH-TX "1" "October 2018" "zcash-tx v2.0.1-rc1" "User Commands"
.SH NAME
zcash-tx \- manual page for zcash-tx v1.0.15
zcash-tx \- manual page for zcash-tx v2.0.1-rc1
.SH DESCRIPTION
Zcash zcash\-tx utility version v1.0.15
Zcash zcash\-tx utility version v2.0.1\-rc1
.SS "Usage:"
.TP
zcash\-tx [options] <hex\-tx> [commands]
@@ -48,7 +48,7 @@ delout=N
.IP
Delete output N from TX
.IP
in=TXID:VOUT
in=TXID:VOUT(:SEQUENCE_NUMBER)
.IP
Add input to TX
.IP

View File

@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
.TH ZCASHD "1" "February 2018" "zcashd v1.0.15" "User Commands"
.TH ZCASHD "1" "October 2018" "zcashd v2.0.1-rc1" "User Commands"
.SH NAME
zcashd \- manual page for zcashd v1.0.15
zcashd \- manual page for zcashd v2.0.1-rc1
.SH DESCRIPTION
Zcash Daemon version v1.0.15
Zcash Daemon version v2.0.1\-rc1
.PP
In order to ensure you are adequately protecting your privacy when using Zcash,
please see <https://z.cash/support/security/>.
@@ -51,11 +51,6 @@ Run in the background as a daemon and accept commands
.IP
Specify data directory
.HP
\fB\-disabledeprecation=\fR<version>
.IP
Disable block\-height node deprecation and automatic shutdown (example:
\fB\-disabledeprecation\fR=\fI\,1\/\fR.0.15)
.HP
\fB\-exportdir=\fR<dir>
.IP
Specify directory to be used when exporting data
@@ -74,12 +69,13 @@ Keep at most <n> unconnectable transactions in memory (default: 100)
.HP
\fB\-mempooltxinputlimit=\fR<n>
.IP
Set the maximum number of transparent inputs in a transaction that the
mempool will accept (default: 0 = no limit applied)
[DEPRECATED FROM OVERWINTER] Set the maximum number of transparent
inputs in a transaction that the mempool will accept (default: 0 = no
limit applied)
.HP
\fB\-par=\fR<n>
.IP
Set the number of script verification threads (\fB\-2\fR to 16, 0 = auto, <0 =
Set the number of script verification threads (\fB\-4\fR to 16, 0 = auto, <0 =
leave that many cores free, default: 0)
.HP
\fB\-pid=\fR<file>
@@ -187,6 +183,11 @@ Only connect to nodes in network <net> (ipv4, ipv6 or onion)
.IP
Relay non\-P2SH multisig (default: 1)
.HP
\fB\-peerbloomfilters\fR
.IP
Support filtering of blocks and transaction with Bloom filters (default:
1)
.HP
\fB\-port=\fR<port>
.IP
Listen for connections on <port> (default: 8233 or testnet: 18233)

View File

@@ -29,10 +29,10 @@ Optional parameters are denoted in [square brackets].
RPC calls by category:
* Accounting: z_getbalance, z_gettotalbalance
* Addresses : z_getnewaddress, z_listaddresses, z_validateaddress
* Addresses : z_getnewaddress, z_listaddresses, z_validateaddress, z_exportviewingkey, z_importviewingkey
* Keys : z_exportkey, z_importkey, z_exportwallet, z_importwallet
* Operation: z_getoperationresult, z_getoperationstatus, z_listoperationids
* Payment : z_listreceivedbyaddress, z_sendmany, z_shieldcoinbase
* Payment : z_listreceivedbyaddress, z_listunspent, z_sendmany, z_shieldcoinbase
RPC parameter conventions:
@@ -55,7 +55,7 @@ Command | Parameters | Description
--- | --- | ---
z_getnewaddress | | Return a new zaddr for sending and receiving payments. The spending key for this zaddr will be added to the nodes wallet.<br><br>Output:<br>zN68D8hSs3...
z_listaddresses | | Returns a list of all the zaddrs in this nodes wallet for which you have a spending key.<br><br>Output:<br>{ [“z123…”, “z456...”, “z789...”] }
z_validateaddress | zaddr | Return information about a given zaddr.<br><br>Output:<br>{"isvalid" : true,<br>"address" : "zcWsmq...",<br>"payingkey" : "f5bb3c...",<br>"transmissionkey" : "7a58c7...",<br>"ismine" : true}
z_validateaddress | zaddr | Return information about a given zaddr.<br><br>Output:<br>{"isvalid" : true,<br>"address" : "zcWsmq...",<br>"type" : "sprout",<br>"payingkey" : "f5bb3c...",<br>"transmissionkey" : "7a58c7...",<br>"ismine" : true}
### Key Management
@@ -64,13 +64,17 @@ Command | Parameters | Description
z_exportkey | zaddr | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Return a zkey for a given zaddr belonging to the nodes wallet.<br><br>The key will be returned as a string formatted using Base58Check as described in the Zcash protocol spec.<br><br>Output:AKWUAkypwQjhZ6LLNaMuuuLcmZ6gt5UFyo8m3jGutvALmwZKLdR5
z_importkey | zkey [rescan=true] | _Wallet must be unlocked._<br><br>Add a zkey as returned by z_exportkey to a node's wallet.<br><br>The key should be formatted using Base58Check as described in the Zcash protocol spec.<br><br>Set rescan to true (the default) to rescan the entire local block database for transactions affecting any address or pubkey script in the wallet (including transactions affecting the newly-added address for this spending key).
z_exportwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Creates or overwrites a file with taddr private keys and zaddr private keys in a human-readable format.<br><br>Filename is the file in which the wallet dump will be placed. May be prefaced by an absolute file path. An existing file with that name will be overwritten.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
z_importwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Imports private keys from a file in wallet export file format (see z_exportwallet). These keys will be added to the keys currently in the wallet. This call may need to rescan all or parts of the block chain for transactions affecting the newly-added keys, which may take several minutes.<br><br>Filename is the file to import. The path is relative to komodods working directory.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
z_importwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Imports private keys from a file in wallet export file format (see z_exportwallet). These keys will be added to the keys currently in the wallet. This call may need to rescan all or parts of the block chain for transactions affecting the newly-added keys, which may take several minutes.<br><br>Filename is the file to import. The path is relative to verusds working directory.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
z_exportviewingkey | zaddr | Reveals the viewing key corresponding to 'zaddr'. Then the z_importviewingkey can be used with this output.
z_importviewingkey | vkey [rescan=whenkeyisnew] [startHeight=0] | Adds a viewing key (as returned by z_exportviewingkey) to your wallet.
### Payment
Command | Parameters | Description
--- | --- | ---
z_listreceivedbyaddress<br> | zaddr [minconf=1] | Return a list of amounts received by a zaddr belonging to the nodes wallet.<br><br>Optionally set the minimum number of confirmations which a received amount must have in order to be included in the result. Use 0 to count unconfirmed transactions.<br><br>Output:<br>[{<br>“txid”: “4a0f…”,<br>“amount”: 0.54,<br>“memo”:”F0FF…”,}, {...}, {...}<br>]
z_listunspent | [minconf=1] [maxconf=9999999] [includeWatchonly=false] [zaddrs] | Returns array of unspent shielded notes with between minconf and maxconf (inclusive) confirmations.<br><br>Optionally filter to only include notes sent to specified addresses.<br><br>When minconf is 0, unspent notes with zero confirmations are returned, even though they are not immediately spendable.<br><br>Results are an array of Objects, each of which has: {txid, jsindex, jsoutindex, confirmations, address, amount, memo}
z_sendmany<br> | fromaddress amounts [minconf=1] [fee=0.0001] | _This is an Asynchronous RPC call_<br><br>Send funds from an address to multiple outputs. The address can be either a taddr or a zaddr.<br><br>Amounts is a list containing key/value pairs corresponding to the addresses and amount to pay. Each output address can be in taddr or zaddr format.<br><br>When sending to a zaddr, you also have the option of attaching a memo in hexadecimal format.<br><br>**NOTE:**When sending coinbase funds to a zaddr, the node's wallet does not allow any change. Put another way, spending a partial amount of a coinbase utxo is not allowed. This is not a consensus rule but a local wallet rule due to the current implementation of z_sendmany. In future, this rule may be removed.<br><br>Example of Outputs parameter:<br>[{“address”:”t123…”, “amount”:0.005},<br>,{“address”:”z010…”,”amount”:0.03, “memo”:”f508af…”}]<br><br>Optionally set the minimum number of confirmations which a private or transparent transaction must have in order to be used as an input. When sending from a zaddr, minconf must be greater than zero.<br><br>Optionally set a transaction fee, which by default is 0.0001 ZEC.<br><br>Any transparent change will be sent to a new transparent address. Any private change will be sent back to the zaddr being used as the source of funds.<br><br>Returns an operationid. You use the operationid value with z_getoperationstatus and z_getoperationresult to obtain the result of sending funds, which if successful, will be a txid.
z_shieldcoinbase<br> | fromaddress toaddress [fee=0.0001] [limit=50] | _This is an Asynchronous RPC call_<br><br>Shield transparent coinbase funds by sending to a shielded z address. Utxos selected for shielding will be locked. If there is an error, they are unlocked. The RPC call `listlockunspent` can be used to return a list of locked utxos.<br><br>The number of coinbase utxos selected for shielding can be set with the limit parameter, which has a default value of 50. If the parameter is set to 0, the number of utxos selected is limited by the `-mempooltxinputlimit` option. Any limit is constrained by a consensus rule defining a maximum transaction size of 100000 bytes. <br><br>The from address is a taddr or "*" for all taddrs belonging to the wallet. The to address is a zaddr. The default fee is 0.0001.<br><br>Returns an object containing an operationid which can be used with z_getoperationstatus and z_getoperationresult, along with key-value pairs regarding how many utxos are being shielded in this transaction and what remains to be shielded.

View File

@@ -4,3 +4,32 @@ release-notes at release time)
Notable changes
===============
Enabled Sapling features for mainnet
------------------------------------
This release adds significant support for Sapling to the wallet and RPC interface. Sapling will activate at block 419200, which is expected to be mined on the 28th of October 2018. Users running v2.0.0 nodes (which are consensus-compatible with Sapling) will follow the network upgrade, but must upgrade to v2.0.1 in order to send Sapling shielded transactions.
Minimum Difficulty Blocks allowed on testnet
--------------------------------------------
Sapling activated on testnet at block 280000. Users running v2.0.1 nodes no longer need to specify `-experimentalfeatures` and `-developersapling` to use Sapling functionality on testnet. Users running v2.0.0 nodes should upgrade to v2.0.1 which introduces a consensus rule change to allow minimum difficulty blocks to be mined from block 299188, thereby splitting the chain.
[Pull request](https://github.com/zcash/zcash/pull/3559)
Hierarchical Deterministic Key Generation for Sapling
-----------------------------------------------------
All Sapling addresses will use hierarchical deterministic key generation
according to ZIP 32 (keypath m/32'/133'/k' on mainnet). Transparent and
Sprout addresses will still use traditional key generation.
Backups of HD wallets, regardless of when they have been created, can
therefore be used to re-generate all possible Sapling private keys, even the
ones which haven't already been generated during the time of the backup.
Regular backups are still necessary, however, in order to ensure that
transparent and Sprout addresses are not lost.
[Pull request](https://github.com/zcash/zcash/pull/3492), [ZIP 32](https://github.com/zcash/zips/blob/master/zip-0032.mediawiki)
Fix Signing Raw Transactions with Unsynced Offline Nodes
--------------------------------------------------------
With v2.0.0, in `signrawtransaction` the consensus branch ID (which is used to construct the transaction) was estimated using the chain height. With v2.0.1 this has been improved by also considering the `APPROX_RELEASE_HEIGHT` of the release, and a new parameter to allow the caller to manually override the consensus branch ID that zcashd will use.
[Pull request](https://github.com/zcash/zcash/pull/3520)

View File

@@ -0,0 +1,180 @@
Notable changes
===============
`-mempooltxinputlimit` deprecation
----------------------------------
The configuration option `-mempooltxinputlimit` was added in release 1.0.10 as a
short-term fix for the quadratic hashing problem inherited from Bitcoin. At the
time, transactions with many inputs were causing performance issues for miners.
Since then, several performance improvements have been merged from the Bitcoin
Core codebase that significantly reduce these issues.
The Overwinter network upgrade includes changes that solve the quadratic hashing
problem, and so `-mempooltxinputlimit` will no longer be needed - a transaction
with 1000 inputs will take just as long to validate as 10 transactions with 100
inputs each. Starting from this release, `-mempooltxinputlimit` will be enforced
before the Overwinter activation height is reached, but will be ignored once
Overwinter activates. The option will be removed entirely in a future release
after Overwinter has activated.
`NODE_BLOOM` service bit
------------------------
Support for the `NODE_BLOOM` service bit, as described in [BIP
111](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki), has been
added to the P2P protocol code.
BIP 111 defines a service bit to allow peers to advertise that they support
Bloom filters (such as used by SPV clients) explicitly. It also bumps the protocol
version to allow peers to identify old nodes which allow Bloom filtering of the
connection despite lacking the new service bit.
In this version, it is only enforced for peers that send protocol versions
`>=170004`. For the next major version it is planned that this restriction will be
removed. It is recommended to update SPV clients to check for the `NODE_BLOOM`
service bit for nodes that report version 170004 or newer.
Changelog
=========
Brad Miller (2):
Clean up
Implement note locking for z_mergetoaddress
Charlie O'Keefe (1):
Add filename and sha256 hash for windows rust package
Daira Hopwood (5):
Squashed commit of the following:
pyflakes cleanups to RPC tests after Overwinter PRs.
Add support for Overwinter v3 transactions to mininode framework.
Test that receiving an expired transaction does not increase the peer's ban score.
Don't increase banscore if the transaction only just expired.
Daniel Kraft (1):
trivial: use constants for db keys
Jack Grigg (43):
Add environment variable for setting ./configure flags in zcutil/build.sh
Add configure flags for enabling ASan/UBSan and TSan
Split declaration and definition of SPROUT_BRANCH_ID constant
Add link to Overwinter info page
Notify users about auto-senescence via -alertnotify
test: Move wait_and_assert_operationid_status debug output before asserts
Don't require RELRO and BIND_NOW for Darwin
Only set multicore flags if OpenMP is available
Revert "remove -mt suffix from boost libraries built by depends"
Use correct Boost::System linker flag for libzcash
depends: Remove -mt suffix from Boost libraries
snark: Remove -mt suffix from Boost library
cleanup: Ensure code is pyflakes-clean for CI
Ignore -mempooltxinputlimit once Overwinter activates
depends: Explicitly download and vendor Rust dependencies
Make Rust compilation mandatory
Optimise serialization of MerklePath, avoiding ambiguity of std::vector<bool>
Use uint64_t instead of size_t for serialized indices into tx.vjoinsplit
Move explicit instantiation of IncrementalMerkleTree::emptyroots into header
libsnark: Don't set -static on Darwin
Set PLATFORM flag when compiling libsnark
Add base case to CurrentEpoch()
Cast ZCIncrementalMerkleTree::size() to uint64_t before passing to UniValue
rpcwallet.cpp: Cast size_t to uint64_t before passing to UniValue
wallet: Cast size_t to uint64_t before passing to UniValue
Test calling z_mergetoaddress to merge notes while a note merge is ongoing
depends: Fix regex bugs in cargo-checksum.sh
Fix z_importviewingkey startHeight parameter
Add RPC test of RewindBlockIndex
When rewinding, remove insufficiently-validated blocks
Adjust deprecation message to work in both UI and -alertnotify
Refactor Zcash changes to CCoinsViewDB
Update blockchain.py RPC test for Zcash
Update CBlockTreeDB::EraseBatchSync for dbwrapper refactor
Fix typo
test: Check return value of snprintf
test: Add missing Overwinter fields to mininode's CTransaction
Add RPC test for -enforcenodebloom
Fix NODE_BLOOM documentation errors
Move bloom filter filtering logic back into command "switch"
Update -enforcenodebloom RPC test with filterclear vs filteradd
make-release.py: Versioning changes for 1.1.0-rc1.
make-release.py: Updated manpages for 1.1.0-rc1.
James O'Beirne (3):
Refactor leveldbwrapper
Minor bugfixes
Add tests for gettxoutsetinfo, CLevelDBBatch, CLevelDBIterator
Jason Davies (1):
Fix typo in comment: should link to issue #1359.
Jay Graber (1):
Set ban score for expired txs to 0
Jeff Garzik (3):
leveldbwrapper: Remove unused .Prev(), .SeekToLast() methods
leveldbwrapper symbol rename: Remove "Level" from class, etc. names
leveldbwrapper file rename to dbwrapper.*
Jonathan "Duke" Leto (7):
Fix references to Bitcoin in RPC tests readme
This library seems to not be used at all and all comments mentioning it are ghosts
Update awkward wording about blocks as per @daira
Regtest mining does have a founders reward, a single address t2FwcEhFdNXuFMv1tcYwaBJtYVtMj8b1uTg
Fix outdated comment about starting balance of nodes
Return JoinSplit and JoinSplitOutput indexes in z_listreceivedbyaddress
Add tests for new JoinSplit keys returned by z_listreceivedbyaddress
Lauda (1):
[Trivial] Grammar and typo correction
Matt Corallo (3):
Add test for dbwrapper iterators with same-prefix keys.
Add NODE_BLOOM service bit and bump protocol version
Don't do mempool lookups for "mempool" command without a filter
Patick Strateman (3):
Move bloom filter filtering logic outside of command "switch" (giant if/else).
Add enforcenodebloom option.
Document both the peerbloomfilters and enforcenodebloom options.
Pavel Janík (1):
Do not shadow members in dbwrapper
Pieter Wuille (2):
Encapsulate CLevelDB iterators cleanly
Fix chainstate serialized_size computation
R E Broadley (1):
Allow filterclear messages for enabling TX relay only.
Simon Liu (13):
Code clean up. Remove use of X macro.
Enable mempool logging in tx expiry QA test.
Closes #3084. Log txid when removing expired txs from mempool.
Add qa test for cache invalidation bug found in v1.0.0 to v1.0.3.
Remove local function wait_and_assert_operationid_status which is now defined in the test framework for shared usage.
Update boost to 1.66.0
Part of #2966, extending Sprout tests to other epochs.
Update boost package URL to match official download url on boost.org
Closes #3110. Ensure user can see error message about absurdly high fees.
Closes #2910. Add z_listunspent RPC call.
Upgrade OpenSSL to 1.1.0h
Use range based for loop
Bump MIT Licence copyright header.
Wladimir J. van der Laan (6):
dbwrapper: Pass parent CDBWrapper into CDBBatch and CDBIterator
dbwrapper: Move `HandleError` to `dbwrapper_private`
chain: Add assertion in case of missing records in index db
test: Add more thorough test for dbwrapper iterators
test: Replace remaining sprintf with snprintf
doc: update release-notes and bips.md for BIP111
kozyilmaz (1):
Fix test/gtest bugs caught by latest macOS clang
rofl0r (2):
fix build error due to usage of obsolete boost_system-mt
remove -mt suffix from boost libraries built by depends

View File

@@ -0,0 +1,193 @@
Notable changes
===============
Overwinter network upgrade
--------------------------
The activation height for the Overwinter network upgrade on mainnet is included
in this release. Overwinter will activate on mainnet at height 347500, which is
expected to be mined on the 25th of June 2018. Please upgrade to this release,
or any subsequent release, in order to follow the Overwinter network upgrade.
`-mempooltxinputlimit` deprecation
----------------------------------
The configuration option `-mempooltxinputlimit` was added in release 1.0.10 as a
short-term fix for the quadratic hashing problem inherited from Bitcoin. At the
time, transactions with many inputs were causing performance issues for miners.
Since then, several performance improvements have been merged from the Bitcoin
Core codebase that significantly reduce these issues.
The Overwinter network upgrade includes changes that solve the quadratic hashing
problem, and so `-mempooltxinputlimit` will no longer be needed - a transaction
with 1000 inputs will take just as long to validate as 10 transactions with 100
inputs each. Starting from this release, `-mempooltxinputlimit` will be enforced
before the Overwinter activation height is reached, but will be ignored once
Overwinter activates. The option will be removed entirely in a future release
after Overwinter has activated.
`NODE_BLOOM` service bit
------------------------
Support for the `NODE_BLOOM` service bit, as described in [BIP
111](https://github.com/bitcoin/bips/blob/master/bip-0111.mediawiki), has been
added to the P2P protocol code.
BIP 111 defines a service bit to allow peers to advertise that they support
Bloom filters (such as used by SPV clients) explicitly. It also bumps the protocol
version to allow peers to identify old nodes which allow Bloom filtering of the
connection despite lacking the new service bit.
In this version, it is only enforced for peers that send protocol versions
`>=170004`. For the next major version it is planned that this restriction will be
removed. It is recommended to update SPV clients to check for the `NODE_BLOOM`
service bit for nodes that report version 170004 or newer.
Changelog
=========
Brad Miller (2):
Clean up
Implement note locking for z_mergetoaddress
Charlie O'Keefe (1):
Add filename and sha256 hash for windows rust package
Daira Hopwood (5):
Squashed commit of the following:
pyflakes cleanups to RPC tests after Overwinter PRs.
Add support for Overwinter v3 transactions to mininode framework.
Test that receiving an expired transaction does not increase the peer's ban score.
Don't increase banscore if the transaction only just expired.
Daniel Kraft (1):
trivial: use constants for db keys
Jack Grigg (47):
Add environment variable for setting ./configure flags in zcutil/build.sh
Add configure flags for enabling ASan/UBSan and TSan
Split declaration and definition of SPROUT_BRANCH_ID constant
Add link to Overwinter info page
Notify users about auto-senescence via -alertnotify
test: Move wait_and_assert_operationid_status debug output before asserts
Don't require RELRO and BIND_NOW for Darwin
Only set multicore flags if OpenMP is available
Revert "remove -mt suffix from boost libraries built by depends"
Use correct Boost::System linker flag for libzcash
depends: Remove -mt suffix from Boost libraries
snark: Remove -mt suffix from Boost library
cleanup: Ensure code is pyflakes-clean for CI
Ignore -mempooltxinputlimit once Overwinter activates
depends: Explicitly download and vendor Rust dependencies
Make Rust compilation mandatory
Optimise serialization of MerklePath, avoiding ambiguity of std::vector<bool>
Use uint64_t instead of size_t for serialized indices into tx.vjoinsplit
Move explicit instantiation of IncrementalMerkleTree::emptyroots into header
libsnark: Don't set -static on Darwin
Set PLATFORM flag when compiling libsnark
Add base case to CurrentEpoch()
Cast ZCIncrementalMerkleTree::size() to uint64_t before passing to UniValue
rpcwallet.cpp: Cast size_t to uint64_t before passing to UniValue
wallet: Cast size_t to uint64_t before passing to UniValue
Test calling z_mergetoaddress to merge notes while a note merge is ongoing
depends: Fix regex bugs in cargo-checksum.sh
Fix z_importviewingkey startHeight parameter
Add RPC test of RewindBlockIndex
When rewinding, remove insufficiently-validated blocks
Adjust deprecation message to work in both UI and -alertnotify
Refactor Zcash changes to CCoinsViewDB
Update blockchain.py RPC test for Zcash
Update CBlockTreeDB::EraseBatchSync for dbwrapper refactor
Fix typo
test: Check return value of snprintf
test: Add missing Overwinter fields to mininode's CTransaction
Add RPC test for -enforcenodebloom
Fix NODE_BLOOM documentation errors
Move bloom filter filtering logic back into command "switch"
Update -enforcenodebloom RPC test with filterclear vs filteradd
make-release.py: Versioning changes for 1.1.0-rc1.
make-release.py: Updated manpages for 1.1.0-rc1.
make-release.py: Updated release notes and changelog for 1.1.0-rc1.
Set Overwinter protocol version to 170005
make-release.py: Versioning changes for 1.1.0.
make-release.py: Updated manpages for 1.1.0.
James O'Beirne (3):
Refactor leveldbwrapper
Minor bugfixes
Add tests for gettxoutsetinfo, CLevelDBBatch, CLevelDBIterator
Jason Davies (1):
Fix typo in comment: should link to issue #1359.
Jay Graber (1):
Set ban score for expired txs to 0
Jeff Garzik (3):
leveldbwrapper: Remove unused .Prev(), .SeekToLast() methods
leveldbwrapper symbol rename: Remove "Level" from class, etc. names
leveldbwrapper file rename to dbwrapper.*
Jonathan "Duke" Leto (7):
Fix references to Bitcoin in RPC tests readme
This library seems to not be used at all and all comments mentioning it are ghosts
Update awkward wording about blocks as per @daira
Regtest mining does have a founders reward, a single address t2FwcEhFdNXuFMv1tcYwaBJtYVtMj8b1uTg
Fix outdated comment about starting balance of nodes
Return JoinSplit and JoinSplitOutput indexes in z_listreceivedbyaddress
Add tests for new JoinSplit keys returned by z_listreceivedbyaddress
Lauda (1):
[Trivial] Grammar and typo correction
Matt Corallo (3):
Add test for dbwrapper iterators with same-prefix keys.
Add NODE_BLOOM service bit and bump protocol version
Don't do mempool lookups for "mempool" command without a filter
Patick Strateman (3):
Move bloom filter filtering logic outside of command "switch" (giant if/else).
Add enforcenodebloom option.
Document both the peerbloomfilters and enforcenodebloom options.
Pavel Janík (1):
Do not shadow members in dbwrapper
Pieter Wuille (2):
Encapsulate CLevelDB iterators cleanly
Fix chainstate serialized_size computation
R E Broadley (1):
Allow filterclear messages for enabling TX relay only.
Simon Liu (14):
Code clean up. Remove use of X macro.
Enable mempool logging in tx expiry QA test.
Closes #3084. Log txid when removing expired txs from mempool.
Add qa test for cache invalidation bug found in v1.0.0 to v1.0.3.
Remove local function wait_and_assert_operationid_status which is now defined in the test framework for shared usage.
Update boost to 1.66.0
Part of #2966, extending Sprout tests to other epochs.
Update boost package URL to match official download url on boost.org
Closes #3110. Ensure user can see error message about absurdly high fees.
Closes #2910. Add z_listunspent RPC call.
Upgrade OpenSSL to 1.1.0h
Use range based for loop
Bump MIT Licence copyright header.
Fix test to check for sanitized string from alertnotify.
Wladimir J. van der Laan (6):
dbwrapper: Pass parent CDBWrapper into CDBBatch and CDBIterator
dbwrapper: Move `HandleError` to `dbwrapper_private`
chain: Add assertion in case of missing records in index db
test: Add more thorough test for dbwrapper iterators
test: Replace remaining sprintf with snprintf
doc: update release-notes and bips.md for BIP111
kozyilmaz (1):
Fix test/gtest bugs caught by latest macOS clang
rofl0r (2):
fix build error due to usage of obsolete boost_system-mt
remove -mt suffix from boost libraries built by depends

View File

@@ -0,0 +1,286 @@
Notable changes
===============
zcash-cli: arguments privacy
----------------------------
The RPC command line client gained a new argument, `-stdin`
to read extra arguments from standard input, one per line until EOF/Ctrl-D.
For example:
$ src/zcash-cli -stdin walletpassphrase
mysecretcode
120
^D (Ctrl-D)
It is recommended to use this for sensitive information such as private keys, as
command-line arguments can usually be read from the process table by any user on
the system.
Asm representations of scriptSig signatures now contain SIGHASH type decodes
----------------------------------------------------------------------------
The `asm` property of each scriptSig now contains the decoded signature hash
type for each signature that provides a valid defined hash type.
The following items contain assembly representations of scriptSig signatures
and are affected by this change:
- RPC `getrawtransaction`
- RPC `decoderawtransaction`
- REST `/rest/tx/` (JSON format)
- REST `/rest/block/` (JSON format when including extended tx details)
- `zcash-tx -json`
For example, the `scriptSig.asm` property of a transaction input that
previously showed an assembly representation of:
304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c509001
now shows as:
304502207fa7a6d1e0ee81132a269ad84e68d695483745cde8b541e3bf630749894e342a022100c1f7ab20e13e22fb95281a870f3dcf38d782e53023ee313d741ad0cfbc0c5090[ALL]
Note that the output of the RPC `decodescript` did not change because it is
configured specifically to process scriptPubKey and not scriptSig scripts.
Changelog
=========
Cory Fields (4):
serialization: teach serializers variadics
build: univalue subdir build fixups
don't throw std::bad_alloc when out of memory. Instead, terminate immediately
prevector: assert successful allocation
Daira Hopwood (1):
Use https: for BDB backup download URL.
David Llop (1):
Update Payment API
Eirik Ogilvie-Wigley (7):
Clarify help text of dumpprivkey
Add sapling nullifier set
Add enum for nullifier type
Add sapling nullifiers to db and mempool
Rename nullifier caches and maps to indicate sprout nullifiers
Make sure transactions have non-empty outputs
Coinbase transactions can not have shielded spend or output
Jack Grigg (50):
Disable building libzcashconsensus by default
depends: Upgrade Rust to 1.26.0-beta.3
depends: Add support for unpackaged Rust crates
depends: Update to latest librustzcash with sapling-crypto dependencies
Add Sapling to upgrade list
Add static asserts to ensure CONTINUE_EXECUTION doesn't collide
[Bitcoin-Tx] Adjust util-test test cases for Zcash
Handle usage of prevector for CScript in Zcash-specific code
GetSerializeSize changes in Zcash-specific code
Remove nType and nVersion from Zcash-specific code
Adjust consensus rules to require v4 transactions from Sapling activation
Implement basic Sapling v4 transaction parser
Add Sapling v4 transactions to IsStandard
Pass transaction header into correct SignatureHash serialization level
Remove now-unshadowed serialization lines that do nothing
Implement SpendDescription and OutputDescription datastructures
Add a constant for Overwinter's transaction version
Return result of boost::apply_visitor
Improve best-effort logging before termination on OOM
Attempt to log before terminating if prevector allocation fails
Fix -Wstring-plus-int warning on clang
Update mempool_nu_activation RPC test to exercise both Overwinter and Sapling
Use CBitcoinAddress wrappers in Zcash-specific code
Change JSOutPoint constructor to have js argument be uint64_t
Update CreateNewContextualCMutableTransaction to create Sapling transactions
Expire Overwinter transactions before the Sapling activation height
Remove obsolete CreateJoinSplit and GenerateParams binaries
Add missing include guard
Raise 100kB transaction size limit from Sapling activation
Benchmark the largest valid Sapling transaction in validatelargetx
Rename MAX_TX_SIZE to MAX_TX_SIZE_AFTER_SAPLING
Rework z_sendmany z-address recipient limit
Add test of Sapling transaction size boundary
Update tests for CreateNewContextualCMutableTransaction changes
wallet: Change IsLockedNote to take a JSOutPoint
wallet: Make some arguments const that can be
Implement Sapling signature hash (ZIP 243)
Update sighash tests
Introduce wrappers around CZCPaymentAddress
Introduce wrappers around CZCSpendingKey
Introduce wrappers around CZCViewingKey
Implement {Encode,Decode}PaymentAddress etc. without CZCEncoding
Add key_io includes to Zcash-specific code
Add valueBalance to value balances, and enforce its consensus rules
Track net value entering and exiting the Sapling circuit
Add contextual comment for GetValueOut() and GetShieldedValueIn()
Use boost::variant to represent shielded addresses and keys
Correctly serialize Groth16 JSDescription for verifyjoinsplit benchmark
make-release.py: Versioning changes for 1.1.1-rc1.
make-release.py: Updated manpages for 1.1.1-rc1.
Jay Graber (1):
Add test for dependent txs to mempool_tx_expiry.py
Jeremy Rubin (1):
Fix subscript[0] in base58.cpp
Jonas Schnelli (4):
[RPC] createrawtransaction: add option to set the sequence number per input
[bitcoin-tx] allow to set nSequence number over the in= command
[Bitcoin-Tx] Add tests for sequence number support
add bip32 pubkey serialization
João Barbosa (1):
Remove unused GetKeyID and IsScript methods from CBitcoinAddress
Karl-Johan Alm (1):
Removed using namespace std from bitcoin-cli/-tx and added std:: in appropriate places.
Kaz Wesley (1):
CBase58Data::SetString: cleanse the full vector
Larry Ruane (1):
fix qa/zcash/full_test_suite.py pathname
MarcoFalke (3):
[uacomment] Sanitize per BIP-0014
[rpcwallet] Don't use floating point
[test] Remove unused code
Matt Corallo (1):
Add COMPACTSIZE wrapper similar to VARINT for serialization
Pavel Janík (1):
[WIP] Remove unused statement in serialization
Pavol Rusnak (2):
implement uacomment config parameter which can add comments to user agent as per BIP-0014
limit total length of user agent comments
Pedro Branco (1):
Prevent multiple calls to ExtractDestination
Per Grön (1):
Make some globals static that can be
Peter Pratscher (1):
Backported Bitcoin PR #8704 to optionally return full tx details in the getblock rpc call
Pieter Wuille (22):
Prevector type
Remove unused ReadVersion and WriteVersion
Make streams' read and write return void
Make nType and nVersion private and sometimes const
Make GetSerializeSize a wrapper on top of CSizeComputer
Get rid of nType and nVersion
Avoid -Wshadow errors
Make CSerAction's ForRead() constexpr
Add optimized CSizeComputer serializers
Use fixed preallocation instead of costly GetSerializeSize
Add serialization for unique_ptr and shared_ptr
Add deserializing constructors to CTransaction and CMutableTransaction
Avoid unaligned access in crypto i/o
Fix some empty vector references
Introduce wrappers around CBitcoinAddress
Move CBitcoinAddress to base58.cpp
Implement {Encode,Decode}Destination without CBitcoinAddress
Import Bech32 C++ reference code & tests
Convert base58_tests from type/payload to scriptPubKey comparison
Replace CBitcoinSecret with {Encode,Decode}Secret
Stop using CBase58Data for ext keys
Split key_io (address/key encodings) off from base58
Puru (1):
bitcoin-cli.cpp: Use symbolic constant for exit code
Sean Bowe (49):
Switch to latest librustzcash
Invoke the merkle_hash API in librustzcash via test suite.
Link with -ldl
Update librustzcash hash
Load Sapling testnet parameters into memory.
Update librustzcash hash
Check that duplicate Sapling nullifiers don't exist within a transaction.
Abstract `uncommitted` and depth personalization for IncrementalMerkleTree.
Add implementation of Sapling merkle tree
Add regression tests and test vectors for Sapling merkle tree
Rename NullifierType to ShieldedType.
Specifically describe anchors as Sprout anchors.
Rename hashAnchor to hashSproutAnchor.
Rename hashReserved to hashSaplingAnchorEnd.
Add primitive implementation of GetSaplingAnchorEnd.
Rename DB_ANCHOR to DB_SPROUT_ANCHOR.
Rename GetAnchorAt to GetSproutAnchorAt.
Rename PushAnchor to PushSproutAnchor.
Introduce support for GetBestAnchor(SAPLING).
Generalize the PopAnchor implementation behavior.
Generalize the PushAnchor implementation behavior.
Remove underscores from gtest test names.
Rename hashSaplingAnchorEnd to hashFinalSaplingRoot to match spec.
Rename hashSproutAnchorEnd to hashFinalSproutRoot to be consistent.
Add support for Sapling anchors in coins/txdb.
Add support for PopAnchor(.., SPROUT/SAPLING)
Add `PushSaplingAnchor`
Add consensus support for Sapling merkle trees.
Add support for Sapling anchor checks in mempool consistency checks.
Calculate the correct hashFinalSaplingRoot in the miner.
Adjust tests to handle Sapling anchor cache
Evict transactions with obsolete anchors from the mempool
Fix outdated comment
Fix broken error messages.
Fix miner tests
Update sapling-crypto and librustzcash
Swap bit endianness of test vectors
Remove unnecessary IsCoinbase() check. Coinbases are guaranteed to have empty vjoinsplit.
Refactor so that dataToBeSigned can be used later in the function for other purposes.
Update to latest librustzcash
Check Sapling Spend/Output proofs and signatures.
Integrate Groth16 verification and proving.
Update librustzcash again
Adjust tests and benchmarks
Switch Rust to 1.26 Stable.
Update librustzcash
Update Sapling testnet parameters
Update merkle tree and pedersen hash tests to account for new encoding
Change txdb prefixes for sapling and avoid writing unnecessary information.
Simon Liu (14):
Part of #2966, extending Sprout tests to other epochs.
Closes #3134 - Least Authority Issue E
Refactoring: libzcash::Note is now a subclass of libzcash::BaseNote.
Refactoring: Rename class libzcash::Note to libzcash::SproutNote.
Refactoring: SproutNote member variable value moved to BaseNote.
Add virtual destructor to SproutNote and BaseNote
Remove unused SproutNote variables.
Refactoring: rename NotePlaintext --> SproutNotePlaintext
Create class hierarchy for SproutNotePlaintext.
Move memo member varible from SproutNotePlaintext to BaseNotePlaintext.
Tweaks to d0a1d83 to complete backport of Bitcoin PR #8704
Closes #3178 by adding verbosity level improvements to getblock RPC.
Fix undefined behaviour, calling memcpy with NULL pointer.
Closes #3250. Memo getter should return by reference, not by value.
Tom Harding (1):
Add optional locktime to createrawtransaction
UdjinM6 (2):
Fix exit codes:
Every main()/exit() should return/use one of EXIT_ codes instead of magic numbers
Wladimir J. van der Laan (2):
rpc: Input-from-stdin mode for bitcoin-cli
doc: mention bitcoin-cli -stdin in release notes
ca333 (2):
[fix] proton download path
update proton.mk
kozyilmaz (2):
[macOS] added curl method for param download
[macOS] use shlock instead of flock in fetch-params
mruddy (1):
Resolve issue bitcoin/bitcoin#3166.

Some files were not shown because too many files have changed in this diff Show More