diff --git a/.cirrus.yml b/.cirrus.yml
index 506aaa3827fdc..1b3501efc896d 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -91,8 +91,8 @@ task:
task:
name: "Win64 native [vs2022]"
windows_container:
- cpu: 6
- memory: 12G
+ cpu: 8
+ memory: 16G
image: cirrusci/windowsservercore:visualstudio2022
timeout_in: 120m
env:
@@ -144,7 +144,7 @@ task:
- cd %CIRRUS_WORKING_DIR%
- ccache --zero-stats --max-size=%CCACHE_SIZE%
- python build_msvc\msvc-autogen.py
- - msbuild build_msvc\bitcoin.sln -property:CLToolExe=%WRAPPED_CL%;UseMultiToolTask=true;Configuration=Release -maxCpuCount -verbosity:minimal -noLogo
+ - msbuild build_msvc\bitcoin.sln -property:CLToolExe=%WRAPPED_CL%;UseMultiToolTask=true;Configuration=Release -verbosity:minimal -noLogo
- ccache --show-stats
check_script:
- build_msvc\x64\Release\test_navcoin.exe -l test_suite
@@ -246,8 +246,8 @@ task:
<< : *GLOBAL_TASK_TEMPLATE
container:
image: ubuntu:jammy
- cpu: 4 # Increase CPU and memory to avoid timeout
- memory: 16G
+ cpu: 8 # Increase CPU and memory to avoid timeout
+ memory: 32G
env:
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
@@ -313,4 +313,3 @@ task:
env:
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
FILE_ENV: "./ci/test/00_setup_env_android.sh"
-
diff --git a/build_msvc/common.init.vcxproj.in b/build_msvc/common.init.vcxproj.in
index 395fe028799ba..7c9e0d89c0e55 100644
--- a/build_msvc/common.init.vcxproj.in
+++ b/build_msvc/common.init.vcxproj.in
@@ -5,6 +5,7 @@
16.0
true
+ 2
diff --git a/build_msvc/common.props b/build_msvc/common.props
index 278a48de55a5c..e444c7efd3758 100644
--- a/build_msvc/common.props
+++ b/build_msvc/common.props
@@ -4,7 +4,7 @@
- $(SolutionDir)\..\src\bls\mcl\../cybozulib/include;$(SolutionDir)\..\src\bls\mcl\../cybozulib_ext/include;$(SolutionDir)\..\src\bls\mcl\include;$(SolutionDir)\..\src\bls\mcl\../xbyak;$(SolutionDir)..\src\bls\include;$(SolutionDir)..\src;$(SolutionDir)..\src\univalue\include;$(SolutionDir)..\src\leveldb\include;$(SolutionDir)..\src\minisketch\include
+ $(SolutionDir)\..\src\bls\mcl\../cybozulib/include;$(SolutionDir)\..\src\bls\mcl\../cybozulib_ext/include;$(SolutionDir)\..\src\bls\mcl\include;$(SolutionDir)\..\src\bls\mcl\../xbyak;$(SolutionDir)..\src\bls\include;$(SolutionDir)..\src;$(SolutionDir)..\src\univalue\include;$(SolutionDir)..\src\leveldb\include;$(SolutionDir)..\src\minisketch\include;$(SolutionDir)..\src\secp256k1\include;%(AdditionalIncludeDirectories)
@@ -16,7 +16,7 @@
_MBCS;%(PreprocessorDefinitions);NOMINMAX;BLS_ETH;MCL_USE_VINT;MCL_VINT_FIXED_BUFFER;MCL_DONT_USE_OPENSSL;MCL_DONT_USE_XBYAK;MCLBN_DONT_EXPORT;MT;MCL_SIZEOF_UNIT=4;MCL_MAX_BIT_SIZE=384;CYBOZU_MINIMUM_EXCEPTION;%(PreprocessorDefinitions)
- $(SolutionDir)../cybozulib_ext/lib;$(SolutionDir)lib
+ $(SolutionDir)../cybozulib_ext/lib;$(SolutionDir)lib;%(AdditionalLibraryDirectories)
diff --git a/build_msvc/libbitcoinconsensus/libbitcoinconsensus.vcxproj b/build_msvc/libbitcoinconsensus/libbitcoinconsensus.vcxproj
index 4cb0bdc90218a..e8c3234c4db69 100644
--- a/build_msvc/libbitcoinconsensus/libbitcoinconsensus.vcxproj
+++ b/build_msvc/libbitcoinconsensus/libbitcoinconsensus.vcxproj
@@ -8,6 +8,12 @@
StaticLibrary
+
+ {1DBB979A-C212-45CD-9563-446A96F87F72}
+
+
+ {1DBB979A-C212-45CD-9563-446A96F87F71}
+
@@ -30,8 +36,14 @@
+
+
+
+
+
+
-
\ No newline at end of file
+
diff --git a/build_msvc/navcoin-tx/navcoin-tx.vcxproj b/build_msvc/navcoin-tx/navcoin-tx.vcxproj
index 633a412149ff5..22e9cc10b7ade 100644
--- a/build_msvc/navcoin-tx/navcoin-tx.vcxproj
+++ b/build_msvc/navcoin-tx/navcoin-tx.vcxproj
@@ -37,7 +37,9 @@
{1DBB979A-C212-45CD-9563-446A96F87F71}
+
+
diff --git a/build_msvc/navcoin-util/navcoin-util.vcxproj b/build_msvc/navcoin-util/navcoin-util.vcxproj
index 60a6dc7c01020..1bd5d9efcb8e3 100644
--- a/build_msvc/navcoin-util/navcoin-util.vcxproj
+++ b/build_msvc/navcoin-util/navcoin-util.vcxproj
@@ -37,6 +37,7 @@
{1DBB979A-C212-45CD-9563-446A96F87F71}
+
diff --git a/build_msvc/navcoin-wallet/navcoin-wallet.vcxproj b/build_msvc/navcoin-wallet/navcoin-wallet.vcxproj
index d54e5a9eb9fe7..d8cce6d7e94cf 100644
--- a/build_msvc/navcoin-wallet/navcoin-wallet.vcxproj
+++ b/build_msvc/navcoin-wallet/navcoin-wallet.vcxproj
@@ -46,6 +46,7 @@
{1DBB979A-C212-45CD-9563-446A96F87F71}
+
diff --git a/ci/test/04_install.sh b/ci/test/04_install.sh
index 53fe6d961ffde..abf88639d310f 100755
--- a/ci/test/04_install.sh
+++ b/ci/test/04_install.sh
@@ -124,13 +124,13 @@ CI_EXEC df -h
if [ "$RUN_FUZZ_TESTS" = "true" ]; then
export DIR_FUZZ_IN=${DIR_QA_ASSETS}/fuzz_seed_corpus/
if [ ! -d "$DIR_FUZZ_IN" ]; then
- CI_EXEC git clone --depth=1 https://github.com/bitcoin-core/qa-assets "${DIR_QA_ASSETS}"
+ CI_EXEC git clone --depth=1 https://github.com/navcoin/qa-assets "${DIR_QA_ASSETS}"
fi
elif [ "$RUN_UNIT_TESTS" = "true" ] || [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]; then
export DIR_UNIT_TEST_DATA=${DIR_QA_ASSETS}/unit_test_data/
if [ ! -d "$DIR_UNIT_TEST_DATA" ]; then
CI_EXEC mkdir -p "$DIR_UNIT_TEST_DATA"
- CI_EXEC curl --location --fail https://github.com/bitcoin-core/qa-assets/raw/main/unit_test_data/script_assets_test.json -o "${DIR_UNIT_TEST_DATA}/script_assets_test.json"
+ CI_EXEC curl --location --fail https://github.com/navcoin/qa-assets/raw/main/unit_test_data/script_assets_test.json -o "${DIR_UNIT_TEST_DATA}/script_assets_test.json"
fi
fi
diff --git a/doc/fuzzing.md b/doc/fuzzing.md
index 92f12097c4e6c..cfb31196b2e9f 100644
--- a/doc/fuzzing.md
+++ b/doc/fuzzing.md
@@ -82,12 +82,12 @@ $ FUZZ=address_deserialize_v2 src/test/fuzz/fuzz -runs=1 fuzz_seed_corpus/addres
## Fuzzing corpora
-The project's collection of seed corpora is found in the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) repo.
+The project's collection of seed corpora is found in the [`navcoin/qa-assets`](https://github.com/navcoin/qa-assets) repo.
-To fuzz `process_message` using the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) seed corpus:
+To fuzz `process_message` using the [`navcoin/qa-assets`](https://github.com/navcoin/qa-assets) seed corpus:
```sh
-$ git clone https://github.com/bitcoin-core/qa-assets
+$ git clone https://github.com/navcoin/qa-assets
$ FUZZ=process_message src/test/fuzz/fuzz qa-assets/fuzz_seed_corpus/process_message/
INFO: Seed: 1346407872
INFO: Loaded 1 modules (424174 inline 8-bit counters): 424174 [0x55d8a9004ab8, 0x55d8a906c3a6),
@@ -101,7 +101,7 @@ INFO: seed corpus: files: 991 min: 1b max: 1858b total: 288291b rss: 150Mb
## Run without sanitizers for increased throughput
-Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined` is good for finding bugs. However, the very slow execution even under libFuzzer will limit the ability to find new coverage. A good approach is to perform occasional long runs without the additional bug-detectors (configure `--with-sanitizers=fuzzer`) and then merge new inputs into a corpus as described in the qa-assets repo (https://github.com/bitcoin-core/qa-assets/blob/main/.github/PULL_REQUEST_TEMPLATE.md). Patience is useful; even with improved throughput, libFuzzer may need days and 10s of millions of executions to reach deep/hard targets.
+Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined` is good for finding bugs. However, the very slow execution even under libFuzzer will limit the ability to find new coverage. A good approach is to perform occasional long runs without the additional bug-detectors (configure `--with-sanitizers=fuzzer`) and then merge new inputs into a corpus as described in the qa-assets repo (https://github.com/navcoin/qa-assets/blob/main/.github/PULL_REQUEST_TEMPLATE.md). Patience is useful; even with improved throughput, libFuzzer may need days and 10s of millions of executions to reach deep/hard targets.
## Reproduce a fuzzer crash reported by the CI
@@ -117,9 +117,9 @@ Fuzzing on a harness compiled with `--with-sanitizers=address,fuzzer,undefined`
## Submit improved coverage
-If you find coverage increasing inputs when fuzzing you are highly encouraged to submit them for inclusion in the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) repo.
+If you find coverage increasing inputs when fuzzing you are highly encouraged to submit them for inclusion in the [`navcoin/qa-assets`](https://github.com/navcoin/qa-assets) repo.
-Every single pull request submitted against the Bitcoin Core repo is automatically tested against all inputs in the [`bitcoin-core/qa-assets`](https://github.com/bitcoin-core/qa-assets) repo. Contributing new coverage increasing inputs is an easy way to help make Bitcoin Core more robust.
+Every single pull request submitted against the Bitcoin Core repo is automatically tested against all inputs in the [`navcoin/qa-assets`](https://github.com/navcoin/qa-assets) repo. Contributing new coverage increasing inputs is an easy way to help make Bitcoin Core more robust.
## macOS hints for libFuzzer
@@ -323,7 +323,7 @@ be decoded in the same way.
Fuzzing with Eclipser will likely be much more effective if using an existing corpus:
```sh
-$ git clone https://github.com/bitcoin-core/qa-assets
+$ git clone https://github.com/navcoin/qa-assets
$ FUZZ=bech32 dotnet Eclipser/build/Eclipser.dll fuzz -p src/test/fuzz/fuzz -t 36000 -i qa-assets/fuzz_seed_corpus/bech32 outputs --src stdin
```
diff --git a/src/Makefile.am b/src/Makefile.am
index 65d6f9f989534..e07089f0bdcbf 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -420,6 +420,7 @@ libbitcoin_node_a_SOURCES = \
blsct/range_proof/generators.cpp \
blsct/range_proof/lazy_g1point.cpp \
blsct/range_proof/range_proof_logic.cpp \
+ blsct/range_proof/range_proof.cpp \
blsct/range_proof/range_proof_with_transcript.cpp \
blsct/signature.cpp \
chain.cpp \
@@ -660,6 +661,11 @@ libbitcoin_consensus_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
libbitcoin_consensus_a_SOURCES = \
arith_uint256.cpp \
arith_uint256.h \
+ blsct/arith/elements.cpp \
+ blsct/arith/mcl/mcl_g1point.cpp \
+ blsct/arith/mcl/mcl_scalar.cpp \
+ blsct/range_proof/range_proof.cpp \
+ blsct/signature.cpp \
consensus/amount.h \
consensus/merkle.cpp \
consensus/merkle.h \
@@ -684,6 +690,7 @@ libbitcoin_consensus_a_SOURCES = \
script/script_error.h \
serialize.h \
span.h \
+ streams.h \
tinyformat.h \
uint256.cpp \
uint256.h \
@@ -698,6 +705,7 @@ libbitcoin_common_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
libbitcoin_common_a_SOURCES = \
base58.cpp \
bech32.cpp \
+ blsct/arith/elements.cpp \
chainparams.cpp \
coins.cpp \
common/bloom.cpp \
@@ -744,6 +752,7 @@ endif
libbitcoin_util_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
libbitcoin_util_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
libbitcoin_util_a_SOURCES = \
+ blsct/arith/elements.cpp \
support/lockedpool.cpp \
chainparamsbase.cpp \
clientversion.cpp \
@@ -854,7 +863,7 @@ navcoin_cli_LDADD += $(EVENT_LIBS)
# navcoin-tx binary #
navcoin_tx_SOURCES = bitcoin-tx.cpp
-navcoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
+navcoin_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS)
navcoin_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
navcoin_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
@@ -900,7 +909,7 @@ endif
# navcoin-util binary #
navcoin_util_SOURCES = bitcoin-util.cpp
-navcoin_util_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
+navcoin_util_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS)
navcoin_util_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
navcoin_util_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
@@ -970,6 +979,7 @@ libbitcoinkernel_la_SOURCES = \
blsct/private_key.cpp \
blsct/public_key.cpp \
blsct/public_keys.cpp \
+ blsct/range_proof/range_proof.cpp \
blsct/signature.cpp \
chain.cpp \
chainparamsbase.cpp \
@@ -1065,7 +1075,7 @@ libbitcoinconsensus_la_LIBADD = \
$(LIBBLS) \
$(LIBMCL) \
$(LIBSECP256K1)
-libbitcoinconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_BITCOIN_INTERNAL
+libbitcoinconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include $(BLS_INCLUDES) -DBUILD_BITCOIN_INTERNAL
libbitcoinconsensus_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
endif
diff --git a/src/Makefile.test_util.include b/src/Makefile.test_util.include
index 2484b80466b23..639ca8d00d5d0 100644
--- a/src/Makefile.test_util.include
+++ b/src/Makefile.test_util.include
@@ -17,6 +17,7 @@ TEST_UTIL_H = \
blsct/private_key.h \
blsct/public_key.h \
blsct/public_keys.h \
+ blsct/signature.h \
test/util/blockfilter.h \
test/util/chainstate.h \
test/util/logging.h \
@@ -44,6 +45,7 @@ libtest_util_a_SOURCES = \
blsct/private_key.cpp \
blsct/public_key.cpp \
blsct/public_keys.cpp \
+ blsct/signature.h \
test/util/blockfilter.cpp \
test/util/logging.cpp \
test/util/mining.cpp \
diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp
index 57ca2bbe8a239..05ca733d09f3f 100644
--- a/src/bitcoin-tx.cpp
+++ b/src/bitcoin-tx.cpp
@@ -6,14 +6,15 @@
#include
#endif
+#include
#include
#include
#include
#include
#include
#include
-#include
#include
+#include
#include
#include
#include