Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V1.0.5 multios #57

Merged
merged 163 commits into from
Jan 31, 2017
Merged

V1.0.5 multios #57

merged 163 commits into from
Jan 31, 2017

Conversation

jmprcx
Copy link
Member

@jmprcx jmprcx commented Jan 31, 2017

I'll post the gtests for these the end of the night. This branch should be able to build Linux and Windows builds cleanly. Also OSX should work but I have not tested it.

str4d and others added 30 commits November 16, 2016 22:02
…etrics

Defaults to true if stdout is a TTY, else false.
…r options

Most people expect a value of 1 to enable all for command line arguments.
However to do this for the -debug option you must type "-debug=".
This has been changed to allow "-debug=1" as well as "-debug=" to
enable all debug logging
mining and the amount of space available for priority transactions.
For steady-state operation, this reduces the average time between wallet disk
writes from once per block to once per hour.

On -rescan, witness caches are only written out at the end along with the best
block, increasing speed while ensuring that on-disk state is kept consistent.

Witness caches are now never recreated during a -reindex, on the assumption that
the blocks themselves are not changing (the chain is just being reconstructed),
and so the witnesses will remain valid.

Part of zcash#1749.
These can be removed after the next MiniUPnP release.

Closes zcash#1835.
"You have validated 0 transactions!" sounds a little less enthusiastic that intended. Also, only says "1 transaction".
Metrics - Don't exclaim unless > 1

"You have validated 0 transactions!" sounds a little less enthusiastic that intended. This uses a period instead.

After patch, it also says "a transaction".
 * separate completion for bitcoind and bitcoin-cli
 * remove RPC support from bitcoind completion
 * add completion for bitcoin-tx and bitcoin-qt
 * rely on autoloading of completions
zkbot and others added 18 commits January 18, 2017 14:20
rpc: Implement random-cookie based authentication

Cherry-picked from bitcoin/bitcoin#6388.

Closes zcash#1950.
…_when_exporting, r=bitcartel

Fixes zcash#1497 ZCA-009 by restricting export to a user defined folder and sanitizing filenames
…e, r=ebfull

Add missing header

Closes zcash#2027 where gcc 6.2.0 identified that `rpcwallet.cpp` was missing a header file `<numeric>` which is required due to usage of `std::accumulate`.
…r=bitcartel

Closes zcash#1097 so that zcash-cli displays license info like zcashd.

LicenseInfo is refactored from init.cpp to util.cpp so that the
bitcoin-cli makefile target does not need to be modified.
…=bitcartel

Instruct users to run zcash-fetch-params if network params aren't available

Closes zcash#1786.
…, r=ebfull

Scan the whole chain whenever a z-key is imported

Closes zcash#1941.
* initial mac version of zclassic

Work in progress - 15JAN2017

more refactoring

linux refactoring fixes

osx refactoring fixes

initial win64 commit

fixup! initial win64 commit

compile libsnark with posix threads

build gtest and gmock with posix

Working build

fixup! Working build
Zcash 1.0.5

This release contains a number of bug fixes and minor usability improvements, including:

1. The chain is now fully rescanned when keys are imported that are older than the wallet. (zcash#1978)
2. The number of commitments in the note commitment tree is now displayed by `getblockchaininfo`. (zcash#1946)
3. `zcash.conf` now must exist in order to start zcashd. (zcash#2013)
4. Fixed a bug where `z_sendmany` logged incorrect txid fragments when sending from transparent addresses. (zcash#1980)
5. We integrated upstream's cookie-based RPC authentication. (zcash#1999)
6. We added a restriction to wallet export paths to protect user security. (zcash#2006)
7. `z_getoperationstatus` is now sorted chronologically. (zcash#2015)
8. Messages containing newlines are now rendered properly by the metrics UI. (zcash#1972)
9. We added more tools for benchmarking JoinSplit creation. (zcash#1953)
10. We now show serialized transaction size in `listtransactions`, more operation details in `z_getoperationstatus`, and the age of the note being spent in `z_sendmany` logging. (zcash#2001, zcash#1976, zcash#1977)
11. We now instruct users to run `fetch-params` if the parameters could not be found locally. (zcash#1979)
12. We handle exceptions better in some situations for more user-friendly error messages. (zcash#1976)

For a more complete list of changes, see our [1.0.5 milestone](https://github.com/zcash/zcash/milestone/49?closed=1).

Conflicts:
	README.md
	configure.ac
	contrib/debian/changelog
	contrib/debian/control
	contrib/debian/manpages/zcash-cli.1
	contrib/debian/manpages/zcashd.1
	contrib/gitian-descriptors/gitian-linux.yml
	doc/authors.md
	src/Makefile.gtest.include
	src/chainparams.cpp
	src/clientversion.h
	src/init.cpp
	src/main.h
	src/metrics.cpp
	src/metrics.h
	src/util.cpp
	src/wallet/asyncrpcoperation_sendmany.cpp
	src/wallet/asyncrpcoperation_sendmany.h
	src/wallet/rpcwallet.cpp
	src/zcbenchmarks.cpp
	zcutil/build-debian-package.sh
@radix42
Copy link

radix42 commented Jan 31, 2017

I'll do test builds on windows and mac tonight or tomorrow

@WaveringAna
Copy link
Collaborator

WaveringAna commented Jan 31, 2017

gtest passed on windows linux

@radix42
Copy link

radix42 commented Jan 31, 2017

When I build for windows it dies with:

checking whether the linker accepts -Wl,-z,relro... no
configure: error: Cannot enable RELRO

This is on a fresh clone of the v1.0.5-multios branch

@jmprcx
Copy link
Member Author

jmprcx commented Jan 31, 2017

All tests are passing for the Linux build.

user@debian:~/code/zclassic$ src/zcash-gtest
[==========] Running 107 tests from 21 test cases.
[----------] Global test environment set-up.
[----------] 24 tests from checktransaction_tests
[ RUN      ] checktransaction_tests.check_vpub_not_both_nonzero
[       OK ] checktransaction_tests.check_vpub_not_both_nonzero (0 ms)
[ RUN      ] checktransaction_tests.valid_transaction
[       OK ] checktransaction_tests.valid_transaction (0 ms)
[ RUN      ] checktransaction_tests.BadVersionTooLow
[       OK ] checktransaction_tests.BadVersionTooLow (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_vin_empty
[       OK ] checktransaction_tests.bad_txns_vin_empty (1 ms)
[ RUN      ] checktransaction_tests.bad_txns_vout_empty
[       OK ] checktransaction_tests.bad_txns_vout_empty (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_oversize
[       OK ] checktransaction_tests.bad_txns_oversize (2 ms)
[ RUN      ] checktransaction_tests.bad_txns_vout_negative
[       OK ] checktransaction_tests.bad_txns_vout_negative (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_vout_toolarge
[       OK ] checktransaction_tests.bad_txns_vout_toolarge (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_txouttotal_toolarge_outputs
[       OK ] checktransaction_tests.bad_txns_txouttotal_toolarge_outputs (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_txouttotal_toolarge_joinsplit
[       OK ] checktransaction_tests.bad_txns_txouttotal_toolarge_joinsplit (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_txintotal_toolarge_joinsplit
[       OK ] checktransaction_tests.bad_txns_txintotal_toolarge_joinsplit (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_vpub_old_negative
[       OK ] checktransaction_tests.bad_txns_vpub_old_negative (1 ms)
[ RUN      ] checktransaction_tests.bad_txns_vpub_new_negative
[       OK ] checktransaction_tests.bad_txns_vpub_new_negative (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_vpub_old_toolarge
[       OK ] checktransaction_tests.bad_txns_vpub_old_toolarge (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_vpub_new_toolarge
[       OK ] checktransaction_tests.bad_txns_vpub_new_toolarge (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_vpubs_both_nonzero
[       OK ] checktransaction_tests.bad_txns_vpubs_both_nonzero (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_inputs_duplicate
[       OK ] checktransaction_tests.bad_txns_inputs_duplicate (0 ms)
[ RUN      ] checktransaction_tests.bad_joinsplits_nullifiers_duplicate_same_joinsplit
[       OK ] checktransaction_tests.bad_joinsplits_nullifiers_duplicate_same_joinsplit (0 ms)
[ RUN      ] checktransaction_tests.bad_joinsplits_nullifiers_duplicate_different_joinsplit
[       OK ] checktransaction_tests.bad_joinsplits_nullifiers_duplicate_different_joinsplit (1 ms)
[ RUN      ] checktransaction_tests.bad_cb_has_joinsplits
[       OK ] checktransaction_tests.bad_cb_has_joinsplits (0 ms)
[ RUN      ] checktransaction_tests.bad_cb_empty_scriptsig
[       OK ] checktransaction_tests.bad_cb_empty_scriptsig (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_prevout_null
[       OK ] checktransaction_tests.bad_txns_prevout_null (0 ms)
[ RUN      ] checktransaction_tests.bad_txns_invalid_joinsplit_signature
[       OK ] checktransaction_tests.bad_txns_invalid_joinsplit_signature (0 ms)
[ RUN      ] checktransaction_tests.non_canonical_ed25519_signature
[       OK ] checktransaction_tests.non_canonical_ed25519_signature (0 ms)
[----------] 24 tests from checktransaction_tests (5 ms total)

[----------] 3 tests from wallet_zkeys_tests
[ RUN      ] wallet_zkeys_tests.store_and_load_zkeys
[       OK ] wallet_zkeys_tests.store_and_load_zkeys (0 ms)
[ RUN      ] wallet_zkeys_tests.write_zkey_direct_to_db
t[       OK ] wallet_zkeys_tests.write_zkey_direct_to_db (665 ms)
[ RUN      ] wallet_zkeys_tests.write_cryptedzkey_direct_to_db
	[       OK ] wallet_zkeys_tests.write_cryptedzkey_direct_to_db (4205 ms)
[----------] 3 tests from wallet_zkeys_tests (4875 ms total)

[----------] 1 test from json_spirit_tests
[ RUN      ] json_spirit_tests.nested_input_segfault
[       OK ] json_spirit_tests.nested_input_segfault (1 ms)
[----------] 1 test from json_spirit_tests (1 ms total)

[----------] 1 test from tautologies
[ RUN      ] tautologies.seven_eq_seven
[       OK ] tautologies.seven_eq_seven (0 ms)
[----------] 1 test from tautologies (0 ms total)

[----------] 5 tests from equihash_tests
[ RUN      ] equihash_tests.expand_and_contract_arrays
[       OK ] equihash_tests.expand_and_contract_arrays (0 ms)
[ RUN      ] equihash_tests.minimal_solution_representation
[       OK ] equihash_tests.minimal_solution_representation (0 ms)
[ RUN      ] equihash_tests.is_probably_duplicate
[       OK ] equihash_tests.is_probably_duplicate (0 ms)
[ RUN      ] equihash_tests.check_basic_solver_cancelled
[       OK ] equihash_tests.check_basic_solver_cancelled (7 ms)
[ RUN      ] equihash_tests.check_optimised_solver_cancelled
[       OK ] equihash_tests.check_optimised_solver_cancelled (11 ms)
[----------] 5 tests from equihash_tests (30 ms total)

[----------] 3 tests from joinsplit
[ RUN      ] joinsplit.h_sig
[       OK ] joinsplit.h_sig (0 ms)
[ RUN      ] joinsplit.full_api_test
* QAP number of variables: 1887090
* QAP pre degree: 2068650
* QAP degree: 2097152
* QAP number of input variables: 9
* G1 window: 20
* G2 window: 17
* G1 elements in PK: 13419707
* Non-zero G1 elements in PK: 11258422
* G2 elements in PK: 1887092
* Non-zero G2 elements in PK: 1141155
* PK size in bits: 3721036065
* G1 elements in VK: 11
* G2 elements in VK: 5
* VK size in bits: 6181
[       OK ] joinsplit.full_api_test (2272483 ms)
[ RUN      ] joinsplit.note_plaintexts
[       OK ] joinsplit.note_plaintexts (0 ms)
[----------] 3 tests from joinsplit (2272504 ms total)

[----------] 3 tests from keystore_tests
[ RUN      ] keystore_tests.store_and_retrieve_spending_key
[       OK ] keystore_tests.store_and_retrieve_spending_key (2 ms)
[ RUN      ] keystore_tests.store_and_retrieve_note_decryptor
[       OK ] keystore_tests.store_and_retrieve_note_decryptor (0 ms)
[ RUN      ] keystore_tests.store_and_retrieve_spending_key_in_encrypted_store
[       OK ] keystore_tests.store_and_retrieve_spending_key_in_encrypted_store (21 ms)
[----------] 3 tests from keystore_tests (23 ms total)

[----------] 6 tests from noteencryption
[ RUN      ] noteencryption.api
[       OK ] noteencryption.api (196 ms)
[ RUN      ] noteencryption.prf_addr
[       OK ] noteencryption.prf_addr (1 ms)
[ RUN      ] noteencryption.prf_nf
[       OK ] noteencryption.prf_nf (1 ms)
[ RUN      ] noteencryption.prf_pk
[       OK ] noteencryption.prf_pk (2 ms)
[ RUN      ] noteencryption.prf_rho
[       OK ] noteencryption.prf_rho (1 ms)
[ RUN      ] noteencryption.uint252
[       OK ] noteencryption.uint252 (0 ms)
[----------] 6 tests from noteencryption (201 ms total)

[----------] 8 tests from merkletree
[ RUN      ] merkletree.vectors
[       OK ] merkletree.vectors (47120 ms)
[ RUN      ] merkletree.emptyroots
[       OK ] merkletree.emptyroots (0 ms)
[ RUN      ] merkletree.emptyroot
[       OK ] merkletree.emptyroot (0 ms)
[ RUN      ] merkletree.deserializeInvalid
[       OK ] merkletree.deserializeInvalid (0 ms)
[ RUN      ] merkletree.deserializeInvalid2
[       OK ] merkletree.deserializeInvalid2 (0 ms)
[ RUN      ] merkletree.deserializeInvalid3
[       OK ] merkletree.deserializeInvalid3 (0 ms)
[ RUN      ] merkletree.deserializeInvalid4
[       OK ] merkletree.deserializeInvalid4 (0 ms)
[ RUN      ] merkletree.testZeroElements
[       OK ] merkletree.testZeroElements (1 ms)
[----------] 8 tests from merkletree (47122 ms total)

[----------] 1 test from Metrics
[ RUN      ] Metrics.GetLocalSolPS
[       OK ] Metrics.GetLocalSolPS (0 ms)
[----------] 1 test from Metrics (0 ms total)

[----------] 1 test from PoW
[ RUN      ] PoW.DifficultyAveraging
[       OK ] PoW.DifficultyAveraging (4 ms)
[----------] 1 test from PoW (4 ms total)

[----------] 1 test from Random
[ RUN      ] Random.MappedShuffle
[       OK ] Random.MappedShuffle (0 ms)
[----------] 1 test from Random (0 ms total)

[----------] 1 test from rpc
[ RUN      ] rpc.check_blockToJSON_returns_minified_solution
[       OK ] rpc.check_blockToJSON_returns_minified_solution (4 ms)
[----------] 1 test from rpc (4 ms total)

[----------] 1 test from Transaction
[ RUN      ] Transaction.JSDescriptionRandomized
[       OK ] Transaction.JSDescriptionRandomized (7 ms)
[----------] 1 test from Transaction (7 ms total)

[----------] 3 tests from circuit
[ RUN      ] circuit.values
[       OK ] circuit.values (0 ms)
[ RUN      ] circuit.endianness
[       OK ] circuit.endianness (0 ms)
[ RUN      ] circuit.merkle_tree_gadget_weirdness
[       OK ] circuit.merkle_tree_gadget_weirdness (29232 ms)
[----------] 3 tests from circuit (29232 ms total)

[----------] 2 tests from txid_tests
[ RUN      ] txid_tests.check_txid_and_hash_are_same
[       OK ] txid_tests.check_txid_and_hash_are_same (0 ms)
[ RUN      ] txid_tests.check_txid_and_hash_are_same_coinbase
[       OK ] txid_tests.check_txid_and_hash_are_same_coinbase (0 ms)
[----------] 2 tests from txid_tests (0 ms total)

[----------] 2 tests from libzcash_utils
[ RUN      ] libzcash_utils.convertBytesVectorToVector
[       OK ] libzcash_utils.convertBytesVectorToVector (0 ms)
[ RUN      ] libzcash_utils.convertVectorToInt
[       OK ] libzcash_utils.convertVectorToInt (0 ms)
[----------] 2 tests from libzcash_utils (0 ms total)

[----------] 18 tests from proofs
[ RUN      ] proofs.g2_subgroup_check
[       OK ] proofs.g2_subgroup_check (21 ms)
[ RUN      ] proofs.sqrt_zero
[       OK ] proofs.sqrt_zero (0 ms)
[ RUN      ] proofs.sqrt_fq
[       OK ] proofs.sqrt_fq (63 ms)
[ RUN      ] proofs.sqrt_fq2
[       OK ] proofs.sqrt_fq2 (619 ms)
[ RUN      ] proofs.size_is_expected
[       OK ] proofs.size_is_expected (0 ms)
[ RUN      ] proofs.fq_serializes_properly
[       OK ] proofs.fq_serializes_properly (5 ms)
[ RUN      ] proofs.fq2_serializes_properly
[       OK ] proofs.fq2_serializes_properly (10 ms)
[ RUN      ] proofs.fq_valid
[       OK ] proofs.fq_valid (0 ms)
[ RUN      ] proofs.fq_invalid
[       OK ] proofs.fq_invalid (0 ms)
[ RUN      ] proofs.fq2_valid
[       OK ] proofs.fq2_valid (0 ms)
[ RUN      ] proofs.fq2_invalid
[       OK ] proofs.fq2_invalid (0 ms)
[ RUN      ] proofs.g1_serializes_properly
[       OK ] proofs.g1_serializes_properly (378 ms)
[ RUN      ] proofs.g2_serializes_properly
[       OK ] proofs.g2_serializes_properly (3041 ms)
[ RUN      ] proofs.zksnark_serializes_properly
Swap is not beneficial, not performing
* QAP number of variables: 252
* QAP pre degree: 250
* QAP degree: 256
* QAP number of input variables: 4
* G1 window: 8
* G2 window: 6
* G1 elements in PK: 1783
* Non-zero G1 elements in PK: 1763
* G2 elements in PK: 254
* Non-zero G2 elements in PK: 252
* PK size in bits: 625897
* G1 elements in VK: 6
* G2 elements in VK: 5
* VK size in bits: 4586
[       OK ] proofs.zksnark_serializes_properly (3972 ms)
[ RUN      ] proofs.g1_deserialization
[       OK ] proofs.g1_deserialization (149 ms)
[ RUN      ] proofs.g2_deserialization
[       OK ] proofs.g2_deserialization (4569 ms)
[ RUN      ] proofs.g1_test_vectors
[       OK ] proofs.g1_test_vectors (3573 ms)
[ RUN      ] proofs.g2_test_vectors
[       OK ] proofs.g2_test_vectors (30572 ms)
[----------] 18 tests from proofs (46973 ms total)

[----------] 1 test from CheckBlock
[ RUN      ] CheckBlock.VersionTooLow
[       OK ] CheckBlock.VersionTooLow (10 ms)
[----------] 1 test from CheckBlock (10 ms total)

[----------] 1 test from ContextualCheckBlock
[ RUN      ] ContextualCheckBlock.BadCoinbaseHeight
[       OK ] ContextualCheckBlock.BadCoinbaseHeight (0 ms)
[----------] 1 test from ContextualCheckBlock (0 ms total)

[----------] 21 tests from wallet_tests
[ RUN      ] wallet_tests.setup_datadir_location_run_as_first_test
[       OK ] wallet_tests.setup_datadir_location_run_as_first_test (36 ms)
[ RUN      ] wallet_tests.note_data_serialisation
[       OK ] wallet_tests.note_data_serialisation (1 ms)
[ RUN      ] wallet_tests.find_unspent_notes
[       OK ] wallet_tests.find_unspent_notes (6 ms)
[ RUN      ] wallet_tests.set_note_addrs_in_cwallettx
[       OK ] wallet_tests.set_note_addrs_in_cwallettx (1 ms)
[ RUN      ] wallet_tests.set_invalid_note_addrs_in_cwallettx
[       OK ] wallet_tests.set_invalid_note_addrs_in_cwallettx (1 ms)
[ RUN      ] wallet_tests.GetNoteNullifier
[       OK ] wallet_tests.GetNoteNullifier (2 ms)
[ RUN      ] wallet_tests.FindMyNotes
[       OK ] wallet_tests.FindMyNotes (1 ms)
[ RUN      ] wallet_tests.FindMyNotesInEncryptedWallet
[       OK ] wallet_tests.FindMyNotesInEncryptedWallet (3 ms)
[ RUN      ] wallet_tests.get_conflicted_notes
[       OK ] wallet_tests.get_conflicted_notes (2 ms)
[ RUN      ] wallet_tests.nullifier_is_spent
[       OK ] wallet_tests.nullifier_is_spent (6 ms)
[ RUN      ] wallet_tests.navigate_from_nullifier_to_note
[       OK ] wallet_tests.navigate_from_nullifier_to_note (1 ms)
[ RUN      ] wallet_tests.spent_note_is_from_me
[       OK ] wallet_tests.spent_note_is_from_me (2 ms)
[ RUN      ] wallet_tests.cached_witnesses_empty_chain

[WARNING] ../src/gtest-death-test.cc:825:: Death tests use fork(), which is unsafe particularly in a threaded context. For this test, Google Test couldn't detect the number of threads.
[       OK ] wallet_tests.cached_witnesses_empty_chain (129 ms)
[ RUN      ] wallet_tests.cached_witnesses_chain_tip
[       OK ] wallet_tests.cached_witnesses_chain_tip (2 ms)
[ RUN      ] wallet_tests.CachedWitnessesDecrementFirst
[       OK ] wallet_tests.CachedWitnessesDecrementFirst (2 ms)
[ RUN      ] wallet_tests.CachedWitnessesCleanIndex
[       OK ] wallet_tests.CachedWitnessesCleanIndex (420 ms)
[ RUN      ] wallet_tests.ClearNoteWitnessCache
[       OK ] wallet_tests.ClearNoteWitnessCache (2 ms)
[ RUN      ] wallet_tests.WriteWitnessCache
[       OK ] wallet_tests.WriteWitnessCache (2 ms)
[ RUN      ] wallet_tests.UpdateNullifierNoteMap
[       OK ] wallet_tests.UpdateNullifierNoteMap (1 ms)
[ RUN      ] wallet_tests.UpdatedNoteData
[       OK ] wallet_tests.UpdatedNoteData (2 ms)
[ RUN      ] wallet_tests.MarkAffectedTransactionsDirty
[       OK ] wallet_tests.MarkAffectedTransactionsDirty (1 ms)
[----------] 21 tests from wallet_tests (625 ms total)

[----------] Global test environment tear-down
[==========] 107 tests from 21 test cases ran. (2401632 ms total)
[  PASSED  ] 107 tests.

  YOU HAVE 1 DISABLED TEST

@jmprcx jmprcx merged commit bb8e667 into master Jan 31, 2017
@WaveringAna
Copy link
Collaborator

WOOOOOOOOOO

@WaveringAna WaveringAna deleted the v1.0.5-multios branch May 28, 2017 05:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet