Age | Commit message (Collapse) | Author | Files | Lines |
|
7adceee6 precomputed block hashes are now in blocks of N (currently 256) (moneromooo-monero)
|
|
|
|
71c7f8d0 core: fix logging the one time public key on error (moneromooo-monero)
|
|
269a2a01 blockchain: fix off by one getting blocks (moneromooo-monero)
|
|
4e115a3a core: remove out sorting from v7 rules (moneromooo-monero)
|
|
work properly
|
|
309290d1 Source updates are in a source subdirectory (moneromooo-monero)
|
|
and restore random shuffle of outputs
This turned out to have a flaw (sort order depends on output
index), and this doesn't really bring much anyway
|
|
|
|
|
|
97cdd4c9 core: undo output sorting (moneromooo-monero)
|
|
It looks like it may be buggy
|
|
ba6907f6 core: fix creation of v1 txes (moneromooo-monero)
|
|
|
|
|
|
|
|
|
|
7f2f6ee1 protocol: remove hop count on block propagation (moneromooo-monero)
|
|
d2d8a41c Use actual batch size for resize estimates (Howard Chu)
|
|
0aaaca29 tx_pool: set the "invalid input" bit when check_tx_inputs fails (moneromooo-monero)
9236823b simplewallet: print tx rejection reason where it was missing (moneromooo-monero)
3dee3301 core_rpc_server: print tx rejection reason at L0 too (moneromooo-monero)
|
|
28b72b6e tx_pool: pre-init tvc.m_verifivation_failed before processing (moneromooo-monero)
50a629b2 core_tests: catch (impossible in practice) tx extra api failure (moneromooo-monero)
fee15ef1 wallet2: catch failure to parse address (moneromooo-monero)
1399e26d net_peerlist: remove dead code (moneromooo-monero)
50e09698 tx_pool: guard against failure getting tx hash (moneromooo-monero)
54cc209a wallet_rpc_server: catch failure to create directory (moneromooo-monero)
3e55099c wallet_rpc_server: init m_vm to NULL in ctor (moneromooo-monero)
7d0dde5e wallet_args: remove redundant default value for --log-file (moneromooo-monero)
ed4a3350 wallet2: catch failure to save keys file (moneromooo-monero)
44434c8a wallet2_api: check whether dynamic_cast returns NULL (moneromooo-monero)
92f2f687 core: check return value from parse_hexstr_to_binbuff (moneromooo-monero)
5475692e wallet2_api: remove an unused, uninitialized, field (moneromooo-monero)
a7ba3de1 libwallet_api_tests: initialize newblock_triggered on reset (moneromooo-monero)
b2763ace wallet2_api: init error code to "no error" in the ctor (moneromooo-monero)
b5faac53 get_blockchain_top now returns void (moneromooo-monero)
2e44d8f2 wallet_rpc_server: guard against exceptions (moneromooo-monero)
4230876b simplewallet: guard against I/O exceptions (moneromooo-monero)
06c1e057 daemon: initialize decode_as_json in RPC request (moneromooo-monero)
11f71af5 http_base: init size_t in http_request_info ctor (moneromooo-monero)
|
|
e29282d2 build: auto update version info without manually deleting version.h (stoffu)
|
|
6137a0b9 blockchain: reject unsorted ins and outs from v7 (moneromooo-monero)
16afab90 core: sort ins and outs key key image and public key, respectively (moneromooo-monero)
0c36b9f9 common: add apply_permutation file and function (moneromooo-monero)
|
|
CID 175316
|
|
Should be impossible in practice, but easy change
CID 175282
|
|
|
|
It was always returning true, and could not be foreseen to
usefully return errors in the future. This silences CID 162652
as well as saves some checking code in a few places.
|
|
rather than in the same directory as the prebuilt versions
|
|
3b8b4be5 tx_pool: drop invalid txes from the pool on startup (moneromooo-monero)
|
|
|
|
instead of just failing
This is a workaround for bad tx blobs being inserted in the
pool for unknown reasons
|
|
|
|
This shaves a lot of space off binaries
|
|
6d0ca7d1 Tweak concurrency limits (Howard Chu)
510d0d47 Use a threadpool (Howard Chu)
|
|
f761dbae Remove 1.25x multiplier from tx_pool (Nano Akron)
|
|
0299cb77 Fix various oversights/bugs in ZMQ RPC server code (Thomas Winget)
77986023 json serialization for rpc-relevant monero types (Thomas Winget)
5c1e08fe Refactor some things into more composable (smaller) functions (Thomas Winget)
9ac2ad07 DRY refactoring (Thomas Winget)
|
|
This ensures no information is leaked by the ordering
|
|
And optimize import startup:
Remember start_height position during initial count_blocks pass
to avoid having to reread entire file again to arrive at start_height
|
|
It is unused, as it was apparently a future optimization,
and it leaks some information (though since pools publish
thei blocks they find, that amount seems small).
|
|
|
|
Instead of constantly creating and destroying threads
|
|
|
|
9443eec1 core: guard against exceptions in tx verification worker threads (moneromooo-monero)
|
|
e5238adf update checkpoint hashes (Riccardo Spagni)
d4f56bdf update hardcoded checkpoints (Riccardo Spagni)
ed730511 update checkpoints.dat (Riccardo Spagni)
|
|
dbfef643 tx_pool: catch exceptions in LockedTXN dtor (moneromooo-monero)
|
|
This avoids leaking some small amount of information
|
|
|
|
|
|
Structured {de-,}serialization methods for (many new) types
which are used for requests or responses in the RPC.
New types include RPC requests and responses, and structs which compose
types within those.
# Conflicts:
# src/cryptonote_core/blockchain.cpp
|
|
This commit refactors some of the rpc-related functions in the
Blockchain class to be more composable. This change was made
in order to make implementing the new zmq rpc easier without
trampling on the old rpc.
New functions:
Blockchain::get_num_mature_outputs
Blockchain::get_random_outputs
Blockchain::get_output_key
Blockchain::get_output_key_mask_unlocked
Blockchain::find_blockchain_supplement (overload)
functions which previously had this functionality inline now call these
functions as necessary.
|
|
This might prevent some calls to terminate when the LockedTXN
dtor is called as part of stack unwinding caused by another
exception in the first place.
|
|
Defaults to off, but fluffy blocks are forced enabled on testnet
|
|
e72e625e tx_pool: wrap tx meta updates in a LockedTXN (moneromooo-monero)
|
|
c867357a cryptonote_protocol: error handling on cleanup_handle_incoming_blocks (moneromooo-monero)
ce901fcb Fix blockchain_import wedge on exception in cleanup_handle_incoming_blocks (moneromooo-monero)
84fa015e core: guard against exceptions in handle_incoming_{block,tx} (moneromooo-monero)
|
|
|
|
|
|
|
|
When one happens, cleanup must be called or the incoming tx
lock will stay locked
|
|
Avoids common depending on blockchain_db, which can cause
link errors.
|
|
1914c999 txpool: update db tx metadata when it changes (moneromooo)
4dbf29bd txpool: add tx size median to the pool stats (moneromooo)
|
|
5807529e blockchain: cap memory size of retrieved blocks (moneromooo-monero)
c1b10381 rpc: decrease memory usage a bit in getblocks.bin (moneromooo-monero)
|
|
c22d22e2 Cleanup test impact of adding safesyncmode() method (Howard Chu)
9a859844 Toggle SAFE syncmode on and off automatically (Howard Chu)
|
|
3dd34a49 Cleanup test impact of moving blockchain_db_types() (Howard Chu)
80344740 More DB support cleanup (Howard Chu)
4c7f8ac0 DB cleanup (Howard Chu)
|
|
It helps keep memory usage down when a wallet refreshes through
a string of large blocks
|
|
|
|
|
|
|
|
ea15e72d tx_pool: fix crash in stats (Howard Chu)
|
|
if tx receive_time == now. supersedes #2322
|
|
|
|
If monerod is started with default sync mode, set it to SAFE after
synchronization completes. Set it back to FAST if synchronization
restarts (e.g. because another peer has a longer blockchain).
If monerod is started with an explicit sync mode, none of this
automation takes effect.
|
|
Hide LMDB-specific stuff behind blockchain_db.h. Nobody besides blockchain_db.cpp
should ever be including DB-specific headers any more.
|
|
|
|
5a283078 cryptonote_protocol: large block sync size before v4 (moneromooo-monero)
7b747607 cryptonote_protocol: kick idle synchronizing peers (moneromooo-monero)
|
|
827afcb7 protocol: pass blockchain cumulative difficulty when syncing (moneromooo-monero)
|
|
|
|
Not used yet.
|
|
c6e200a8 core: add --db-salvage command line flag (moneromooo-monero)
|
|
a1891ebe tests: fix tests build (moneromooo-monero)
|
|
f4f7eeba blockchain: log more info when we reject an orphan (moneromooo-monero)
|
|
d732c73e blockchain: remove a few unused variables (moneromooo-monero)
|
|
5d4ef719 core: speed up output index unique set calculation (moneromooo-monero)
19d7f568 perf_timer: allow profiling more granular than millisecond (moneromooo-monero)
bda8c598 epee: add nanosecond timer and pause/restart profiling macros (moneromooo-monero)
|
|
Use to load the database when the primary meta page is corrupted
|
|
Add get_fork_version and add_ideal_fork_version to core so
cryptonote_protocol does not have to need the Blockchain
class directly, as it's not in its dependencies, and add
those to the fake core classes in tests too.
|
|
We won't even talk to a peer which claims a wrong version
for its top block. This will avoid syncing to known bad
peers in the first place.
Also add IP fails when failing to verify a block.
|
|
61770ec2 change mixin to ring size in user visible places (moneromooo-monero)
|
|
|
|
7f7d42f8 core: fix invalid memory access creating tx (moneromooo-monero)
|
|
5d91b26c blockchain: skip checking tx semantics in embedded block hash range (moneromooo-monero)
|
|
|
|
|
|
158c3ecf core: thread most of handle_incoming_tx (moneromooo-monero)
f57ee382 cryptonote_protocol: retry stale spans early (moneromooo-monero)
90df52e1 cryptonote_protocol: light cleanup (moneromooo-monero)
84e23156 cryptonote_protocol: avoid spurious SYNCHRONIZED OK messages (moneromooo-monero)
5be43fcd cryptonote_protocol_handler: sync speedup (moneromooo-monero)
|
|
4d873046 blockchain: add testnet v6 fork height at 971400 (moneromooo-monero)
|
|
214fd81e some include cleanup (moneromooo-monero)
|
|
5dd722be core: add a message when loading checkpoints at init time (moneromooo-monero)
|
|
14ec6ed8 tx_pool: remove obsolete unused m_config_folder field (moneromooo-monero)
|
|
878205f1 core: fix lock ordering bug at init time (moneromooo-monero)
|
|
d8becf2e blockchain: fix cryptonight buffer leak on exit (moneromooo-monero)
91aa90fc blockchain: ensure all blocks get their longhash precalculated (moneromooo-monero)
ff4bcaed blockchain: pass correct height to get_block_longhash (moneromooo-monero)
|
|
340feede core: randomly shuffle outputs (moneromooo-monero)
|
|
53af9768 blockchain: one off warning when seeing a block with unknown version (moneromooo-monero)
|
|
|
|
|
|
We want to know what happened when a block is wrongly rejected
|
|
|
|
A sort+uniq step was done for every tx in a 200 block chunk,
causing a lot of repeated scanning as the size of the offset
map got larger with every added tx. We now do the step only
once at the end of the loop.
Doing it this way potentially uses more memory, but testing
shows that it's currently only about 2% more.
|
|
|
|
This uses DNS, which can take a while, so it's useful to know
this is the culprit when loading pauses
|
|
|
|
If the txes are bad, this'll be picked up by the block hash mismatch
since the tx merkle root is part of the block hash.
|
|
|
|
|
|
If the number of blocks to check was not a multiple of the
number of preparation threads, the last few blocks would
not be included in the threaded long hash calculation.
Those would still get calculated when the block gets added
to the chain, however, so this was only a tiny performance
hit, rather than a security bug.
|
|
|
|
They used to be sorted by amount, which was fine before rct,
but is now suboptimal, since amounts are not known anymore.
In particular, it would give a recipient knowledge of whether
change was higher or lower than the amount received.
|
|
|
|
This avoids someone adding what amounts to mixin 0 rings in
practice, as there is no other good reason to allow this.
|
|
02d66db4 tx_pool: initialize padding in txpool meta structure (moneromooo-monero)
0722aea3 cryptonote_core: initialize checkpoint flag (moneromooo-monero)
|
|
|
|
|
|
set_user_options()
|
|
235df7f4 blockchain_db: add a txpool tx getter which returns existence (moneromooo-monero)
|
|
Avoids exception spam for the "nope, not found" case
|
|
|
|
d17c0fc2 Don't copy blockchain for coinbase_tx_sum (Howard Chu)
|
|
31417d57 tx_pool: add missing blockchain lock in add_tx (moneromooo-monero)
|
|
Since we're just counting txs, there's no reason to deserialize all the blobs.
|
|
Changed Blockchain::for_all_blocks() to for_blocks_range()
Operate on blockchain in-place instead of building a copy first.
|
|
|
|
4b932ff3 changed crypto to cncrypto so it generated libcncrypto (Gentian)
|
|
a5739201 Update sync time copy (xmr-eric)
|
|
b52abd13 Move txpool to the database (moneromooo-monero)
|
|
Integration could go further (ie, return_tx_to_pool calls should
not be needed anymore, possibly other things).
poolstate.bin is now obsolete.
|
|
fix a cmakelist
|
|
|
|
5e5b8512 Fix obsolete OpenSSL API usage (hyc)
6c72d6a0 Fix Android recognition (hyc)
e65d66fe Fix ARM64 identification (hyc)
a4673218 Clean up ARMv8-a aes_expand_key() (hyc)
a3d77901 Fix block_longhash_worker thread (hyc)
|
|
Only works from V5 fork onward - returns 0 before that block.
|
|
Wasn't getting its stack size initialized; crashes on Android
with a default stack size of 1MB.
|
|
|
|
6d315459 core: avoid possible reordering bugs wth tx/bloch hash cache (moneromooo-monero)
|
|
|
|
|
|
to silence the update warning, since v5 was done very early
on testnet
|
|
91d41090 tx_pool: ensure txes loaded from poolstate.bin have their txid cached (moneromooo-monero)
aaeb164c tx_pool: remove transactions if they're in the blockchain (moneromooo-monero)
558cfc31 core, wallet: faster tx pool scanning (moneromooo-monero)
f065234b core: cache tx and block hashes in the respective classes (moneromooo-monero)
|
|
The txid is not saved, and we want to make sure the transactions
have their txid cached while in the pool, since get_transactions
copies the transaction object, so any txid calculation on those
copies would not benefit any later caller, since the original tx
would be left without a cached txid.
|
|
When starting up, if the pool state was not saved, the pool
might contain transactions which made it into the blockchain,
so these need removing
|
|
Includes a new RPC to get tx pool hashes fast.
|
|
An idea from smooth
|
|
The result is not actually used when uninitialized
|
|
This ensures we accept txes with a fee that's slightly too small,
to accomodate blockchain median jitter
|
|
|
|
a6f1d8fc core: call {prepare|cleanup}_handle_incoming_blocks when adding a mined block (moneromooo-monero)
|
|
This ensures that a batch can't also be started/stopped out of
sync by another thread and us getting in the middle
|
|
|
|
3396a9f2 Add intervening v5 fork for increased min block size (moneromooo-monero)
|
|
Minimum mixin 4 and enforced ringct is moved from v5 to v6.
v5 is now used for an increased minimum block size (from 60000
to 300000) to cater for larger typical/minimum transaction size.
The fee algorithm is also changed to decrease the base per kB
fee, and add a cheap tier for those transactions which we do
not care if they get delayed (or even included in a block).
|
|
|
|
BlockchainDB functions virtual again to avoid missing symbols error
|
|
b553c282 rpc: fix BUILD_TAG mispelling (BUILDTAG) (moneromooo-monero)
02097c87 core: print the "new update found" message in cyan, for visibility (moneromooo-monero)
749ebace download: check available disk space before downloading (moneromooo-monero)
f36c5f1e download: give download threads distinct names (moneromooo-monero)
f6211322 core: make update download cancellable (moneromooo-monero)
63f0e074 download: async API (moneromooo-monero)
9bf017ed http_client: allow cancelling a download (moneromooo-monero)
0d90123c http_client: allow derived class to get headers at start (moneromooo-monero)
|
|
If the blocks aren't being linked against a binary (such as
one of the blockchain utilities), the symbol will not be
NULL, but the size will be 0. This avoids a apurious warning
about the data hash.
|
|
|
|
|
|
31533493 core: quantize per kB fee to 8 decimals (moneromooo-monero)
|
|
|
|
|
|
|
|
should fix a cross dependency betewen cryptonote_basic and
blockchain_db
|
|
583a7b5c core: protect precomputed block hashes with SHA256 (moneromooo-monero)
|
|
|
|
This is to prevent unbounded memory use. Since I don't think there
is a container that has quick insert, quick lookup, and automatic
FIFO, I use two and swap every N, clearing the oldest one.
|
|
|
|
It need not be any different
|
|
So the user can use https, while the automatic does not have to
|
|
Also print download success message as global log
|
|
72deb484 updated fallback nodes (Riccardo Spagni)
33329f5b update version to 0.10.2 (Riccardo Spagni)
04a50a7e update checkpoints.dat (Riccardo Spagni)
c3599fa7 update copyright year, fix occasional lack of newline at line end (Riccardo Spagni)
|
|
|
|
|
|
You're wondering how this fixes core tests, aren't you...
It prevents the miner (initialized by cryptonote::core) from
breaking trying to access arguments that were not added.
Since the tests don't use the miner directly, it makes more
sense to have cryptonote_core add those, since it also uses
the miner.
|
|
They're now used by core to determine the data directory to use
for the txpool directory.
This fixes an assert in the core tests, which don't use the RPC
server, which normally initializes the P2P code.
|
|
0288310e blockchain_db: add "raw" blobdata getters for block and transaction (moneromooo-monero)
|
|
cca95c1c blockchain_db: do not throw on expected partial results getting keys (moneromooo-monero)
|
|
a427235e core: add a missing newline on a string to be logged (moneromooo-monero)
b6a2230e unit_tests: fix minor blockchain_db regression (moneromooo-monero)
c488eca5 hardfork: tone down some logs (moneromooo-monero)
|
|
|
|
|
|
It just checks and prints a message if there is a new version
for now.
|
|
This is a good time for the operator to be around and see it
|
|
bed2d9f2 Get rid of directory lock (Howard Chu)
2e913676 Handle map resizes from other processes (Howard Chu)
bf1348b7 Can't cache num_txs or num_outputs either (Howard Chu)
dc53e9ee Add a few read txns to streamline (Howard Chu)
|
|
They are not ready yet
|
|
We don't need it any more. Fixes issue #1633
|
|
Slight perf gain, but mainly to reduce spam at loglevel 3
|
|
|
|
This speeds up operations such as serving blocks to syncing peers
|
|
When scanning for outputs used in a set of incoming blocks,
we expect that some of the inputs in their transactions will
not be found in the blockchain, as they could be in previous
blocks in that set. Those outputs will be scanned there at
a later point. In this case, we add a flag to control wehther
an output not being found is expected or not.
|
|
|
|
|
|
|
|
b5cb8861 core: fix integrated addresses breaking with auto zero change (moneromooo-monero)
|
|
Zero change is sent to a random address, which confuses the code
which determines which key to use to encrypt the payment id.
Ignore zero amounts for this purpose, so the payment id gets
encrypted with the real destination's key.
|
|
ca94d0a4 Separate data per P2P port (Miguel Herranz)
|
|
3ae79a59 core: set missing verifivation_failed flag when rejecting a tx (moneromooo-monero)
ea6549e9 core_tests: decrease trace level from trace to debug (moneromooo-monero)
|
|
58e82506 Blockfill - Sort tx pool correctly (Alexis Enston)
5f7a8741 Blockfill - Take TX fees into account properly (Alexis Enston)
4ecab0d8 Consider empty block when filling with TXs (Alexis Enston)
|