Skip to content

Commit 386e15e

Browse files
authored
Merge branch 'master' into MACMM
2 parents d47a601 + bca63a3 commit 386e15e

File tree

469 files changed

+32702
-5176
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

469 files changed

+32702
-5176
lines changed

.github/workflows/build-factory.yml

+287
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,287 @@
1+
# Copyright (c) 2018-2019 The Veil developers
2+
# Distributed under the MIT software license, see the accompanying
3+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
4+
name: Github Actions CI for Veil
5+
on: [push, pull_request]
6+
env:
7+
SOURCE_ARTIFACT: source
8+
jobs:
9+
create-source-distribution:
10+
name: Create Source Distribution
11+
runs-on: ubuntu-18.04
12+
env:
13+
ARTIFACT_DIR: source
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v2
17+
# Needs qt and protobuf to configure qt and include veil-qt.1 in distribution
18+
- name: Install Required Packages
19+
run: |
20+
sudo apt-get update
21+
sudo apt-get install -y libboost-all-dev libdb-dev libdb++-dev libevent-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
22+
- name: Create Distribution Tarball
23+
run: |
24+
./autogen.sh
25+
./configure --with-incompatible-bdb
26+
make dist
27+
- name: Download Dependencies
28+
run: make -C depends download
29+
- name: Create Dependencies Tarball
30+
run: tar -czf depends.tar.gz depends
31+
- name: Prepare Files for Artifact
32+
run: |
33+
mkdir -p $ARTIFACT_DIR
34+
mv depends.tar.gz veil-*.tar.gz $ARTIFACT_DIR
35+
- name: Upload Artifact
36+
uses: actions/upload-artifact@v1
37+
with:
38+
name: ${{ env.SOURCE_ARTIFACT }}
39+
path: ${{ env.ARTIFACT_DIR }}
40+
build-x86_64-linux:
41+
name: Build for x86 Linux 64bit
42+
needs: create-source-distribution
43+
runs-on: ubuntu-18.04
44+
env:
45+
ARTIFACT_DIR: x86_64-linux-binaries
46+
TEST_LOG_ARTIFACT_DIR: test-logs
47+
steps:
48+
- name: Getting Source
49+
uses: actions/download-artifact@v1
50+
with:
51+
name: ${{ env.SOURCE_ARTIFACT }}
52+
- name: Extract Archives
53+
run: |
54+
tar -xzf depends.tar.gz
55+
tar -xzf veil-*.tar.gz --strip-components=1
56+
working-directory: ${{ env.SOURCE_ARTIFACT }}
57+
- name: Install Required Packages
58+
run: |
59+
sudo apt-get update
60+
sudo apt-get install -y python3-zmq
61+
- name: Build Dependencies
62+
run: make -C depends -j$(nproc)
63+
working-directory: ${{ env.SOURCE_ARTIFACT }}
64+
- name: Build Veil
65+
run: |
66+
./configure --disable-jni --enable-tests --with-comparison-tool=no --prefix=$(realpath depends/x86_64-pc-linux-gnu)
67+
make -j$(nproc)
68+
working-directory: ${{ env.SOURCE_ARTIFACT }}
69+
- name: Prepare Files for Artifact
70+
run: |
71+
mkdir -p $ARTIFACT_DIR
72+
strip $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt}
73+
mv $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} $ARTIFACT_DIR
74+
- name: Upload Artifact
75+
uses: actions/upload-artifact@v1
76+
with:
77+
name: ${{ env.ARTIFACT_DIR }}
78+
path: ${{ env.ARTIFACT_DIR }}
79+
build-win64:
80+
name: Build for Win64
81+
needs: create-source-distribution
82+
runs-on: ubuntu-18.04
83+
env:
84+
ARTIFACT_DIR: win64-binaries
85+
steps:
86+
- name: Getting Source
87+
uses: actions/download-artifact@v1
88+
with:
89+
name: ${{ env.SOURCE_ARTIFACT }}
90+
- name: Extract Archives
91+
run: |
92+
tar -xzf depends.tar.gz
93+
tar -xzf veil-*.tar.gz --strip-components=1
94+
working-directory: ${{ env.SOURCE_ARTIFACT }}
95+
- name: Install Required Packages
96+
run: |
97+
sudo apt-get update
98+
sudo apt-get install -y g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64
99+
- name: Switch MinGW GCC and G++ to POSIX Threading
100+
run: |
101+
sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
102+
sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
103+
- name: Build Dependencies
104+
run: make -C depends -j$(nproc) HOST=x86_64-w64-mingw32
105+
working-directory: ${{ env.SOURCE_ARTIFACT }}
106+
- name: Build Veil
107+
run: |
108+
./configure --disable-jni --prefix=$(realpath depends/x86_64-w64-mingw32)
109+
make -j$(nproc)
110+
working-directory: ${{ env.SOURCE_ARTIFACT }}
111+
- name: Prepare Files for Artifact
112+
run: |
113+
mkdir -p $ARTIFACT_DIR
114+
strip $SOURCE_ARTIFACT/src/{veil-cli.exe,veil-tx.exe,veild.exe,qt/veil-qt.exe}
115+
mv $SOURCE_ARTIFACT/src/{veil-cli.exe,veil-tx.exe,veild.exe,qt/veil-qt.exe} $ARTIFACT_DIR
116+
- name: Upload Artifact
117+
uses: actions/upload-artifact@v1
118+
with:
119+
name: ${{ env.ARTIFACT_DIR }}
120+
path: ${{ env.ARTIFACT_DIR }}
121+
build-osx64:
122+
name: Build for MacOSX
123+
needs: create-source-distribution
124+
runs-on: ubuntu-18.04
125+
env:
126+
ARTIFACT_DIR: macosx-binaries
127+
steps:
128+
- name: Getting Source
129+
uses: actions/download-artifact@v1
130+
with:
131+
name: ${{ env.SOURCE_ARTIFACT }}
132+
- name: Extract Archives
133+
run: |
134+
tar -xzf depends.tar.gz
135+
tar -xzf veil-*.tar.gz --strip-components=1
136+
working-directory: ${{ env.SOURCE_ARTIFACT }}
137+
- name: Install Required Packages
138+
run: |
139+
sudo apt-get update
140+
sudo apt-get install -y python3-setuptools libcap-dev zlib1g-dev cmake
141+
sudo -H pip install setuptools
142+
- name: Get macOS SDK
143+
run: |
144+
mkdir -p depends/sdk-sources
145+
mkdir -p depends/SDKs
146+
curl https://bitcoincore.org/depends-sources/sdks/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz -o depends/sdk-sources/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
147+
tar -C depends/SDKs -xf depends/sdk-sources/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers.tar.gz
148+
working-directory: ${{ env.SOURCE_ARTIFACT }}
149+
- name: Build Dependencies
150+
run: make -C depends HOST=x86_64-apple-darwin18 -j$(nproc)
151+
working-directory: ${{ env.SOURCE_ARTIFACT }}
152+
- name: Build Veil
153+
run: |
154+
./configure --enable-c++17 --disable-jni --prefix=$(realpath depends/x86_64-apple-darwin18)
155+
make -j$(nproc)
156+
working-directory: ${{ env.SOURCE_ARTIFACT }}
157+
- name: Prepare Files for Artifact
158+
run: |
159+
mkdir -p $ARTIFACT_DIR
160+
# strip fails with "Unable to recognise the format of the input file"
161+
#strip $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt}
162+
mv $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} $ARTIFACT_DIR
163+
- name: Upload Artifact
164+
uses: actions/upload-artifact@v1
165+
with:
166+
name: ${{ env.ARTIFACT_DIR }}
167+
path: ${{ env.ARTIFACT_DIR }}
168+
build-aarch64-linux:
169+
name: Build for ARM Linux 64bit
170+
needs: create-source-distribution
171+
runs-on: ubuntu-18.04
172+
env:
173+
ARTIFACT_DIR: aarch64-linux-binaries
174+
steps:
175+
- name: Getting Source
176+
uses: actions/download-artifact@v1
177+
with:
178+
name: ${{ env.SOURCE_ARTIFACT }}
179+
- name: Extract Archives
180+
run: |
181+
tar -xzf depends.tar.gz
182+
tar -xzf veil-*.tar.gz --strip-components=1
183+
working-directory: ${{ env.SOURCE_ARTIFACT }}
184+
- name: Install Required Packages
185+
run: |
186+
sudo apt-get update
187+
sudo apt-get install -y python3-zmq libcap-dev cmake g++-aarch64-linux-gnu
188+
- name: Build Dependencies
189+
run: make -C depends HOST=aarch64-linux-gnu -j$(nproc)
190+
working-directory: ${{ env.SOURCE_ARTIFACT }}
191+
- name: Build Veil
192+
run: |
193+
./configure --disable-jni --prefix=$(realpath depends/aarch64-linux-gnu)
194+
make -j$(nproc)
195+
working-directory: ${{ env.SOURCE_ARTIFACT }}
196+
- name: Prepare Files for Artifact
197+
run: |
198+
mkdir -p $ARTIFACT_DIR
199+
# strip fails with "Unable to recognise the format of the input file"
200+
# strip $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt}
201+
mv $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} $ARTIFACT_DIR
202+
- name: Upload Artifact
203+
uses: actions/upload-artifact@v1
204+
with:
205+
name: ${{ env.ARTIFACT_DIR }}
206+
path: ${{ env.ARTIFACT_DIR }}
207+
build-arm-linux-gnueabihf:
208+
name: Build for ARM Linux 32bit
209+
needs: create-source-distribution
210+
runs-on: ubuntu-18.04
211+
env:
212+
ARTIFACT_DIR: arm32-binaries
213+
steps:
214+
- name: Getting Source
215+
uses: actions/download-artifact@v1
216+
with:
217+
name: ${{ env.SOURCE_ARTIFACT }}
218+
- name: Extract Archives
219+
run: |
220+
tar -xzf depends.tar.gz
221+
tar -xzf veil-*.tar.gz --strip-components=1
222+
working-directory: ${{ env.SOURCE_ARTIFACT }}
223+
- name: Install Required Packages
224+
run: |
225+
sudo apt-get update
226+
sudo apt-get install -y g++-arm-linux-gnueabihf libgmp-dev
227+
- name: Build Dependencies
228+
run: make -C depends -j$(nproc) HOST=arm-linux-gnueabihf
229+
working-directory: ${{ env.SOURCE_ARTIFACT }}
230+
- name: Build Veil
231+
run: |
232+
./configure --disable-jni --prefix=$(realpath depends/arm-linux-gnueabihf) --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
233+
make -j$(nproc)
234+
working-directory: ${{ env.SOURCE_ARTIFACT }}
235+
- name: Prepare Files for Artifact
236+
run: |
237+
mkdir -p $ARTIFACT_DIR
238+
# strip fails with "Unable to recognise the format of the input file"
239+
# strip $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt}
240+
mv $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} $ARTIFACT_DIR
241+
- name: Upload Artifact
242+
uses: actions/upload-artifact@v1
243+
with:
244+
name: ${{ env.ARTIFACT_DIR }}
245+
path: ${{ env.ARTIFACT_DIR }}
246+
build-i686-linux32:
247+
name: Build for x86 Linux 32bit
248+
needs: create-source-distribution
249+
runs-on: ubuntu-18.04
250+
env:
251+
ARTIFACT_DIR: i686-linux32-binaries
252+
steps:
253+
- name: Getting Source
254+
uses: actions/download-artifact@v1
255+
with:
256+
name: ${{ env.SOURCE_ARTIFACT }}
257+
- name: Extract Archives
258+
run: |
259+
tar -xzf depends.tar.gz
260+
tar -xzf veil-*.tar.gz --strip-components=1
261+
working-directory: ${{ env.SOURCE_ARTIFACT }}
262+
- name: Install Required Packages
263+
run: |
264+
sudo apt-get update
265+
sudo apt-get install -y python3-zmq libboost-all-dev libevent-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev
266+
sudo add-apt-repository ppa:bitcoin/bitcoin
267+
sudo apt-get update
268+
sudo apt-get install -y libdb4.8-dev libdb4.8++-dev
269+
- name: Build Dependencies
270+
run: make -C depends -j$(nproc)
271+
working-directory: ${{ env.SOURCE_ARTIFACT }}
272+
- name: Build Veil
273+
run: |
274+
./configure --disable-jni --prefix=$(realpath depends/i686-pc-linux-gnu)
275+
make -j$(nproc)
276+
working-directory: ${{ env.SOURCE_ARTIFACT }}
277+
- name: Prepare Files for Artifact
278+
run: |
279+
mkdir -p $ARTIFACT_DIR
280+
strip $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt}
281+
mv $SOURCE_ARTIFACT/src/{veil-cli,veil-tx,veild,qt/veil-qt} $ARTIFACT_DIR
282+
- name: Upload Artifact
283+
uses: actions/upload-artifact@v1
284+
with:
285+
name: ${{ env.ARTIFACT_DIR }}
286+
path: ${{ env.ARTIFACT_DIR }}
287+

.gitmodules

Whitespace-only changes.

.travis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
dist: xenial
1+
dist: bionic
22
os: linux
33
language: minimal
44
cache:

CMakeLists.txt

+16-10
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ include_directories(src/crypto)
1414
include_directories(src/crypto/ctaes)
1515
include_directories(src/crypto/external)
1616
include_directories(src/crypto/x16r)
17+
include_directories(src/csv)
1718
include_directories(src/index)
1819
include_directories(src/interfaces)
1920
include_directories(src/leveldb/db)
@@ -181,6 +182,11 @@ add_executable(veil
181182
src/crypto/sha256_sse41.cpp
182183
src/crypto/sha512.cpp
183184
src/crypto/sha512.h
185+
src/csv/CSVread.cpp
186+
src/csv/CSVwrite.cpp
187+
src/csv/libcsv.c.cpp
188+
src/csv/strerror.cpp
189+
src/csv/strerror.hpp
184190
src/index/base.cpp
185191
src/index/base.h
186192
src/index/txindex.cpp
@@ -1001,15 +1007,15 @@ add_executable(veil
10011007
src/uint256.cpp
10021008
src/uint256.h
10031009
src/undo.h
1004-
src/util.cpp
1005-
src/util.h
1006-
src/utilmemory.h
1007-
src/utilmoneystr.cpp
1008-
src/utilmoneystr.h
1009-
src/utilstrencodings.cpp
1010-
src/utilstrencodings.h
1011-
src/utiltime.cpp
1012-
src/utiltime.h
1010+
src/util/system.cpp
1011+
src/util/system.h
1012+
src/util/memory.h
1013+
src/util/moneystr.cpp
1014+
src/util/moneystr.h
1015+
src/util/strencodings.cpp
1016+
src/util/strencodings.h
1017+
src/util/time.cpp
1018+
src/util/time.h
10131019
src/validation.cpp
10141020
src/validation.h
10151021
src/validationinterface.cpp
@@ -1022,6 +1028,6 @@ add_executable(veil
10221028
src/versionbits.h
10231029
src/walletinitinterface.h
10241030
src/warnings.cpp
1025-
src/warnings.h src/veil/zerocoin/spendreceipt.h src/veil/ringct/temprecipient.h src/veil/ringct/temprecipient.cpp src/veil/zerocoin/spendreceipt.cpp src/veil/ringct/outputrecord.cpp src/veil/ringct/outputrecord.h src/wallet/walletbalances.h src/veil/ringct/transactionrecord.h src/veil/zerocoin/mintmeta.h src/test/zerocoin_zkp_tests.cpp src/veil/zerocoin/lrucache.h src/veil/zerocoin/lrucache.cpp src/veil/zerocoin/precompute.h src/veil/zerocoin/precompute.cpp src/libzerocoin/PubcoinSignature.h src/libzerocoin/PubcoinSignature.cpp src/test/zerocoin_pubcoinsig_tests.cpp src/veil/invalid_list.h src/veil/invalid_list.cpp)
1031+
src/warnings.h src/veil/lru_cache.h src/veil/zerocoin/spendreceipt.h src/veil/ringct/temprecipient.h src/veil/ringct/temprecipient.cpp src/veil/zerocoin/spendreceipt.cpp src/veil/ringct/outputrecord.cpp src/veil/ringct/outputrecord.h src/wallet/walletbalances.h src/veil/ringct/transactionrecord.h src/veil/zerocoin/mintmeta.h src/test/zerocoin_zkp_tests.cpp src/veil/zerocoin/lrucache.h src/veil/zerocoin/lrucache.cpp src/veil/zerocoin/precompute.h src/veil/zerocoin/precompute.cpp src/libzerocoin/PubcoinSignature.h src/libzerocoin/PubcoinSignature.cpp src/test/zerocoin_pubcoinsig_tests.cpp src/veil/invalid_list.h src/veil/invalid_list.cpp)
10261032

10271033
qt5_use_modules(veil Core Widgets Gui)

CONTRIBUTING.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,12 @@ the pull request affects. Valid areas as:
6969

7070
- *Consensus* for changes to consensus critical code
7171
- *Docs* for changes to the documentation
72-
- *Qt* for changes to bitcoin-qt
72+
- *Qt* for changes to veil-qt
7373
- *Mining* for changes to the mining code
7474
- *Net* or *P2P* for changes to the peer-to-peer network code
7575
- *RPC/REST/ZMQ* for changes to the RPC, REST or ZMQ APIs
7676
- *Scripts and tools* for changes to the scripts and tools
77-
- *Tests* for changes to the bitcoin unit tests or QA tests
77+
- *Tests* for changes to the veil unit tests or QA tests
7878
- *Trivial* should **only** be used for PRs that do not change generated
7979
executable code. Notably, refactors (change of function arguments and code
8080
reorganization) and changes in behavior should **not** be marked as trivial.

Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus
3535
OSX_FANCY_PLIST=$(top_srcdir)/contrib/macdeploy/fancy.plist
3636
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns
3737
OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed
38-
OSX_QT_TRANSLATIONS = da,de,es,hu,ru,uk,zh_CN,zh_TW
38+
OSX_QT_TRANSLATIONS = ar,bg,ca,cs,da,de,es,fa,fi,fr,gd,gl,he,hu,it,ja,ko,lt,lv,pl,pt,ru,sk,sl,sv,uk,zh_CN,zh_TW
3939

4040
DIST_DOCS = $(wildcard doc/*.md) $(wildcard doc/release-notes/*.md)
4141
DIST_CONTRIB = $(top_srcdir)/contrib/veil-cli.bash-completion \

README.md

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
Veil integration/staging tree
22
=============================
33

4-
[![Build Status](https://travis-ci.com/Veil-Project/veil.svg?branch=master)](https://travis-ci.com/Veil-Project/veil?branch=master)
54
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/veil-project/veil?color=%23001e58&cacheSeconds=3600)](https://github.com/Veil-Project/veil/releases)
65
[![GitHub Release Date](https://img.shields.io/github/release-date/veil-project/veil?color=%23001e58&cacheSeconds=3600)](https://github.com/Veil-Project/veil/releases)
76

@@ -10,11 +9,11 @@ https://veil-project.com
109
What is Veil?
1110
---------------
1211

13-
Veil is a cryptocurrency intending to set a new standard in the space of privacy-focused networks. Combining the Zerocoin protocol with RingCT, Veil provides always-on anonymity. Dandelion and Bulletproofs provide for enhanced privacy and decreased data size, respectively, for its network transactions.
12+
Veil is a cryptocurrency released in 2019 setting a new standard in privacy-focused networks. Combining a lightened version of the Zerocoin protocol with RingCT, Veil provides always-on anonymity. Dandelion and Bulletproofs provide for enhanced privacy and decreased data size, respectively, for Veil's network transactions.
1413

15-
Hybrid Proof-of-Work and Proof-of-Stake consensus during its first year provide for fair coin distribution (i.e. no pre-mines or ICOs), highly distributed security, and the opportunity Veil users to earn yield through staking rewards. An enhanced hashing algorithm evolved from X16R—called X16RT—provides additional support for fair distribution through enhanced protection against FPGAs.
14+
Hybrid cpu-mineable Proof-of-Work and Proof-of-Stake consensus provided a fair coin distribution during Veil's first year (no pre-mine or ICO), with three new algorithms in 2020 replacing Veil's original X16RT, which originally gave enhanced protection against FPGAs. Veil's triple Proof-of-Work algorithms, SHA256D, RandomX, and ProgPoW provide highly distributed security, and the opportunity for Veil users to earn yield through staking rewards, while providing for CPU and GPU-based mining.
1615

17-
Finally, network-encoded budgeting for both operations and a dedicated research & development entity, known as Veil Labs, ensures the internal funding necessary for long-term sustainability.
16+
Finally, network-encoded budgeting ensures the internal funding necessary for long-term sustainability.
1817

1918
More information about the Veil Project—including the project roadmap, news, detailed specifications and team member bios—can be found at the project website:
2019

0 commit comments

Comments
 (0)