aboutsummaryrefslogtreecommitdiff
path: root/tests/unit_tests (follow)
AgeCommit message (Collapse)AuthorFilesLines
2017-10-15Merge pull request #2582Riccardo Spagni2-0/+46
240f769d tests: add sha256sum unit test (moneromooo-monero)
2017-10-15Merge pull request #2565Riccardo Spagni1-1/+1
452d4fae tests: fix hashchain unit tests (moneromooo-monero)
2017-10-15Merge pull request #2555Riccardo Spagni1-0/+14
a4b4651c dns_utils: allow an optional DNS server IP in DNS_PUBLIC (moneromooo-monero)
2017-10-15Merge pull request #2528Riccardo Spagni1-1/+3
551a8ea6 mnemonics: new Lojban word list (Wei Tang)
2017-10-15Merge pull request #2469Riccardo Spagni1-0/+1
7adceee6 precomputed block hashes are now in blocks of N (currently 256) (moneromooo-monero)
2017-10-10dns_utils: allow an optional DNS server IP in DNS_PUBLICmoneromooo-monero1-0/+14
tcp://a.b.c.d
2017-10-07Subaddresseskenshi842-26/+26
2017-10-06Merge pull request #2523Riccardo Spagni4-10/+32
540d6fa3 tests: pass data dir as arg (redfish)
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-09-28tests: pass data dir as argredfish4-10/+32
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-monero4-4/+4
2017-09-25Merge pull request #2457Riccardo Spagni1-1/+1
d2d8a41c Use actual batch size for resize estimates (Howard Chu)
2017-09-25Merge pull request #2424Riccardo Spagni1-1/+1
28b72b6e tx_pool: pre-init tvc.m_verifivation_failed before processing (moneromooo-monero) 50a629b2 core_tests: catch (impossible in practice) tx extra api failure (moneromooo-monero) fee15ef1 wallet2: catch failure to parse address (moneromooo-monero) 1399e26d net_peerlist: remove dead code (moneromooo-monero) 50e09698 tx_pool: guard against failure getting tx hash (moneromooo-monero) 54cc209a wallet_rpc_server: catch failure to create directory (moneromooo-monero) 3e55099c wallet_rpc_server: init m_vm to NULL in ctor (moneromooo-monero) 7d0dde5e wallet_args: remove redundant default value for --log-file (moneromooo-monero) ed4a3350 wallet2: catch failure to save keys file (moneromooo-monero) 44434c8a wallet2_api: check whether dynamic_cast returns NULL (moneromooo-monero) 92f2f687 core: check return value from parse_hexstr_to_binbuff (moneromooo-monero) 5475692e wallet2_api: remove an unused, uninitialized, field (moneromooo-monero) a7ba3de1 libwallet_api_tests: initialize newblock_triggered on reset (moneromooo-monero) b2763ace wallet2_api: init error code to "no error" in the ctor (moneromooo-monero) b5faac53 get_blockchain_top now returns void (moneromooo-monero) 2e44d8f2 wallet_rpc_server: guard against exceptions (moneromooo-monero) 4230876b simplewallet: guard against I/O exceptions (moneromooo-monero) 06c1e057 daemon: initialize decode_as_json in RPC request (moneromooo-monero) 11f71af5 http_base: init size_t in http_request_info ctor (moneromooo-monero)
2017-09-25Merge pull request #2442Riccardo Spagni1-0/+1
e29282d2 build: auto update version info without manually deleting version.h (stoffu)
2017-09-25Merge pull request #2440Riccardo Spagni2-0/+75
6137a0b9 blockchain: reject unsorted ins and outs from v7 (moneromooo-monero) 16afab90 core: sort ins and outs key key image and public key, respectively (moneromooo-monero) 0c36b9f9 common: add apply_permutation file and function (moneromooo-monero)
2017-09-25get_blockchain_top now returns voidmoneromooo-monero1-1/+1
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-21build: auto update version info without manually deleting version.hstoffu1-0/+1
2017-09-18precomputed block hashes are now in blocks of N (currently 256)moneromooo-monero1-0/+1
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-monero1-0/+1
Defaults to off, but fluffy blocks are forced enabled on testnet
2017-08-22Cleanup test impact of adding safesyncmode() methodHoward Chu1-0/+1
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-17Merge pull request #2303Riccardo Spagni1-1/+1
5a283078 cryptonote_protocol: large block sync size before v4 (moneromooo-monero) 7b747607 cryptonote_protocol: kick idle synchronizing peers (moneromooo-monero)
2017-08-17Merge pull request #2287Riccardo Spagni1-0/+1
827afcb7 protocol: pass blockchain cumulative difficulty when syncing (moneromooo-monero)
2017-08-17cryptonote_protocol: large block sync size before v4moneromooo-monero1-1/+1
2017-08-15protocol: pass blockchain cumulative difficulty when syncingmoneromooo-monero1-0/+1
Not used yet.
2017-08-15Merge pull request #2292Riccardo Spagni1-1/+3
cb2d5ac7 mnemonics: new Esperanto word list (moneromooo-monero)
2017-08-15Merge pull request #2276Riccardo Spagni1-0/+2
a1891ebe tests: fix tests build (moneromooo-monero)
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-monero1-0/+2
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-monero2-0/+277
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-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-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-30Merge pull request #2016Riccardo Spagni1-2/+2
d1db3251 Fix overlooked renaming of Português in the unit tests (Nano Akron)
2017-05-30Merge pull request #1982Riccardo Spagni2-1/+11
b52abd13 Move txpool to the database (moneromooo-monero)
2017-05-25Move txpool to the databasemoneromooo-monero2-1/+11
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-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-24Merge pull request #1983Riccardo Spagni1-1/+3
72d113dd Amended software licenses for Portuguese and Spanish (Nano Akron) 54bcd260 Added Simplified Chinese electrum word list (Nano Akron)
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-21update copyright year, fix occasional lack of newline at line endRiccardo Spagni32-32/+32
2017-02-21Merge pull request #1758Riccardo Spagni1-1/+2
5664826a unit_tests: hardfork unit test now needs get_block_blob_from_height (moneromooo-monero)
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-21Merge pull request #1727Riccardo Spagni2-2/+4
0288310e blockchain_db: add "raw" blobdata getters for block and transaction (moneromooo-monero)
2017-02-21Merge pull request #1721Riccardo Spagni3-24/+25
2cde2c02 switch to boost::thread for mingw build (Lee Clagett)
2017-02-21Merge pull request #1731Riccardo Spagni1-1/+1
a427235e core: add a missing newline on a string to be logged (moneromooo-monero) b6a2230e unit_tests: fix minor blockchain_db regression (moneromooo-monero) c488eca5 hardfork: tone down some logs (moneromooo-monero)
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 Clagett3-24/+25
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-monero2-2/+4
This speeds up operations such as serving blocks to syncing peers
2017-02-12cryptonote_protocol: misc fluffy block fixesmoneromooo-monero1-0/+2
- 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-11Merge pull request #1689Riccardo Spagni2-11/+25
ce7fcbb4 Add server auth to monerod, and client auth to wallet-cli and wallet-rpc (Lee Clagett)
2017-02-08extract some basic code from libcryptonote_core into libcryptonote_basickenshi8412-14/+14
2017-02-06Add server auth to monerod, and client auth to wallet-cli and wallet-rpcLee Clagett2-11/+25
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-monero1-0/+1
2017-01-15Merge pull request #1579Riccardo Spagni1-0/+19
f5f4109f mnemonics: fix language detection with checksum word (moneromooo-monero)
2017-01-15Merge pull request #1575Riccardo Spagni2-4/+5
b3ca0c62 unit_tests: fix portable serialization tests hardcoded data path (moneromooo-monero)
2017-01-15Merge pull request #1571Riccardo Spagni1-1/+1
81c384e4 fix do_not_relay not preventing relaying on a timer (moneromooo-monero)
2017-01-15Merge pull request #1506Riccardo Spagni1-1/+1
3ff54bdd Check for correct thread before ending batch transaction (Howard Chu) eaf8470b Must wait for previous batch to finish before starting new one (Howard Chu) c903c554 Don't cache block height, always get from DB (Howard Chu) eb1fb601 Tweak default db-sync-mode to fast:async:1 (Howard Chu) 0693cff9 Use batch transactions when syncing (Howard Chu)
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-monero1-1/+1
Also print its value when printing pool
2017-01-11Added (not yet enabled) HTTP client authenticationLee Clagett1-49/+302
2017-01-08Merge pull request #1515Riccardo Spagni1-0/+513
ada7c7da portable serializer: tests added (kenshi84) f390a0e2 portable serializer: make signerd/unsigned tx portable, ignore archive version checking (kenshi84)
2017-01-08Merge pull request #1493Riccardo Spagni1-0/+1
0478ac68 blockchain: allow marking "tx not found" without an exception (moneromooo-monero)
2017-01-08Merge pull request #1460Riccardo Spagni1-8/+9
99580adf make openalias also available for solo miner; introduce namespace tools::dns_utils; support integrated address with dns lookup (kenshi84)
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 addedkenshi841-0/+513
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-15Merge pull request #1459Riccardo Spagni1-1/+2
b00da61e Preliminary support for DragonFly BSD (Antonio Huete Jimenez)
2016-12-15Preliminary support for DragonFly BSDAntonio Huete Jimenez1-1/+2
- It builds but no further testing has been done.
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-12-04Merge pull request #1385Riccardo Spagni2-0/+218
5783dd8c tests: add unit tests for uri parsing (moneromooo-monero) 82ba2108 wallet: add API and RPC to create/parse monero: URIs (moneromooo-monero) d9001b43 epee: add functions to convert from URL format (ie, %XX values) (moneromooo-monero)
2016-11-28tests: add unit tests for uri parsingmoneromooo-monero2-0/+218
2016-11-25Added command_line::is_yesLee Clagett2-0/+51
2016-11-24Merge pull request #1371Riccardo Spagni1-2/+2
8dadf02 Fixed undefined behavior in TestDB (Lee Clagett)
2016-11-24Merge pull request #1364Riccardo Spagni2-0/+178
f025198 Added task_region - a fork/join task implementation (Lee Clagett)
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-monero1-0/+3
2016-11-10tests: fix fee unit tests on 32 bitmoneromooo-monero1-3/+5
2016-11-08Merge pull request #1276Riccardo Spagni2-0/+122
18f66f4 wallet: use the dynamic per kB fee (moneromooo-monero) e6deb8a rpc: add a dynamic fee estimation RPC call (moneromooo-monero) 82dbba1 core: dynamic fee algorithm from ArticMine (moneromooo-monero)
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-23core: notify the txpool when transactions are relayedmoneromooo-monero1-0/+1
2016-10-19unit_tests: fix build after get_output_histogram signature changemoneromooo-monero1-1/+1
2016-10-04Merge pull request #1140Riccardo Spagni1-4/+4
bba6af9 wallet: cold wallet transaction signing (moneromooo-monero) 9872dcb wallet: fix log confusion between bytes and kilobytes (moneromooo-monero) d9b0bf9 cryptonote_core: make extra field removal more generic (moneromooo-monero) 98f19d4 serialization: add support for serializing std::pair and std::list (moneromooo-monero)
2016-10-01tests: fix build after addition of cryptonote_core::get_block_sync_sizemoneromooo-monero1-0/+1
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-18cmake: transitive deps and remove deprecated LINK_*redfish1-6/+2
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-01Merge pull request #1018Riccardo Spagni1-1/+1
6cf8ca2 core: faster find_blockchain_supplement (moneromooo-monero)
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 gtestredfish1-1/+1
Issues #980 #983
2016-08-28rct amount key modified as per luigi1111's recommendationsmoneromooo-monero1-8/+8
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-monero1-1/+1
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-monero1-0/+5
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-28rct: make the amount key derivable by a third party with the tx keymoneromooo-monero2-15/+32
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-28tests: add basic tests for simple rct apimoneromooo-monero1-44/+378
2016-08-28integrate simple rct apimoneromooo-monero2-6/+61
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-monero2-6/+6
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-28tests: test for ringct rctSig data sizesmoneromooo-monero1-3/+44
ie, more data or less data than expected in various fields
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-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-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
2016-07-26unit_tests: check adding checkpoints succeededmoneromooo-monero1-3/+3
2016-07-13remove hf_starting_height dbmoneromooo-monero1-31/+1
It's not really needed, it used to be an optimization for when that code was not using the db and needed to recalculate things fast on startup.
2016-05-18fix: error: -Werror=misleading-indentationmoneroexample1-1/+3
Compilation of bitmonero on Arch with gcc 6.1 results in the following error: /home/mwo/bitmonero/tests/unit_tests/hardfork.cpp: In member function ‘virtual void TestDB::set_hard_fork_version(uint64_t, uint8_t)’: /home/mwo/bitmonero/tests/unit_tests/hardfork.cpp:132:5: error: this ‘if’ clause does not guard... [-Werror=misleading-indentation] if (versions.size() <= height) versions.resize(height+1); versions[height] = version; This can be fixed by simply unfolding this line into three lines.
2016-05-17Merge pull request #831Riccardo Spagni2-2/+69
9ef8c7b tests: fix tests broken by the removal of the block reward accumulation loop (moneromooo-monero) a6e717e cn_deserialize: deserialize tx_extra too (moneromooo-monero) 3eff37f unit_tests: add a write_varint/read_varint test (moneromooo-monero) 7a66387 unit_tests: fix UNBOUND_LIBRARIES/UNBOUND_LIBRARY typo (moneromooo-monero) d6bce4b core: move tx_extra parsing errors to log level 1 (moneromooo-monero)
2016-05-01unit_tests: add a write_varint/read_varint testmoneromooo-monero2-1/+68
2016-05-01unit_tests: fix UNBOUND_LIBRARIES/UNBOUND_LIBRARY typomoneromooo-monero1-1/+1
2016-04-29Merge branch 'performance' of https://github.com/LMDB/bitmoneroRiccardo Spagni1-4/+5
2016-04-05Merge branch 'performance' into masterHoward Chu1-4/+5
2016-04-05CleanupHoward Chu1-4/+5
drop obsolete remove_output() fix get_output_key(global), fix crash in blockchain_dump
2016-04-02tests: unbound API is only accessible in static buildsmoneromooo-monero1-0/+4
2016-03-29tests: add test for needed OpenSSL algorithms in unboundmoneromooo-monero2-1/+52
These can be compiled out of libunbound, leading to failure to check DNSSEC validity.
2016-03-26tests: obligatory hardfork unit build fix after interface changemoneromooo-monero1-1/+1
2016-03-26New RPC and daemon command to get output histogrammoneromooo-monero1-0/+1
This is a list of existing output amounts along with the number of outputs of that amount in the blockchain. The daemon command takes: - no parameters: all outputs with at least 3 instances - one parameter: all outputs with at least that many instances - two parameters: all outputs within that many instances The default starts at 3 to avoid massive spamming of all dust outputs in the blockchain, and is the current minimum mixin requirement. An optional vector of amounts may be passed, to request histogram only for those outputs.
2016-03-21Revert "Print stack trace upon exceptions"moneromooo-monero4-4/+2
Ain't nobody got time for link/cmake skullduggery. This reverts commit fff238ec94ac6d45fc18c315d7bc590ddfaad63d.
2016-03-19Print stack trace upon exceptionsmoneromooo-monero4-2/+4
Useful for debugging users' logs
2016-03-05unit_tests: fix hard fork unit test compilationwarptangent1-1/+1
Match changed BlockchainDB function declaration.
2016-02-29Merge pull request #689Riccardo Spagni1-1/+1
5ab33ca unit_tests: update test openalias address (moneromooo-monero)
2016-02-23unit_tests: update test openalias addressmoneromooo-monero1-1/+1
It was recently changed
2016-02-22move g_test_dbg_lock_sleep from a global to a function level staticmoneromooo-monero1-2/+0
This avoids the need to define that variable in every program which uses epee.
2016-02-08unit_tests: fix blockchain unit test after hard fork import fixmoneromooo-monero1-1/+10
2016-02-08unit_tests: fix hard fork unit test compilationmoneromooo-monero1-0/+4
2016-02-08Merge pull request #641Riccardo Spagni1-13/+9
7658ac0 blockchain: revert handle_get_objects adding block id on tx not found (moneromooo-monero) 3a0f4d8 berkeleydb: fix delete/free mismatch (moneromooo-monero) 1642be2 minor bugfixes and refactoring (Thomas Winget) 098dcf2 unit_tests: fix mnemonics unit test testing invalid seeds (moneromooo-monero)
2016-02-01unit_tests: fix mnemonics unit test testing invalid seedsmoneromooo-monero1-13/+9
Some word triplets, such as "mugged names nail", are not valid results from any 32 bit value. If used to decode a 32 bit value, the result will therefore encode to a different word triplet. Fix this by using random words converted from an actual random bitstring, ensuring we always get valid triplets.
2016-02-01unit_tests: fix hard fork unit tests and add a test for major toomoneromooo-monero1-30/+68
2016-01-21OpenBSD support for Monero.me0wmix1-2/+2
2016-01-16Fix 30f92f5630bbc7507708275a29a9ae7acf633a5bHoward Chu1-0/+1
Needed to add the corresponding (dummy) method to unit test hardfork
2016-01-02unit_tests: initialize db object in ctor, not openmoneromooo-monero1-1/+2
open isn't actually called in those tests
2015-12-31updated copyright yearRiccardo Spagni25-25/+25
2015-12-30unit_tests: remove an unused variablemoneromooo-monero1-1/+0
2015-12-30unit_tests: fix hardfork test buildmoneromooo-monero1-0/+1
The dummy blockchain class needed to have the newly added is_read_only virtual function.
2015-12-26tests: add a unit test for canonical decomposed amountsmoneromooo-monero2-0/+84
2015-12-24unit_tests: fix hard fork testsmoneromooo-monero1-1/+2
A couple stopped passing when the hard fork code was made to reject incoming hard fork versions it did not know about.
2015-12-24unit_tests: new test for IP blockingmoneromooo-monero2-0/+169
2015-12-13unit_tests: fix block reward test using post hard fork settingsmoneromooo-monero1-15/+15
This would fail, as the post hard fork settings would yield different data, and the test expects pre hard fork data.
2015-12-13tests: fix a typo in test namemoneromooo-monero1-1/+1
2015-12-05blockchain_db: make the indexing base a BlockchainDB virtual functionmoneromooo-monero1-0/+1
2015-11-24hardfork: fix more major/minor issuesmoneromooo-monero1-44/+57
Also add some more tests, and rename some instances of "version" and "add" for clarity. NOTE: the starting height values are sometimes wrong. I suspect this is due to the hard fork reorg code being buggy, since they're good when syncing after the fact. However, they're not actually used by the consensus code, so I'm ignoring this for now, but this needs debugging.
2015-11-13Adjust difficulty target (2 min) and full reward zone (60 kbytes) for block ↵Javier Smooth1-7/+7
version 2
2015-11-10hardfork: add a get_ideal_version(uint64_t) functionmoneromooo-monero1-0/+22
It returns the ideal version for a given height, which is based on the minimum height for a fork, disregarding votes
2015-11-08hardfork: allow per-fork voting thresholdsmoneromooo-monero1-0/+28
And setup the first fork to not vote
2015-11-03unit_tests: fix build without berkeleydbmoneromooo-monero1-1/+7
2015-10-27Remove some old/obsolete/unused codemoneromooo-monero1-1/+0
git history's here if needed to get any of this back
2015-10-26Build fixes for the old blockchain_storage versionmoneromooo-monero1-0/+5
2015-10-21hardfork: switch voting to block minor versionmoneromooo-monero1-4/+1
Using major version would cause older daemons to reject those blocks as they fail to deserialize blocks with a major version which is not 1. There is no such restriction on the minor version, so switching allows older daemons to coexist with newer ones till the actual fork date, when most will hopefully have updated already. Also, for the same reason, we consider a vote for 0 to be a vote for 1, since older daemons set minor version to 0.
2015-10-21unit_tests: remove leftover debug traces in hardfork testmoneromooo-monero1-2/+0