Commit Graph

1480 Commits

Author SHA1 Message Date
moneromooo-monero
ebc6ce44f4
cryptonote: untangle dependency from miner to blockchain
It causes link errors at least on mac
2019-10-31 01:06:42 +00:00
moneromooo-monero
f1091c410f
core_tests: remove some useless verbose logs 2019-10-30 18:41:31 +00:00
moneromooo-monero
1554a7768b
unit_tests: fix use after free 2019-10-30 18:40:20 +00:00
moneromooo-monero
261abf79e1
functional_tests: ensure mining stops on error in mining test
this prevents messing up any subsequent test too
2019-10-27 16:21:30 +00:00
moneromooo-monero
978a61f34f
functional_tests: fix rpc_payment tests with python 3 2019-10-25 23:20:33 +00:00
moneromooo-monero
2899379791
daemon, wallet: new pay for RPC use system
Daemons intended for public use can be set up to require payment
in the form of hashes in exchange for RPC service. This enables
public daemons to receive payment for their work over a large
number of calls. This system behaves similarly to a pool, so
payment takes the form of valid blocks every so often, yielding
a large one off payment, rather than constant micropayments.

This system can also be used by third parties as a "paywall"
layer, where users of a service can pay for use by mining Monero
to the service provider's address. An example of this for web
site access is Primo, a Monero mining based website "paywall":
https://github.com/selene-kovri/primo

This has some advantages:
 - incentive to run a node providing RPC services, thereby promoting the availability of third party nodes for those who can't run their own
 - incentive to run your own node instead of using a third party's, thereby promoting decentralization
 - decentralized: payment is done between a client and server, with no third party needed
 - private: since the system is "pay as you go", you don't need to identify yourself to claim a long lived balance
 - no payment occurs on the blockchain, so there is no extra transactional load
 - one may mine with a beefy server, and use those credits from a phone, by reusing the client ID (at the cost of some privacy)
 - no barrier to entry: anyone may run a RPC node, and your expected revenue depends on how much work you do
 - Sybil resistant: if you run 1000 idle RPC nodes, you don't magically get more revenue
 - no large credit balance maintained on servers, so they have no incentive to exit scam
 - you can use any/many node(s), since there's little cost in switching servers
 - market based prices: competition between servers to lower costs
 - incentive for a distributed third party node system: if some public nodes are overused/slow, traffic can move to others
 - increases network security
 - helps counteract mining pools' share of the network hash rate
 - zero incentive for a payer to "double spend" since a reorg does not give any money back to the miner

And some disadvantages:
 - low power clients will have difficulty mining (but one can optionally mine in advance and/or with a faster machine)
 - payment is "random", so a server might go a long time without a block before getting one
 - a public node's overall expected payment may be small

Public nodes are expected to compete to find a suitable level for
cost of service.

The daemon can be set up this way to require payment for RPC services:

  monerod --rpc-payment-address 4xxxxxx \
    --rpc-payment-credits 250 --rpc-payment-difficulty 1000

These values are an example only.

The --rpc-payment-difficulty switch selects how hard each "share" should
be, similar to a mining pool. The higher the difficulty, the fewer
shares a client will find.
The --rpc-payment-credits switch selects how many credits are awarded
for each share a client finds.
Considering both options, clients will be awarded credits/difficulty
credits for every hash they calculate. For example, in the command line
above, 0.25 credits per hash. A client mining at 100 H/s will therefore
get an average of 25 credits per second.
For reference, in the current implementation, a credit is enough to
sync 20 blocks, so a 100 H/s client that's just starting to use Monero
and uses this daemon will be able to sync 500 blocks per second.

The wallet can be set to automatically mine if connected to a daemon
which requires payment for RPC usage. It will try to keep a balance
of 50000 credits, stopping mining when it's at this level, and starting
again as credits are spent. With the example above, a new client will
mine this much credits in about half an hour, and this target is enough
to sync 500000 blocks (currently about a third of the monero blockchain).

There are three new settings in the wallet:

 - credits-target: this is the amount of credits a wallet will try to
reach before stopping mining. The default of 0 means 50000 credits.

 - auto-mine-for-rpc-payment-threshold: this controls the minimum
credit rate which the wallet considers worth mining for. If the
daemon credits less than this ratio, the wallet will consider mining
to be not worth it. In the example above, the rate is 0.25

 - persistent-rpc-client-id: if set, this allows the wallet to reuse
a client id across runs. This means a public node can tell a wallet
that's connecting is the same as one that connected previously, but
allows a wallet to keep their credit balance from one run to the
other. Since the wallet only mines to keep a small credit balance,
this is not normally worth doing. However, someone may want to mine
on a fast server, and use that credit balance on a low power device
such as a phone. If left unset, a new client ID is generated at
each wallet start, for privacy reasons.

To mine and use a credit balance on two different devices, you can
use the --rpc-client-secret-key switch. A wallet's client secret key
can be found using the new rpc_payments command in the wallet.
Note: anyone knowing your RPC client secret key is able to use your
credit balance.

The wallet has a few new commands too:

 - start_mining_for_rpc: start mining to acquire more credits,
regardless of the auto mining settings
 - stop_mining_for_rpc: stop mining to acquire more credits
 - rpc_payments: display information about current credits with
the currently selected daemon

The node has an extra command:

 - rpc_payments: display information about clients and their
balances

The node will forget about any balance for clients which have
been inactive for 6 months. Balances carry over on node restart.
2019-10-25 09:34:38 +00:00
luigi1111
bb2bcf3521
Merge pull request #5972
9447e72 cryptonote: add function to get weight from a pruned tx (moneromooo-monero)
2019-10-22 10:52:14 -05:00
luigi1111
84ce43a239
Merge pull request #5966
be82c40 Support median block size > 4 GB (moneromooo-monero)
2019-10-22 10:08:32 -05:00
moneromooo-monero
be82c40703
Support median block size > 4 GB
add a 128/64 division routine so we can use a > 32 bit median block
size in calculations
2019-10-21 10:41:07 +00:00
luigi1111
441ed9f2fe
Merge pull request #5990
515e931 functional_tests: fix transfer test - long payment ids are gone (moneromooo-monero)
2019-10-16 13:54:06 -05:00
moneromooo-monero
515e9316b1
functional_tests: fix transfer test - long payment ids are gone 2019-10-15 20:11:11 +00:00
moneromooo-monero
c65a221549
unit_tests: fix build after rename 2019-10-15 13:15:19 +00:00
luigi1111
fcb4c72bb5
Merge pull request #5943
d4d2b5c p2p+rpc: don't skip p2p or rpc port bind failure by default (xiphon)
2019-10-14 20:05:25 -05:00
moneromooo-monero
4d0aadc081
wallet_rpc_server: don't report integrated addresses for 0 payment ID
These are dummy ones
2019-10-14 11:43:48 +00:00
moneromooo-monero
19c0506e14
wallet: remove long payment ID sending support 2019-10-14 11:43:47 +00:00
moneromooo-monero
455f9e3e9f
wallet2: ignore received unencrypted payment IDs (but warn hard) 2019-10-14 11:43:46 +00:00
xiphon
d4d2b5c79a p2p+rpc: don't skip p2p or rpc port bind failure by default 2019-10-13 13:27:46 +00:00
moneromooo-monero
9447e7276d
cryptonote: add function to get weight from a pruned tx
The weight of the prunable data is deterministic from the
unpruned data, so it can be determined from a pruned tx
2019-10-11 12:08:36 +00:00
moneromooo-monero
77afe91db6
unit_tests: fix build with boost 1.69 2019-10-11 01:16:03 +00:00
luigi1111
bf525793c7
Merge pull request #5915
8330e77 monerod can now sync from pruned blocks (moneromooo-monero)
2019-10-08 15:55:03 -05:00
luigi1111
0e4ab6091c
Merge pull request #5960
ae34e1b unit_tests: fix ringdb unit tests (moneromooo-monero)
2019-10-08 14:49:57 -05:00
luigi1111
342e7f844f
Merge pull request #5921
2a7d915 Fixed i2p/tor tx flooding bug (white noise disabled) (vtnerd)
2019-10-08 14:31:53 -05:00
moneromooo-monero
ae34e1ba1c
unit_tests: fix ringdb unit tests 2019-10-04 21:11:46 +00:00
luigi1111
40501cc131
Merge pull request #5895
fdc00d0 unit tests: replace global var with lambda returning static local var (stoffu)
2019-09-30 18:46:34 -05:00
luigi1111
c6430f9dd0
Merge pull request #5893
Coverity fixes [3a81639, 1bd962d, 2825f07, d099658, d46f701, cd57a10] (anonimal)
2019-09-30 18:43:48 -05:00
moneromooo-monero
8330e772f1
monerod can now sync from pruned blocks
If the peer (whether pruned or not itself) supports sending pruned blocks
to syncing nodes, the pruned version will be sent along with the hash
of the pruned data and the block weight. The original tx hashes can be
reconstructed from the pruned txes and theur prunable data hash. Those
hashes and the block weights are hashes and checked against the set of
precompiled hashes, ensuring the data we received is the original data.
It is currently not possible to use this system when not using the set
of precompiled hashes, since block weights can not otherwise be checked
for validity.

This is off by default for now, and is enabled by --sync-pruned-blocks
2019-09-27 00:10:37 +00:00
Howard Chu
81c2ad6d5b
RandomX integration
Support RandomX PoW algorithm
2019-09-25 21:29:42 +01:00
luigi1111
3f6096867d
Merge pull request #5916
7b076d5 p2p: fix bans taking port into account (moneromooo-monero)
2019-09-24 10:42:29 -05:00
luigi1111
44aa7d5439
Merge pull request #5882
a444f06 blockchain: enforce 10 block age for spending outputs (moneromooo-monero)
2019-09-24 10:27:22 -05:00
luigi1111
06bee964a8
Merge pull request #5878
f9b3f6e Removed Berkeley DB and db switching logic (JesusRami)
2019-09-24 10:10:28 -05:00
luigi1111
ee6e849627
Merge pull request #5877
2cd4fd8 Changed the use of boost:value_initialized for C++ list initializer (JesusRami)
4ad191f Removed unused boost/value_init header (whyamiroot)
928f4be Make null hash constants constexpr (whyamiroot)
2019-09-24 10:08:44 -05:00
luigi1111
8c41d36a08
Merge pull request #5864
32f725d Properly format multiline logs (moneromooo-monero)
2019-09-24 10:05:21 -05:00
moneromooo-monero
a444f06e53
blockchain: enforce 10 block age for spending outputs
Some custom wallet code apparently ignores this, which causes users
of that code to be fingerprinted
2019-09-17 11:39:25 +00:00
moneromooo-monero
48cfcb6313
functional_tests: fix failure on windows removing files 2019-09-17 11:38:34 +00:00
moneromooo-monero
75fe790634
fix wallet python test when run with ctest 2019-09-17 11:38:34 +00:00
moneromooo-monero
6b72541dc0
functional_tests: python3 compatibility
and add missing tests
2019-09-17 11:38:33 +00:00
moneromooo-monero
1fac83858a
functional_tests: pop exactly what we need to test before testing 2019-09-17 11:38:31 +00:00
moneromooo-monero
e037ecb014
functional_tests: check for RPC methods which aren't exposed 2019-09-17 11:38:30 +00:00
moneromooo-monero
d53a55204f
functional_tests: add get_transaction_pool_stats
Also fix part of the RPC results being returned as binary.
This makes the RPC backward incompatible.
2019-09-17 11:38:29 +00:00
moneromooo-monero
51bd45c352
functional_tests: add save_bc 2019-09-17 11:38:28 +00:00
moneromooo-monero
230f73e121
functional_tests: add is_key_image_spent tests 2019-09-17 11:38:28 +00:00
moneromooo-monero
c148002534
functional_tests: add submitblock test 2019-09-17 11:38:27 +00:00
moneromooo-monero
121c1b9475
functional_tests: check transaction fee is around what we expect 2019-09-17 11:38:26 +00:00
moneromooo-monero
170e51f0d9
functional_tests: add tx_notes tests 2019-09-17 11:38:26 +00:00
moneromooo-monero
4c375c9442
functional_tests: add wallet attributes test 2019-09-17 11:38:25 +00:00
moneromooo-monero
f2e811fced
functional_tests: add rescan_spent/rescan_blockchain tests 2019-09-17 11:38:24 +00:00
moneromooo-monero
4ba8254a1d
functional_tests: add monero: URI tests 2019-09-17 11:38:24 +00:00
moneromooo-monero
cc4be4fa15
wallet: add edit_address_book RPC 2019-09-17 11:38:23 +00:00
moneromooo-monero
4ff40d8d9a
functional_tests: add address book tests 2019-09-17 11:38:22 +00:00
moneromooo-monero
0dc49fc918
functional_tests: add wallet password change, store and tag tests 2019-09-17 11:38:22 +00:00
moneromooo-monero
8e077a5fc0
functional_tests: add spend proof tests 2019-09-17 11:38:21 +00:00
moneromooo-monero
a71d91cecf
functional_tests: add test for mining via wallet 2019-09-17 11:38:20 +00:00
moneromooo-monero
447268cf29
functional_tests: add multisig state tests 2019-09-17 11:38:19 +00:00
moneromooo-monero
43015bb7e3
functional_tests: add get_transfers test 2019-09-17 11:38:19 +00:00
moneromooo-monero
f23beb879e
functional_tests: add missing sweep_dust parameters, and test it
though not a very good test, but we don't have dust handy
2019-09-17 11:38:18 +00:00
moneromooo-monero
b9e09378ad
functional_tests: move extraneous stuff out of the framework 2019-09-17 11:38:15 +00:00
moneromooo-monero
7b076d5170
p2p: fix bans taking port into account 2019-09-16 22:45:45 +00:00
moneromooo-monero
32f725d32f
Properly format multiline logs
As a side effect, colouring on Windows should now work
regardless of version
2019-09-16 16:58:01 +00:00
Jesus Ramirez
f9b3f6ef3b Removed Berkeley DB and db switching logic 2019-09-16 16:18:05 +02:00
luigi1111
d663e1e3db
Merge pull request #5818
f91a06c Dropping cppzmq dependency; adding some zmq utils (vtnerd)
2019-09-14 13:25:14 -05:00
luigi1111
29e0f11305
Merge pull request #5823
26072f1 blockchain: forbid v1 coinbase from v12 (moneromooo-monero)
555dc7c core: from v12, require consistent ring size for mixable txes (moneromooo-monero)
d22dfb7 blockchain: reject rct signatures in coinbase txes from v12 (moneromooo-monero)
2019-09-14 13:04:41 -05:00
stoffu
fdc00d0906
unit tests: replace global var with lambda returning static local var
Fixes assertion failure (curstate == 1) in random.c in debug mode
2019-09-09 11:44:06 +09:00
luigi1111
d0d76f771a
Merge pull request #5876
a5c7eeb unit_tests: fix build with CLANG 8 and boost 1.69 (moneromooo-monero)
2019-09-08 20:10:44 -05:00
luigi1111
d91393daaf
Merge pull request #5856
f56e160 unit_tests: Fix uninitialized values (liptakmatyas)
2019-09-08 20:06:04 -05:00
luigi1111
9325501762
Merge pull request #5855
2ec455d wallet: fix mismatch between two concepts of 'balance' (moneromooo-monero)
2019-09-08 20:04:00 -05:00
anonimal
d46f701515
tests: rct_mlsag: resolve CID 203914 (UNINIT_CTOR) 2019-09-07 00:38:49 +00:00
moneromooo-monero
2ec455df1f
wallet: fix mismatch between two concepts of "balance"
One considers the blockchain, while the other considers the
blockchain and some recent actions, such as a recently created
transaction which spend some outputs, but isn't yet mined.

Typically, the "balance" command wants the latter, to reflect
the recent action, but things like proving ownership wants
the former.

This fixes a crash in get_reserve_proof, where a preliminary
check and the main code used two concepts of "balance".
2019-09-05 11:19:34 +00:00
moneromooo-monero
0e2fda5bf0
unit_tests: fix levin unit test on big endian 2019-09-04 14:53:58 +00:00
moneromooo-monero
d046ca1db0
difficulty: fix check_hash on big endian 2019-09-04 14:53:53 +00:00
Jesus Ramirez
2cd4fd8972 Changed the use of boost:value_initialized for C++ list initializer 2019-09-02 14:16:29 +02:00
moneromooo-monero
a5c7eebaea
unit_tests: fix build with CLANG 8 and boost 1.69 2019-08-30 11:43:03 +00:00
luigi1111
98af2e954b
Merge pull request #5793
bdfc63a Add ref-counted buffer byte_slice. Currently used for sending TCP data. (vtnerd)
3b24b1d Added support for 'noise' over I1P/Tor to mask Tx transmission. (vtnerd)
2019-08-29 14:36:41 -05:00
luigi1111
85014813cf
Merge pull request #5707
3a0451a MLSAG speedup and additional checks (SarangNoether)
2019-08-28 02:22:00 -05:00
Sarang Noether
3a0451a8be MLSAG speedup and additional checks 2019-08-27 16:22:44 -04:00
Matyas Liptak
f56e160217
unit_tests: Fix uninitialized values
-   Initialize the `hash` in the `get_block_hash()` function of the
    `output_distribution` unit test explicitly, to silence `valgrind`
    warnings.
2019-08-27 09:17:34 +02:00
luigi1111
a8e99198bf
Merge pull request #5748
b350726 boost: update obsolete usage of endian API (moneromooo-monero)
2019-08-21 15:18:38 -05:00
luigi1111
e72aca57f9
Merge pull request #5511
914b106 wallet_rpc_server: use original addresses in destinations in get_transfers (moneromooo-monero)
da694d4 functional_tests: add tests for pending/out transfer addresses (moneromooo-monero)
2019-08-21 14:47:16 -05:00
luigi1111
f205d28e96
Merge pull request #5727
7b9a420 Replace std::random_shuffle with std::shuffle (tomsmeding)
2019-08-19 17:31:39 -05:00
luigi1111
2da11baecc
Merge pull request #5718
c8709fe wallet: do not print log settings when unset (moneromooo-monero)
7b18e83 unit_tests: check return values on test data parsing (moneromooo-monero)
2019-08-19 17:17:11 -05:00
moneromooo-monero
26072f1393
blockchain: forbid v1 coinbase from v12 2019-08-19 16:43:52 +00:00
luigi1111
14602ba5ff
Merge pull request #5504
eeca5ca epee: support unicode in parsed strings (moneromooo-monero)
3e11bb5 functional_tests: test creating wallets with local language names (moneromooo-monero)
2019-08-17 15:22:46 -05:00
luigi1111
50c8147568
Merge pull request #5490
1a93aa4 functional_tests: add get_fee_estimate to blockchain test (moneromooo-monero)
2019-08-17 15:20:15 -05:00
moneromooo-monero
3e11bb540e
functional_tests: test creating wallets with local language names 2019-08-16 17:06:08 +00:00
moneromooo-monero
eeca5ca0c8
epee: support unicode in parsed strings 2019-08-16 17:06:03 +00:00
luigi1111
f06c77ab72
Merge pull request #5677
a5127cc tests: functional: fix python syntax (radfish)
2019-08-15 17:24:31 -05:00
luigi1111
86ee631212
Merge pull request #5652
f81cb4f unit_tests: add more leeway to the 'same distribution' check (moneromooo-monero)
2019-08-15 17:13:18 -05:00
Tom Smeding
7b9a420787 Replace std::random_shuffle with std::shuffle
According to [1], std::random_shuffle is deprecated in C++14 and removed
in C++17. Since std::shuffle is available since C++11 as a replacement
and monero already requires C++11, this is a good replacement.

A cryptographically secure random number generator is used in all cases
to prevent people from perhaps copying an insecure std::shuffle call
over to a place where a secure one would be warranted. A form of
defense-in-depth.

[1]: https://en.cppreference.com/w/cpp/algorithm/random_shuffle
2019-08-15 16:33:15 +02:00
luigi1111
1ed2c40436
Merge pull request #5498
6eb2638 functional_tests: add a 3/3 multisig test (moneromooo-monero)
2019-08-14 15:29:24 -05:00
luigi1111
2258551ef9
Merge pull request #5487
df83ed7 consensus: from v12, enforce >= 2 outputs (moneromooo-monero)
2019-08-14 15:26:55 -05:00
moneromooo-monero
7d9b7fee43
functional_tests: add validate_address tests 2019-07-29 14:29:20 +00:00
Lee Clagett
2a7d91523b Fixed i2p/tor tx flooding bug (white noise disabled) 2019-07-29 12:27:00 +00:00
luigi1111
f2acbd6b19
Merge pull request #5621
c88d6a9 tests: fixed file exec permissions (ston1th)
2019-07-24 14:36:43 -05:00
luigi1111
7fc76451a5
Merge pull request #5529
de27651 use crypto::rand instead of libc rand in a few tests (moneromooo-monero)
2019-07-24 14:06:11 -05:00
luigi1111
a29a89bdf4
Merge pull request #5507
2b198a6 difficulty-tests: remove spurious dependency on cryptonote_core (moneromooo-monero)
2019-07-24 13:58:13 -05:00
luigi1111
e3de4aa68b
Merge pull request #5502
25a7cfd add a few checks where it seems appropriate (moneromooo-monero)
1a66a86 remove unused code (moneromooo-monero)
2019-07-24 13:57:06 -05:00
luigi1111
4c4586ca7b
Merge pull request #5473
ddf7890 python-rpc: add missing getblock RPC parameters (moneromooo-monero)
2019-07-24 13:55:12 -05:00
Lee Clagett
f91a06c6d7 Dropping cppzmq dependency; adding some zmq utils 2019-07-22 06:37:16 +00:00
Lee Clagett
3b24b1d082 Added support for "noise" over I1P/Tor to mask Tx transmission. 2019-07-17 14:22:37 +00:00
Lee Clagett
bdfc63ae4d Add ref-counted buffer byte_slice. Currently used for sending TCP data. 2019-07-16 16:30:35 +00:00
moneromooo-monero
65c4004963
allow blocking whole subnets 2019-07-16 11:35:53 +00:00
luigi1111
fd3ff74164
Merge pull request #5746
3140a37 wallet_rpc_server: fix get_bulk_payments with short payment ids (moneromooo-monero)
2019-07-12 20:28:15 -05:00
moneromooo-monero
b350726a5a
boost: update obsolete usage of endian API 2019-07-09 15:07:13 +00:00
moneromooo-monero
3140a378da
wallet_rpc_server: fix get_bulk_payments with short payment ids 2019-07-09 14:39:44 +00:00
moneromooo-monero
c2238327d0
keccak: guard against misaligned memory accesses on ARM
The code generated is exactly the same as the direct access
one on x86_64
2019-07-04 22:13:16 +00:00
moneromooo-monero
7b18e838ea
unit_tests: check return values on test data parsing
Won't trigger in practice, but you never know when that code changes

Coverity 199723, 199685
2019-07-01 15:17:30 +00:00
redfish
a5127cca89 tests: functional: fix python syntax 2019-06-19 21:41:37 -04:00
moneromooo-monero
f81cb4f24b
unit_tests: add more leeway to the "same distribution" check
This is an inherently probabilistic check, which occasionally fails
for a matching distribution
2019-06-16 12:18:28 +00:00
ston1th
c88d6a9e5b tests: fixed file exec permissions 2019-06-09 17:00:45 +02:00
Riccardo Spagni
51766d026b
Merge pull request #5583
77594c4f functional_tests: fix python3 compatibility (moneromooo-monero)
2019-06-01 20:27:41 +02:00
Riccardo Spagni
42e2ed31ae
Merge pull request #5558
4ac52e52 functional_tests: fix rare get_output_distribution failure (moneromooo-monero)
2019-06-01 20:21:22 +02:00
moneromooo-monero
77594c4f4a
functional_tests: fix python3 compatibility
Also add missing bans test to the default tests
2019-05-29 11:59:48 +00:00
moneromooo-monero
4ac52e523d
functional_tests: fix rare get_output_distribution failure
When the wallet auto refreshes after mining the last two blocks
but before popping them, it will then try to use outputs which
are not unlocked yet. This is really a wallet problem, which
will be fixed later.
2019-05-20 13:45:36 +00:00
moneromooo-monero
dbecfe7d5d
unit_tests: make the density test a bit less stringent
It's an inherently random test
2019-05-20 10:42:50 +00:00
Rohaq
1873af35bf Made code block usage consistent across all .md files 2019-05-12 05:16:26 +01:00
moneromooo-monero
de27651f80
use crypto::rand instead of libc rand in a few tests
We don't need secure randomness here, but it should shut coverity up
2019-05-10 14:15:35 +00:00
moneromooo-monero
ddf7890730
python-rpc: add missing getblock RPC parameters 2019-05-09 11:48:54 +00:00
Riccardo Spagni
f64f59627d
Merge pull request #5510
e9809382 fix wide difficulty conversion with some versions of boost (moneromooo-monero)
2019-05-07 17:36:27 +02:00
Riccardo Spagni
97cb1c9436
Merge pull request #5508
1c44e658 wallet2: reject standalone short payment IDs in monero: URI API (moneromooo-monero)
2019-05-07 17:35:28 +02:00
Riccardo Spagni
2d04b0e500
Merge pull request #5499
a4c4a2d8 blockchain: keep a rolling long term block weight median (moneromooo-monero)
2019-05-07 17:31:45 +02:00
Riccardo Spagni
9d91301faa
Merge pull request #5496
0eb0d6b8 rpc: improve get_output_distribution (moneromooo-monero)
2019-05-07 17:30:27 +02:00
Riccardo Spagni
123df0eaf7
Merge pull request #5419
f29fecd5 build: debug and test builds via contrib (Dusan Klinec)
2019-05-07 17:26:32 +02:00
moneromooo-monero
a4c4a2d8aa
blockchain: keep a rolling long term block weight median 2019-05-02 09:47:01 +00:00
Riccardo Spagni
2bf855e3cd
Merge pull request #5497
a59c2746 unit_tests: fix crash in debug in output_distribution test (moneromooo-monero)
2019-05-02 11:30:51 +02:00
Riccardo Spagni
17f31c3d51
Merge pull request #5484
36ced067 functional_tests: flush stdout before popening new process (moneromooo-monero)
2019-05-02 11:29:12 +02:00
moneromooo-monero
da694d418a
functional_tests: add tests for pending/out transfer addresses 2019-05-02 09:04:42 +00:00
moneromooo-monero
e980938210
fix wide difficulty conversion with some versions of boost 2019-05-01 19:58:09 +00:00
moneromooo-monero
1c44e65863
wallet2: reject standalone short payment IDs in monero: URI API 2019-05-01 18:41:39 +00:00
moneromooo-monero
2b198a6875
difficulty-tests: remove spurious dependency on cryptonote_core 2019-05-01 10:35:33 +00:00
moneromooo-monero
1a66a86f94
remove unused code 2019-04-29 20:52:40 +00:00
moneromooo-monero
25a7cfdb4a
add a few checks where it seems appropriate 2019-04-29 20:52:40 +00:00
moneromooo-monero
6eb2638463
functional_tests: add a 3/3 multisig test 2019-04-26 15:35:42 +00:00
moneromooo-monero
a59c27465b
unit_tests: fix crash in debug in output_distribution test
updating the block size limit needs recent block sizes,
so we feed it dummy ones
2019-04-25 22:49:10 +00:00
moneromooo-monero
0eb0d6b802
rpc: improve get_output_distribution
It can now handle small reorgs without having to rescan the
whole blockchain.

Also add a test for it.
2019-04-25 16:49:29 +00:00
Riccardo Spagni
973405018f
Merge pull request #5483
c0736643 unit_tests: don't delete log file on windows, it will fail (moneromooo-monero)
2019-04-24 22:40:40 +02:00
Riccardo Spagni
eb1da46ac1
Merge pull request #5467
aba2b2e7 functional_tests: reset blockchain on test start (moneromooo-monero)
375fde94 hardfork: fix off by one updating fork index after popping (moneromooo-monero)
2019-04-24 22:37:16 +02:00
moneromooo-monero
1a93aa4b79
functional_tests: add get_fee_estimate to blockchain test 2019-04-24 13:27:35 +00:00
moneromooo-monero
df83ed74e4
consensus: from v12, enforce >= 2 outputs 2019-04-23 22:09:35 +00:00
moneromooo-monero
36ced06727
functional_tests: flush stdout before popening new process 2019-04-23 18:22:09 +00:00
moneromooo-monero
c07366430a
unit_tests: don't delete log file on windows, it will fail 2019-04-23 15:27:54 +00:00
moneromooo-monero
aba2b2e7a2
functional_tests: reset blockchain on test start 2019-04-20 11:28:19 +00:00
Lee Clagett
55aae6a9a3 Fix socks tests in windows and handle errors better 2019-04-19 01:10:02 -04:00
Riccardo Spagni
ef1f1c5314
Merge pull request #5465
3e50a9e8 functional_tests: detect requests python module (moneromooo-monero)
2019-04-18 22:14:44 +02:00
moneromooo-monero
3e50a9e8fc
functional_tests: detect requests python module 2019-04-18 19:33:01 +00:00
moneromooo-monero
35e0a968bd
wallet2: "output lineup" fake out selection
Based on python code by sarang:
https://github.com/SarangNoether/skunkworks/blob/outputs/outputs/simulate.py
2019-04-18 15:14:38 +00:00
Riccardo Spagni
7973fb6a69
Merge pull request #5415
299052bc Remove unneeded SFINAE on check_tx/block verification in core_tests (Doyle)
2019-04-17 08:28:16 +02:00
Riccardo Spagni
e9464eb5e3
Merge pull request #5413
5fafb90e testdb: add override keyword where missing (stoffu)
2019-04-17 08:27:36 +02:00
stoffu
5fafb90e91
testdb: add override keyword where missing
and delete obsolete BlockchainBDB::get_tx_output_indices along the way
2019-04-17 10:26:25 +09:00
Doyle
299052bca3 Remove unneeded SFINAE on check_tx/block verification in core_tests 2019-04-17 10:43:14 +10:00
moneromooo-monero
e3dea47859
unit_tests: undo is_blocked implementation factoring
The is_host_blocked method is not on master yet
2019-04-16 22:23:15 +00:00
Riccardo Spagni
f376cd5605
Merge pull request #5446
7d79222f daemon: remove debug info (moneromooo-monero)
8fec0f98 functional_tests: add sweep_single test (moneromooo-monero)
9880d61b wallet_rpc_server: remove unused code (moneromooo-monero)
8a61b33d rpc: omit irrelevant fields for pool txes in gettransactions (moneromooo-monero)
56508524 rpc: add relayed in get_transaction output (moneromooo-monero)
82e510f1 rpc: set default log category in core_rpc_server.h (moneromooo-monero)
2019-04-16 22:46:29 +02:00
Riccardo Spagni
8d16e92dcb
Merge pull request #5425
58585986 p2p: fix integer overflow in host bans (moneromooo-monero)
2019-04-16 22:38:56 +02:00
Riccardo Spagni
a1ea611e24
Merge pull request #5424
93bb2f48 ringct: prevent use of full ringct signatures for more than one input (moneromooo-monero)
2019-04-16 22:38:32 +02:00
Riccardo Spagni
0d2aaac15b
Merge pull request #5414
e9fac29a unit_tests/long_term_block_weight: some tweaks that seem to make more sense (stoffu)
467f4c7e tests/block_weight: use integer division when computing median (stoffu)
815d08dc tests/block_weight: remove unused MULTIPLIER_SMALL (stoffu)
661f1fb8 blockchain: remove unused calc of short_term_constraint (stoffu)
2019-04-16 22:37:02 +02:00
Riccardo Spagni
45a4145f87
Merge pull request #5409
ac874e2d tests: fix test_options initialization error (Dusan Klinec)
2019-04-16 22:34:30 +02:00
Riccardo Spagni
46c477ab30
Merge pull request #5400
5e673c03 blockchain_db: fix db txn ending too early (moneromooo-monero)
2019-04-16 22:30:40 +02:00
moneromooo-monero
8fec0f9831
functional_tests: add sweep_single test 2019-04-15 09:13:31 +00:00
Riccardo Spagni
9bd0983d5e
Merge pull request #5402
cbf32241 rpc: make wide_difficulty hexadecimal (moneromooo-monero)
2019-04-15 09:18:10 +02:00
Riccardo Spagni
e31559d319
Merge pull request #5398
41901b8d device/trezor: env-configurable ports (Dusan Klinec)
c97a1f79 tests: trezor tests fixes and improvements (Dusan Klinec)
2019-04-15 09:17:47 +02:00
Riccardo Spagni
07c1734985
Merge pull request #5393
c5d3ea2f tests: add a few try/catch in main to shut coverity up (moneromooo-monero)
2019-04-15 09:14:48 +02:00
moneromooo-monero
5e673c03fe
blockchain_db: fix db txn ending too early
The db txn in add_block ending caused the entire overarching
batch txn to stop.
Also add a new guard class so a db txn can be stopped in the
face of exceptions.

Also use a read only db txn in init when the db itself is
read only, and do not save the max tx size in that case.
2019-04-14 08:35:38 +00:00
moneromooo-monero
5858598604
p2p: fix integer overflow in host bans 2019-04-11 21:59:27 +00:00
moneromooo-monero
93bb2f48f7
ringct: prevent use of full ringct signatures for more than one input 2019-04-11 19:44:06 +00:00
Riccardo Spagni
716f5a2a6a
Merge pull request #5384
0eee6cd7 block_weight: catch exceptions in main for clean exit on error (moneromooo-monero)
4b3bb829 epee: init a new ssl related variable in ctor (moneromooo-monero)
2019-04-11 13:15:20 +02:00
moneromooo-monero
0eee6cd7fe
block_weight: catch exceptions in main for clean exit on error 2019-04-11 11:10:18 +00:00
moneromooo-monero
8646bd0086
functional_tests: exit with 1 if any test fails 2019-04-11 11:08:27 +00:00
moneromooo-monero
04a20cb242
functional_tests: cold signing key images/outputs import/export 2019-04-11 11:08:20 +00:00
moneromooo-monero
798e3cad2b
functional_tests: add double spend detection tests 2019-04-11 11:08:17 +00:00
moneromooo-monero
7c657bb2dd
functional_tests: add alt chains tests 2019-04-11 11:08:15 +00:00
moneromooo-monero
f8be31d269
functional_tests: add wallet creation language tests 2019-04-11 11:08:12 +00:00
moneromooo-monero
2d68b31f3e
functional_tests: add more wallet tests
get_transfer_by_txid, get_height, open/close
2019-04-11 11:08:09 +00:00
moneromooo-monero
b3a32d5505
functional_tests: add describe_transfer tests 2019-04-11 11:08:04 +00:00
moneromooo-monero
064ab12340
functional_tests: add more blockchain related tests
Related to emission, reorgs, getting tx data back, output
distribution and histogram
2019-04-11 11:07:58 +00:00
moneromooo-monero
21b1ac1dd2
functional_tests: add bans tests 2019-04-11 11:07:55 +00:00
Dusan Klinec
41901b8deb
device/trezor: env-configurable ports 2019-04-10 18:29:24 +02:00
Dusan Klinec
c97a1f79d6
tests: trezor tests fixes and improvements
- configurable hardforks via env vars
2019-04-10 17:00:12 +02:00
Dusan Klinec
f29fecd517
build: debug and test builds via contrib 2019-04-10 15:43:52 +02:00
stoffu
e9fac29a4b
unit_tests/long_term_block_weight: some tweaks that seem to make more sense 2019-04-09 20:21:45 +09:00
stoffu
467f4c7ed3
tests/block_weight: use integer division when computing median 2019-04-09 19:40:57 +09:00
stoffu
815d08dc5f
tests/block_weight: remove unused MULTIPLIER_SMALL 2019-04-09 19:40:52 +09:00
Dusan Klinec
ac874e2d40
tests: fix test_options initialization error 2019-04-07 18:18:54 +02:00
Riccardo Spagni
c34930c207
Merge pull request #5391
71907980 unit_tests: fix long term block weight test after cache change (moneromooo-monero)
2019-04-06 16:04:27 +02:00
Riccardo Spagni
55e3980d89
Merge pull request #5353
1bc78cc2 tests: trezor_test fix (Dusan Klinec)
2019-04-06 16:02:16 +02:00
Riccardo Spagni
c96fc4bf59
Merge pull request #5341
0218bc49 test: hmac_keccak - fix number of chunks counting (Dusan Klinec)
2019-04-06 15:57:28 +02:00
moneromooo-monero
cbf3224180
rpc: make wide_difficulty hexadecimal
This should be friendlier for clients which don't have bignum support
2019-04-05 16:30:16 +00:00
moneromooo-monero
c5d3ea2fef
tests: add a few try/catch in main to shut coverity up 2019-04-03 16:24:09 +00:00
moneromooo-monero
7190798049
unit_tests: fix long term block weight test after cache change 2019-04-03 00:10:48 +00:00
Riccardo Spagni
4308a2e173
Merge pull request #5318
1a91385e block_weight: fix python 2/3 compatibility (moneromooo-monero)
2019-04-01 17:37:57 +02:00
Riccardo Spagni
29e4e70f30
Merge pull request #5352
ae6885f6 blockchain: incremental long term block weight cache (moneromooo-monero)
9b687c78 blockchain: simple cache for the long term block weights (moneromooo-monero)
2019-04-01 17:34:02 +02:00
Riccardo Spagni
e601028649
Merge pull request #5331
32973434 python-rpc: add getblockheadersrange daemon RPC (moneromooo-monero)
c7bfdc35 python-rpc: add console.py (moneromooo-monero)
22b644f4 functional_tests: move RPC API to utils, it is not test specific (moneromooo-monero)
30c865f0 functional_tests: add balance tests (moneromooo-monero)
fdfa832f functional_tests: add missing parameters to get_balance (moneromooo-monero)
cf6d7759 functional_tests: add proofs tests (tx key, in/out tx, reserve) (moneromooo-monero)
a3144bd7 functional_tests: add more transfer tests (moneromooo-monero)
5d580bfa functional_tests: add get_bulk_transfer tests (moneromooo-monero)
0becbd16 functional_tests: add message signing/verification tests (moneromooo-monero)
a5dbf7f5 functional_tests: add multisig and cold signing tests (moneromooo-monero)
b2fc5719 functional_tests: support several daemons/wallets (moneromooo-monero)
9e979ffa functional_tests: add txpool RPC tests (moneromooo-monero)
3e93c157 functional_tests: add integrated address tests (moneromooo-monero)
b384309e functional_tests: add basic transfer tests (moneromooo-monero)
ef7681b6 functional_tests: plug RPC tests into the cmake machinery (moneromooo-monero)
18a2ed45 functional_tests: add basic mining tests (moneromooo-monero)
98e280fc functional_tests: add wallet address/subaddress RPC tests (moneromooo-monero)
8dcd4d3d functional_tests: improve RPC blockchain tests (moneromooo-monero)
2019-04-01 17:33:24 +02:00
moneromooo-monero
1a91385eaf
block_weight: fix python 2/3 compatibility 2019-04-01 15:31:52 +00:00
Riccardo Spagni
96e1b4e672
Merge pull request #5289
ab6c3b1d tests: fix path in instructions (moneromooo-monero)
2019-04-01 17:20:06 +02:00
Riccardo Spagni
e55b3f9dda
Merge pull request #5239
91f4c7f4 Make difficulty 128 bit instead of 64 bit (moneromooo-monero)
2019-04-01 17:19:10 +02:00
moneromooo-monero
9b687c7873
blockchain: simple cache for the long term block weights 2019-03-28 18:07:57 +00:00
Dusan Klinec
1bc78cc29a
tests: trezor_test fix 2019-03-26 13:47:28 +01:00
Lee Clagett
7acfa9f3cc Added socks proxy (tor/i2pd/kovri) support to wallet 2019-03-25 01:35:13 +00:00
moneromooo-monero
91f4c7f45f
Make difficulty 128 bit instead of 64 bit
Based on Boolberry work by:
  jahrsg <jahr@jahr.me>
  cr.zoidberg <crypto.zoidberg@gmail.com>
2019-03-24 21:03:19 +00:00
Dusan Klinec
0218bc497d
test: hmac_keccak - fix number of chunks counting 2019-03-24 20:24:28 +01:00
Riccardo Spagni
37ee4acf48
Merge pull request #5274
dc0c0c91 tests: disable wallet SSL init for tests involving wallet2 (moneromooo-monero)
2019-03-24 19:35:11 +02:00
moneromooo-monero
c7bfdc3566
python-rpc: add console.py
It allows one to connect to a running daemon or wallet, and use
its RPC API from python.

Usage: python -i console.py <port>

It will detect whether it's talking to a daemon or wallet and
initialize itself accordingly.
2019-03-23 18:59:47 +00:00
moneromooo-monero
22b644f47e
functional_tests: move RPC API to utils, it is not test specific 2019-03-22 15:29:44 +00:00
moneromooo-monero
30c865f0f8
functional_tests: add balance tests 2019-03-22 15:29:44 +00:00
moneromooo-monero
fdfa832f00
functional_tests: add missing parameters to get_balance 2019-03-22 15:29:44 +00:00
moneromooo-monero
cf6d775964
functional_tests: add proofs tests (tx key, in/out tx, reserve) 2019-03-21 19:28:56 +00:00
moneromooo-monero
a3144bd7c8
functional_tests: add more transfer tests
manual relay, transfer to integrated address, and a few negative
transfer tests
2019-03-21 19:28:44 +00:00
moneromooo-monero
5d580bfa9c
functional_tests: add get_bulk_transfer tests 2019-03-21 19:28:44 +00:00
moneromooo-monero
0becbd1612
functional_tests: add message signing/verification tests 2019-03-21 19:28:44 +00:00
moneromooo-monero
a5dbf7f5fa
functional_tests: add multisig and cold signing tests 2019-03-21 19:28:15 +00:00
moneromooo-monero
b2fc571943
functional_tests: support several daemons/wallets 2019-03-21 19:28:06 +00:00
moneromooo-monero
9e979ffa22
functional_tests: add txpool RPC tests 2019-03-21 19:28:06 +00:00
moneromooo-monero
3e93c157bd
functional_tests: add integrated address tests 2019-03-21 19:27:47 +00:00
moneromooo-monero
b384309e17
functional_tests: add basic transfer tests 2019-03-21 19:27:45 +00:00
moneromooo-monero
ef7681b699
functional_tests: plug RPC tests into the cmake machinery 2019-03-21 19:27:42 +00:00
moneromooo-monero
18a2ed4518
functional_tests: add basic mining tests 2019-03-21 19:26:49 +00:00
moneromooo-monero
98e280fcb8
functional_tests: add wallet address/subaddress RPC tests 2019-03-21 19:26:49 +00:00
moneromooo-monero
8dcd4d3d11
functional_tests: improve RPC blockchain tests 2019-03-21 19:26:49 +00:00
Riccardo Spagni
5ac46c5310
Merge pull request #5256
4b21d38d blockchain: speed up getting N blocks weights/long term weights (moneromooo-monero)
2019-03-21 14:48:40 +02:00
Riccardo Spagni
39107e18d5
Merge pull request #5251
7632dede crypto: fix PaX issue on NetBSD with CNv4 JIT (moneromooo-monero)
89b1630e gtest: build fix for NetBSD (moneromooo-monero)
fa43b547 tests: handle any cmake detected python interpreter (moneromooo-monero)
2019-03-21 14:47:43 +02:00
Riccardo Spagni
48e3a341f8
Merge pull request #5211
c9b13fbb tests/trezor: HF9 and HF10 tests (Dusan Klinec)
a1fd1d49 device/trezor: HF10 support added, wallet::API (Dusan Klinec)
d74d26f2 crypto: hmac_keccak added (Dusan Klinec)
2019-03-21 14:44:04 +02:00
Dusan Klinec
c9b13fbbc2
tests/trezor: HF9 and HF10 tests
- tests fixes for HF10, builder change, rct_config; fix_chain
- get_tx_key test
- proper testing after live refresh added
- live refresh synthetic test
- log available funds for easier test construction
- wallet::API tests with mocked daemon
2019-03-20 21:11:02 +01:00
Dusan Klinec
d74d26f2c9
crypto: hmac_keccak added 2019-03-20 21:11:01 +01:00
Lee Clagett
0c7e7bce18 Adding classes, functions, and utilities for common LMDB operations. 2019-03-19 17:52:26 +00:00
Riccardo Spagni
edb294ef23
Merge pull request #5240
c8c154a2 tests: fix cnv4-jit-test link on mac (moneromooo-monero)
2019-03-19 09:48:16 +02:00
Riccardo Spagni
c3de019f56
Merge pull request #5192
d0e07b3d performance_tests: fix NetBSD build (moneromooo-monero)
7d88d8f2 discontinue use of alloca (moneromooo-monero)
2019-03-17 17:56:52 +02:00
Riccardo Spagni
4c91eb23a0
Merge pull request #5061
1f2930ce Update 2019 copyright (binaryFate)
2019-03-17 17:49:30 +02:00
moneromooo-monero
ab6c3b1da0
tests: fix path in instructions
Reported by notmike
2019-03-14 19:23:29 +00:00
Riccardo Spagni
c88e992104
Merge pull request #4977
5ea17909 device/trezor: debugging features, trezor tests (Dusan Klinec)
2019-03-14 09:43:02 +02:00
moneromooo-monero
dc0c0c91c5
tests: disable wallet SSL init for tests involving wallet2 2019-03-12 20:43:02 +00:00
moneromooo-monero
4b21d38dfd
blockchain: speed up getting N blocks weights/long term weights 2019-03-08 12:04:14 +00:00
moneromooo-monero
89b1630e35
gtest: build fix for NetBSD 2019-03-07 16:46:02 +00:00
moneromooo-monero
fa43b54780
tests: handle any cmake detected python interpreter 2019-03-07 16:46:02 +00:00
moneromooo-monero
c8c154a2c9
tests: fix cnv4-jit-test link on mac 2019-03-06 15:29:55 +00:00
binaryFate
1f2930ce0b Update 2019 copyright 2019-03-05 22:05:34 +01:00
Riccardo Spagni
5bbbe3902b
Merge pull request #4852
057c279c epee: add SSL support (Martijn Otto)
2019-03-05 16:21:30 +02:00
Martijn Otto
057c279cb4
epee: add SSL support
RPC connections now have optional tranparent SSL.

An optional private key and certificate file can be passed,
using the --{rpc,daemon}-ssl-private-key and
--{rpc,daemon}-ssl-certificate options. Those have as
argument a path to a PEM format private private key and
certificate, respectively.
If not given, a temporary self signed certificate will be used.

SSL can be enabled or disabled using --{rpc}-ssl, which
accepts autodetect (default), disabled or enabled.

Access can be restricted to particular certificates using the
--rpc-ssl-allowed-certificates, which takes a list of
paths to PEM encoded certificates. This can allow a wallet to
connect to only the daemon they think they're connected to,
by forcing SSL and listing the paths to the known good
certificates.

To generate long term certificates:

openssl genrsa -out /tmp/KEY 4096
openssl req -new -key /tmp/KEY -out /tmp/REQ
openssl x509 -req -days 999999 -sha256 -in /tmp/REQ -signkey /tmp/KEY -out /tmp/CERT

/tmp/KEY is the private key, and /tmp/CERT is the certificate,
both in PEM format. /tmp/REQ can be removed. Adjust the last
command to set expiration date, etc, as needed. It doesn't
make a whole lot of sense for monero anyway, since most servers
will run with one time temporary self signed certificates anyway.

SSL support is transparent, so all communication is done on the
existing ports, with SSL autodetection. This means you can start
using an SSL daemon now, but you should not enforce SSL yet or
nothing will talk to you.
2019-03-05 14:16:08 +01:00
Dusan Klinec
5ea17909ca
device/trezor: debugging features, trezor tests 2019-03-05 14:02:45 +01:00
moneromooo-monero
88c85c18e0
cryptonote: avoid double parsing blocks when syncing 2019-03-05 11:58:18 +00:00
moneromooo-monero
79b4e9f377
save some database calls when getting top block hash and height 2019-03-05 11:58:05 +00:00
moneromooo-monero
b044d03a51
Avoid repeated (de)serialization when syncing 2019-03-05 11:57:55 +00:00
Riccardo Spagni
d3f39da7c8
Merge pull request #5117
fcd00079 unit_tests: remove leftover debug print (moneromooo-monero)
2019-03-04 21:26:14 +02:00
Riccardo Spagni
a28237c9ca
Merge pull request #5102
1eef0565 performance_tests: better stats, and keep track of timing history (moneromooo-monero)
2019-03-04 21:22:51 +02:00
moneromooo-monero
0de14396b9
tests: add a CNv4 JIT test 2019-03-04 11:56:55 +00:00
moneromooo-monero
b9a618848f
performance_tests: add tests for new Cryptonight variants 2019-03-04 11:56:38 +00:00
Riccardo Spagni
1b4fa00d7c
Merge pull request #5126
f1fb06b1 Fixed path to int-util.h (SChernykh)
9da0892b Adding cnv4-2 tweaks (SChernykh)
f51397b3 Cryptonight variant 4 aka CryptonightR (SChernykh)
2019-03-04 12:10:16 +02:00
moneromooo-monero
b8787f4302
ArticMine's new block weight algorithm
This curbs runaway growth while still allowing substantial
spikes in block weight

Original specification from ArticMine:

here is the scaling proposal
Define: LongTermBlockWeight
Before fork:
LongTermBlockWeight = BlockWeight
At or after fork:
LongTermBlockWeight = min(BlockWeight, 1.4*LongTermEffectiveMedianBlockWeight)
Note: To avoid possible consensus issues over rounding the LongTermBlockWeight for a given block should be calculated to the nearest byte, and stored as a integer in the block itself. The stored LongTermBlockWeight is then used for future calculations of the LongTermEffectiveMedianBlockWeight and not recalculated each time.
Define:   LongTermEffectiveMedianBlockWeight
LongTermEffectiveMedianBlockWeight = max(300000, MedianOverPrevious100000Blocks(LongTermBlockWeight))
Change Definition of EffectiveMedianBlockWeight
From (current definition)
EffectiveMedianBlockWeight  = max(300000, MedianOverPrevious100Blocks(BlockWeight))
To (proposed definition)
EffectiveMedianBlockWeight  = min(max(300000, MedianOverPrevious100Blocks(BlockWeight)), 50*LongTermEffectiveMedianBlockWeight)
Notes:
1) There are no other changes to the existing penalty formula, median calculation, fees etc.
2) There is the requirement to store the LongTermBlockWeight of a block unencrypted in the block itself. This  is to avoid possible consensus issues over rounding and also to prevent the calculations from becoming unwieldy as we move away from the fork.
3) When the  EffectiveMedianBlockWeight cap is reached it is still possible to mine blocks up to 2x the EffectiveMedianBlockWeight by paying the corresponding penalty.

Note: the long term block weight is stored in the database, but not in the actual block itself,
since it requires recalculating anyway for verification.
2019-03-04 09:33:58 +00:00
moneromooo-monero
d0e07b3d86
performance_tests: fix NetBSD build 2019-02-25 11:11:09 +00:00
SChernykh
9da0892b10 Adding cnv4-2 tweaks
Co-Authored-By: Lee Clagett <vtnerd@users.noreply.github.com>
2019-02-14 20:42:50 +01:00
SChernykh
f51397b306 Cryptonight variant 4 aka CryptonightR
It introduces random integer math into the main loop.
2019-02-14 11:29:54 +01:00
moneromooo-monero
fcd0007952
unit_tests: remove leftover debug print 2019-02-01 19:14:55 +00:00
Lee Clagett
973403bc9f Adding initial support for broadcasting transactions over Tor
- Support for ".onion" in --add-exclusive-node and --add-peer
  - Add --anonymizing-proxy for outbound Tor connections
  - Add --anonymous-inbounds for inbound Tor connections
  - Support for sharing ".onion" addresses over Tor connections
  - Support for broadcasting transactions received over RPC exclusively
    over Tor (else broadcast over public IP when Tor not enabled).
2019-01-28 23:56:33 +00:00
moneromooo-monero
f6db59b011
notify: handle arbitrary tags 2019-01-28 19:32:28 +00:00
Riccardo Spagni
8fafdc4767
Merge pull request #5064
5ecc5cc7 added two tests for partial word and case tolerance in mnemonics (Paul Shapiro)
2019-01-28 21:30:54 +02:00
Riccardo Spagni
0daa00e035
Merge pull request #5052
b6534c40 ringct: remove unused senderPk from ecdhTuple (moneromooo-monero)
7d375981 ringct: the commitment mask is now deterministic (moneromooo-monero)
99d946e6 ringct: encode 8 byte amount, saving 24 bytes per output (moneromooo-monero)
cdc3ccec ringct: save 3 bytes on bulletproof size (moneromooo-monero)
f931e16c add a bulletproof version, new bulletproof type, and rct config (moneromooo-monero)
2019-01-28 21:24:55 +02:00
moneromooo-monero
1eef056588
performance_tests: better stats, and keep track of timing history 2019-01-28 15:45:37 +00:00
moneromooo-monero
b6534c40e6
ringct: remove unused senderPk from ecdhTuple
This was an early ringct field, which was never used in production
2019-01-22 23:17:42 +00:00
moneromooo-monero
7d37598158
ringct: the commitment mask is now deterministic
saves space in the tx and is safe

Found by knaccc
2019-01-22 23:17:39 +00:00
moneromooo-monero
99d946e619
ringct: encode 8 byte amount, saving 24 bytes per output
Found by knaccc
2019-01-22 23:17:31 +00:00
moneromooo-monero
f931e16c6e
add a bulletproof version, new bulletproof type, and rct config
This makes it easier to modify the bulletproof format
2019-01-22 23:17:24 +00:00
moneromooo-monero
b750fb27b0
Pruning
The blockchain prunes seven eighths of prunable tx data.
This saves about two thirds of the blockchain size, while
keeping the node useful as a sync source for an eighth
of the blockchain.

No other data is currently pruned.

There are three ways to prune a blockchain:

- run monerod with --prune-blockchain
- run "prune_blockchain" in the monerod console
- run the monero-blockchain-prune utility

The first two will prune in place. Due to how LMDB works, this
will not reduce the blockchain size on disk. Instead, it will
mark parts of the file as free, so that future data will use
that free space, causing the file to not grow until free space
grows scarce.

The third way will create a second database, a pruned copy of
the original one. Since this is a new file, this one will be
smaller than the original one.

Once the database is pruned, it will stay pruned as it syncs.
That is, there is no need to use --prune-blockchain again, etc.
2019-01-22 20:30:51 +00:00
Riccardo Spagni
08f08beede
Merge pull request #5046
524bf750 core_tests: add a --list_tests command line switch (moneromooo-monero)
2019-01-18 19:00:16 +02:00
Riccardo Spagni
aa5b0c7f71
Merge pull request #5028
464097e5 blockchain_ancestry: allow getting ancestry of a single output (moneromooo-monero)
a6216d1a blockchain_db: allow getting output keys without commitment (moneromooo-monero)
2019-01-18 09:25:34 +02:00
moneromooo-monero
a6216d1ac2
blockchain_db: allow getting output keys without commitment
Since the commitment has to be calculated for non rct outputs,
it slows down a lot unnecessarily if we don't need it
2019-01-16 20:13:08 +00:00
moneromooo-monero
21777daf6e
epee: speedup word/number matching
Number matching semantics are slightly changed: since this is used
as a filter to check whether a number is signed and/or floating
point, we can speed this up further. strto* functions are called
afterwards and will error out where necessary. We now also accept
numbers like .4 which were not accepted before.

The strto* calls on a boost::string_ref will not access unallocated
memory since the parsers always stop at the first bad character,
and the original string is zero terminated.

in arbitrary time measurement units for some arbitrary test case:

match_number2: 235 -> 70
match_word2: 330 -> 108
2019-01-16 19:59:40 +00:00
Riccardo Spagni
7e172dc8b0
Merge pull request #5036
d6dde478 remove trailing whitespace in README.md (David Meister)
2019-01-16 21:41:09 +02:00
Riccardo Spagni
36d420413b
Merge pull request #5005
306a1244 core_tests: rename invalid multisig tests to read "invalid" (moneromooo-monero)
2019-01-16 19:28:15 +02:00
Riccardo Spagni
3e9bb9626a
Merge pull request #5001
a5ffc2d5 Remove boost::lexical_cast for uuid and unused uuid function (Lee Clagett)
2019-01-16 19:27:13 +02:00
Riccardo Spagni
9d57ee9ff6
Merge pull request #4984
008647d7 blockchain_db: speedup tx output gathering (moneromooo-monero)
2019-01-16 19:06:07 +02:00
Riccardo Spagni
846362842c
Merge pull request #4976
85665003 epee: better network buffer data structure (moneromooo-monero)
2019-01-16 19:04:22 +02:00
Paul Shapiro
5ecc5cc790 added two tests for partial word and case tolerance in mnemonics 2019-01-11 13:46:20 -06:00
moneromooo-monero
524bf750c0
core_tests: add a --list_tests command line switch 2019-01-07 14:42:19 +00:00
moneroexamples
ec68cf822f Make get_output_key method const
get_output_key method is commonly used when working with txs and their key images. Because the method is not const, passing blockchain object though const& or pointers to const is not possible in this context. This is especially problematic in external projects (e.g., projects in moneroexamples) that use monero C++ api to operate on the blockchain and txs.

Thus, having get_output_key method will simplify moving blockchain object around through const references and pointers to const objects.
2019-01-07 05:53:14 +08:00
Riccardo Spagni
577a8f5c84
Merge pull request #4952
570dd369 p2p: use vector instead of list for peer lists (moneromooo-monero)
2019-01-06 20:39:07 +02:00
David Meister
d6dde478de remove trailing whitespace in README.md 2019-01-02 12:25:18 +11:00
luigi1111
4a78bcd275
Merge pull request #4941
1cfd6f1 unit_tests: strengthen notify test against OS scheduling (moneromooo-monero)
2018-12-31 15:48:52 -06:00
moneromooo-monero
85665003a7
epee: better network buffer data structure
avoids pointless allocs and memcpy
2018-12-23 16:46:07 +00:00
Lee Clagett
a5ffc2d5ad Remove boost::lexical_cast for uuid and unused uuid function 2018-12-23 11:11:30 +00:00
moneromooo-monero
306a124494
core_tests: rename invalid multisig tests to read "invalid" 2018-12-22 01:31:43 +00:00
moneromooo-monero
008647d7eb
blockchain_db: speedup tx output gathering
We know all the data we'll want for getblocks.bin is contiguous
2018-12-18 11:55:21 +00:00
Riccardo Spagni
d855f9bb92
Merge pull request #4901
a48f2dab blockchain_prune_known_spent_data: blackball file is now optional (moneromooo-monero)
17b45725 Outputs where all amounts are known spent can now be pruned (moneromooo-monero)
2018-12-12 11:57:31 +02:00
Riccardo Spagni
dde1e69723
Merge pull request #4787
3dba7f25 protocol: option to pad transaction relay to the next kB (moneromooo-monero)
2018-12-12 11:53:10 +02:00
moneromooo-monero
570dd3690e
p2p: use vector instead of list for peer lists 2018-12-07 13:20:34 +00:00
moneromooo-monero
1cfd6f1060
unit_tests: strengthen notify test against OS scheduling 2018-12-05 00:32:02 +00:00
Riccardo Spagni
36219feff1
Merge pull request #4895
3de7d52f unit_tests: fix malloc/delete mismatch (moneromooo-monero)
2018-12-04 17:33:31 +02:00
Riccardo Spagni
81418cb281
Merge pull request #4894
aee7a4e3 wallet_rpc_server: do not use RPC data if the call failed (moneromooo-monero)
1a0733e5 windows_service: fix memory leak (moneromooo-monero)
0dac3c64 unit_tests: do not rethrow a copy of an exception (moneromooo-monero)
5d9915ab cryptonote: fix get_unit for non default settings (moneromooo-monero)
d4f50cb1 remove some unused code (moneromooo-monero)
61163971 a few minor (but easy) performance tweaks (moneromooo-monero)
30023074 tests: slow_memmem now returns size_t (moneromooo-monero)
2018-12-04 17:33:19 +02:00
moneromooo-monero
ec1a62b50d
move int-util.h to epee 2018-12-04 15:14:29 +00:00
Riccardo Spagni
c00ac446fd
Merge pull request #4854
bd98e99c Removed a lot of unnecessary includes (Martijn Otto)
2018-12-04 17:08:42 +02:00
Riccardo Spagni
40650b43b8
Merge pull request #4850
b36353e2 unit_tests: add some hex parsing test for non hex input (xiphon)
6671110c unit_tests: add a test for parse_hexstr_to_binbuff (moneromooo-monero)
f6187cd8 epee: speed up parse_hexstr_to_binbuff a little (Howard Chu)
2018-12-04 17:07:19 +02:00
Riccardo Spagni
3552553f89
Merge pull request #4848
80be2dca unit_tests: don't take the address of an unwrapped secret key (moneromooo-monero)
2018-12-04 17:06:47 +02:00
moneromooo-monero
17b45725af
Outputs where all amounts are known spent can now be pruned
Only for pre rct for obvious reasons.

Note: DO NOT use a known spent list which includes outputs
which are not known spent. If the list includes any output
that's just strongly thought to be spent, but not provably
so, you risk finding yourself unable to sync past the point
where that output is spent.

I estimate only 200 MB saved on current mainnet though,
unless the new blackballing rule unearths a good amount of
large-amount-set extra spent outs.
2018-11-27 15:45:42 +00:00
Riccardo Spagni
58ce16d4d9
Merge pull request #4821
fc98f7a0 rpc: speedup get_outs.bin (moneromooo-monero)
2018-11-26 21:51:27 +02:00
moneromooo-monero
fc98f7a0a1
rpc: speedup get_outs.bin 2018-11-26 18:56:23 +00:00
Riccardo Spagni
6e100964ea
Merge pull request #4832
9da6c52b unit_tests: add logging unit test (moneromooo-monero)
2018-11-26 20:29:53 +02:00
moneromooo-monero
3de7d52f7c
unit_tests: fix malloc/delete mismatch 2018-11-23 15:55:41 +00:00
moneromooo-monero
0dac3c6428
unit_tests: do not rethrow a copy of an exception
Found by codacy.com
2018-11-23 15:38:00 +00:00
moneromooo-monero
d4f50cb109
remove some unused code
Found by codacy.com
2018-11-23 15:37:36 +00:00
moneromooo-monero
3002307418
tests: slow_memmem now returns size_t
Makes more sense than uint64_t for an offset, and agrees with
the %zu used to print results.

Found by codacy.com
2018-11-23 15:36:48 +00:00
moneromooo-monero
80be2dca2b
unit_tests: don't take the address of an unwrapped secret key 2018-11-16 19:36:02 +00:00
moneromooo-monero
31d80027b5
tests: add unit tests for get_output_distribution 2018-11-16 19:21:45 +00:00
Riccardo Spagni
afaff5fb77
Merge pull request #4803
fa3f756b unit_tests: fix leak when the test check fails (moneromooo-monero)
2018-11-16 11:15:15 +02:00
Riccardo Spagni
46f989bc49
Merge pull request #4795
5d7c2316 rct: add a zeroCommit cache for common pre-rct case (moneromooo-monero)
2018-11-16 11:11:10 +02:00
xiphon
b36353e268
unit_tests: add some hex parsing test for non hex input 2018-11-15 23:34:15 +00:00
moneromooo-monero
6671110ca3
unit_tests: add a test for parse_hexstr_to_binbuff 2018-11-15 23:34:15 +00:00
Martijn Otto
bd98e99c80
Removed a lot of unnecessary includes 2018-11-15 17:29:34 +01:00
Riccardo Spagni
0cc3fc3756
Merge pull request #4769
5808530f blockchain: remove unused output_scan_worker parameter (moneromooo-monero)
1426209a blockchain: don't run threads if we have just one function to run (moneromooo-monero)
6f7a5fd4 db_lmdb: slight speedup getting array data from the blockchain (moneromooo-monero)
99fbe100 db_lmdb: save some string copies for readonly db keys/values (moneromooo-monero)
bf31447e tx_pool: speed up take_tx for transactions from blocks (moneromooo-monero)
4f005a77 tx_pool: remove unnecessary get_transaction_hash (moneromooo-monero)
593ef598 perf_timer: call reserve on new timer array (moneromooo-monero)
6ecc99ad core: avoid unnecessary tx/blob conversions (moneromooo-monero)
00cc1a16 unit_tests: notify test special case for the usual weirdo (moneromooo-monero)
2018-11-14 21:35:03 +02:00
stoffu
6d3311aceb
libwallet_api_tests: add missing dependency on Boost Locale and ICU 2018-11-15 00:19:41 +09:00
moneromooo-monero
9da6c52bb2
unit_tests: add logging unit test 2018-11-09 16:57:03 +00:00
Riccardo Spagni
f7edda5304
Merge pull request #4739
9c1c92db tests: fix MSYS2 gcc 7.3.0 warning -Wtype-limits (xiphon)
2018-11-06 21:32:06 +02:00
Riccardo Spagni
e00a6ce9c7
Merge pull request #4732
3a056b73 performance_tests: add ge_p3_tobytes (moneromooo-monero)
30f728e3 performance_tests: measure ge_frombytes_vartime only (moneromooo-monero)
2018-11-06 21:30:40 +02:00
moneromooo-monero
3dba7f252e
protocol: option to pad transaction relay to the next kB
To help protect one's privacy from traffic volume analysis
for people using Tor or I2P. This will really fly once we
relay txes on a timer rather than on demand, though.

Off by default for now since it's wasteful and doesn't bring
anything until I2P's in.
2018-11-06 15:47:05 +00:00
moneromooo-monero
fa3f756bfb
unit_tests: fix leak when the test check fails
Coverity 189527
2018-11-05 11:15:39 +00:00
moneromooo-monero
5f614ba968
simplewallet: print the number of show/all transfers 2018-11-04 22:27:05 +00:00
moneromooo-monero
8d71b2b1b3
wallet2: only export necessary outputs and key images
and disable annoying test that requires ridiculous amounts
of skullduggery every time some format changes
2018-11-04 22:27:01 +00:00
Riccardo Spagni
6d3d8635be
Merge pull request #4693
74fb3d88 multiexp: some minor speedups (moneromooo-monero)
a6d2e246 bulletproofs: only enable profiling on request (moneromooo-monero)
a110e6aa multiexp: tune which variants to use for which number of points (moneromooo-monero)
8b476722 bulletproofs: speedup prover (moneromooo-monero)
6f9ae5b6 multiexp: handle pippenger multiexps with part precalc (moneromooo-monero)
10e5a927 bulletproofs: maintain -z4, -z5, and -y0 to avoid subtractions (moneromooo-monero)
8629a42c bulletproofs: rework flow to use sarang's fast batch inversion code (moneromooo-monero)
fc9f7d9c bulletproofs: merge multiexps as per sarang's new python code (moneromooo-monero)
4061960a multiexp: pack the digits table when STRAUS_C is 4 (moneromooo-monero)
bf8e4b98 bulletproofs: some more minor speedup (moneromooo-monero)
c415df97 performance_tests: sc_check and ge_dsm_precomp (moneromooo-monero)
a281b950 bulletproofs: remove single value prover (moneromooo-monero)
484155d0 bulletproofs: some more speedup (moneromooo-monero)
a621d6c8 bulletproofs: random minor speedups (moneromooo-monero)
a49a1761 bulletproofs: shave off a lot of scalar muls from the g/h construction (moneromooo-monero)
4564a5d1 bulletproofs: speedup PROVE (moneromooo-monero)
2018-11-04 20:46:42 +02:00
moneromooo-monero
5d7c231604
rct: add a zeroCommit cache for common pre-rct case
This is called for every pre-rct output at blockchain sync time,
and a lot of them wil hit the cache, saving a scalarmult each.
2018-11-04 15:44:56 +00:00
moneromooo-monero
6ecc99ad1f
core: avoid unnecessary tx/blob conversions 2018-11-01 15:51:19 +00:00
moneromooo-monero
00cc1a1657
unit_tests: notify test special case for the usual weirdo 2018-11-01 15:51:16 +00:00
xiphon
9c1c92db65 tests: fix MSYS2 gcc 7.3.0 warning -Wtype-limits 2018-10-29 08:20:15 +03:00
moneromooo-monero
f48db530be
unit_tests: fix notify unit test when /tmp does not exist 2018-10-27 11:19:54 +00:00
Riccardo Spagni
4cbb476cd1
Merge pull request #4721
a9f9406c unit_tests: notify test special case for the usual weirdo (moneromooo-monero)
2018-10-26 22:42:58 +02:00
Riccardo Spagni
b5fafa6c61
Merge pull request #4613
45a6880d unit_tests: call umask before mkstemp (moneromooo-monero)
2018-10-26 22:38:18 +02:00
Riccardo Spagni
1c91963dcd
Merge pull request #4308
9907ea06 cryptonote: sort tx_extra fields (moneromooo-monero)
2018-10-26 22:18:28 +02:00
moneromooo-monero
3a056b7393
performance_tests: add ge_p3_tobytes 2018-10-26 17:02:11 +00:00
moneromooo-monero
30f728e362
performance_tests: measure ge_frombytes_vartime only
not an extra dynamic cast, which might be heavy
2018-10-26 17:01:05 +00:00
moneromooo-monero
a9f9406c5b
unit_tests: notify test special case for the usual weirdo 2018-10-24 21:55:03 +00:00
Riccardo Spagni
af7caf78a1
Merge pull request #4640
11415128 unit_tests: fix notify test when run from make *test (moneromooo-monero)
2018-10-23 11:45:57 +02:00
moneromooo-monero
6f9ae5b6eb
multiexp: handle pippenger multiexps with part precalc 2018-10-22 16:07:44 +00:00
moneromooo-monero
c415df97bd
performance_tests: sc_check and ge_dsm_precomp 2018-10-22 16:07:44 +00:00
Riccardo Spagni
14dbe67fa7
Merge pull request #4521
6653062e unit_tests: add unit test for alloc alignment being a power of 2 (moneromooo-monero)
2018-10-20 20:39:58 +02:00
moneromooo-monero
99cd6f961a
Rename "blackball" for clarity
Apparently some people seem to think it's a censorship list...
2018-10-18 18:45:45 +00:00
moneromooo-monero
1141512811
unit_tests: fix notify test when run from make *test 2018-10-17 21:13:21 +00:00
moneromooo-monero
45a6880d78
unit_tests: call umask before mkstemp
Coverity 188788
2018-10-16 09:19:27 +00:00
iDunk5400
e7f24850d5
Fix Windows build after epee dependency change 2018-10-15 23:08:17 +00:00
Riccardo Spagni
5ccd3d32b4
Merge pull request #4489
00901e9c epee: initialize a few data members where it seems to be appropriate (moneromooo-monero)
144a6c32 abstract_tcp_server2: move m_period to subclass (moneromooo-monero)
758d7684 connection_basic: remove unused floating time start time (moneromooo-monero)
e5108a29 Catch more exceptions in dtors (moneromooo-monero)
2018-10-15 13:37:18 +02:00
Riccardo Spagni
215fa6b5ce
Merge pull request #4481
98c92258 unit_tests: add a notifier test (moneromooo-monero)
2018-10-15 13:36:41 +02:00
moneromooo-monero
e736964a0c
Remove epee header dependency on cryptonote_core 2018-10-12 17:16:44 +00:00
moneromooo-monero
6653062e61
unit_tests: add unit test for alloc alignment being a power of 2 2018-10-08 11:36:42 +00:00
Riccardo Spagni
e19652df51
Merge pull request #4036
9acf42d3 Multisig M/N functionality core tests added (naughtyfox)
9f3963e8 Arbitrary M/N multisig schemes: * support in wallet2 * support in monero-wallet-cli * support in monero-wallet-rpc * support in wallet api * support in monero-gen-trusted-multisig * unit tests for multisig wallets creation (naughtyfox)
2018-10-07 19:57:26 +02:00
moneromooo-monero
f9485a36cf
tests: update crypto tests data file after PRNG changes 2018-10-07 17:44:02 +00:00
moneromooo-monero
9907ea0694
cryptonote: sort tx_extra fields
This removes some small amount of fingerprinting entropy.
There is no consensus rule to require this since this field
is technically free form, and a transaction is free to have
custom data in it.
2018-10-07 11:13:22 +00:00
iDunk5400
7f2ad1a768
functional_tests: fix linking on Windows 2018-10-03 01:06:03 +02:00
Riccardo Spagni
f34f9312f2
Merge pull request #4464
bef1750f unit_tests: fix longstanding DNS related unit test (moneromooo-monero)
2018-10-02 22:36:39 +02:00
moneromooo-monero
e5108a294a
Catch more exceptions in dtors
Misc coverity reports
2018-10-02 17:28:44 +00:00
naughtyfox
9acf42d371 Multisig M/N functionality core tests added 2018-10-01 19:17:34 +03:00
naughtyfox
9f3963e823 Arbitrary M/N multisig schemes:
* support in wallet2
* support in monero-wallet-cli
* support in monero-wallet-rpc
* support in wallet api
* support in monero-gen-trusted-multisig
* unit tests for multisig wallets creation
2018-10-01 19:16:56 +03:00
moneromooo-monero
98c9225823
unit_tests: add a notifier test 2018-10-01 09:14:20 +00:00
Riccardo Spagni
effcbf2060
Merge pull request #4459
bcf3f6af fuzz_tests: catch unhandled exceptions (moneromooo-monero)
3ebd05d4 miner: restore stream flags after changing them (moneromooo-monero)
a093092e levin_protocol_handler_async: do not propagate exception through dtor (moneromooo-monero)
1eebb82b net_helper: do not propagate exceptions through dtor (moneromooo-monero)
fb6a3630 miner: do not propagate exceptions through dtor (moneromooo-monero)
2e2139ff epee: do not propagate exception through dtor (moneromooo-monero)
0749a8bd db_lmdb: do not propagate exceptions in dtor (moneromooo-monero)
1b0afeeb wallet_rpc_server: exit cleanly on unhandled exceptions (moneromooo-monero)
418a9936 unit_tests: catch unhandled exceptions (moneromooo-monero)
ea7f9543 threadpool: do not propagate exceptions through the dtor (moneromooo-monero)
6e855422 gen_multisig: nice exit on unhandled exception (moneromooo-monero)
53df2deb db_lmdb: catch error in mdb_stat calls during migration (moneromooo-monero)
e67016dd blockchain_blackball: catch failure to commit db transaction (moneromooo-monero)
661439f4 mlog: don't remove old logs if we failed to rename the current file (moneromooo-monero)
5fdcda50 easylogging++: test for NULL before dereference (moneromooo-monero)
7ece1550 performance_test: fix bad last argument calling add_arg (moneromooo-monero)
a085da32 unit_tests: add check for page size > 0 before dividing (moneromooo-monero)
d8b1ec8b unit_tests: use std::shared_ptr to shut coverity up about leaks (moneromooo-monero)
02563bf4 simplewallet: top level exception catcher to print nicer messages (moneromooo-monero)
c57a65b2 blockchain_blackball: fix shift range for 32 bit archs (moneromooo-monero)
2018-09-29 22:20:38 +02:00
Riccardo Spagni
876282fd69
Merge pull request #4424
92d1da28 unit_tests: fix build with GCC 5.4.0 on ubuntu (moneromooo-monero)
2018-09-29 22:19:44 +02:00
Riccardo Spagni
402349760f
Merge pull request #4407
43a06350 ringdb: use cursors to be a bit faster (moneromooo-monero)
2018-09-29 22:19:32 +02:00
moneromooo-monero
bef1750f65
unit_tests: fix longstanding DNS related unit test 2018-09-28 15:28:38 +00:00
Riccardo Spagni
fb47963e09
Merge pull request #4404
f3cd51a1 cryptonote tweak v2.2 (Lee Clagett)
2018-09-22 20:32:40 +02:00
Lee Clagett
f3cd51a12b cryptonote tweak v2.2 2018-09-22 03:47:50 +00:00
Riccardo Spagni
bc208be63d
Merge pull request #4385
6dbbc690 unit_tests: sanity check on transaction weight (moneromooo-monero)
2018-09-21 20:44:00 +02:00
Riccardo Spagni
14ab2e4db1
Merge pull request #4384
27af46c9 tests: update test wallet keys file for encrypted keys (moneromooo-monero)
2018-09-21 20:43:32 +02:00
Riccardo Spagni
a059bcd74e
Merge pull request #4371
55c7cd14 Adding expect<T> - a value-or-error implementation (Lee Clagett)
2018-09-21 20:31:47 +02:00
Riccardo Spagni
bb3ff2bb36
Merge pull request #4209
26a42fe5 Added features to epee::span<T> :   - Support for classes   - Added `remove_prefix` function   - Added `to_mut_span` and `as_mut_byte_span` (Lee Clagett)
2018-09-21 20:30:36 +02:00
Riccardo Spagni
bad2c7cf31
Merge pull request #4391
e9bce045 Fix missing std::runtime_error def in difficulty.cpp (Howard Chu)
2018-09-18 18:00:18 +02:00
Riccardo Spagni
580497d5f9
Merge pull request #4306
56b50faa wallet: use wipeable_string in more places where a secret is used (moneromooo-monero)
07ec748c wipeable_string: add hex_to_pod function (moneromooo-monero)
2018-09-18 17:32:11 +02:00
stoffu
ba8dd3479d
api/wallet: properly disable key encryption 2018-09-17 22:15:29 +09:00
Howard Chu
e9bce045a4 Fix missing std::runtime_error def in difficulty.cpp 2018-09-16 19:35:07 +00:00
moneromooo-monero
6dbbc69055
unit_tests: sanity check on transaction weight 2018-09-15 16:14:38 +00:00
moneromooo-monero
27af46c930
tests: update test wallet keys file for encrypted keys 2018-09-15 09:34:11 +00:00
Riccardo Spagni
239a7e10ff
Merge pull request #4253
be001326 remove obsolete daemon selection of fake outs and old tx construction (moneromooo-monero)
2018-09-14 12:54:25 +02:00
moneromooo-monero
be001326d1
remove obsolete daemon selection of fake outs and old tx construction 2018-09-14 10:51:45 +00:00
Riccardo Spagni
c74d9057f8
Merge pull request #4260
a54dbaee blockchain_blackball: add --force-chain-reaction-pass flag (moneromooo-monero)
44439c32 record blackballs as amount/offset, and add export ability (moneromooo-monero)
4bce935b blockchain_blackball: more optimizations (moneromooo-monero)
b66ba783 blockchain_blackball: do not process duplicate blockchains parts (moneromooo-monero)
639a3c01 blockchain_blackball: make it clear secondary passes are not incremental (moneromooo-monero)
eb8a51be blockchain_blackball: detect spent outputs by partial ring reuse (moneromooo-monero)
d6d276c6 blockchain_blackball: fix chain reaction phase in incremental mode (moneromooo-monero)
2b2a681b blockchain_blackball: avoid false positives for different amounts (moneromooo-monero)
80e4fef3 blockchain_blackball: set transaction looping txn to read only (moneromooo-monero)
4801d6b5 blockchain_blackball: add stats (moneromooo-monero)
846190fd blockchain_blackball: support pre-v2 databases (moneromooo-monero)
daa6cc7d blockchain_blackball: use LMDB for the cache (moneromooo-monero)
50cb370d ringdb: allow blackballing many outputs at once (moneromooo-monero)
2018-09-14 12:45:18 +02:00
Riccardo Spagni
885d3d5a99
Merge pull request #4254
de905d4b fuzz_tests: use __AFL_INIT when available (moneromooo-monero)
2018-09-14 12:44:47 +02:00
Lee Clagett
55c7cd1458 Adding expect<T> - a value-or-error implementation 2018-09-12 22:44:34 +00:00
moneromooo-monero
07ec748c82
wipeable_string: add hex_to_pod function 2018-09-12 09:26:09 +00:00
Riccardo Spagni
e6d36c1701
Merge pull request #4219
9137ad2c blockchain: add a testnet v9 a day after v8 (moneromooo-monero)
ac4f71c2 wallet2: bump testnet rollback to account for coming reorg (moneromooo-monero)
8f418a6d bulletproofs: #include <openssl/bn.h> (moneromooo-monero)
2bf63650 bulletproofs: speed up the latest changes a bit (moneromooo-monero)
044dff5a bulletproofs: scale points by 8 to ensure subgroup validity (moneromooo-monero)
c83012c4 bulletproofs: match aggregated verification to sarang's latest prototype (moneromooo-monero)
ce0c7432 performance_tests: add padded bulletproof construction (moneromooo-monero)
1224e53b core_tests: add a test for 4-aggregated BP verification (moneromooo-monero)
0e6ed559 fuzz_tests: add a bulletproof fuzz test (moneromooo-monero)
463434d1 more comprehensive test for ge_p3 comparison to identity/point at infinity (moneromooo-monero)
d0a0565f unit_tests: add a few more multiexp unit tests (moneromooo-monero)
6526d87f core_tests: add a test for a tx with empty bulletproof (moneromooo-monero)
a129bbd9 multiexp: fix maxscalar off by one (moneromooo-monero)
7ed496cc ringct: error out when hashToPoint* returns the point at infinity (moneromooo-monero)
d1591853 cryptonote_basic: check output type before using it (moneromooo-monero)
61632dc1 ringct: prevent a potential very large allocation (moneromooo-monero)
a4317e61 crypto: some paranoid checks in generate_signature/check_signature (moneromooo-monero)
7434df1c crypto: never return zero in random32_unbiased (moneromooo-monero)
0825e974 multiexp: fix wrong Bos-Coster result for 1 non trivial input (moneromooo-monero)
a1359ad4 Check inputs to addKeys are in range (moneromooo-monero)
fe0fa3b9 bulletproofs: reject x, y, z, or w[i] being zero (moneromooo-monero)
5ffb2ff9 v8: per byte fee, pad bulletproofs, fixed 11 ring size (moneromooo-monero)
869b3bf8 bulletproofs: a few fixes from the Kudelski review (moneromooo-monero)
c4291762 bulletproofs: reject points not in the main subgroup (moneromooo-monero)
15697177 bulletproofs: speed up a few multiplies using existing Hi cache (moneromooo-monero)
0b05a0fa Add Pippenger cache and limit Straus cache size (moneromooo-monero)
51eb3bdc add pippenger unit tests (moneromooo-monero)
b17b8db3 performance_tests: add stats and loop count multiplier options (moneromooo-monero)
7314d919 perf_timer: split timer class into a base one and a logging one (moneromooo-monero)
d126a02b performance_tests: add aggregated bulletproof tx verification (moneromooo-monero)
263431c4 Pippenger multiexp (moneromooo-monero)
1ed0ed4d multiexp: cut down on memory allocations (moneromooo-monero)
1b867e7f precalc the ge_p3 representation of H (moneromooo-monero)
ef56529f performance_tests: document the tested bulletproof layouts (moneromooo-monero)
30111780 unit_tests: a couple more bulletproof unit tests for gamma (moneromooo-monero)
c444b1b2 require canonical multi output bulletproof layout (moneromooo-monero)
7e67c52f Add a define for the max number of bulletproof multi-outputs (moneromooo-monero)
2a8fcb42 Bulletproof aggregated verification and tests (moneromooo-monero)
126196b0 multiexp: some speedups (moneromooo-monero)
71d67bda aligned: aligned memory alloc/realloc/free (moneromooo-monero)
cb9ecab1 performance_tests: add signature generation/verification (moneromooo-monero)
bacf0a1e bulletproofs: add aggregated verification (moneromooo-monero)
e895c3de make straus cached mode thread safe, and add tests for it (moneromooo-monero)
7f48bf05 multiexp: bos coster now works for just one point (moneromooo-monero)
9ce9f8ca bulletproofs: add multi output bulletproofs to rct (moneromooo-monero)
f34e2e20 performance_tests: add tx checking tests with more than 2 outputs (moneromooo-monero)
0793184b performance_tests: add a --verbose flag, and default to terse (moneromooo-monero)
939bc223 add Straus multiexp (moneromooo-monero)
9ff6e6a0 ringct: add bos coster multiexp (moneromooo-monero)
e9164bb3 bulletproofs: misc optimizations (moneromooo-monero)
112f32f0 performance_tests: add crypto ops (moneromooo-monero)
f5d7b993 performance_tests: add bulletproofs (moneromooo-monero)
8f4ce989 performance_tests: add RingCT MLSAG gen/ver tests (moneromooo-monero)
1aa10c43 performance_tests: add (Borromean) range proofs (moneromooo-monero)
aacfd6e3 bulletproofs: multi-output bulletproofs (moneromooo-monero)
cb1cc757 performance_tests: don't override log level to 0 (moneromooo-monero)
2018-09-11 15:45:56 +02:00
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