aboutsummaryrefslogtreecommitdiff
path: root/tests (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-09-27Merge pull request #6840Alexander Blair1-1/+1
6ee9f1260 fuzz_tests: fix build error in signature fuzz test (moneromooo-monero)
2020-09-24functional_tests: rewrite mining code, clearer timeout infoiamamyth1-12/+11
2020-09-24fuzz_tests: fix build error in signature fuzz testmoneromooo-monero1-1/+1
2020-09-07Merge pull request #6798luigi11112-10/+32
4e44306 enable CLSAG support for Trezor client (ph4r05)
2020-09-06Merge pull request #6111Riccardo Spagni4-3/+139
d20ff4f64 functional_tests: add a large (many randomx epochs) p2p reorg test (moneromooo-monero) 6a0b3b1f8 functional_tests: add randomx tests (moneromooo-monero) 9d42649d5 core: fix mining from a block that's not the current top (moneromooo-monero)
2020-09-04enable CLSAG support for Trezor clientDusan Klinec2-10/+32
2020-09-03Merge pull request #6757luigi11111-20/+20
6a37da8 threadpool: guard against exceptions in jobs, and armour plating (moneromooo-monero)
2020-09-01threadpool: guard against exceptions in jobs, and armour platingmoneromooo-monero1-20/+20
Those would, if uncaught, exit run and leave the waiter to wait indefinitely for the number of active jobs to reach 0
2020-08-28Bind signature to full address and signing modeSarang Noether1-0/+2
2020-08-28wallet: allow signing a message with spend or view keymoneromooo-monero2-7/+12
2020-08-28core_tests: fix failures after v13moneromooo-monero4-13/+21
v13 enforces claiming the full block reward, so we need to keep track of tx fees to add them to the coinbase
2020-08-28core_tests: remove hardcoded hf versionmoneromooo-monero1-1/+1
2020-08-27Merge pull request #6769Alexander Blair1-0/+41
b641e0a2c Add clear method to byte_stream (Lee Clagett)
2020-08-27functional_tests: add a large (many randomx epochs) p2p reorg testmoneromooo-monero1-0/+19
2020-08-27functional_tests: add randomx testsmoneromooo-monero2-0/+117
2020-08-27core: fix mining from a block that's not the current topmoneromooo-monero1-3/+3
2020-08-27Added balance check to MLSAG/CLSAG performance testsSarang Noether3-144/+282
2020-08-27Updated MLSAG and CLSAG tests for consistencySarang Noether3-31/+63
2020-08-27CLSAG verification performance testSarang Noether2-22/+40
2020-08-27CLSAG optimizationsSarang Noether2-86/+82
2020-08-27Integrate CLSAGs into moneromoneromooo-monero15-85/+656
They are allowed from v12, and MLSAGs are rejected from v13.
2020-08-27unit_tests: add ge_triple_scalarmult_base_vartime testmoneromooo-monero1-0/+62
2020-08-27CLSAG signaturesSarang Noether4-4/+196
2020-08-27Merge pull request #6760Alexander Blair3-0/+30
844fb4e94 enforce claiming maximum coinbase amount (moneromooo-monero)
2020-08-27Merge pull request #6690Alexander Blair10-12/+10
7175dcb10 replace most boost serialization with existing monero serialization (moneromooo-monero)
2020-08-27Merge pull request #6660Alexander Blair2-8/+193
839e1f4ba functional_tests: add p2p functional tests (moneromooo-monero)
2020-08-26functional_tests: add p2p functional testsmoneromooo-monero2-8/+193
Tests tx/block propagation and reorgs
2020-08-21enforce claiming maximum coinbase amountmoneromooo-monero3-0/+30
Claiming a slightly lesser amount does not yield the size gains that were seen pre rct, so this closes a fingerprinting vector
2020-08-17Add clear method to byte_streamLee Clagett1-0/+41
2020-08-17Revert "Use domain-separated ChaCha20 for in-memory key encryption"luigi11112-74/+0
This reverts commit 921dd8dde5d381052d0aa2936304a3541a230c55.
2020-08-17replace most boost serialization with existing monero serializationmoneromooo-monero10-12/+10
This reduces the attack surface for data that can come from malicious sources (exported output and key images, multisig transactions...) since the monero serialization is already exposed to the outside, and the boost lib we were using had a few known crashers. For interoperability, a new load-deprecated-formats wallet setting is added (off by default). This allows loading boost format data if there is no alternative. It will likely go at some point, along with the ability to load those. Notably, the peer lists file still uses the boost serialization code, as the data it stores is define in epee, while the new serialization code is in monero, and migrating it was fairly hairy. Since this file is local and not obtained from anyone else, the marginal risk is minimal, but it could be migrated later if needed. Some tests and tools also do, this will stay as is for now.
2020-08-16Merge pull request #6718Alexander Blair1-0/+11
85efc88c1 Fix overflow issue in epee:misc_utils::rolling_median_t and median(), with unit test (koe)
2020-08-16Merge pull request #6716Alexander Blair4-4/+4
76c16822d wallet2_api: implement runtime proxy configuration (xiphon)
2020-08-16Merge pull request #6603Alexander Blair1-1/+16
4e2377995 Change ZMQ-JSON txextra to hex and remove unnecessary base fields (Lee Clagett)
2020-08-16Merge pull request #6601Alexander Blair1-1/+1
98c151ecb Optimize ZMQ-JSON vector reading; GetBlocksFast reads 24%+ faster (Lee Clagett) 60627c9f2 Switch to insitu parsing for ZMQ-JSON; GetBlocksFast reads 13%+ faster (Lee Clagett) fe96e66eb Fix pruned tx for ZMQ's GetBlocksFast (Lee Clagett)
2020-08-16Merge pull request #6593Alexander Blair1-0/+1
6f5411d30 tests: fix missing error on missing python entry point (moneromooo-monero) c6dc2850c python-rpc: add missing sync_txpool python entry point (moneromooo-monero)
2020-08-16Merge pull request #6493Alexander Blair2-0/+74
921dd8dde Use domain-separated ChaCha20 for in-memory key encryption (Sarang Noether)
2020-08-16Merge pull request #6337Alexander Blair3-0/+479
a11ec4ac1 Support for supercop ASM in wallet, and benchmark for supercop (Lee Clagett)
2020-08-16Merge pull request #6329Alexander Blair3-5/+165
6bfcd3101 Updates InProofV1, OutProofV1, and ReserveProofV1 to new V2 variants that include all public proof parameters in Schnorr challenges, along with hash function domain separators. Includes new randomized unit tests. (Sarang Noether)
2020-08-14Change ZMQ-JSON txextra to hex and remove unnecessary base fieldsLee Clagett1-1/+16
2020-08-14Fix pruned tx for ZMQ's GetBlocksFastLee Clagett1-1/+1
2020-08-09Use domain-separated ChaCha20 for in-memory key encryptionSarang Noether2-0/+74
2020-08-09Updates InProofV1, OutProofV1, and ReserveProofV1 to new V2 variants that ↵Sarang Noether3-5/+165
include all public proof parameters in Schnorr challenges, along with hash function domain separators. Includes new randomized unit tests.
2020-08-09Merge pull request #6354Alexander Blair1-8/+246
67ade8005 Add randomized delay when forwarding txes from i2p/tor -> ipv4/6 (Lee Clagett)
2020-07-23Fix overflow issue in epee:misc_utils::rolling_median_t and median(), with ↵koe1-0/+11
unit test
2020-07-20wallet2_api: implement runtime proxy configurationxiphon4-4/+4
2020-07-19Merge pull request #6516Alexander Blair2-3/+0
8656a8c9f remove double includes (sumogr)
2020-07-19Merge pull request #6512Alexander Blair181-181/+181
5ef0607da Update copyright year to 2020 (SomaticFanatic)
2020-07-19Merge pull request #6497Alexander Blair2-2/+2
db8563cb performance_tests: some windows fixes (moneromooo-monero)
2020-07-08Merge pull request #6599luigi11111-0/+11
6e4a55b rpc: fix relay_tx error return mixup (moneromooo-monero) 9b86e14 functional_tests: add simple relay_tx test (moneromooo-monero)
2020-07-08Merge pull request #6559luigi11111-0/+23
15538f7 ByteSlice: Fix persisting ptr to std::moved SSO buffer (Doy-lee)
2020-06-19Merge pull request #6656luigi11118-18/+93
bde7f1c fuzz_tests: fix init check in oss-fuzz mode (moneromooo-monero) c4b7420 Do not use PIE with OSS-Fuzz (moneromooo-monero) c4df8b1 fix leaks in fuzz tests (moneromooo-monero) 38ca1bb fuzz_tests: add a tx extra fuzz test (moneromooo-monero)
2020-06-14fuzz_tests: fix init check in oss-fuzz modemoneromooo-monero1-1/+1
2020-06-14fix leaks in fuzz testsmoneromooo-monero4-17/+34
2020-06-14fuzz_tests: add a tx extra fuzz testmoneromooo-monero4-0/+58
2020-06-09repo: update donation fund addressselsta3-9/+9
2020-06-08Merge pull request #6522luigi11111-0/+31
29e563b Fixed bugs for take_slice and byte_stream->byte_slice (vtnerd)
2020-05-31Fix boost <1.60 compilation and fix boost 1.73+ warningsLee Clagett1-2/+3
2020-05-28functional_tests: add simple relay_tx testmoneromooo-monero1-0/+11
2020-05-27Merge pull request #6535luigi111115-540/+228
81773f5 fuzz_tests: refactor and add OSS-Fuzz compatibility (moneromooo-monero) cb4edc1 cmake: ASAN and PIE don't mix (moneromooo-monero)
2020-05-27tests: fix missing error on missing python entry pointmoneromooo-monero1-0/+1
2020-05-20ByteSlice: Fix persisting ptr to std::moved SSO bufferDoyle1-0/+23
The Bug: 1. Construct `byte_slice.portion_` with `epee::span(buffer)` which copies a pointer to the SSO buffer to `byte_slice.portion_` 2. It constructs `byte_slice.storage_` with `std::move(buffer)` (normally this swap pointers, but SSO means a memcpy and clear on the original SSO buffer) 3. `slice.data()` returns a pointer from `slice.portion_` that points to the original SSO cleared buffer, `slice.storage_` has the actual string.
2020-05-16Support for supercop ASM in wallet, and benchmark for supercopLee Clagett3-0/+479
2020-05-15fuzz_tests: refactor and add OSS-Fuzz compatibilitymoneromooo-monero15-540/+228
2020-05-15Add randomized delay when forwarding txes from i2p/tor -> ipv4/6Lee Clagett1-8/+246
2020-05-14build: fix boost 1.73 compatibilityselsta1-2/+2
2020-05-12Fixed bugs for take_slice and byte_stream->byte_sliceLee Clagett1-0/+31
2020-05-11remove double includessumogr2-3/+0
2020-05-06Update copyright year to 2020SomaticFanatic181-181/+181
Update copyright year to 2020
2020-05-06Merge pull request #6477luigi11113-65/+25
afe5a55 Revert functional test changes in babf25d and 5715460 (vtnerd)
2020-05-04Adding ZMQ/Pub support for txpool_add and chain_main eventsLee Clagett4-8/+776
2020-05-03performance_tests: some windows fixesmoneromooo-monero2-2/+2
Too many iterations cause std::bad_alloc for the timings vector, and the micro prefix displays as some other character, so use u. Reported by iDunk
2020-04-24Revert functional test changes in babf25d2e and 571546067Lee Clagett3-65/+25
2020-04-21Merge pull request #6445luigi11113-25/+65
5715460 Always reject duplicate key-images from second txid (vtnerd) babf25d Allow unrestricted rpc calls to get full txpool info (vtnerd)
2020-04-21Merge pull request #6433luigi11112-1/+5
7326b69 functional_tests: ensure signatures never reuse a timestamp (moneromooo-monero) 082dd2c functional_tests: ensure signed timestamps are fresh (moneromooo-monero)
2020-04-21Merge pull request #6359luigi11111-0/+3
f9441c5 Fixed string_ref usage bug in epee::from_hex::vector (vtnerd)
2020-04-21Merge pull request #6332luigi11111-0/+5
87d7558 Allow wallet2.h to run in WebAssembly (woodser)
2020-04-15Allow wallet2.h to run in WebAssemblywoodser1-0/+5
- Add abstract_http_client.h which http_client.h extends. - Replace simple_http_client with abstract_http_client in wallet2, message_store, message_transporter, and node_rpc_proxy. - Import and export wallet data in wallet2. - Use #if defined __EMSCRIPTEN__ directives to skip incompatible code.
2020-04-11Add byte_stream for zero-copy serialization, and add support in ZMQ-JSON.Lee Clagett2-5/+259
2020-05-02Merge pull request #6451luigi11113-0/+11
4ed60b6 Bulletproofs: verification speedup (SarangNoether)
2020-05-01Merge pull request #6460luigi11111-0/+4
f8b1480 unit_tests: fix gcc+ warning (sumogr)
2020-05-01Merge pull request #6446luigi11114-57/+43
e509ede trezor: adapt to new passphrase mechanism (ph4r05)
2020-04-27trezor: adapt to new passphrase mechanismDusan Klinec4-57/+43
- choice where to enter passphrase is now made on the host - use wipeable string in the comm stack - wipe passphrase memory - protocol optimizations, prepare for new firmware version - minor fixes and improvements - tests fixes, HF12 support
2020-04-18unit_tests: fix gcc+ warningSumo Gr1-0/+4
2020-04-14Bulletproofs: verification speedupSarang Noether3-0/+11
2020-04-10Merge pull request #6403luigi11113-0/+64
5de2295 Correct key image check in tx_pool (vtnerd)
2020-04-06functional_tests: ensure signatures never reuse a timestampmoneromooo-monero1-0/+2
2020-04-06functional_tests: ensure signed timestamps are freshmoneromooo-monero1-1/+3
This fixes a test failure now that timestamps are more constrained
2020-04-04Merge pull request #6381luigi11111-8/+12
e719760 Fix receive order leakage with tx fluffing (vtnerd)
2020-04-04Merge pull request #6361luigi11112-1/+58
68a6507 Fixed bug in ZMQ JSON-RPC method field (vtnerd)
2020-04-04Merge pull request #6357luigi11112-0/+173
42a7a4d daemon: auto public nodes - cache and prioritize most stable nodes (xiphon)
2020-04-04Merge pull request #6351luigi11111-3/+43
81c5943 Remove temporary std::string creation in some hex->bin calls (vtnerd) 5fcc23a Move hex->bin conversion to monero copyright files and with less includes (vtnerd) 3387f0e Reduce template bloat in hex->bin for ZMQ json (vtnerd)
2020-04-04Merge pull request #6346luigi11112-5/+1
dbfa4f8 unit_tests: fix missing test names (xiphon)
2020-04-04Merge pull request #6339luigi11112-2/+2
c61abf8 remove empty statements (shopglobal)
2020-04-04Merge pull request #6335luigi11111-0/+1
0078ce7 wipeable_string: split - treat CR, LF and Tabs as separators (xiphon)
2020-04-04Merge pull request #6309luigi11112-5/+57
e69acff functional_tests: update cookie at 10 seconds interval (moneromooo-monero) f5a11f0 functional_tests: speed up signature generation (moneromooo-monero)
2020-04-03Use byte_slice for sending zmq messages - removes data copy within zmqLee Clagett1-0/+39
2020-03-31cryptonote_basic: drop unused verification_context::m_not_rct fieldxiphon1-3/+0
2020-03-31Merge pull request #6214luigi11112-0/+4
054b4c7 protocol: request txpool contents when synced (moneromooo-monero)
2020-03-30Always reject duplicate key-images from second txidLee Clagett1-13/+39
2020-03-30Allow unrestricted rpc calls to get full txpool infoLee Clagett2-12/+26
2020-03-30Fixed string_ref usage bug in epee::from_hex::vectorLee Clagett1-0/+3
2020-03-28Fix network unit tests after epee changesLee Clagett1-2/+2
2020-03-27Merge pull request #6285Alexander Blair1-23/+403
d0641b42 net: fix incorrect less operator for top/i2p addresses (Aaron Hook)
2020-03-26Adding Dandelion++ support to public networks:Lee Clagett5-29/+1118
- New flag in NOTIFY_NEW_TRANSACTION to indicate stem mode - Stem loops detected in tx_pool.cpp - Embargo timeout for a blackhole attack during stem phase
2020-03-26functional_tests: speed up signature generationmoneromooo-monero2-5/+29
Executing a new binary for each signature can get really slow
2020-03-26functional_tests: update cookie at 10 seconds intervalmoneromooo-monero1-0/+28
Otherwise the daemon will start rejecting
2020-03-22protocol: request txpool contents when syncedmoneromooo-monero2-0/+4
A newly synced Alice sends a (typically quite small) list of txids in the local tpxool to a random peer Bob, who then uses the existing tx relay system to send Alice any tx in his txpool which is not in the list Alice sent
2020-03-20p2p: remove old debug commandsAaron Hook4-2/+2
2020-03-14Correct key image check in tx_poolLee Clagett3-0/+64
2020-03-12Merge pull request #6273Alexander Blair2-20/+38
0f78b06e Various improvements to the ZMQ JSON-RPC handling: (Lee Clagett)
2020-03-12Merge pull request #6243Alexander Blair1-2/+2
4771a7ae p2p: remove obsolete local time in handshake (moneromooo-monero) 2fbbc4a2 p2p: avoid sending the same peer list over and over (moneromooo-monero) 3004835b epee: remove backward compatible endian specific address serialization (moneromooo-monero) 39a343d7 p2p: remove backward compatible peer list (moneromooo-monero) 60631802 p2p: simplify last_seen serialization now we have optional stores (moneromooo-monero) 9467b2e4 cryptonote_protocol: omit top 64 bits of difficulty when 0 (moneromooo-monero) b595583f serialization: do not write optional fields with default value (moneromooo-monero) 5f98b46d p2p: remove obsolete local time from TIMED_SYNC (moneromooo-monero)
2020-03-10Fix receive order leakage with tx fluffingLee Clagett1-8/+12
2020-03-09Move hex->bin conversion to monero copyright files and with less includesLee Clagett1-3/+43
2020-03-05Various improvements to the ZMQ JSON-RPC handling:Lee Clagett2-20/+38
- Finding handling function in ZMQ JSON-RPC now uses binary search - Temporary `std::vector`s in JSON output now use `epee::span` to prevent allocations. - Binary -> hex in JSON output no longer allocates temporary buffer - C++ structs -> JSON skips intermediate DOM creation, and instead write directly to an output stream.
2020-02-28Merge pull request #6061Alexander Blair4-5/+0
f1091c41 core_tests: remove some useless verbose logs (moneromooo-monero)
2020-02-28Merge pull request #6225Alexander Blair1-0/+5
987c3139 print_coinbase_tx_sum now supports 128 bits sums (moneromooo-monero)
2020-02-28Merge pull request #6220Alexander Blair1-3/+3
a9bdc6e4 Improved performance for epee serialization: (Lee Clagett)
2020-02-28Merge pull request #6202Alexander Blair1-9/+0
02b80513 unit_tests: remove invalid bulletproofs unit test (moneromooo-monero)
2020-02-28daemon: auto public nodes - cache and prioritize most stable nodesxiphon2-0/+173
2020-02-18unit_tests: fix missing test namesxiphon2-5/+1
2020-02-17remove empty statementsInterchained2-2/+2
Cleaning up a little around the code base.
2020-02-12wipeable_string: split - treat CR, LF and Tabs as separatorsxiphon1-0/+1
2020-02-06Merge pull request #6069Alexander Blair1-8/+23
d64e5aa7 wallet: allow message sign/verify for subaddresses (moneromooo-monero)
2020-02-06Merge pull request #6035Alexander Blair1-0/+2
b90c4bc3 rpc: error out from get_info if the proxied call errors out (moneromooo-monero) fa16df99 make_test_signature: exit nicely on top level exception (moneromooo-monero) 054b2621 node_rpc_proxy: init some new rpc payment fields in invalidate (moneromooo-monero) d0faae2a rpc: init a few missing client_info members (moneromooo-monero) d56a483a rpc: do not propagate exceptions out of a dtor (moneromooo-monero) 3c849188 rpc: always set the update field in update on sucess (moneromooo-monero)
2020-01-26serialization: do not write optional fields with default valuemoneromooo-monero1-2/+2
2020-01-25Merge pull request #6170Alexander Blair3-18/+19
56a4469e network: log traffic and add a simple traffic analysis script (moneromooo-monero)
2020-01-26network: log traffic and add a simple traffic analysis scriptmoneromooo-monero3-18/+19
2020-01-26wallet: do not split integrated addresses in address book apimoneromooo-monero2-60/+5
2020-01-24Merge pull request #6300Alexander Blair1-4/+10
6f330865 fix tests bug added in #6110 (Dusan Klinec)
2020-01-24Merge pull request #6146Alexander Blair2-16/+84
70c9cd3c Change to Tx diffusion (Dandelion++ fluff) instead of flooding (Lee Clagett)
2020-01-19fix tests bug added in #6110Dusan Klinec1-4/+10
- e.g., fixes gen_block_big_major_version test, error: generation failed: what=events not set, cannot compute valid RandomX PoW - ask for events only if difficulty > 1 (when it really matters) - throwing an exception changed to logging, so it is easy to spot a problem if tests start to fail.
2020-01-18net: fix incorrect less operator for top/i2p addressesAaron Hook1-23/+403
2020-01-16Merge pull request #6115Alexander Blair1-0/+2
27522aaa core_tests: reset thread pool between tests (moneromooo-monero)
2020-01-11Merge pull request #6110Alexander Blair3-22/+180
da6c807f tests: fix HF12 chaingen - construct bc object from events (Dusan Klinec)
2019-12-31wallet: allow message sign/verify for subaddressesmoneromooo-monero1-8/+23
2019-12-12Merge pull request #6041luigi11111-1/+11
261abf7 functional_tests: ensure mining stops on error in mining test (moneromooo-monero)
2019-12-12Merge pull request #6018luigi11112-1/+51
dce6f05 rpc: Only show version string if it matches expected pattern (ndorf) 3293780 daemon: Use rpc for 'version' command (ndorf)
2019-12-12print_coinbase_tx_sum now supports 128 bits sumsmoneromooo-monero1-0/+5
The tail emission will bring the total above 64 bits
2019-12-01unit_tests: remove invalid bulletproofs unit testmoneromooo-monero1-9/+0
It was intended to check a case which is actually valid (0 gamma), but was actually duplicating the bad amount test. Reported by WhatDo_ on IRC.
2019-11-27make_test_signature: exit nicely on top level exceptionmoneromooo-monero1-0/+2
Coverity 205411
2019-11-18Fixed bug in ZMQ JSON-RPC method fieldLee Clagett2-1/+58
2019-11-13tests: fix HF12 chaingen - construct bc object from eventsDusan Klinec3-22/+180
2019-11-12rpc: Only show version string if it matches expected patternNathan Dorfman2-1/+51
2019-11-10core_tests: reset thread pool between testsmoneromooo-monero1-0/+2
Avoids a DB error (leading to an assert) where a thread uses a read txn previously created with an environment that was since closed and reopened. While this usually works since BlockchainLMDB renews txns if it detects the environment has changed, this will not work if objects end up being allocated at the same address as the previous instance, leading to stale data usage. Thanks hyc for the LMDB debugging.
2019-11-04Change to Tx diffusion (Dandelion++ fluff) instead of floodingLee Clagett2-16/+84
2019-11-04Improved performance for epee serialization:Lee Clagett1-3/+3
- Removed copy of field names in binary deserialization - Removed copy of array values in binary deserialization - Removed copy of string values in json deserialization - Removed unhelpful allocation in json string value parsing - Removed copy of blob data on binary and json serialization
2019-11-02Adding support for hidden (anonymity) txpoolLee Clagett10-36/+739
2019-11-02Merge pull request #6060Riccardo Spagni1-7/+16
1554a7768 unit_tests: fix use after free (moneromooo-monero)
2019-10-31cryptonote: untangle dependency from miner to blockchainmoneromooo-monero1-2/+6
It causes link errors at least on mac
2019-10-30core_tests: remove some useless verbose logsmoneromooo-monero4-5/+0
2019-10-30unit_tests: fix use after freemoneromooo-monero1-7/+16
2019-10-27functional_tests: ensure mining stops on error in mining testmoneromooo-monero1-1/+11
this prevents messing up any subsequent test too
2019-10-25functional_tests: fix rpc_payment tests with python 3moneromooo-monero1-3/+4
2019-10-25daemon, wallet: new pay for RPC use systemmoneromooo-monero7-6/+506
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-22Merge pull request #5972luigi11111-0/+37
9447e72 cryptonote: add function to get weight from a pruned tx (moneromooo-monero)
2019-10-22Merge pull request #5966luigi11111-0/+116
be82c40 Support median block size > 4 GB (moneromooo-monero)
2019-10-21Support median block size > 4 GBmoneromooo-monero1-0/+116
add a 128/64 division routine so we can use a > 32 bit median block size in calculations
2019-10-16Merge pull request #5990luigi11111-1/+1
515e931 functional_tests: fix transfer test - long payment ids are gone (moneromooo-monero)
2019-10-15functional_tests: fix transfer test - long payment ids are gonemoneromooo-monero1-1/+1
2019-10-15unit_tests: fix build after renamemoneromooo-monero1-4/+6
2019-10-14Merge pull request #5943luigi11112-7/+42
d4d2b5c p2p+rpc: don't skip p2p or rpc port bind failure by default (xiphon)
2019-10-14wallet_rpc_server: don't report integrated addresses for 0 payment IDmoneromooo-monero1-1/+1
These are dummy ones
2019-10-14wallet: remove long payment ID sending supportmoneromooo-monero2-10/+15
2019-10-14wallet2: ignore received unencrypted payment IDs (but warn hard)moneromooo-monero1-6/+6
2019-10-13p2p+rpc: don't skip p2p or rpc port bind failure by defaultxiphon2-7/+42
2019-10-11cryptonote: add function to get weight from a pruned txmoneromooo-monero1-0/+37
The weight of the prunable data is deterministic from the unpruned data, so it can be determined from a pruned tx
2019-10-11unit_tests: fix build with boost 1.69moneromooo-monero1-3/+6
2019-10-08Merge pull request #5915luigi11114-17/+35
8330e77 monerod can now sync from pruned blocks (moneromooo-monero)
2019-10-08Merge pull request #5960luigi11111-5/+11
ae34e1b unit_tests: fix ringdb unit tests (moneromooo-monero)
2019-10-08Merge pull request #5921luigi11111-12/+85
2a7d915 Fixed i2p/tor tx flooding bug (white noise disabled) (vtnerd)
2019-10-04unit_tests: fix ringdb unit testsmoneromooo-monero1-5/+11
2019-09-30Merge pull request #5895luigi11112-9/+9
fdc00d0 unit tests: replace global var with lambda returning static local var (stoffu)
2019-09-30Merge pull request #5893luigi11111-1/+1
Coverity fixes [3a81639, 1bd962d, 2825f07, d099658, d46f701, cd57a10] (anonimal)
2019-09-27monerod can now sync from pruned blocksmoneromooo-monero4-17/+35
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-25RandomX integrationHoward Chu2-4/+4
Support RandomX PoW algorithm
2019-09-24Merge pull request #5916luigi11111-2/+20
7b076d5 p2p: fix bans taking port into account (moneromooo-monero)
2019-09-24Merge pull request #5882luigi11113-6/+40
a444f06 blockchain: enforce 10 block age for spending outputs (moneromooo-monero)
2019-09-24Merge pull request #5878luigi11111-8/+1
f9b3f6e Removed Berkeley DB and db switching logic (JesusRami)
2019-09-24Merge pull request #5877luigi11113-4/+4
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-24Merge pull request #5864luigi11111-0/+17
32f725d Properly format multiline logs (moneromooo-monero)
2019-09-17blockchain: enforce 10 block age for spending outputsmoneromooo-monero3-6/+40
Some custom wallet code apparently ignores this, which causes users of that code to be fingerprinted
2019-09-17functional_tests: fix failure on windows removing filesmoneromooo-monero1-0/+2
2019-09-17fix wallet python test when run with ctestmoneromooo-monero2-1/+3
2019-09-17functional_tests: python3 compatibilitymoneromooo-monero7-15/+15
and add missing tests
2019-09-17functional_tests: pop exactly what we need to test before testingmoneromooo-monero10-10/+20
2019-09-17functional_tests: check for RPC methods which aren't exposedmoneromooo-monero2-0/+54
2019-09-17functional_tests: add get_transaction_pool_statsmoneromooo-monero1-0/+84
Also fix part of the RPC results being returned as binary. This makes the RPC backward incompatible.
2019-09-17functional_tests: add save_bcmoneromooo-monero1-0/+3
2019-09-17functional_tests: add is_key_image_spent testsmoneromooo-monero1-1/+45
2019-09-17functional_tests: add submitblock testmoneromooo-monero1-0/+28
2019-09-17functional_tests: check transaction fee is around what we expectmoneromooo-monero1-2/+9
2019-09-17functional_tests: add tx_notes testsmoneromooo-monero1-0/+18
2019-09-17functional_tests: add wallet attributes testmoneromooo-monero1-0/+23
2019-09-17functional_tests: add rescan_spent/rescan_blockchain testsmoneromooo-monero1-0/+39
2019-09-17functional_tests: add monero: URI testsmoneromooo-monero2-1/+235
2019-09-17wallet: add edit_address_book RPCmoneromooo-monero1-6/+71
2019-09-17functional_tests: add address book testsmoneromooo-monero2-1/+239
2019-09-17functional_tests: add wallet password change, store and tag testsmoneromooo-monero2-9/+165
2019-09-17functional_tests: add spend proof testsmoneromooo-monero1-0/+35