aboutsummaryrefslogtreecommitdiff
path: root/src (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2019-03-10blockchain: fix ahead of time PoW batch calcmoneromooo-monero1-2/+2
2019-03-05epee: add SSL supportMartijn Otto5-6/+29
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-05db_lmdb: make mdb_block_info format conversion more future proofmoneromooo-monero1-5/+5
If mdb_block_info changes again, the v2 to v3 conversion would convert to an incorrect format.
2019-03-05p2p: avoid busy loop when we have nothing to connect tomoneromooo-monero1-1/+9
2019-03-05wallet_rpc_server: avoid repeated string allocations when parsingmoneromooo-monero1-20/+14
2019-03-05cryptonote: avoid double parsing blocks when syncingmoneromooo-monero3-15/+32
2019-03-05cryptonote: speed up calculating coinbase tx prunable hashmoneromooo-monero1-2/+9
It's a hash of an empty buffer, so we can avoid keccak
2019-03-05core: avoid double parsing blocks after hohmoneromooo-monero6-25/+50
2019-03-05blockchain: avoid unneeded block copymoneromooo-monero1-1/+2
2019-03-05save some database calls when getting top block hash and heightmoneromooo-monero5-29/+43
2019-03-05blockchain: avoid pointless transaction copy and temporarymoneromooo-monero1-3/+4
2019-03-05blockchain: avoid duplicate block hash computationmoneromooo-monero1-2/+1
2019-03-05core: avoid calculating tx prefix hash when we don't need itmoneromooo-monero4-21/+26
2019-03-05Avoid repeated (de)serialization when syncingmoneromooo-monero10-38/+49
2019-03-05fix merge errors, update recommended version to 0.14.0.2Riccardo Spagni1-1/+1
2019-03-05update checkpoints hashRiccardo Spagni2-2/+2
2019-03-05update checkpoints, update README for 0.14.1 releaseRiccardo Spagni2-2/+3
2019-03-05wallet2: don't calculate prefix hash when we don't need itmoneromooo-monero1-6/+6
2019-03-05db: speedup block additionmoneromooo-monero4-37/+83
by avoiding repeated (de)serialization
2019-03-05CryptonightR: define out i386/x86_64 specific code on other archsmoneromooo-monero2-0/+8
2019-03-05slow-hash: fix build on armmoneromooo-monero4-27/+42
2019-03-04check load_t_from_json return valuesmoneromooo-monero2-4/+11
2019-03-04default initialize rpc structuresmoneromooo-monero8-321/+623
2019-03-04various: remove unused variablesmoneromooo-monero7-18/+1
2019-03-04blockchain: forbid older BP rct versions from v11moneromooo-monero1-1/+18
2019-03-04tests: add a CNv4 JIT testmoneromooo-monero1-7/+8
2019-03-04crypto: plug CNv4 JIT into cn_slow_hashmoneromooo-monero2-3/+100
Enabled by setting the MONERO_USE_CNV4_JIT env var to 1
2019-03-04crypto: clear cache after generating random programmoneromooo-monero1-0/+3
2019-03-04CNv4 JIT compiler for x86-64 and testsSChernykh4-0/+2746
Minimalistic JIT code generator for random math sequence in CryptonightR. Usage: - Allocate writable and executable memory - Call v4_generate_JIT_code with "buf" pointed to memory allocated on the previous step - Call the generated code instead of "v4_random_math(code, r)", omit the "code" parameter
2019-03-04blockchain: add v10 fork heightsmoneromooo-monero1-0/+5
2019-03-04Print the reason why a notification spec failed to parsemoneromooo-monero2-3/+3
2019-03-04blockchain: include number of discarded blocks in --reorg-notifymoneromooo-monero2-3/+5
2019-03-04core: add a few more block rate window sizesmoneromooo-monero1-1/+1
The 10 minute one will never trigger for 0 blocks, as it's still fairly likely to happen even without the actual hash rate changing much, so we add a 20 minute window, where it will (for 0 blocks) and a one hour window.
2019-03-04core: add --block-rate-notifymoneromooo-monero2-0/+33
This runs a command whenever the block rate deviates too much from the expectation
2019-03-04notify: fix tokenizing being too strictmoneromooo-monero1-1/+1
2019-03-04hardfork: fix fork determination for historical heightsmoneromooo1-1/+1
2019-03-04ArticMine's new block weight algorithmmoneromooo-monero14-33/+530
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-03wallet2: fix mishandling rct outputs in coinbase txmoneromooo-monero2-7/+13
Reported by cutcoin
2019-02-23miner: it can now autodetect the optimal number of threadsmoneromooo-monero4-9/+96
2019-02-21db_lmdb: fix missing mdb_dbi_close in migrationmoneromooo-monero1-0/+1
Fixed by hyc
2019-02-20wallet-rpc: get balance for all accounts and subaddressesstoffu2-21/+49
2019-02-17wallet-rpc: get transfers for all accounts and subaddressesJethro Grassie2-5/+15
2019-02-14Support docker for gitian buildsTheCharlatan1-1/+1
Building with docker is arguably easier and more familiar to most people than either kvm, or lxc. This commit also relaxes the back compat requirement a bit. 32 bit linux now uses glibc version 2.0. Also, the docker shell could not handle gcc arguments containing spaces, so the explicit '-DFELT_TYPE' declaration was dropped. Lastly, this removes some packages from the osx descriptor.
2019-02-14wallet_rpc_server: add a validate_address RPCmoneromooo-monero3-1/+89
2019-02-14Fixed path to int-util.hSChernykh1-1/+1
2019-02-14Adding cnv4-2 tweaksSChernykh2-39/+79
Co-Authored-By: Lee Clagett <vtnerd@users.noreply.github.com>
2019-02-14Cryptonight variant 4 aka CryptonightRSChernykh6-17/+508
It introduces random integer math into the main loop.
2019-02-14simplewallet: add help for ask-password optionsmoneromooo-monero1-0/+2
2019-02-14simplewallet: mark confirm-missing-payment-id as obsoletemoneromooo-monero1-1/+1
2019-02-13debug compilation fix: net lib missing common depsDusan Klinec1-1/+1
``` Undefined symbols for architecture x86_64: "common_category()", referenced from: make_error_code(common_error) in parse.cpp.o make_error_code(common_error) in tor_address.cpp.o "boost::system::detail::system_category_ncx()", referenced from: boost::system::system_category() in parse.cpp.o boost::system::system_category() in socks.cpp.o boost::system::system_category() in libepee.a(net_utils_base.cpp.o) "boost::system::detail::generic_category_ncx()", referenced from: boost::system::generic_category() in parse.cpp.o boost::system::generic_category() in socks.cpp.o boost::system::generic_category() in tor_address.cpp.o boost::system::generic_category() in libepee.a(string_tools.cpp.o) boost::system::generic_category() in libepee.a(net_utils_base.cpp.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[3]: *** [src/net/libnet.dylib] Error 1 make[2]: *** [src/net/CMakeFiles/net.dir/all] Error 2 ```
2019-02-13Don't decrypt keys in view only wallets in wallet_keys_unlockerDoyle1-1/+1
2019-02-08Add support for V10 protocol with BulletProofV2 and short amount.cslashm1-13/+34
2019-02-08Fix dummy decryption in debug modecslashm1-1/+3
2019-02-08fix log namespacecslashm1-45/+45
2019-02-08New scheme key destination contrfolcslashm7-63/+233
Implies protocol version management.
2019-02-03simplewallet: tell the user to complain to the recipientmoneromooo-monero1-1/+1
for long payment ids
2019-02-03ringct: fix v1 ecdhInfo serializationmoneromooo-monero1-15/+2
The change made for v2 broke v1, and we have no way to know which version we're serializing here. However, since we don't actually care about space savings in this case, we continue serialiazing both mask and amount.
2019-02-02epee: add SSL supportmoneromooo-monero14-30/+168
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-02-02wallet_rpc_server: remove detached short payment ids supportmoneromooo-monero1-5/+1
2019-02-01cryptonote: Fix enum check in expand_transaction_2Tom Smeding1-1/+1
This was noticed because GCC warned about using an enum value in a boolean context.
2019-02-01cryptonote: Add const-qualifier on comparison functorTom Smeding1-1/+1
The original code did not compile with GCC 8.2.1 in C++17 mode, since comparison functions for std::set's must be invocable as const.
2019-02-01serialization: Use pos_type instead of streamposTom Smeding1-1/+1
According to [1], the ios_base::streampos member type is deprecated, and removed in C++17. This type was an alias for pos_type, which this commit uses instead. [1]: https://en.cppreference.com/w/cpp/io/ios_base
2019-01-30cryptonote_protocol_handler: pad tx messages when using tor/i2pmoneromooo-monero1-1/+1
2019-01-30i2p: initial supportJethro Grassie12-9/+419
2019-01-30blockchain_prune: don't prune before v10moneromooo-monero1-0/+18
This uses system time since it doesn't see the p2p network, so is not 100% accurate
2019-01-28Adding initial support for broadcasting transactions over TorLee Clagett26-692/+2863
- 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-28block_queue: fix late sanity check off by onemoneromooo-monero1-1/+1
2019-01-28rpc: fix internal daemon calls in restricted rpc getting partial datamoneromooo-monero5-315/+336
2019-01-28blockchain: add --reorg-notifymoneromooo-monero3-1/+32
This will trigger if a reorg is seen. This may be used to do things like stop automated withdrawals on large reorgs. %s is replaced by the height at the split point %h is replaced by the height of the new chain %n is replaced by the number of new blocks after the reorg
2019-01-28notify: handle arbitrary tagsmoneromooo-monero4-6/+22
2019-01-28notify: warn if the spec contains one of '"\moneromooo-monero1-0/+2
These aren't processed as a shell does, so this may surprise users
2019-01-28common: set MONERO_DEFAULT_LOG_CATEGORY for notify and spawnmoneromooo-monero2-0/+6
2019-01-28performance_tests: better stats, and keep track of timing historymoneromooo-monero4-0/+162
2019-01-26blockchain: fix default genesis block timestampmoneromooo-monero1-2/+2
2019-01-22ringct: remove unused senderPk from ecdhTuplemoneromooo-monero2-4/+0
This was an early ringct field, which was never used in production
2019-01-22ringct: the commitment mask is now deterministicmoneromooo-monero5-27/+55
saves space in the tx and is safe Found by knaccc
2019-01-22ringct: encode 8 byte amount, saving 24 bytes per outputmoneromooo-monero11-28/+71
Found by knaccc
2019-01-22ringct: save 3 bytes on bulletproof sizemoneromooo-monero1-1/+4
Found by luigi1111
2019-01-22add a bulletproof version, new bulletproof type, and rct configmoneromooo-monero13-62/+95
This makes it easier to modify the bulletproof format
2019-01-22Pruningmoneromooo-monero44-427/+3018
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-19wallet2: fix hashchain going out of sync on refresh errormoneromooo-monero1-0/+5
2019-01-19bulletproofs: speed up vector_power_summoneromooo-monero1-6/+22
found by sarang
2019-01-19db_lmdb: don't unnecessarily cast to double on the way to uint64_tmoneromooo-monero1-3/+3
2019-01-18core: include a dummy encrypted payment id when no payment is usedmoneromooo-monero2-14/+58
For better transaction uniformity, even though this wastes space.
2019-01-18core, wallet: remember original text version of destination addressmoneromooo-monero5-10/+33
2019-01-18crptonote_core: do not error out sending unparsable extra fieldmoneromooo-monero1-2/+2
extra is arbitrary, and the user may well want to send custom data
2019-01-18daemon: extend 'print_pl' command, optional filter by type and limitxiphon4-8/+44
2019-01-18simplewallet: fix help text of rescan_bc to mention the "hard" optionstoffu1-1/+1
2019-01-18simplewallet: remove extra colon in a few calls to input_secure_linestoffu1-6/+6
2019-01-18simplewallet: avoid conversion to string in input_secure_linestoffu1-2/+2
2019-01-18simplewallet: factor yesno hint into input_linestoffu1-38/+41
2019-01-16blockchain_ancestry: allow getting ancestry of a single outputmoneromooo-monero1-229/+209
This involved a reorg of the code, to factor and speedup some bits, as well as using the cache for all modes, and making both modes usable in the same run.
2019-01-16blockchain_db: allow getting output keys without commitmentmoneromooo-monero3-4/+5
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-16simplewallet: disable long payment ids by defaultmoneromooo-monero2-12/+37
unless --long-payment-id-support is used
2019-01-16wallet2: remember which output keys map to which key imagesmoneromooo-monero2-16/+101
This allows filling in transfer_details when a cold signed tx gets seen in a block next
2019-01-16simplewallet: improve punctuation in user visible stringselsta1-3/+3
2019-01-15wallet api: don't truncate address in subaddress_accountselsta1-1/+1
Same behaviour as subaddress.cpp now.
2019-01-13wallet2: fix incorrect patch for determining fork rulesmoneromooo-monero1-1/+1
Half of the patch was correct, but half was introducing another bug, where a wallet asking for a fork that the daemon does not know about yet would decide to use those rules.
2019-01-13wallet2: fix duplicate tx notifications for pool txesmoneromooo-monero1-3/+10
2019-01-11mnemonics: compare canonical words (lowercase)moneromooo-monero2-24/+115
2019-01-09device: proper handling of user inputselsta5-9/+43
(1) If the user denies something on the Ledger, a proper error message is now shown. (2) Ledger doesn't time out anymore while waiting on user input. (3) Lower the timeout to 2 seconds, this is enough for normal Ledger <-> System communication.
2019-01-09wallet: do not check txpool in background modemoneromooo-monero3-10/+11
This avoids the constant message about needed to run refresh to enter a password. Also mention the txpool when asking for the password if the reason is a pool tx.
2019-01-09device_ledger: remove full_name variableselsta2-2/+1
This variable was never set, resulting in the device name always showing as "disconnected".
2019-01-08i18n: filter LANG/LC_LANG for valid characters, and handle @moneromooo-monero1-0/+14
If there are more valid characters, add them in, I did not find an actual list.
2019-01-08ringct: remove duplicate rv.mixRing = mixRing; in genRctSimplestoffu1-1/+0
2019-01-07message_store: init me fieldmoneromooo-monero1-0/+1
Coverity 190651
2019-01-07blockchain: don't propagate exception past dtormoneromooo-monero1-1/+2
Coverity 190660
2019-01-07wallet_api: fix usage of LOG_ERRORmoneromooo-monero1-10/+10
2019-01-07Make get_output_key method constmoneroexamples4-8/+8
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-04simplewallet: Show new address after going multisigrbrunner71-0/+1
2019-01-02wallet api/device: set estimated restore height if none is providedselsta4-0/+15
2019-01-02simplewallet: don't subtract 1 to estimate blockchain heightmoneromooo-monero1-1/+1
in case it returns 0, and other uses don't, plus it's a estimation anyway.
2019-01-01blockchain: fix wrong hf version when popping multiple blocksmoneromooo-monero3-6/+37
Since we keep track of the hf version in the db, we pick it up from there instead of doing the full reorg call, which is quite expensive
2019-01-01blockchain: use the version passed as parameter, not a new onemoneromooo-monero1-1/+1
2019-01-01hardfork: remove batch transactions setupmoneromooo-monero1-1/+0
This is now default, so it spares us the warnings
2018-12-31wallet2: speedup output trackingmoneromooo-monero2-13/+49
It can get heavy for large wallets
2018-12-31wallet: optionally keep track of owned outputs usesmoneromooo-monero4-19/+109
2018-12-30p2p: don't stop the idle thread when no gray peers are foundmoneromooo-monero1-1/+1
2018-12-30wallet: do not display daemon controlled text if untrustedmoneromooo-monero4-39/+89
2018-12-27simplewallet: remove ability to transfer with detached short payment idsmoneromooo-monero1-31/+2
It seemed like a good idea at the time
2018-12-26daemon: add a +hex option to print_blockmoneromooo-monero3-7/+23
2018-12-26daemon: print human friendly timestamp toomoneromooo-monero1-2/+2
2018-12-25blocks: fix checkpoint code generation on OpenBSDmoneromooo-monero1-1/+1
Its od outputs small decimals with leading 0, which means octal in C
2018-12-25cryptonote_core: revert extra_tx_mapmoneromooo-monero2-59/+5
While the lookups are faster, the zeroCommit calls have to be done again when storing the new outputs in the db, which ends up making the whole thing slower after all, and the ways this can be cached aren't very nice code wise, so let's forget it since the gains aren't very large anyway.
2018-12-24wallet_rpc_server: add all field to export_key_imagesmoneromooo-monero4-6/+12
To use if you want all key images, not just the ones for recently imported outputs
2018-12-23Simplewallet: Unify usage messages.Tadeas Moravec1-144/+230
Help messages describe the commands usage. When users run the command with wrong arguments, it usually helpfully offers the usage, too. Unfortunately, these two usage messages were duplicated in the code and started to get out of sync. Fixing with constant strings.
2018-12-23epee: better network buffer data structuremoneromooo-monero5-20/+20
avoids pointless allocs and memcpy
2018-12-23simplewallet: fix show_transfers colouring, and add red for failedmoneromooo-monero2-1/+6
Also add the type back, as it was somehow weirdly split into two different fields, one being a union...
2018-12-23Remove boost::lexical_cast for uuid and unused uuid functionLee Clagett2-3/+5
2018-12-22message_store: fix error message adding const char * with offsetmoneromooo-monero1-7/+7
2018-12-22blockchain_blackball: make log file name consistent with executablestoffu1-1/+1
2018-12-21wallet2: finalize_multisig now rejects non N-1/N multisig walletsmoneromooo-monero1-0/+17
2018-12-19Remove unused hash in export_key_imagesdoy-lee1-3/+0
2018-12-18device/trezor: store tx_prefix_hash in tx key auxDusan Klinec1-0/+3
- tx_prefix_hash is required in the key derivation for decryption of the tx keys
2018-12-18blockchain: fix block rate check for empty blockchainsmoneromooo-monero1-1/+3
2018-12-18build: protobuf dependency fixes, libusb buildDusan Klinec2-8/+6
- docker protobuf dependencies, cross-compilation - device/trezor protobuf build fixes, try_compile - libusb built under all platforms, used by trezor for direct connect
2018-12-18blockchain_db: speedup tx output gatheringmoneromooo-monero8-44/+71
We know all the data we'll want for getblocks.bin is contiguous
2018-12-16wallet2: cut down on the number of useless derivation threadsmoneromooo-monero1-6/+9
2018-12-16wallet2: fix accessing unwound stack on exceptionmoneromooo-monero1-4/+12
2018-12-14Add --restore-date paramHoward Chu2-11/+57
Estimate restore height from given date Check date format early, error out early if invalid
2018-12-14Sync hashchain bug fixednaughtyfox1-4/+3
2018-12-14Wallet: Initialize members without default ctor.Tadeas Moravec1-0/+2
Found by Coverity (188336 in Anonimal's Coverity account).
2018-12-12MMS (Multisig Messaging System): Initial versionrbrunner712-127/+3877
2018-12-12ringct: avoid repeated point conversionmoneromooo-monero1-1/+10
2018-12-08ignore child process when execJethro Grassie1-0/+4
2018-12-08perf_timer: make all logs Info levelmoneromooo-monero1-1/+1
and make them not default at log level 1
2018-12-08wallet2: clear all payments on soft rescan_bcmoneromooo-monero1-0/+4
They'll get duplicated otherwise
2018-12-08epee: avoid string allocation when parsing a pod from stringmoneromooo-monero1-2/+2
2018-12-07singleton: fix missing *this return value in operator=moneromooo-monero1-2/+2
while there, disable both operator= and copy ctor, since they are not supposed to be around for a singleton
2018-12-07perf_timer: check allowed categories before loggingmoneromooo-monero1-8/+21
2018-12-07perf_timer: add a way to get and reset the current timemoneromooo-monero2-2/+18
2018-12-07perf_timer: only log to filemoneromooo-monero1-3/+6
2018-12-07cryptonote: don't serialize for blob size if already knownmoneromooo-monero1-5/+13
2018-12-07p2p: use vector instead of list for peer listsmoneromooo-monero5-27/+31
2018-12-07protocol: change standby mode to not wait sleepingmoneromooo-monero2-12/+24
2018-12-07simplewallet: donate command validate amountselsta1-2/+12
2018-12-06util: use fcntl instead of flock, for compatibilitymoneromooo-monero1-3/+26
in particular with NFS
2018-12-05tx_pool: add a few std::move where it can make a differencemoneromooo-monero1-3/+4
2018-12-05cryptonote: set tx hash on newly parsed txes when knownmoneromooo-monero3-5/+14
2018-12-05db_lmdb: avoid pointless divisionmoneromooo-monero1-1/+1
2018-12-05db_lmdb: inline check_open, it's trivial and called everywheremoneromooo-monero2-8/+7
2018-12-05blockchain_db: allocate known size vector only oncemoneromooo-monero1-5/+5
2018-12-05blockchain_db: remove a couple unused functionsmoneromooo-monero4-82/+0
2018-12-05util: set MONERO_DEFAULT_LOG_CATEGORYmoneromooo-monero1-0/+3
Otherwise it'd end up with whatever was included last
2018-12-05blockchain: call deinit in dtormoneromooo-monero2-7/+15
This ensures the io service that runs in another thread cannot access data after it's deleted
2018-12-04device/trezor: device/trezor: correct device initialization, status checkDusan Klinec5-22/+139
- checks if the device is in the correct usable state - implements check for the v2.0.9 firmware which does not support payment IDs - simple transacttion check, payment id fmt consistency - minor fixes, refactoring, webusb session counting fix
2018-12-04device/trezor: python2 compatibility - bundle dependenciesDusan Klinec5-8/+248
2018-12-04device/trezor: ask for KI sync on first refreshDusan Klinec4-18/+58
When doing a first refresh on HW-token based wallet KI sync is required if money were received. Received money may indicate wallet was already used before the restore I.e., some transaction could have been already sent from the wallet. The spent UTXO would not be detected as spent which could lead to double spending errors on submitting a new transaction. Thus if the wallet is HW-token based with the cold signing protocol and the first refresh detected received money the user is asked to perform the key image sync.
2018-12-04device: enable to use multiple independent device walletsDusan Klinec6-2/+73
- adds a new option `--hw-device-deriv-path` to the simple wallet. Enables to specify wallet derivation path / wallet code (path avoided so it can be misinterpreted as a file path). - devices can use different derivation mechanisms. Trezor uses standard SLIP-10 mechanism with fixed SLIP-44 prefix for Monero - Trezor: when empty, the default derivation mechanism is used with 44'/128'/0'. When entered the derivation path is 44'/128'/PATH. - Trezor: the path is always taken as elements are hardened (1<<31 bit turned on)
2018-12-04rpc: mask values that are nobody else's business in restricted RPCmoneromooo-monero1-24/+29
2018-12-04move int-util.h to epeemoneromooo-monero15-272/+13
2018-12-04Add glibc back compat codeTheCharlatan2-0/+102
To ensure that the binaries compiled by gitian run across many linux distributions, enforce 2.17 as the minimum libc version supported.
2018-12-02blockchain: fix race between two external mining threadsmoneromooo-monero1-5/+3
2018-12-01Bulletproof: Initialize members in default construtor.Tadeas Moravec1-1/+2
Fixing a build warning on g++ 7.3.0
2018-11-30daemon: print monero version at startup when calling a detached daemonmoneromooo-monero1-10/+10
So people who want a timstamp get a timestamp
2018-11-30cryptonote: add a set_null for transaction_prefixmoneromooo-monero1-7/+10
Since it's all inline, I suspect the compiler will merge the duplicate stores anyway.
2018-11-30daemon: stop miner before we bring the whole thing downmoneromooo-monero2-2/+1
This avoids the miner erroring out trying to submit blocks to a core that's already shut down (and avoids pegging the CPU while we're busy shutting down).
2018-11-30ringct: fix dummy bulletproofs on ledger in fake modemoneromooo-monero1-7/+24
Ledger does some basic checks on them
2018-11-29device/trezor: passphrase entry on hostDusan Klinec8-22/+134
- simple device callback object added. Device can request passphrase/PIN entry via the callback or notify user some action is required - callback is routed to wallet2, which routes the callback to i_wallet_callback so CLI or GUI wallets can support passphrase entry for HW tokens - wallet: device open needs wallet callback first - passphrase protected device needs wallet callback so user can enter passphrase
2018-11-28add command pop_blocksJason Wong10-0/+138
add new public method to Blockchain and update according to code review update after review: better lock/unlock, try catch and coding style
2018-11-27blockchain_prune_known_spent_data: blackball file is now optionalmoneromooo-monero1-7/+44
If not present, the tool will scan the blockchain, since scanning for this is fairly fast.
2018-11-27Outputs where all amounts are known spent can now be prunedmoneromooo-monero5-4/+376
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-27blockchain: avoid unnecessary DB lookups when syncingmoneromooo-monero2-35/+86
Some of the inputs for block in a span will be from other earlier blocks in that span. Keep track of those outputs so we don't have to look them up again after those early blocks are added to the blockchain.
2018-11-27rpc: speed up the common get_output_distribution case while syncingmoneromooo-monero1-2/+19
2018-11-26core: fix adding new pre-hoh block when a tx is already in the poolmoneromooo-monero1-5/+4
2018-11-27simplewallet: use is_transfer_unlocked instead of is_tx_spendtime_unlocked ↵stoffu1-1/+1
for show_transfers Followup on #4728
2018-11-26rpc: speedup get_outs.binmoneromooo-monero6-17/+42
2018-11-26protocol: fix use after free when dropping a connectionmoneromooo-monero1-2/+2
2018-11-25device/trezor: webusb transport added, cmake fixesDusan Klinec11-191/+692
- webusb transport based on libusb added. Provides direct access to Trezor via USB, no need for Trezor bridge. - trezor protocol message handler improved, no recursion used. Ready for upcoming integration tests. - libusb (for docker) bumped from v1.0.9 to v1.0.22, newer version required for webusb transport, for device enumeration. - cmake improvements and fixes. Cmake Trezor checks are moved to a dedicated CheckTrezor.cmake file. In case of a problem Trezor is excluded from build. - ifdefs made consistent to Ledger. - UDP Transport enumeration disabled by default in release mode
2018-11-24blockchain_blackball: spot when all outputs of an amount are spentmoneromooo-monero1-1/+95
2018-11-24simplewallet: enable donation on testnet/stagenet for easier testingstoffu1-8/+21
2018-11-23wallet_rpc_server: do not use RPC data if the call failedmoneromooo-monero1-1/+2
Found by codacy.com
2018-11-23windows_service: fix memory leakmoneromooo-monero1-1/+2
Found by codacy.com
2018-11-23cryptonote: fix get_unit for non default settingsmoneromooo-monero1-2/+2
Found by codacy.com
2018-11-23remove some unused codemoneromooo-monero9-106/+6
Found by codacy.com
2018-11-23a few minor (but easy) performance tweaksmoneromooo-monero11-21/+21
Found by codacy.com
2018-11-23tests: slow_memmem now returns size_tmoneromooo-monero1-1/+1
Makes more sense than uint64_t for an offset, and agrees with the %zu used to print results. Found by codacy.com
2018-11-23rctOps: add braces to suppress warningsstoffu1-173/+173
2018-11-22cn_deserialize: allow parsing partially valid tx extramoneromooo-monero1-2/+3
2018-11-22wallet2: resume processing when tx extra is partially brokenstoffu1-2/+2
Motivated by https://monero.stackexchange.com/questions/10483 Some exchanges appear to have customized the wallet software in an inappropriate way, making the tx extra field partially unreadable. PR #3716 changed the wallet behavior disallowing such partially valid tx extra. An example tx reported by the user is e87c675a85f34ecac58a8846613d25062f1813e1023c552b705afad32b972c38 where the normal tx pubkey appears again with the aditional tx pubkeys tag `04` which is inappropriate.