aboutsummaryrefslogtreecommitdiff
path: root/tests (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2017-11-14remove "using namespace std" from headersmoneromooo-monero4-4/+5
It's nasty, and actually breaks on Solaris, where if.h fails to build due to: struct map *if_memmap;
2017-11-08Protect node privacy by proper filtering in restricted-mode RPC answersbinaryFate1-2/+2
This patch allows to filter out sensitive information for queries that rely on the pool state, when running in restricted mode. This filtering is only applied to data sent back to RPC queries. Results of inline commands typed locally in the daemon are not affected. In practice, when running with `--restricted-rpc`: * get_transaction_pool will list relayed transactions with the fields "last relayed time" and "received time" set to zero. * get_transaction_pool will not list transaction that have do_not_relay set to true, and will not list key images that are used only for such transactions * get_transaction_pool_hashes.bin will not list such transaction * get_transaction_pool_stats will not count such transactions in any of the aggregated values that are computed The implementation does not make filtering the default, so developers should be mindful of this if they add new RPC functionality. Fixes #2590.
2017-10-29fix libwallet api test after api changeJaquee1-8/+8
2017-10-24unit_tests: fix data dir determinationmoneromooo-monero1-1/+1
2017-10-21Initialize openssl on startupmoneromooo-monero9-1/+14
2017-10-20core_tests: do not include chaingen_tests_list.h in all testsmoneromooo-monero10-12/+8
This fixes all tests being annoyingly rebuilt when one changes
2017-10-19unit tests: OOB indexes & adding subaddressCole Lightfighter1-15/+41
Tests for checking proper error throwing for out-of-bounds subaddress indexes, and proper addition of subaddresses. Signed-off-by: Cole Lightfighter <cole@onicsla.bz>
2017-10-19always use core_tests for consistency, not coretestsmoneromooo-monero2-6/+6
Other tests use unit_tests, performance_tests, etc. This fixes getting it wrong half the time when typing.
2017-10-17Subaddress unit testsCole Lightfighter2-0/+93
Basic unit test fixture, and initialization of a subaddress account. Signed-off-by: Cole Lightfighter <cole@onicsla.bz>
2017-10-17core_tests: fix for subaddress patchkenshi847-9/+10
2017-10-16unit_tests: fix build on windowsmoneromooo-monero1-1/+1
Reported by iDunk on IRC
2017-10-16performance_tests: add master spend pubkey to subaddress hashtablekenshi841-0/+1
2017-10-15performance_tests: fix build after subaddress patchmoneromooo-monero1-1/+4
2017-10-10dns_utils: allow an optional DNS server IP in DNS_PUBLICmoneromooo-monero1-0/+14
tcp://a.b.c.d
2017-10-09Fix an object lifetime bug in net load testsmoneromooo-monero4-9/+17
The commands handler must not be destroyed before the config object, or we'll be accessing freed memory. An earlier attempt at using boost::shared_ptr to control object lifetime turned out to be very invasive, though would be a better solution in theory.
2017-10-08unit_tests: fix compiling on WindowsiDunk54002-7/+5
2017-10-08unit_tests: data dir is now overridden with --data-dirmoneromooo-monero2-10/+23
rather than a raw string without option
2017-10-07Subaddresseskenshi8419-115/+138
2017-10-05tests: add sha256sum unit testmoneromooo-monero2-0/+46
2017-10-05Upgrades to epee::net_utils::network_addressLee Clagett3-2/+233
- internal nullptr checks - prevent modifications to network_address (shallow copy issues) - automagically works with any type containing interface functions - removed fnv1a hashing - ipv4_network_address now flattened with no base class
2017-10-03tests: fix hashchain unit testsmoneromooo-monero1-1/+1
and relax the not-empty safety check to stay more intuitiuve
2017-10-01Edited test readme for accuracy and depthCole Lightfighter1-122/+61
Removed some erroneous instructions, and added information about different test suites. Signed-off-by: Cole Lightfighter <cole@onicsla.bz>
2017-09-28tests: pass data dir as argredfish5-10/+33
This fixes test failure on builds that happen to be built in 'build/' instead of 'build/release'. Use boost filesystem path type.
2017-09-26mnemonics: new Lojban word listWei Tang1-1/+3
Word list authored by: sorpaas Sources: lo gimste jo'u lo ma'oste (http://guskant.github.io/lojbo/gismu-cmavo.html) N-grams of Lojban corpus (https://mw.lojban.org/papri/N-grams_of_Lojban_corpus)
2017-09-25wallet2: do not keep block hashes below last checkpointmoneromooo-monero2-0/+130
This saves a lot of space and load/save time for wallet caches
2017-09-25move checkpoints in a separate librarymoneromooo-monero7-9/+9
2017-09-25performance_tests: add a test for is_out_to_acc_precompmoneromooo-monero2-0/+23
2017-09-25core_tests: catch (impossible in practice) tx extra api failuremoneromooo-monero1-2/+4
CID 175301
2017-09-25libwallet_api_tests: initialize newblock_triggered on resetmoneromooo-monero1-1/+1
CID 161873
2017-09-25get_blockchain_top now returns voidmoneromooo-monero3-4/+3
It was always returning true, and could not be foreseen to usefully return errors in the future. This silences CID 162652 as well as saves some checking code in a few places.
2017-09-24performance_tests: adjust some iterations down a bitmoneromooo-monero2-2/+2
2017-09-21build: auto update version info without manually deleting version.hstoffu4-0/+4
2017-09-19Added test documentation & Keccak unit testCole Lightfighter1-0/+178
2017-09-19Added test documentation & Keccak unit testCole Lightfighter1-0/+28
2017-09-18precomputed block hashes are now in blocks of N (currently 256)moneromooo-monero2-0/+2
This shaves a lot of space off binaries
2017-09-18blockchain: reject unsorted ins and outs from v7moneromooo-monero1-0/+29
This ensures no information is leaked by the ordering
2017-09-17Use actual batch size for resize estimatesHoward Chu1-1/+1
And optimize import startup: Remember start_height position during initial count_blocks pass to avoid having to reread entire file again to arrive at start_height
2017-09-14Use a threadpoolHoward Chu2-178/+0
Instead of constantly creating and destroying threads
2017-09-13common: add apply_permutation file and functionmoneromooo-monero2-0/+46
This algorithm is adapted from Raymond Chen's code: https://blogs.msdn.microsoft.com/oldnewthing/20170109-00/?p=95145
2017-09-03Add a --fluffy-blocks option to relay blocks as fluffy blocksmoneromooo-monero2-0/+2
Defaults to off, but fluffy blocks are forced enabled on testnet
2017-08-29Revert "Cleanup test impact of moving blockchain_db_types()"Howard Chu2-12/+0
This reverts commit 3dd34a49efd2954b0a5eb020abd168d9379b98c4.
2017-08-22Cleanup test impact of moving blockchain_db_types()Howard Chu2-0/+12
2017-08-22Cleanup test impact of adding safesyncmode() methodHoward Chu2-0/+2
2017-08-20Toggle SAFE syncmode on and off automaticallyHoward Chu1-0/+1
If monerod is started with default sync mode, set it to SAFE after synchronization completes. Set it back to FAST if synchronization restarts (e.g. because another peer has a longer blockchain). If monerod is started with an explicit sync mode, none of this automation takes effect.
2017-08-19DB cleanupHoward Chu1-1/+1
Hide LMDB-specific stuff behind blockchain_db.h. Nobody besides blockchain_db.cpp should ever be including DB-specific headers any more.
2017-08-17cryptonote_protocol: large block sync size before v4moneromooo-monero2-2/+2
2017-08-15protocol: pass blockchain cumulative difficulty when syncingmoneromooo-monero2-0/+2
Not used yet.
2017-08-14mnemonics: new Esperanto word listmoneromooo-monero1-1/+3
Word list authored by: Engelberg, ProkhorZ Sources: Baza Radikaro Oficiala Reta Vortaro (http://www.reta-vortaro.de/revo/) Esperanto Panorama - Esperanto-English Dictionary (http://www.esperanto-panorama.net/vortaro/eoen.htm) ESPDIC - Paul Denisowski (http://www.denisowski.org/Esperanto/ESPDIC/espdic.txt)
2017-08-12protocol: fix reorgs while syncingmoneromooo-monero1-188/+0
2017-08-10tests: fix tests buildmoneromooo-monero2-0/+4
Add get_fork_version and add_ideal_fork_version to core so cryptonote_protocol does not have to need the Blockchain class directly, as it's not in its dependencies, and add those to the fake core classes in tests too.
2017-08-07core: thread most of handle_incoming_txmoneromooo-monero1-0/+1
2017-08-07cryptonote_protocol_handler: sync speedupmoneromooo-monero4-0/+291
A block queue is now placed between block download and block processing. Blocks are now requested only from one peer (unless starved). Includes a new sync_info coommand.
2017-06-24Add fuzz testing using american fuzzy lopmoneromooo-monero18-0/+685
Existing tests: block, transaction, signature, cold outputs, cold transaction. Data for these is in tests/data/fuzz. A convenience shell script is in contrib/fuzz_testing/fuzz.sh, eg: contrib/fuzz_testing/fuzz.sh signature The fuzzer will run indefinitely, ^C to stop. Fuzzing is currently supported for GCC only. I can't get CLANG to build Monero here as it dies on some system headers, so if someone wants to make it work on both, that'd be great. In particular, the __AFL_LOOP construct should be made to work so that a given run can fuzz multiple inputs, as the C++ load time is substantial.
2017-06-19unit_tests: fix build failures after network_address changesmoneromooo-monero2-64/+68
2017-06-11blockchain_db: add a txpool tx getter which returns existencemoneromooo-monero1-0/+1
Avoids exception spam for the "nope, not found" case
2017-06-09core_tests: fix tests failing due to new txpool code requitring batch ↵moneromooo-monero1-0/+1
transactions
2017-06-01Don't copy blockchain for coinbase_tx_sumHoward Chu1-1/+1
Changed Blockchain::for_all_blocks() to for_blocks_range() Operate on blockchain in-place instead of building a copy first.
2017-05-25Move txpool to the databasemoneromooo-monero4-2/+23
Integration could go further (ie, return_tx_to_pool calls should not be needed anymore, possibly other things). poolstate.bin is now obsolete.
2017-05-23changed crypto to cncrypto so it generated libcncryptoGentian5-9/+9
fix a cmakelist
2017-05-18tests: fix invalid key image testmoneromooo-monero1-2/+10
It was using an invalid key image which wasn't in the key image domain, so the transaction was rejected earlier than the test was expecting
2017-05-07Fix overlooked renaming of Português in the unit testsNano Akron1-2/+2
2017-04-24Change Old_English to English_Old - 'Old English' is actually a languageNano Akron1-1/+1
2017-04-16Added Simplified Chinese electrum word listNano Akron1-1/+3
2017-04-11Simplified the implementation and features of spanLee Clagett1-1/+1
2017-04-11Improvements for epee binary to hex functions:Lee Clagett5-8/+415
- Performance improvements - Added `span` for zero-copy pointer+length arguments - Added `std::ostream` overload for direct writing to output buffers - Removal of unused `string_tools::buff_to_hex`
2017-03-29Replace deprecated tmpnam function.Randi Joseph1-10/+16
2017-03-25mnemonics: sanity checks for word listsmoneromooo-monero1-1/+30
and a test to go with it Remember to run the test when changing word lists, or simplewallet will throw uncaught if that word list is used.
2017-03-23core: cache tx and block hashes in the respective classesmoneromooo-monero1-0/+14
An idea from smooth
2017-03-18Removed boost/asio.hpp include from epee/string_tools.hLee Clagett2-0/+98
2017-03-15Add intervening v5 fork for increased min block sizemoneromooo-monero1-25/+25
Minimum mixin 4 and enforced ringct is moved from v5 to v6. v5 is now used for an increased minimum block size (from 60000 to 300000) to cater for larger typical/minimum transaction size. The fee algorithm is also changed to decrease the base per kB fee, and add a cheap tier for those transactions which we do not care if they get delayed (or even included in a block).
2017-03-10fix dependency: put HardFork back to cryptonote_basic, made some ↵kenshi841-1/+1
BlockchainDB functions virtual again to avoid missing symbols error
2017-03-04unit_tests: fix fee tests after quantization changemoneromooo-monero1-22/+35
2017-02-25core: move hardfork back to cryptonote_coremoneromooo-monero1-1/+1
should fix a cross dependency betewen cryptonote_basic and blockchain_db
2017-02-22fix broken test dataRiccardo Spagni1-0/+0
2017-02-21update copyright year, fix occasional lack of newline at line endRiccardo Spagni112-111/+111
2017-02-21unit_tests: hardfork unit test now needs get_block_blob_from_heightmoneromooo-monero1-1/+2
2017-02-21More for PR #1724Howard Chu1-1/+1
Fix unit_tests build (get_output_key API change)
2017-02-20util: add a vercmp function to compare version numbersmoneromooo-monero2-1/+45
It is simple, supports simple x.y.z type numeric versions, and does not attempt any kind of validation
2017-02-16switch to boost::thread for mingw buildLee Clagett8-64/+69
2017-02-14unit_tests: fix minor blockchain_db regressionmoneromooo-monero1-1/+1
Due to the change in ordering for adding block and tx data to the database in f2986ccfc1f41023cd667dbb488a10df492eb8e7, adding a block twice now throws TX_EXISTS, not BLOCK_EXISTS.
2017-02-13blockchain_db: add "raw" blobdata getters for block and transactionmoneromooo-monero3-3/+5
This speeds up operations such as serving blocks to syncing peers
2017-02-12tests: fixup include paths after cryptonote_core splitmoneromooo-monero1-1/+1
2017-02-12cryptonote_protocol: misc fluffy block fixesmoneromooo-monero2-0/+4
- fix wrong block being used when a new block is received between a node elaying a fluffy block and sending a new fluffy block with txes a peer did not have - misc a neverending ping pong requesting the same missing txids when a new block is received in the meantime, causing the top block to not be the one we need - send the original fluffy block message block height when sending a new fluffy block, not the current top height, which might have been updated since - avoid sending back the whole block blob when asking for txes, send only the hash instead - plus misc cleanup and additional debugging logs
2017-02-10performance_tests: report small time per call in microsecondsmoneromooo-monero1-3/+13
This is to not report quick operations as 0 milliseconds
2017-02-10performance_tests: add tests for sc_reduce32 and cn_fast_hashmoneromooo-monero3-1/+116
2017-02-10performance_tests: initialize logging at startupmoneromooo-monero1-0/+3
2017-02-08make previous change portableTimothy D. Prime1-2/+2
Use cmake's _PREFIX and _SUFFIX to determine the library location.
2017-02-08fixes #1688 protect make debug-test from gtestTimothy D. Prime1-16/+22
In simple terms, add_subdirectory() is replaced with ExternalProject_Add(). This change is inspired by https://crascit.com/2015/07/25/cmake-gtest/ with one difference, no download, using the source we already have. Before this change, make debug-test must be preceded by make clean. Otherwise, a subsequent build would be polluted by cmake options made by tests/gtest/. Also removed the changed compiler flags. My test build did not have the affected warnings.
2017-02-08extract some basic code from libcryptonote_core into libcryptonote_basickenshi8433-58/+58
2017-02-06Add server auth to monerod, and client auth to wallet-cli and wallet-rpcLee Clagett3-12/+26
2017-02-04update wallet api testsJaquee1-7/+8
2017-01-28core_tests: decrease trace level from trace to debugmoneromooo-monero1-1/+1
It had become very, very spammy
2017-01-25Updates to epee HTTP client codeLee Clagett1-2/+2
- http_simple_client now uses std::chrono for timeouts - http_simple_client accepts timeouts per connect / invoke call - shortened names of epee http invoke functions - invoke command functions only take relative path, connection is not automatically performed
2017-01-21unit_tests: fix missing return after batch_start prototype changemoneromooo-monero1-1/+1
2017-01-16fixups in logging init calls, and add missing net context in a logmoneromooo-monero4-3/+4
2017-01-16Change logging to easylogging++moneromooo-monero14-111/+61
This replaces the epee and data_loggers logging systems with a single one, and also adds filename:line and explicit severity levels. Categories may be defined, and logging severity set by category (or set of categories). epee style 0-4 log level maps to a sensible severity configuration. Log files now also rotate when reaching 100 MB. To select which logs to output, use the MONERO_LOGS environment variable, with a comma separated list of categories (globs are supported), with their requested severity level after a colon. If a log matches more than one such setting, the last one in the configuration string applies. A few examples: This one is (mostly) silent, only outputting fatal errors: MONERO_LOGS=*:FATAL This one is very verbose: MONERO_LOGS=*:TRACE This one is totally silent (logwise): MONERO_LOGS="" This one outputs all errors and warnings, except for the "verify" category, which prints just fatal errors (the verify category is used for logs about incoming transactions and blocks, and it is expected that some/many will fail to verify, hence we don't want the spam): MONERO_LOGS=*:WARNING,verify:FATAL Log levels are, in decreasing order of priority: FATAL, ERROR, WARNING, INFO, DEBUG, TRACE Subcategories may be added using prefixes and globs. This example will output net.p2p logs at the TRACE level, but all other net* logs only at INFO: MONERO_LOGS=*:ERROR,net*:INFO,net.p2p:TRACE Logs which are intended for the user (which Monero was using a lot through epee, but really isn't a nice way to go things) should use the "global" category. There are a few helper macros for using this category, eg: MGINFO("this shows up by default") or MGINFO_RED("this is red"), to try to keep a similar look and feel for now. Existing epee log macros still exist, and map to the new log levels, but since they're used as a "user facing" UI element as much as a logging system, they often don't map well to log severities (ie, a log level 0 log may be an error, or may be something we want the user to see, such as an important info). In those cases, I tried to use the new macros. In other cases, I left the existing macros in. When modifying logs, it is probably best to switch to the new macros with explicit levels. The --log-level options and set_log commands now also accept category settings, in addition to the epee style log levels.
2017-01-15mnemonics: fix language detection with checksum wordmoneromooo-monero1-0/+19
If a checksum word is present, language detection would use just the word prefixes. However, a set of word prefixes may be found in more than one language, and so the wrong language may be found first, which could then fail the checksum, since the check may be done with a different unique prefix length from the one it was created from. We now make a checksum test when we we detect a language from prefixes only, to make sure we have the correct one.
2017-01-14Use batch transactions when syncingHoward Chu1-1/+1
Faster throughput while avoiding corruption. I.e., makes running with --db-sync-mode safe more tolerable.
2017-01-14unit_tests: fix portable serialization tests hardcoded data pathmoneromooo-monero2-4/+5
2017-01-14fix do_not_relay not preventing relaying on a timermoneromooo-monero4-5/+5
Also print its value when printing pool
2017-01-12Wallet2 + API: Callbacks for unconfirmed transfersJaquee1-0/+10
2017-01-11Added (not yet enabled) HTTP client authenticationLee Clagett1-49/+302
2017-01-07blockchain: allow marking "tx not found" without an exceptionmoneromooo-monero1-0/+1
This is a normal occurence in many cases, and there is no need to spam the log with those when it is.
2017-01-03portable serializer: tests addedkenshi847-0/+521
2016-12-21Fixed HTTP auth tests for gcc 4.9Lee Clagett1-4/+4
2016-12-21make openalias also available for solo miner; introduce namespace ↵kenshi841-8/+9
tools::dns_utils; support integrated address with dns lookup
2016-12-20Fixed uninitialized valgrind errors in serialization testsLee Clagett1-2/+4
2016-12-19Fixes for google test < 1.8Lee Clagett1-18/+18
2016-12-15Preliminary support for DragonFly BSDAntonio Huete Jimenez2-3/+4
- It builds but no further testing has been done.
2016-12-13Bitmonero namespace renamed Monero. Bitmonero namespace alias added so that ↵Randi Joseph1-136/+136
third party uses of the wallet api can transition.
2016-12-13Adding HTTP Digest Auth (but not yet enabled)Lee Clagett2-0/+473
2016-12-04ringct: luigi1111's changes to fix and speedup Borromean sigsluigi11111-8/+4
2016-12-04ringct: switch to Borromean signaturesShen Noether2-35/+18
2016-11-28tests: add unit tests for uri parsingmoneromooo-monero2-0/+218
2016-11-25Added command_line::is_yesLee Clagett2-0/+51
2016-11-23Fixed undefined behavior in TestDBLee Clagett1-2/+2
2016-11-23Added task_region - a fork/join task implementationLee Clagett2-0/+178
2016-11-20tests: fix uninitialized data valgrind reports in levin testsmoneromooo-monero1-0/+1
2016-11-20tests: fix uninitialized data valgrind reports in serialization testsmoneromooo-monero1-1/+4
2016-11-13tests: fix another fee test on 32 bitmoneromooo-monero1-1/+1
2016-11-11tests: fix tests builds after fluffy blocks mergemoneromooo-monero2-0/+6
2016-11-10tests: fix fee unit tests on 32 bitmoneromooo-monero1-3/+5
2016-11-04performance_tests: re-enable them...moneromooo-monero1-2/+0
I think I'm the only one to review things here...
2016-10-31core: dynamic fee algorithm from ArticMinemoneromooo-monero2-0/+122
The fee will vary based on the base reward and the current block size limit: fee = (R/R0) * (M0/M) * F0 R: base reward R0: reference base reward (10 monero) M: block size limit M0: minimum block size limit (60000) F0: 0.002 monero Starts applying at v4
2016-10-29ringct: check the size of amount_keys is the same as destinationsmoneromooo-monero2-2/+4
2016-10-26tests: add performance test for keypair::generatemoneromooo-monero3-0/+56
2016-10-23core: notify the txpool when transactions are relayedmoneromooo-monero2-0/+2
2016-10-19unit_tests: fix build after get_output_histogram signature changemoneromooo-monero1-1/+1
2016-10-08tests: add performance test for ge_frombytes_vartimemoneromooo-monero3-0/+73
At luigi1111's request
2016-10-08tests: add performance tests for rct signaturesmoneromooo-monero6-36/+69
2016-10-06libwallet_api: test: adjusted mixin_count=4 as it's minumum allowedIlya Kitaev1-3/+4
2016-10-06libwallet_api: some renamingsIlya Kitaev1-6/+8
2016-10-01libwallet_api: do not use fast-refresh on recoveryIlya Kitaev1-11/+53
2016-10-01tests: fix build after addition of cryptonote_core::get_block_sync_sizemoneromooo-monero2-0/+2
2016-09-30libwallet_api: fast-refresh in case of opening non-synced walletIlya Kitaev1-1/+25
2016-09-30libwallet_api: fast-refresh for new walletIlya Kitaev1-3/+28
2016-09-28libwallet_api: test for create/init wallet on mainnetIlya Kitaev1-3/+50
2016-09-28libwallet_api: tests: fixed WalletCallbackReceived testIlya Kitaev1-3/+7
2016-09-27libwallet_api: tests: test fixed according implementationIlya Kitaev1-1/+0
2016-09-27libwallet_api: tests: compilation errors fixedIlya Kitaev1-2/+2
2016-09-27wallet: cold wallet transaction signingmoneromooo-monero1-4/+4
This change adds the ability to create a new unsigned transaction from a watch only wallet, and save it to a file. This file can then be moved to another computer/VM where a cold wallet may load it, sign it, and save it. That cold wallet does not need to have a blockchain nor daemon. The signed transaction file can then be moved back to the watch only wallet, which can load it and send it to the daemon. Two new simplewallet commands to use it: sign_transfer (on the cold wallet) submit_transfer (on the watch only wallet) The transfer command used on a watch only wallet now writes an unsigned transaction set in a file called 'unsigned_monero_tx' instead of submitting the tx to the daemon as a normal wallet does. The signed tx file is called 'signed_monero_tx'.
2016-09-26wallet2_api: added Wallet::daemonBlockChainHeight()Ilya Kitaev2-5/+21
2016-09-26libwallet_api: Wallet::blockChainHeight, WalletListener::newBlockIlya Kitaev1-2/+49
2016-09-23libwallet_api: simple documentation on testing environmentIlya Kitaev2-3/+25
2016-09-22libwallet_api: tests: env variables for WALLETS_ROOT_DIR andIlya Kitaev1-13/+36
TESTNET_DAEMON_ADDRESS
2016-09-22libwallet_api: tests: changed testwallets path, uncommitted all testsIlya Kitaev1-12/+14
2016-09-20wallet2_api: getter and setter for "refresh interval"Ilya Kitaev1-6/+13
2016-09-18cmake: transitive deps and remove deprecated LINK_*redfish12-44/+35
Keep the immediate direct deps at the library that depends on them, declare deps as PUBLIC so that targets that link against that library get the library's deps as transitive deps. Break dep cycle between blockchain_db <-> crytonote_core. No code refactoring, just hide cycle from cmake so that it doesn't complain (cycles are allowed only between static libs, not shared libs). This is in preparation for supproting BUILD_SHARED_LIBS cmake built-in option for building internal libs as shared.
2016-09-14rct: rework serialization to avoid storing vector sizesmoneromooo-monero1-2/+5
2016-09-04tests: block reward: disable 64-bit-only tests on 32-bit systemsredfish1-0/+2
Issue #1008
2016-09-03fix remaining bitmonero and simplewallet bitsRiccardo Spagni10-10/+10
2016-09-01cmake: exclude tests from runningredfish1-11/+3
Minimize special cases in cmake script, likely to be forgotten.
2016-08-31core: faster find_blockchain_supplementmoneromooo-monero1-1/+1
Since this queries block heights for blocks that may or may not exist, queries for non existing blocks would throw an exception, and that would slow down the loop a lot. 7 seconds to go through a 30 hash list. Fix this by adding an optional return block height to block_exists and using this instead. Actual errors will still throw an exception. This also cuts down on log exception spam.
2016-08-30tests: cmake: fix building with system gtestredfish5-8/+9
Issues #980 #983
2016-08-30tests: cmake: use a list for enabled testsredfish1-6/+12
Avoid replicating common logic.
2016-08-30cmake: tests: gtest target is not always defined #983redfish1-2/+9
2016-08-29Prevent core_tests from building under TravisJacob Torrey1-1/+3
2016-08-28tests: hard fork list must end with a 0moneromooo-monero3-4/+4
2016-08-28New "Halfway RingCT" outputs for coinbase transactionsmoneromooo-monero10-11/+28
When RingCT is enabled, outputs from coinbase transactions are created as a single output, and stored as RingCT output, with a fake mask. Their amount is not hidden on the blockchain itself, but they are then able to be used as fake inputs in a RingCT ring. Since the output amounts are hidden, their "dustiness" is not an obstacle anymore to mixing, and this makes the coinbase transactions a lot smaller, as well as helping the TXO set to grow more slowly. Also add a new "Null" type of rct signature, which decreases the size required when no signatures are to be stored, as in a coinbase tx.
2016-08-28rct amount key modified as per luigi1111's recommendationsmoneromooo-monero2-16/+17
This allows the key to be not the same for two outputs sent to the same address (eg, if you pay yourself, and also get change back). Also remove the key amounts lists and return parameters since we don't actually generate random ones, so we don't need to save them as we can recalculate them when needed if we have the correct keys.
2016-08-28rct: rework v2 txes into prunable and non prunable datamoneromooo-monero2-39/+41
Nothing is pruned, but this allows easier changes later.
2016-08-28rct: rework the verification preparation processmoneromooo-monero1-4/+4
The whole rct data apart from the MLSAGs is now included in the signed message, to avoid malleability issues. Instead of passing the data that's not serialized as extra parameters to the verification API, the transaction is modified to fill all that information. This means the transaction can not be const anymore, but it cleaner in other ways.
2016-08-28rct: change the simple flag to a typemoneromooo-monero2-2/+2
for future expansion
2016-08-28rct: avoid the need for the last II elementShen Noether1-4/+2
This element is used in the generation of the MLSAG, but isn't needed in verification. Also misc changes in the cryptonote code to match, by mooo.
2016-08-28wallet: do not store signatures in the wallet cachemoneromooo-monero2-1/+6
Saves some substantial space. Also avoid calculating tx hashes we don't need.
2016-08-28rct: do not serialize senderPk - it is not used anymoremoneromooo-monero1-1/+3
2016-08-28core_tests: fix a couple pre-rct tests using rctmoneromooo-monero1-2/+2
2016-08-28change fork settings to allow pre-rct txes for one more fork cyclemoneromooo-monero2-9/+9
2016-08-28rct: make the amount key derivable by a third party with the tx keymoneromooo-monero3-20/+35
Scheme design from luigi1114.
2016-08-28rct: do not serialize public keys in outPkmoneromooo-monero1-1/+2
They can be reconstructed from vout
2016-08-28tests: add tests for wallet output selectionmoneromooo-monero2-1/+100
2016-08-28port get_tx_key/check_tx_key to rctmoneromooo-monero1-2/+4
2016-08-28tests: add basic tests for simple rct apimoneromooo-monero1-44/+378
2016-08-28integrate simple rct apimoneromooo-monero3-7/+65
2016-08-28move the rct commitments to the output_amounts databasemoneromooo-monero1-5/+1
Since these are needed at the same time as the output pubkeys, this is a whole lot faster, and takes less space. Only outputs of 0 amount store the commitment. When reading other outputs, a fake commitment is regenerated on the fly. This avoids having to rewrite the database to add space for fake commitments for existing outputs. This code relies on two things: - LMDB must support fixed size records per key, rather than per database (ie, all records on key 0 are the same size, all records for non 0 keys are same size, but records from key 0 and non 0 keys do have different sizes). - the commitment must be directly after the rest of the data in outkey and output_data_t.
2016-08-28rct: add the tx prefix hash into the MLSAGmoneromooo-monero5-6/+39
to protect the non-signatures parts of the tx from tampering.
2016-08-28ringct: do not serialize what can be reconstructedmoneromooo-monero2-21/+13
The mixRing (output keys and commitments) and II fields (key images) can be reconstructed from vin data. This saves some modest amount of space in the tx.
2016-08-28Add rct core testsmoneromooo-monero7-10/+764
2016-08-28tests: test for ringct rctSig data sizesmoneromooo-monero1-3/+44
ie, more data or less data than expected in various fields
2016-08-28add rct to the protocolmoneromooo-monero8-35/+26
It is not yet constrained to a fork, so don't use on the real network or you'll be orphaned or rejected.
2016-08-28make rct tx serialization workmoneromooo-monero1-0/+201
It may be suboptimal, but it's a pain to have to rebuild everything when some of this changes. Also, no clue why there seems to be two different code paths for serializing a tx...
2016-08-28ringct: allow no outputs, and add tests for this and feesmoneromooo-monero1-31/+75
2016-08-28ringct: txn fee stuffShen Noether1-0/+61
2016-08-28blockchain_db: add functions for adding/removing/getting rct commitmentsmoneromooo-monero1-0/+4
2016-08-28tests: new ringct test for checking H2 valuesShen Noether1-0/+11
Ported from Shen's RingCT repo
2016-08-28tests: zero inputs/outputs are in fact supposed to be acceptedmoneromooo-monero1-14/+14
2016-08-28ringct: add a test for prooveRange being non deterministicmoneromooo-monero1-0/+9
2016-08-28tests: more ringct range proof testsmoneromooo-monero1-0/+245
2016-08-28remove original Cryptonote blockchain_storage blockchain formatmoneromooo-monero2-3/+1
2016-08-28tests: add some more ringct building block testsmoneromooo-monero1-1/+50
2016-08-28tests: add Shen Noether's basic ringct testsmoneromooo-monero2-1/+209
2016-08-27Build the core_tests under TravisJacob Torrey1-4/+1
2016-08-26Disabled libwallet_api_test until Issue #895 resolvedJacob Torrey1-1/+3
Signed-off-by: Jacob Torrey <discipleofranok@gmail.com>
2016-08-26Disable core_tests on Travis-CIJacob Torrey1-2/+11
Signed-off-by: Jacob Torrey <discipleofranok@gmail.com>
2016-08-23libwallet_api: tests: checking for result while opening walletIlya Kitaev1-4/+6
2016-08-23libwallet_api: Wallet::amountFromString fixedIlya Kitaev1-0/+23
2016-08-22libwallet_api: tests: removed logged passwordsIlya Kitaev1-2/+2
2016-08-22libwallet_api: do not store wallet on close if status is not okIlya Kitaev1-2/+67
2016-08-11Fake outs set is now decided by the walletmoneromooo-monero1-3/+3
This plugs a privacy leak from the wallet to the daemon, as the daemon could previously see what input is included as a transaction input, which the daemon hadn't previously supplied. Now, the wallet requests a particular set of outputs, including the real one. This can result in transactions that can't be accepted if the wallet happens to select too many outputs with non standard unlock times. The daemon could know this and select another output, but the wallet is blind to it. It's currently very unlikely since I don't think anything uses non default unlock times. The wallet requests more outputs than necessary so it can use spares if any of the returns outputs are still locked. If there are not enough spares to reach the desired mixin, the transaction will fail.
2016-07-26tests: fix a bitflag test typomoneromooo-monero1-1/+1