Commit graph

254 commits

Author SHA1 Message Date
luigi1111
e579fe4ae0
Merge pull request #5530
6abaaaa remove obsolete save_graph skeleton code (moneromooo-monero)
2019-07-24 14:07:29 -05:00
moneromooo-monero
65c4004963
allow blocking whole subnets 2019-07-16 11:35:53 +00:00
moneromooo-monero
880ebfdeea
daemon: add more chain specific info in alt_chain_info 2019-06-01 15:43:52 +00:00
moneromooo-monero
2aa11341fc
daemon: display peer address type in print_cn 2019-05-31 09:10:05 +00:00
moneromooo-monero
fcfcc3ac86
rpc: in/out peers can now return the setting's value 2019-05-30 12:13:31 +00:00
wowario
cd720c7e0b
add cumulative difficulty to diff command 2019-05-30 11:57:21 +03:00
moneromooo-monero
c07bbd5c04
daemon: fix "never seen before" time span display for peers 2019-05-24 10:47:36 +00:00
Lee Clagett
3544596f9f Add ssl_options support to monerod's rpc mode. 2019-05-22 00:09:11 -04:00
moneromooo-monero
6abaaaa994
remove obsolete save_graph skeleton code 2019-05-10 14:17:18 +00:00
moneromooo-monero
4228ee0b9e
daemon: add optional arguments to alt_chain_info
>N limits display to alt chains with more than N blocks
-N limits display to alt chains younger than N blocks
2019-05-09 09:13:11 +00:00
moneromooo-monero
0605406714
daemon: sort alt chains by height 2019-05-09 09:12:49 +00:00
moneromooo-monero
a4c4a2d8aa
blockchain: keep a rolling long term block weight median 2019-05-02 09:47:01 +00:00
Riccardo Spagni
f376cd5605
Merge pull request #5446
7d79222f daemon: remove debug info (moneromooo-monero)
8fec0f98 functional_tests: add sweep_single test (moneromooo-monero)
9880d61b wallet_rpc_server: remove unused code (moneromooo-monero)
8a61b33d rpc: omit irrelevant fields for pool txes in gettransactions (moneromooo-monero)
56508524 rpc: add relayed in get_transaction output (moneromooo-monero)
82e510f1 rpc: set default log category in core_rpc_server.h (moneromooo-monero)
2019-04-16 22:46:29 +02:00
moneromooo-monero
7d79222f5c
daemon: remove debug info 2019-04-15 22:32:09 +00:00
moneromooo-monero
b364823286
daemon: fix ratio not being floating point
Coverity 197648
2019-04-14 09:26:12 +00:00
Riccardo Spagni
bd429033df
Merge pull request #5378
eda2661a Allow pruning before v10 (moneromooo-monero)
2019-04-11 13:02:35 +02:00
moneromooo-monero
a2561653cb
wallet: new option to start background mining
The setup-background-mining option can be used to select
background mining when a wallet loads. The user will be asked
the first time the wallet is created.
2019-04-04 18:10:45 +00:00
moneromooo-monero
eda2661aa2
Allow pruning before v10
This check is now not needed anymore, and would prevent people
from using --prune-blockchain when starting a new sync
2019-04-01 14:06:49 +00:00
rbrunner7
c23ea7962d New interactive daemon command 'print_net_stats': Global traffic stats 2019-03-24 16:58:57 +01:00
Riccardo Spagni
848591c4d8
Merge pull request #5190
551104fb daemon: add --public-node mode, RPC port propagation over P2P (xiphon)
2019-03-17 17:56:04 +02:00
Riccardo Spagni
429930534d
Merge pull request #5185
59478c80 daemon: new mining_status command (moneromooo-monero)
2019-03-17 17:55:32 +02:00
moneromooo-monero
59478c80dd
daemon: new mining_status command 2019-03-09 20:51:53 +00:00
binaryFate
1f2930ce0b Update 2019 copyright 2019-03-05 22:05:34 +01:00
Riccardo Spagni
46fd181cca
Merge pull request #4054
24569454 epee: add SSL support (moneromooo-monero)
2019-03-04 21:17:21 +02:00
moneromooo-monero
b8787f4302
ArticMine's new block weight algorithm
This curbs runaway growth while still allowing substantial
spikes in block weight

Original specification from ArticMine:

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

Note: the long term block weight is stored in the database, but not in the actual block itself,
since it requires recalculating anyway for verification.
2019-03-04 09:33:58 +00:00
xiphon
551104fbf1 daemon: add --public-node mode, RPC port propagation over P2P 2019-02-25 02:40:23 +03:00
moneromooo-monero
2456945408
epee: add SSL support
RPC connections now have optional tranparent SSL.

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

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

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

To generate long term certificates:

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

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

SSL support is transparent, so all communication is done on the
existing ports, with SSL autodetection. This means you can start
using an SSL daemon now, but you should not enforce SSL yet or
nothing will talk to you.
2019-02-02 20:05:33 +00:00
Riccardo Spagni
1e5cd3b35a
Merge pull request #5062
acfff8d0 rpc: fix internal daemon calls in restricted rpc getting partial data (moneromooo-monero)
2019-01-28 21:40:11 +02:00
moneromooo-monero
acfff8d0ce
rpc: fix internal daemon calls in restricted rpc getting partial data 2019-01-28 19:35:20 +00:00
Riccardo Spagni
23c7663167
Merge pull request #5080
d294a577 daemon: extend 'print_pl' command, optional filter by type and limit (xiphon)
2019-01-28 21:34:17 +02:00
moneromooo-monero
b750fb27b0
Pruning
The blockchain prunes seven eighths of prunable tx data.
This saves about two thirds of the blockchain size, while
keeping the node useful as a sync source for an eighth
of the blockchain.

No other data is currently pruned.

There are three ways to prune a blockchain:

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

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

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

Once the database is pruned, it will stay pruned as it syncs.
That is, there is no need to use --prune-blockchain again, etc.
2019-01-22 20:30:51 +00:00
xiphon
d294a577fa daemon: extend 'print_pl' command, optional filter by type and limit 2019-01-18 01:32:18 +00:00
Riccardo Spagni
17878369f9
Merge pull request #5019
65ce387c daemon: add a +hex option to print_block (moneromooo-monero)
2019-01-16 21:36:08 +02:00
moneromooo-monero
65ce387c93
daemon: add a +hex option to print_block 2018-12-26 17:55:28 +00:00
moneromooo-monero
d24c325c7d
daemon: print human friendly timestamp too 2018-12-26 14:01:18 +00:00
Jason Wong
dc1c12528d add command pop_blocks
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-28 12:20:28 +01:00
Riccardo Spagni
b1ba96e159
Merge pull request #4777
c17a1d43 daemon: use msg_writer, not cout, to display information (moneromooo-monero)
2018-11-16 11:01:33 +02:00
moneromooo-monero
c17a1d431b
daemon: use msg_writer, not cout, to display information 2018-11-01 22:53:10 +00:00
Riccardo Spagni
fde24c80c2
Merge pull request #4648
a7bffead daemon: fix base fee stating /kB even when it is per byte (moneromooo-monero)
2018-11-01 22:33:02 +02:00
moneromooo-monero
a7bffead9e
daemon: fix base fee stating /kB even when it is per byte 2018-10-19 08:39:33 +00:00
Ricardo de Vries
e54e5668a8 daemon: Show mining address 2018-10-18 10:45:42 +02:00
moneromooo-monero
5ec929fb3a
daemon: do not display uptime when not known 2018-10-02 08:40:38 +00:00
Riccardo Spagni
7ab49f96ad
Merge pull request #4341
e6117282 daemon: request no PoW hashes we don't need when asking for blocks (moneromooo-monero)
2018-09-18 17:39:56 +02:00
moneromooo-monero
5ffb2ff9b7
v8: per byte fee, pad bulletproofs, fixed 11 ring size 2018-09-11 13:38:07 +00:00
moneromooo-monero
e611728228
daemon: request no PoW hashes we don't need when asking for blocks
This fixes the horrendous slowdown in bc_dyn_stats
2018-09-05 09:43:44 +00:00
stoffu
3940e12933
daemon.print_bc: don't print difficulty twice 2018-07-24 16:17:49 +09:00
luigi1111
138aefd0e7
Merge pull request #4029
bd9e4e3 daemon: show a bit more info with print_block (stoffu)
2018-07-19 13:52:41 -05:00
luigi1111
d518dae4bf
Merge pull request #3973
50af357 alt_chain_info can now give more info about a particular alt chain (moneromooo-monero)
2018-07-19 13:37:10 -05:00
moneromooo-monero
50af3579ee
alt_chain_info can now give more info about a particular alt chain 2018-06-26 08:19:51 +01:00
stoffu
bd9e4e3149
daemon: show a bit more info with print_block 2018-06-20 12:04:03 +09:00
luigi1111
9a3bd88b9f
Merge pull request #3851
a87980f fix build with GCC 8.1.0 (moneromooo-monero)
2018-06-19 12:51:13 -05:00
luigi1111
42e7f31613
Merge pull request #3725
9cc0d42 connection_context: remove state_ prefix from state names (moneromooo-monero)
d9d002c daemon: print peer state in sync_info (moneromooo-monero)
2018-06-16 14:01:12 -05:00
luigi1111
737712c0c6
Merge pull request #3561
353e9c0 Core RPC: optionally add POW hash to block_header_response (stoffu)
2018-05-31 14:38:01 -05:00
moneromooo-monero
a87980f6c2
fix build with GCC 8.1.0 2018-05-26 14:54:10 +01:00
moneromooo-monero
29fbaeaae5
daemon: request unpruned transactions for print_tx
instead of uninitialized
2018-05-19 00:04:46 +01:00
moneromooo-monero
d9d002c3c1
daemon: print peer state in sync_info
It's often relevant
2018-04-28 19:56:39 +01:00
rbrunner7
f9d0827bba Fix broken interactive daemon 'limit' commands plus RPC calls 2018-04-25 21:37:10 +02:00
stoffu
353e9c0c90
Core RPC: optionally add POW hash to block_header_response 2018-04-05 23:15:15 +09:00
stoffu
af773211cb
Stagenet 2018-03-05 11:55:05 +09:00
Riccardo Spagni
04a676397f
Merge pull request #3165
7539603f Bootstrap daemon (stoffu)
2018-02-16 14:18:50 +01:00
stoffu
7539603f94
Bootstrap daemon 2018-01-30 20:15:47 +09:00
Erik de Castro Lopo
628b78ae8a Fix in_peers/out_peers RPC operations
Original implementations could never have worked.
2018-01-29 11:54:57 +11:00
Erik de Castro Lopo
32c0f908cd Allow the number of incoming connections to be limited
It was already possible to limit outgoing connections. One might want
to do this on home network connections with high bandwidth but low
usage caps.
2018-01-29 11:14:02 +11:00
xmr-eric
18216f19dd Update 2018 copyright 2018-01-26 10:03:20 -05:00
Riccardo Spagni
3bbe2481ce
Merge pull request #2946
1a686bf8 daemon: print num txes in print_bc (moneromooo-monero)
2017-12-28 08:59:31 +02:00
moneromooo-monero
b51dc56687
use const refs in for loops for non tiny types 2017-12-18 15:15:54 +00:00
moneromooo-monero
1a686bf8cc
daemon: print num txes in print_bc 2017-12-17 12:55:40 +00:00
Riccardo Spagni
49ce59462a
Merge pull request #2783
416a7933 Print msg upon success for commands that were silent (binaryFate)
2017-11-20 12:09:02 +09:00
moneromooo-monero
383ff4f689
remove "using namespace std" from headers
It's nasty, and actually breaks on Solaris, where if.h fails to
build due to:

  struct map *if_memmap;
2017-11-14 16:56:10 +00:00
Riccardo Spagni
fd0740e5e7
Merge pull request #2615
10013e94 Protect node privacy by proper filtering in restricted-mode RPC answers (binaryFate)
2017-11-14 14:53:10 +02:00
binaryFate
416a793326 Print msg upon success for commands that were silent 2017-11-10 09:42:40 +01:00
binaryFate
10013e9434 Protect node privacy by proper filtering in restricted-mode RPC answers
This patch allows to filter out sensitive information for queries that rely on the pool state, when running in restricted mode.
This filtering is only applied to data sent back to RPC queries. Results of inline commands typed locally in the daemon are not affected.
In practice, when running with `--restricted-rpc`:
* get_transaction_pool will list relayed transactions with the fields "last relayed time" and "received time" set to zero.
* get_transaction_pool will not list transaction that have do_not_relay set to true, and will not list key images that are used only for such transactions
* get_transaction_pool_hashes.bin will not list such transaction
* get_transaction_pool_stats will not count such transactions in any of the aggregated values that are computed

The implementation does not make filtering the default, so developers should be mindful of this if they add new RPC functionality.
Fixes #2590.
2017-11-08 13:07:07 +01:00
moneromooo-monero
ccf53a566c
track double spending in the txpool
Transactions in the txpool are marked when another transaction
is seen double spending one or more of its inputs.
This is then exposed wherever appropriate.

Note that being marked with this "double spend seen" flag does
NOT mean this transaction IS a double spend and will never be
mined: it just means that the network has seen at least another
transaction spending at least one of the same inputs, so care
should be taken to wait for a few confirmations before acting
upon that transaction (ie, mostly of use for merchants wanting
to accept unconfirmed transactions).
2017-11-06 00:05:44 +00:00
Riccardo Spagni
7452359d8f
Merge pull request #2591
93ad1f87 Fix #2559: more flexible print_tx daemon command (binaryFate)
2017-11-06 01:54:48 +02:00
Riccardo Spagni
f484b162db
Merge pull request #2599
b776c725 daemon: use @N syntax to output_histogram for specific amounts (moneromooo-monero)
2017-10-15 18:48:19 +02:00
binaryFate
93ad1f8723 Fix #2559: more flexible print_tx daemon command 2017-10-08 22:35:35 +02:00
moneromooo-monero
b776c72568
daemon: use @N syntax to output_histogram for specific amounts
Makes debugging tx verification easier
2017-10-07 16:45:54 +01:00
kenshi84
53ad5a0f42
Subaddresses 2017-10-07 13:06:21 +09:00
Riccardo Spagni
3bab2676ec
Merge pull request #2512
792ba4f0 Log categories can now be added to and removed from (moneromooo-monero)
48f92eb6 easylogging++: add categories getter (moneromooo-monero)
f35afe62 epee: factor log level/categories setting (moneromooo-monero)
2017-10-02 23:28:59 +04:00
Riccardo Spagni
3bf20a77f2
Merge pull request #2470
2e59f6ea rpc: add new RPCs to get and set limits (MaxXor)
2017-10-02 23:15:22 +04:00
moneromooo-monero
06c1e05735
daemon: initialize decode_as_json in RPC request
CID 161886
2017-09-25 15:48:03 +01:00
moneromooo-monero
792ba4f0fe
Log categories can now be added to and removed from
Also, set_log without parameters now prints the log categories
2017-09-22 18:08:14 +01:00
stoffu
c09aa94d34
daemon: indicate whether the spent key image is mined or unconfirmed 2017-09-21 07:46:44 +09:00
MaxXor
2e59f6ea50 rpc: add new RPCs to get and set limits 2017-09-19 10:30:55 +02:00
Howard Chu
1181848748
Use latest height for fork date estimate 2017-09-02 11:44:12 +01:00
Riccardo Spagni
72b5f37f58
Merge pull request #2349
1914c999 txpool: update db tx metadata when it changes (moneromooo)
4dbf29bd txpool: add tx size median to the pool stats (moneromooo)
2017-08-27 18:15:13 +02:00
moneromooo-monero
19393115dc
daemon: fix backlog estimating at max block size
Block size will pretty much never be fully used, unless all txes
are using max fee.
2017-08-26 17:11:40 +01:00
moneromooo
4dbf29bd32
txpool: add tx size median to the pool stats 2017-08-25 22:21:38 +01:00
Riccardo Spagni
335681896a
Merge pull request #2311
df0cffed cryptonote_protocol: warn if we see a higher top version we expect (moneromooo-monero)
317ab21a cryptonote_protocol: less strict check on top version on connect (moneromooo-monero)
cc81a371 cryptonote_protocol: update target height when syncing too (moneromooo-monero)
e2ad372b cryptonote_protocol: simplify and remove unnecessary casts (moneromooo-monero)
727e67ca cryptonote_protocol: print peer top height along with its version (moneromooo-monero)
b5345ef4 crypto: use malloc instead of alloca (moneromooo-monero)
80794b31 thread_group: set thread size to THREAD_STACK_SIZE (moneromooo-monero)
5524bc31 print peer id in 0 padded hex for consistency (moneromooo-monero)
8f8cc09b contrib: add sync_info to rlwrap command set (moneromooo-monero)
70b8c6d7 cryptonote_protocol: misc fixes to the new sync algorithm (moneromooo-monero)
2017-08-25 00:21:28 +02:00
moneromooo-monero
5524bc3151
print peer id in 0 padded hex for consistency 2017-08-23 13:37:56 +01:00
moneromooo-monero
679a5ab85b
daemon: print estimated tx backlog in print_pool_stats 2017-08-23 12:12:06 +01:00
moneromooo-monero
42b34b3545
Consistently print peer id in hex and on 16 chars 2017-08-16 10:56:55 +01:00
moneromooo-monero
2ec15a6931
daemon: print peers' top height in sync_info 2017-08-12 20:36:31 +01:00
Riccardo Spagni
6db8a60a18
Merge pull request #2149
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)
2017-08-07 15:24:58 +02:00
moneromooo-monero
5be43fcdba
cryptonote_protocol_handler: sync speedup
A block queue is now placed between block download and
block processing. Blocks are now requested only from one
peer (unless starved).

Includes a new sync_info coommand.
2017-08-07 09:33:04 +01:00
moneromooo-monero
d37e8f8868
daemon: add average seconds per block in bc_dyn_stats 2017-07-29 18:43:50 +01:00
Riccardo Spagni
c0f155d3a0
Merge pull request #2170
c3bb6bec daemon: fix status in command line mode if using restricted rpc (moneromooo-monero)
2017-07-19 11:51:35 +02:00
moneromooo-monero
c3bb6becd9
daemon: fix status in command line mode if using restricted rpc 2017-07-13 10:17:57 +01:00
Howard Chu
8db68a57f5
Fix #2164 histogram output
When there are more than 50txs, the timestamp for the last
bin was printed incorrectly. Subtracting "now" was omitted by mistake
in 3fc22e7b78
2017-07-10 15:51:03 +01:00
Howard Chu
3fc22e7b78
Add histogram to poolstats 2017-06-04 22:48:14 +01:00