Age | Commit message (Collapse) | Author | Files | Lines |
|
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)
|
|
55a8e982 moved get_account_address_from_str_or_url from libcommon to libcryptonote_core (kenshi84)
|
|
0644eed7 Remove boost/foreach.cpp includes (Miguel Herranz)
36dd3e23 Replace BOOST_REVERSE_FOREACH with ranged for (Miguel Herranz)
629e3101 Replace BOOST_FOREACH with C++11 ranged for (Miguel Herranz)
|
|
poolstate.bin and p2pstate.bin are stored in .bitmonero/ if the default
P2P port is being used.
If another port is used both files are stored in
.bitmonero/PORTNUMBER/.
|
|
This fixes two core rct tests
|
|
|
|
|
|
|
|
|
|
database before quitting
|
|
|
|
|
|
|
|
f0989893 core: cache tx hashes of failing semantics txes (moneromooo-monero)
|
|
b70ab128 rpc: fix orphan_status when getting blocks (moneromooo-monero)
|
|
|
|
It was always set to false, even for orphan blocks
|
|
|
|
|
|
This replaces the epee and data_loggers logging systems with
a single one, and also adds filename:line and explicit severity
levels. Categories may be defined, and logging severity set
by category (or set of categories). epee style 0-4 log level
maps to a sensible severity configuration. Log files now also
rotate when reaching 100 MB.
To select which logs to output, use the MONERO_LOGS environment
variable, with a comma separated list of categories (globs are
supported), with their requested severity level after a colon.
If a log matches more than one such setting, the last one in
the configuration string applies. A few examples:
This one is (mostly) silent, only outputting fatal errors:
MONERO_LOGS=*:FATAL
This one is very verbose:
MONERO_LOGS=*:TRACE
This one is totally silent (logwise):
MONERO_LOGS=""
This one outputs all errors and warnings, except for the
"verify" category, which prints just fatal errors (the verify
category is used for logs about incoming transactions and
blocks, and it is expected that some/many will fail to verify,
hence we don't want the spam):
MONERO_LOGS=*:WARNING,verify:FATAL
Log levels are, in decreasing order of priority:
FATAL, ERROR, WARNING, INFO, DEBUG, TRACE
Subcategories may be added using prefixes and globs. This
example will output net.p2p logs at the TRACE level, but all
other net* logs only at INFO:
MONERO_LOGS=*:ERROR,net*:INFO,net.p2p:TRACE
Logs which are intended for the user (which Monero was using
a lot through epee, but really isn't a nice way to go things)
should use the "global" category. There are a few helper macros
for using this category, eg: MGINFO("this shows up by default")
or MGINFO_RED("this is red"), to try to keep a similar look
and feel for now.
Existing epee log macros still exist, and map to the new log
levels, but since they're used as a "user facing" UI element
as much as a logging system, they often don't map well to log
severities (ie, a log level 0 log may be an error, or may be
something we want the user to see, such as an important info).
In those cases, I tried to use the new macros. In other cases,
I left the existing macros in. When modifying logs, it is
probably best to switch to the new macros with explicit levels.
The --log-level options and set_log commands now also accept
category settings, in addition to the epee style log levels.
|
|
feb499aa core: check block version for alt chains too (moneromooo-monero)
|
|
ba3968f6 rct: split rct checks between semantics and other (moneromooo-monero)
|
|
81c384e4 fix do_not_relay not preventing relaying on a timer (moneromooo-monero)
|
|
50b230d1 core: ensure block size limit is set from the start (moneromooo-monero)
|
|
36ba311c Prioritize older transactions in the mempool (Miguel Herranz)
|
|
3ff54bdd Check for correct thread before ending batch transaction (Howard Chu)
eaf8470b Must wait for previous batch to finish before starting new one (Howard Chu)
c903c554 Don't cache block height, always get from DB (Howard Chu)
eb1fb601 Tweak default db-sync-mode to fast:async:1 (Howard Chu)
0693cff9 Use batch transactions when syncing (Howard Chu)
|
|
|
|
fsync the DB asynchronously, to allow block download/verification
to proceed while syncing. Sync after every batch. Note that
"fastest" still defaults to fastest:async:1000.
|
|
Faster throughput while avoiding corruption. I.e., makes
running with --db-sync-mode safe more tolerable.
|
|
This is incompatible with block version voting
|
|
Semantics can be checked early
|
|
Also print its value when printing pool
|
|
|
|
It can now be queried by RPC, so it needs to be set before
it is otherwise needed for consensus, even if no blocks had
to be added (ie, exit and restart quickly).
|
|
7961878e initialize timestamp to 0 and check for mktime() error (Chris Vickio)
|
|
758c0eb7 fix time stats mixin (luigi1111)
|
|
19be7225 Add start_time to get_info methods and show uptime (Miguel Herranz)
|
|
aff28178 Remove db-auto-remove-logs (Miguel Herranz)
1229c685 Remove berkeley from db_type initialization (Miguel Herranz)
e3090558 Show available types for db-type command (Miguel Herranz)
046ab33d Remove berkeley from blockchain_db_types (Miguel Herranz)
|
|
The transactions are first prioritized by fee and in case the fees are
equal by receive_time.
|
|
|
|
|
|
also add blobsize
|
|
|
|
|
|
|
|
1607cb7e tx_pool: better block template filling algorithm (moneromooo-monero)
9731b4e5 rpc: add block size to GET_BLOCK_HEADER RPC (moneromooo-monero)
9188b346 rpc: add current block size to the getinfo call (moneromooo-monero)
|
|
ada7c7da portable serializer: tests added (kenshi84)
f390a0e2 portable serializer: make signerd/unsigned tx portable, ignore archive version checking (kenshi84)
|
|
591d8368 core: invalidate difficulty cache when resetting blockchain (moneromooo-monero)
|
|
37ed96e6 tx_pool: fix uninitialized "last failed" fields (moneromooo-monero)
94b6feef rpc: fix mixup in tx_info serialization (moneromooo-monero)
|
|
0478ac68 blockchain: allow marking "tx not found" without an exception (moneromooo-monero)
|
|
This is a normal occurence in many cases, and there is no need
to spam the log with those when it is.
|
|
Continue filling until we reach the block size limit, or the
resulting coinbase decreases.
Also remove old sanity check on block size, which is now not
wanted anymore.
|
|
version checking
|
|
|
|
|
|
Also miner tx hash to log level 1 (have you ever tried to find a testnet miner tx hash?)
|
|
It was counting things many, many times
|
|
55fa0479 rpc: new function and RPC to get alternative chain info (moneromooo-monero)
|
|
net_node.inl, completely adandon boost/archive/binary_oarchive.hpp
|
|
|
|
|
|
655eafd1 bump version (Riccardo Spagni)
117194a3 update checkpoints (Riccardo Spagni)
39a9db9e update checkpoints (Riccardo Spagni)
|
|
After popping blocks from the old chain, the hard fork object's
notion of the current version was not in line with the new height,
causing the first blocks from the new chain to be rejected due
to a false expection of a newer version.
|
|
|
|
f4a3ce15 Fix sending outputs from a tx with more than one pubkey (moneromooo-monero)
|
|
dfbb85b6 blockchain: fix setting non trovial alternate chain as invalid (moneromooo-monero)
|
|
A bug in cold signing caused a spurious pubkey to be included
in transactions, so we need to ensure we use the correct one
when sending outputs from one of those.
|
|
The wrong iterator was being used.
Also preincrement iterators to avoid possibly invalidating them,
I'm not sure this is necessary, but let's be safe.
|
|
This will ensure the early 0.10 daemons will barf at the fork
height, and not a bit later, which could be confusing.
|
|
|
|
f4772bae Fix a few minor typos (Pierre Boyer)
|
|
3f7d6fb5 Fix delayed exit when syncing (moneromooo-monero)
|
|
204b1bff blockchain: use high bound block reward on error where appropriate (moneromooo-monero)
|
|
8f6ec90c blockchain: reject invalid pubkeys from v4 (moneromooo-monero)
|
|
|
|
|
|
If the block reward to use for the fee calculation can't be
calculated (should not happen in practice), use a high bound,
so we use a fee overestimate that will be accepted by the network.
|
|
|
|
|
|
|
|
The vast majority of transactions will have just one tx pubkey,
but a bug with cold wallet signing caused two such keys to be
there, with the second one being the real one.
|
|
This will happen when signing a transaction from a cold wallet,
and we don't want the placeholder the hot wallet put in it.
|
|
d61bd81 add lightweight block propagation ("fluffy blocks") (Dion Ahmetaj)
|
|
Added a new command to the P2P protocol definitions to allow querying for support flags.
Implemented handling of new support flags command in net_node. Changed for_each callback template to include support flags. Updated print_connections command to show peer support flags.
Added p2p constant for signaling fluffy block support.
Added get_pool_transaction function to cryptnote_core.
Added new commands to cryptonote protocol for relaying fluffy blocks.
Implemented handling of fluffy block command in cryptonote protocol.
Enabled fluffy block support in node initial configuration.
Implemented get_testnet function in cryptonote_core.
Made it so that fluffy blocks only run on testnet.
|
|
a970a4e refresh speedup (luigi1111)
|
|
18f66f4 wallet: use the dynamic per kB fee (moneromooo-monero)
e6deb8a rpc: add a dynamic fee estimation RPC call (moneromooo-monero)
82dbba1 core: dynamic fee algorithm from ArticMine (moneromooo-monero)
|
|
Compute derivation only once per tx, instead of once per output. Approx 33% faster while using 75% as much CPU on my machine. Note old functions in cryptonote_core (lookup_acc_outs and is_out_to_acc) are still used by tests.
|
|
|
|
The fee will vary based on the base reward and the current
block size limit:
fee = (R/R0) * (M0/M) * F0
R: base reward
R0: reference base reward (10 monero)
M: block size limit
M0: minimum block size limit (60000)
F0: 0.002 monero
Starts applying at v4
|
|
|
|
|
|
|
|
|
|
a6bc110 patched parameter type bug that was causing failure on 32 bit (Dion Ahmetaj)
|
|
25% of the outputs are selected from the last 5 days (if possible),
in order to avoid the common case of sending recently received
outputs again. 25% and 5 days are subject to review later, since
it's just a wallet level change.
|
|
|
|
4038e86 Add performance timers for ringct tx verification (moneromooo-monero)
74dfdb0 perf_timer: new class and macros to make performance logs easier (moneromooo-monero)
|
|
7db29d6 print_coinbase_tx_sum now breaks output into fee and emission components (Dion Ahmetaj)
dd6c443 changed params from start/end index to height/count (Dion Ahmetaj)
e95d3f3 attempted to remove whitespace spam (Dion Ahmetaj)
412da63 added print_coinbase_tx_sum option (Dion Ahmetaj)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3644aa9 blockchain: avoid using a reference to a temporary (moneromooo-monero)
|
|
01ec195 Update CMakeLists.txt (codehalo)
446ebbc Update CMakeLists.txt (codehalo)
bd773e7 Update CMakeLists.txt (codehalo)
3627cea Cleanup. Dropped "bit" from bitmonero. (Randi Joseph)
2a51396 Dropped "bit" from bitmonero. (Randi Joseph)
78b13d6 Cleanup. Dropped "bit" from bitmonero. (Randi Joseph)
1e6aedb Cleanup. Dropped "bit" from bitmonero. (Randi Joseph)
9e54616 Dropped "bit" from bitmonero. (Randi Joseph)
|
|
cec090f Revert "Fix fake 'network synchronized, begin using' messages" (moneromooo-monero)
|
|
0d036be blockchain: do not reject chain histories matching only genesis (moneromooo-monero)
|
|
6390673 Removed all code related to fast_exit (NanoAkron)
|
|
10be903 Brackets to prevent premature return (NanoAkron)
fb1785a Brackets to ensure doesn't function prematurely return (NanoAkron)
8ed0d72 Moved logging to target functions rather than caller (NanoAkron)
442bfd1 Added messages at log level 2 to reflect deactivation procedure (NanoAkron)
|
|
bba6af9 wallet: cold wallet transaction signing (moneromooo-monero)
9872dcb wallet: fix log confusion between bytes and kilobytes (moneromooo-monero)
d9b0bf9 cryptonote_core: make extra field removal more generic (moneromooo-monero)
98f19d4 serialization: add support for serializing std::pair and std::list (moneromooo-monero)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This change adds the ability to create a new unsigned transaction
from a watch only wallet, and save it to a file. This file can
then be moved to another computer/VM where a cold wallet may load
it, sign it, and save it. That cold wallet does not need to have
a blockchain nor daemon. The signed transaction file can then be
moved back to the watch only wallet, which can load it and send
it to the daemon.
Two new simplewallet commands to use it:
sign_transfer (on the cold wallet)
submit_transfer (on the watch only wallet)
The transfer command used on a watch only wallet now writes an
unsigned transaction set in a file called 'unsigned_monero_tx'
instead of submitting the tx to the daemon as a normal wallet does.
The signed tx file is called 'signed_monero_tx'.
|
|
|
|
|
|
This reverts commit 78035d2b6c9922f4cd730df0766aa74f4854ccb2.
The patch doesn't work, and causes constant SYNCHRONIZED OK spam.
|
|
|
|
This is fine if our local chain is so small that it is entirely
contained within the last jump in the peer's short chain history.
|
|
|