Commit Graph

763 Commits

Author SHA1 Message Date
moneromooo-monero
2bf636503f
bulletproofs: speed up the latest changes a bit 2018-09-11 13:38:32 +00:00
moneromooo-monero
ce0c743205
performance_tests: add padded bulletproof construction 2018-09-11 13:38:24 +00:00
moneromooo-monero
1224e53b74
core_tests: add a test for 4-aggregated BP verification 2018-09-11 13:38:22 +00:00
moneromooo-monero
0e6ed559c6
fuzz_tests: add a bulletproof fuzz test 2018-09-11 13:38:21 +00:00
moneromooo-monero
d0a0565f7d
unit_tests: add a few more multiexp unit tests 2018-09-11 13:38:19 +00:00
moneromooo-monero
6526d87f17
core_tests: add a test for a tx with empty bulletproof 2018-09-11 13:38:18 +00:00
moneromooo-monero
5ffb2ff9b7
v8: per byte fee, pad bulletproofs, fixed 11 ring size 2018-09-11 13:38:07 +00:00
moneromooo-monero
869b3bf824
bulletproofs: a few fixes from the Kudelski review
- fix integer overflow in n_bulletproof_amounts
- check input scalars are in range
- remove use of environment variable to tweak straus performance
- do not use implementation defined signed shift for signum
2018-09-11 13:38:05 +00:00
moneromooo-monero
c429176248
bulletproofs: reject points not in the main subgroup 2018-09-11 13:38:04 +00:00
moneromooo-monero
0b05a0fa74
Add Pippenger cache and limit Straus cache size 2018-09-11 13:38:02 +00:00
moneromooo-monero
51eb3bdcd6
add pippenger unit tests 2018-09-11 13:37:49 +00:00
moneromooo-monero
b17b8db3f5
performance_tests: add stats and loop count multiplier options
Stats are: min, median, standard deviation
2018-09-11 13:37:48 +00:00
moneromooo-monero
d126a02b5d
performance_tests: add aggregated bulletproof tx verification 2018-09-11 13:37:46 +00:00
moneromooo-monero
263431c486
Pippenger multiexp
Based on sarang's python code
2018-09-11 13:37:45 +00:00
moneromooo-monero
1b867e7f40
precalc the ge_p3 representation of H 2018-09-11 13:37:42 +00:00
moneromooo-monero
ef56529f93
performance_tests: document the tested bulletproof layouts 2018-09-11 13:37:41 +00:00
moneromooo-monero
3011178021
unit_tests: a couple more bulletproof unit tests for gamma 2018-09-11 13:37:40 +00:00
moneromooo-monero
c444b1b229
require canonical multi output bulletproof layout 2018-09-11 13:37:39 +00:00
moneromooo-monero
2a8fcb421b
Bulletproof aggregated verification and tests
Also constrains bulletproofs to simple rct, for simplicity
2018-09-11 13:37:37 +00:00
moneromooo-monero
71d67bda74
aligned: aligned memory alloc/realloc/free 2018-09-11 13:37:34 +00:00
moneromooo-monero
cb9ecab197
performance_tests: add signature generation/verification 2018-09-11 13:37:33 +00:00
moneromooo-monero
bacf0a1e2f
bulletproofs: add aggregated verification
Ported from sarang's java code
2018-09-11 13:37:32 +00:00
moneromooo-monero
e895c3def1
make straus cached mode thread safe, and add tests for it 2018-09-11 13:37:31 +00:00
moneromooo-monero
9ce9f8caf6
bulletproofs: add multi output bulletproofs to rct 2018-09-11 13:37:28 +00:00
moneromooo-monero
f34e2e20bd
performance_tests: add tx checking tests with more than 2 outputs 2018-09-11 13:37:27 +00:00
moneromooo-monero
0793184bd0
performance_tests: add a --verbose flag, and default to terse 2018-09-11 13:37:26 +00:00
moneromooo-monero
939bc22332
add Straus multiexp 2018-09-11 13:37:25 +00:00
moneromooo-monero
112f32f068
performance_tests: add crypto ops 2018-09-11 13:37:22 +00:00
moneromooo-monero
f5d7b9933a
performance_tests: add bulletproofs 2018-09-11 13:37:21 +00:00
moneromooo-monero
8f4ce989c2
performance_tests: add RingCT MLSAG gen/ver tests 2018-09-11 13:37:19 +00:00
moneromooo-monero
1aa10c4364
performance_tests: add (Borromean) range proofs 2018-09-11 13:37:18 +00:00
moneromooo-monero
aacfd6e370
bulletproofs: multi-output bulletproofs 2018-09-11 13:37:17 +00:00
moneromooo-monero
cb1cc757ba
performance_tests: don't override log level to 0 2018-09-11 13:37:16 +00:00
Riccardo Spagni
f0ab4dc7b2
Merge pull request #4218
5fd83c13 Cryptonight variant 2 (SChernykh)
2018-09-11 15:22:25 +02:00
luigi1111
ab85b924c9
Merge pull request #4293
9d65399 is_hdd update (p8p)
2018-09-10 15:07:02 -05:00
luigi1111
36d7b1b67c
Merge pull request #4230
96c1de9 fixed cncrypto tests not passing after the change in random_scalar (msgmaxim)
2018-09-10 15:03:01 -05:00
moneromooo-monero
44439c3208
record blackballs as amount/offset, and add export ability 2018-09-10 09:04:18 +00:00
SChernykh
5fd83c13fb Cryptonight variant 2
Contains two modifications to improve ASIC resistance: shuffle and integer math.

Shuffle makes use of the whole 64-byte cache line instead of 16 bytes only, making Cryptonight 4 times more demanding for memory bandwidth.

Integer math adds 64:32 bit integer division followed by 64 bit integer square root, adding large and unavoidable computational latency to the main loop.

More details and performance numbers: https://github.com/SChernykh/xmr-stak-cpu/blob/master/README.md
2018-09-09 20:43:01 +02:00
luigi1111
ca4e477dc2
Merge pull request #4298
67666b1 unit_tests: disable mlocker tests on windows (no implementation) (moneromooo-monero)
2018-09-04 13:30:13 -05:00
luigi1111
0722287774
Merge pull request #4275
2a100fd unit_tests: add tests for incremental keccak (moneromooo-monero)
2018-09-04 13:23:10 -05:00
luigi1111
ad5aabc85a
Merge pull request #4264
0c8d8f6 unit_tests: remove std::move in return statement (moneromooo-monero)
2018-09-04 13:14:08 -05:00
luigi1111
59dc37a1b0
Merge pull request #4257
b21fdaa fuzz: set address properly (stoffu)
2018-09-04 13:07:11 -05:00
luigi1111
88e5ed0072
Merge pull request #4245
8ca1215 wallet: store trusted-daemon flag in wallet2 (stoffu)
2018-09-04 13:03:37 -05:00
p8p
9d6539923e
is_hdd update 2018-08-25 04:31:22 -07:00
moneromooo-monero
67666b14ba
unit_tests: disable mlocker tests on windows (no implementation) 2018-08-23 21:59:33 +00:00
moneromooo-monero
d2e26c23f3
add and use constant time 32 byte equality function 2018-08-23 07:56:51 +00:00
stoffu
8ca1215f25
wallet: store trusted-daemon flag in wallet2 2018-08-23 14:55:09 +09:00
luigi1111
a5d21be843
Merge pull request #4210
4616cf2 Fixed ZMQ-RPC for transactions and GET_BLOCKS_FAST (vtnerd)
2018-08-22 20:47:28 -05:00
luigi1111
7e4507a048
Merge pull request #4200
43f7110 blockchain_db: remove unused get_output_key variant (moneromooo-monero)
2018-08-22 20:40:37 -05:00
moneromooo-monero
2a100fd81f
unit_tests: add tests for incremental keccak 2018-08-20 08:47:31 +00:00
moneromooo-monero
70271fa788
common: add a class to safely wrap mlock/munlock
This class will allow mlocking small objects, of which there
may be several per page. It adds refcounting so pages are only
munlocked when the last object on that page munlocks.
2018-08-16 11:57:46 +00:00
moneromooo-monero
e9ffa91257
store secret keys encrypted where possible
The secret spend key is kept encrypted in memory, and
decrypted on the fly when needed.

Both spend and view secret keys are kept encrypted in a JSON
field in the keys file. This avoids leaving the keys in
memory due to being manipulated by the JSON I/O API.
2018-08-16 11:57:43 +00:00
moneromooo-monero
ea37614efe
wallet: wipe seed from memory where appropriate 2018-08-16 09:17:52 +00:00
stoffu
a64f57fe42
wallet2: make --restricted-rpc available for wallet RPC only 2018-08-16 09:54:23 +09:00
luigi1111
b82bcdea2d
Merge pull request #4186
c8226ad unit_tests: use valid key images, pub keys, etc (moneromooo-monero)
2018-08-15 17:44:34 -05:00
luigi1111
01475c36c0
Merge pull request #4165
68b1197 tests: ringdb: use system's temporary dir path (radfish)
2018-08-15 17:33:06 -05:00
luigi1111
5295e4eb82
Merge pull request #4137
63e342b crypto: move null_pkey/null_skey to the cpp file (moneromooo-monero)
0496c7c crypto: do not use boost::value_initialized to init null skey/pkey (moneromooo-monero)
2018-08-15 17:17:34 -05:00
moneromooo-monero
0c8d8f6b2e
unit_tests: remove std::move in return statement
This actually prevents copy elision
2018-08-15 13:38:47 +00:00
stoffu
b21fdaa874
fuzz: set address properly 2018-08-14 20:17:51 +09:00
moneromooo-monero
de905d4b48
fuzz_tests: use __AFL_INIT when available
alleged to speed things up
2018-08-13 22:13:56 +00:00
stoffu
bcab579864
wallet: allow adjusting number of rounds for the key derivation function 2018-08-08 01:56:54 +09:00
Maxim Shishmarev
96c1de979a fixed cncrypto tests not passing after the change in random_scalar 2018-08-07 15:58:40 +10:00
Lee Clagett
26a42fe54a Added features to epee::span<T> :
- Support for classes
  - Added `remove_prefix` function
  - Added `to_mut_span` and `as_mut_byte_span`
2018-08-03 20:33:07 -04:00
Lee Clagett
4616cf2641 Fixed ZMQ-RPC for transactions and GET_BLOCKS_FAST 2018-08-02 07:30:20 +00:00
moneromooo-monero
43f71100bc
blockchain_db: remove unused get_output_key variant
It was actually incorrect, as it would not return commitment
2018-07-30 21:57:47 +00:00
moneromooo-monero
c8226ad1f7
unit_tests: use valid key images, pub keys, etc 2018-07-28 19:39:59 +01:00
luigi1111
ff01c3ade4
Merge pull request #4110
639ca3b core_tests: add --filter to select which tests to run (moneromooo-monero)
2018-07-27 14:28:49 -05:00
luigi1111
3fde902394
Merge pull request #4097
61caab8 crypto: remove slight bias in key generation due to modulo (moneromooo-monero)
2018-07-27 14:23:54 -05:00
redfish
68b1197f5d tests: ringdb: use system's temporary dir path
Fixes failing test during Arch package build (due to attempt to write to
~/.bitmonero/...).

Prefix temp dir path with "monero-" because we are not putting it on the
system, so good to identify ourselves in case the dir gets left over due
to crash, etc.
2018-07-22 14:14:54 -04:00
moneromooo-monero
0496c7c91a
crypto: do not use boost::value_initialized to init null skey/pkey 2018-07-20 23:06:22 +01:00
luigi1111
f6d7e87b67
Merge pull request #4075
438d52d remove epee from link lines where it's redundant (moneromooo-monero)
2018-07-19 14:10:20 -05:00
luigi1111
5fad1c505a
Merge pull request #4073
3474154 gtest: use -fPIC with CLANG too (moneromooo-monero)
2018-07-19 14:07:49 -05:00
luigi1111
007b835daa
Merge pull request #4061
e6f4d4a unit_tests: do not recreate the same base rct sig all the time (moneromooo-monero)
2018-07-19 14:03:38 -05:00
luigi1111
94ed562148
Merge pull request #4045
7cdd147 Changed URLs to HTTPS (einsteinsfool)
2018-07-19 13:56:38 -05:00
luigi1111
3e026ff6ed
Merge pull request #4013
e5592c4 rpc: add blockchain disk size to getinfo (moneromooo-monero)
2018-07-19 13:40:42 -05:00
luigi1111
21afa71ba6
Merge pull request #3981
45e419b db: store cumulative rct output distribution in the db for speed (moneromooo-monero)
2018-07-19 13:39:24 -05:00
luigi1111
025187e6c9
Merge pull request #3854
149da42 db_lmdb: enable batch transactions by default (stoffu)
34cb6b4 add --regtest and --fixed-difficulty for regression testing (vicsn)
9e1403e update get_info RPC and bump RPC version (vicsn)
207b66e first new functional tests (vicsn)
2018-07-19 13:35:25 -05:00
luigi1111
33122ab8a6
Merge pull request #3617
4c00a4d unit_tests: add device unit tests (moneromooo-monero)
2018-07-19 13:32:36 -05:00
moneromooo-monero
45e419bd5c
db: store cumulative rct output distribution in the db for speed
This gets rid of the temporary precalc cache.

Also make the RPC able to send data back in binary or JSON,
since there can be a lot of data

This bumps the LMDB database format to v3, with migration.
2018-07-13 11:37:04 +01:00
moneromooo-monero
639ca3b1fa
core_tests: add --filter to select which tests to run 2018-07-07 19:33:35 +01:00
moneromooo-monero
61caab8a8c
crypto: remove slight bias in key generation due to modulo 2018-07-05 09:18:01 +01:00
victorsintnicolaas
207b66ecc2 first new functional tests 2018-06-29 10:06:22 +02:00
victorsintnicolaas
34cb6b4b70 add --regtest and --fixed-difficulty for regression testing
on_generateblocks RPC call combines functionality from the on_getblocktemplate and on_submitblock RPC calls to allow rapid block creation. Difficulty is set permanently to 1 for regtest.
Makes use of FAKECHAIN network type, but takes hard fork heights from mainchain
Default reserve_size in generate_blocks RPC call is now 1. If it is 0, the following error occurs 'Failed to calculate offset for'.
Queries hard fork heights info of other network types
2018-06-29 10:06:11 +02:00
moneromooo-monero
438d52deaf
remove epee from link lines where it's redundant
For some reason, this confuses and kills ASAN on startup
as it thinks const uint8_t ipv4_network_address::ID is
defined multiple times.
2018-06-28 16:45:22 +01:00
moneromooo-monero
3474154b75
gtest: use -fPIC with CLANG too 2018-06-28 16:42:52 +01:00
luigi1111
8a27caeb22
Merge pull request #3998
8db23df wallet: on first refresh, start off with a quantized height (moneromooo-monero)
2018-06-27 16:30:38 -05:00
luigi1111
a844844cda
Merge pull request #3716
a2b557f 6795bd0 209ec96 ed2c81e a830db2 57ea902 31a895e ba8331c f7f1917 41be339 f025ae9 ef2cb63 dcfd299 5d3e702 2704624 2771a18 0e4c7d0 (moneromooo-monero)
2018-06-27 15:33:01 -05:00
moneromooo-monero
e6f4d4acf0
unit_tests: do not recreate the same base rct sig all the time
Helps a bit when running with valgrind
2018-06-27 11:11:14 +01:00
moneromooo-monero
2771a18e85
threadpool: allow leaf functions to run concurrently
Decrease the number of worker threads by one to account
for the fact the calling thread acts as a worker thread now
2018-06-26 22:15:22 +01:00
moneromooo-monero
ed2c81ed95
replace std::list with std::vector on some hot paths
also use reserve where appropriate
2018-06-26 22:14:21 +01:00
luigi1111
8fad35f8e2
Merge pull request #3962
55c7fb8 epee: adaptive connection timeout system (moneromooo-monero)
2018-06-25 15:12:37 -05:00
einsteinsfool
7cdd147da5 Changed URLs to HTTPS 2018-06-23 21:15:29 +02:00
moneromooo-monero
e5592c4bab
rpc: add blockchain disk size to getinfo
This should help new nodes predict how much disk space will be
needed for a full sync
2018-06-20 23:48:37 +01:00
luigi1111
34c57d071f
Merge pull request #3938
01cc978 ringct: remove an unnecessary scalarmultBase in zeroCommit (moneromooo-monero)
2018-06-20 14:51:31 -05:00
luigi1111
c678413a89
Merge pull request #3902
f8dd433 epee: fix detection of 172.16.0.0/172.31.255.255 local IP range (moneromooo-monero)
5db9e3c unit_tests: add tests for local IP range detection (moneromooo-monero)
2018-06-20 14:22:44 -05:00
luigi1111
cfd66dae4b
Merge pull request #3691
db55263 threadpool: allow constructing an object, and misc tweaks (moneromooo-monero)
ce173cb core: remove threadpool dependency from header (moneromooo-monero)
3147468 unit_tests: add threadpool unit test (moneromooo-monero)
2018-06-17 22:04:39 -05:00
moneromooo-monero
8db23df581
wallet: on first refresh, start off with a quantized height
for privacy reasons, so an untrusted node can't easily track
wallets from IP address to IP address, etc. The granularity
is 1024 blocks, which is about a day and a half.
2018-06-13 22:44:27 +01:00
moneromooo-monero
55c7fb87a9
epee: adaptive connection timeout system
a connection's timeout is halved for every extra connection
from the same host.

Also keep track of when we don't need to use a connection
anymore, so we can close it and free the resource for another
connection.

Also use the longer timeout for non routable local addresses.
2018-06-10 19:39:38 +01:00
luigi1111
13d73d9ed6
Merge pull request #3604
54d9fff gtest: Fix compilation on MinGW with pthread /googletest#621 (stoffu)
2018-06-08 14:51:32 -05:00
luigi1111
22c8730261
Merge pull request #3450
3b941be core: add get_earliest_ideal_height_for_version() (stoffu)
2018-06-08 14:31:49 -05:00