Age | Commit message (Collapse) | Author | Files | Lines |
|
eec79276 blockchain: fix default genesis block timestamp (moneromooo-monero)
|
|
123fc2a2 i2p: initial support (Jethro Grassie)
|
|
9d58749b wallet2: fix hashchain going out of sync on refresh error (moneromooo-monero)
|
|
1bc5f9fa bulletproofs: speed up vector_power_sum (moneromooo-monero)
|
|
d78addcb db_lmdb: don't unnecessarily cast to double on the way to uint64_t (moneromooo-monero)
|
|
24569454 epee: add SSL support (moneromooo-monero)
|
|
807903bb hardfork: fix fork determination for historical heights (moneromooo)
|
|
fa2fbc39 wallet2: fix mishandling rct outputs in coinbase tx (moneromooo-monero)
|
|
|
|
85088d9f db_lmdb: fix missing mdb_dbi_close in migration (moneromooo-monero)
|
|
0de14396 tests: add a CNv4 JIT test (moneromooo-monero)
24d281c3 crypto: plug CNv4 JIT into cn_slow_hash (moneromooo-monero)
78ab59ea crypto: clear cache after generating random program (moneromooo-monero)
b9a61884 performance_tests: add tests for new Cryptonight variants (moneromooo-monero)
fff23bf7 CNv4 JIT compiler for x86-64 and tests (SChernykh)
3dde67d8 blockchain: add v10 fork heights (moneromooo-monero)
|
|
2dbc487e Add support for V10 protocol with BulletProofV2 and short amount. (cslashm)
63cc02c0 Fix dummy decryption in debug mode (cslashm)
f0e55ceb fix log namespace (cslashm)
460da140 New scheme key destination contrfol (cslashm)
|
|
|
|
Enabled by setting the MONERO_USE_CNV4_JIT env var to 1
|
|
|
|
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
|
|
|
|
|
|
|
|
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.
|
|
This runs a command whenever the block rate deviates too much
from the expectation
|
|
|
|
|
|
f1fb06b1 Fixed path to int-util.h (SChernykh)
9da0892b Adding cnv4-2 tweaks (SChernykh)
f51397b3 Cryptonight variant 4 aka CryptonightR (SChernykh)
|
|
b8787f43 ArticMine's new block weight algorithm (moneromooo-monero)
|
|
52964501 ringct: fix v1 ecdhInfo serialization (moneromooo-monero)
|
|
45b7df70 wallet_rpc_server: remove detached short payment ids support (moneromooo-monero)
|
|
49b2a48a simplewallet: tell the user to complain to the recipient (moneromooo-monero)
|
|
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.
|
|
Reported by cutcoin
|
|
Fixed by hyc
|
|
|
|
Co-Authored-By: Lee Clagett <vtnerd@users.noreply.github.com>
|
|
It introduces random integer math into the main loop.
|
|
|
|
|
|
|
|
Implies protocol version management.
|
|
for long payment ids
|
|
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.
|
|
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.
|
|
|
|
This was noticed because GCC warned about using an enum value in a
boolean context.
|
|
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.
|
|
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
|
|
|
|
973403bc Adding initial support for broadcasting transactions over Tor (Lee Clagett)
|
|
dc0b86ab block_queue: fix late sanity check off by one (moneromooo-monero)
|
|
- 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).
|
|
|
|
acfff8d0 rpc: fix internal daemon calls in restricted rpc getting partial data (moneromooo-monero)
|
|
23813c71 blockchain: add --reorg-notify (moneromooo-monero)
f6db59b0 notify: handle arbitrary tags (moneromooo-monero)
ff959216 notify: warn if the spec contains one of '"\ (moneromooo-monero)
13852678 common: set MONERO_DEFAULT_LOG_CATEGORY for notify and spawn (moneromooo-monero)
|
|
|
|
d294a577 daemon: extend 'print_pl' command, optional filter by type and limit (xiphon)
|
|
b8c5f550 wallet api: don't truncate address in subaddress_account (selsta)
|
|
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
|
|
|
|
These aren't processed as a shell does, so this may surprise users
|
|
|
|
2112060d wallet2: fix duplicate tx notifications for pool txes (moneromooo-monero)
|
|
96e35506 wallet2: fix incorrect patch for determining fork rules (moneromooo-monero)
|
|
11227e0b mnemonics: compare canonical words (lowercase) (moneromooo-monero)
|
|
8258a9e7 wallet: do not check txpool in background mode (moneromooo-monero)
|
|
6c060e6a device: proper handling of user input (selsta)
|
|
93c21644 device_ledger: remove full_name variable (selsta)
|
|
b6534c40 ringct: remove unused senderPk from ecdhTuple (moneromooo-monero)
7d375981 ringct: the commitment mask is now deterministic (moneromooo-monero)
99d946e6 ringct: encode 8 byte amount, saving 24 bytes per output (moneromooo-monero)
cdc3ccec ringct: save 3 bytes on bulletproof size (moneromooo-monero)
f931e16c add a bulletproof version, new bulletproof type, and rct config (moneromooo-monero)
|
|
|
|
This was an early ringct field, which was never used in production
|
|
saves space in the tx and is safe
Found by knaccc
|
|
Found by knaccc
|
|
Found by luigi1111
|
|
This makes it easier to modify the bulletproof format
|
|
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.
|
|
|
|
found by sarang
|
|
|
|
c6d38718 core: include a dummy encrypted payment id when no payment is used (moneromooo-monero)
b7441c4a core, wallet: remember original text version of destination address (moneromooo-monero)
a9b1c04a crptonote_core: do not error out sending unparsable extra field (moneromooo-monero)
|
|
07cb574c ringct: remove duplicate rv.mixRing = mixRing; in genRctSimple (stoffu)
|
|
0a29660f message_store: init me field (moneromooo-monero)
|
|
584126d1 i18n: filter LANG/LC_LANG for valid characters, and handle @ (moneromooo-monero)
|
|
a67b77a9 blockchain: don't propagate exception past dtor (moneromooo-monero)
|
|
For better transaction uniformity, even though this wastes space.
|
|
|
|
extra is arbitrary, and the user may well want to send custom data
|
|
51b0625e simplewallet: improve punctuation in user visible string (selsta)
|
|
464097e5 blockchain_ancestry: allow getting ancestry of a single output (moneromooo-monero)
a6216d1a blockchain_db: allow getting output keys without commitment (moneromooo-monero)
|
|
1ef79b43 simplewallet: disable long payment ids by default (moneromooo-monero)
|
|
0debe7d7 wallet2: remember which output keys map to which key images (moneromooo-monero)
|
|
15904610 simplewallet: remove extra colon in a few calls to input_secure_line (stoffu)
247dab73 simplewallet: avoid conversion to string in input_secure_line (stoffu)
bf9ef7ad simplewallet: factor yesno hint into input_line (stoffu)
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
Since the commitment has to be calculated for non rct outputs,
it slows down a lot unnecessarily if we don't need it
|
|
unless --long-payment-id-support is used
|
|
This allows filling in transfer_details when a cold signed tx
gets seen in a block next
|
|
|
|
c1081091 simplewallet: Show new address after going multisig (rbrunner7)
|
|
53fcd159 simplewallet: don't subtract 1 to estimate blockchain height (moneromooo-monero)
|
|
13785ec9 wallet api/device: set estimated restore height if none is provided (selsta)
|
|
5ee6f037 blockchain: fix wrong hf version when popping multiple blocks (moneromooo-monero)
634d359a blockchain: use the version passed as parameter, not a new one (moneromooo-monero)
94a375d5 hardfork: remove batch transactions setup (moneromooo-monero)
|
|
d1b3990d p2p: don't stop the idle thread when no gray peers are found (moneromooo-monero)
|
|
9092fc4b wallet: do not display daemon controlled text if untrusted (moneromooo-monero)
|
|
65ce387c daemon: add a +hex option to print_block (moneromooo-monero)
|
|
8bd71677 simplewallet: remove ability to transfer with detached short payment ids (moneromooo-monero)
|
|
6f2081f8 cryptonote_core: revert extra_tx_map (moneromooo-monero)
|
|
d7354c78 wallet_rpc_server: add all field to export_key_images (moneromooo-monero)
|
|
5e10dee3 simplewallet: fix show_transfers colouring, and add red for failed (moneromooo-monero)
|
|
7c58421c blockchain_blackball: make log file name consistent with executable (stoffu)
|
|
de9dcdd1 wallet2: finalize_multisig now rejects non N-1/N multisig wallets (moneromooo-monero)
|
|
a5ffc2d5 Remove boost::lexical_cast for uuid and unused uuid function (Lee Clagett)
|
|
99765b21 Remove unused hash in export_key_images (doy-lee)
|
|
c5e0539c device/trezor: store tx_prefix_hash in tx key aux (Dusan Klinec)
|
|
b8342dd5 blockchain: fix block rate check for empty blockchains (moneromooo-monero)
|
|
841a6acd wallet2: fix accessing unwound stack on exception (moneromooo-monero)
|
|
d24c325c daemon: print human friendly timestamp too (moneromooo-monero)
|
|
808a1f1e wallet2: cut down on the number of useless derivation threads (moneromooo-monero)
|
|
008647d7 blockchain_db: speedup tx output gathering (moneromooo-monero)
|
|
60b35c91 Add --restore-date param (Howard Chu)
|
|
219548f2 Sync hashchain bug fixed (naughtyfox)
|
|
611db08a Wallet: Initialize members without default ctor. (Tadeas Moravec)
|
|
85665003 epee: better network buffer data structure (moneromooo-monero)
|
|
aaafa8a9 ringct: avoid repeated point conversion (moneromooo-monero)
|
|
Same behaviour as subaddress.cpp now.
|
|
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.
|
|
|
|
|
|
(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.
|
|
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.
|
|
This variable was never set, resulting in the
device name always showing as "disconnected".
|
|
If there are more valid characters, add them in, I did not find
an actual list.
|
|
|
|
050ee521 wallet_api: fix usage of LOG_ERROR (moneromooo-monero)
|
|
434a147b blocks: fix checkpoint code generation on OpenBSD (moneromooo-monero)
|
|
68f095f0 message_store: fix error message adding const char * with offset (moneromooo-monero)
|
|
Coverity 190651
|
|
Coverity 190660
|
|
|
|
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.
|
|
2d7b0236 wallet2: clear all payments on soft rescan_bc (moneromooo-monero)
|
|
93c59b29 perf_timer: check allowed categories before logging (moneromooo-monero)
6a507dab perf_timer: add a way to get and reset the current time (moneromooo-monero)
c1581a5b perf_timer: only log to file (moneromooo-monero)
|
|
570dd369 p2p: use vector instead of list for peer lists (moneromooo-monero)
|
|
5464725a protocol: change standby mode to not wait sleeping (moneromooo-monero)
85807dfb add a once_a_time_milliseconds class (moneromooo-monero)
|
|
a13eb0a1 epee: speed up string matching a bit (moneromooo-monero)
3a3858dc epee: avoid string allocation when parsing a pod from string (moneromooo-monero)
|
|
|
|
|
|
in case it returns 0, and other uses don't, plus it's a estimation anyway.
|
|
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
|
|
|
|
This is now default, so it spares us the warnings
|
|
It can get heavy for large wallets
|
|
|
|
b56b5b5 ignore child process when exec (jtgrassie)
|
|
0e2f5cb perf_timer: make all logs Info level (moneromooo-monero)
|
|
25e5a85 singleton: fix missing *this return value in operator= (monermooo-monero)
|
|
dbbb3ce cryptonote: don't serialize for blob size if already known (moneromooo-monero)
|
|
1d892ec simplewallet: donate command validate amount (selsta)
|
|
6644b9b blockchain_db: remove a couple unused functions (moneromooo-monero)
ce594f5 blockchain_db: allocate known size vector only once (moneromooo-monero)
8332698 db_lmdb: inline check_open, it's trivial and called everywhere (moneromooo-monero)
5511563 db_lmdb: avoid pointless division (moneromooo-monero)
d1efe3d cryptonote: set tx hash on newly parsed txes when known (moneromooo-monero)
9cc68a2 tx_pool: add a few std::move where it can make a difference (moneromooo-monero)
|
|
e37154a build: protobuf dependency fixes, libusb build (ph4r05)
|
|
1505dd3 util: set MONERO_DEFAULT_LOG_CATEGORY (moneromooo-monero)
db57374 util: use fcntl instead of flock, for compatibility (moneromooo-monero)
|
|
9e64a71 blockchain: call deinit in dtor (moneromooo-monero)
|
|
5a76933 Add glibc back compat code (TheCharlatan)
|
|
affff94 blockchain: fix race between two external mining threads (moneromooo-monero)
|
|
e6f026e Simplewallet: Unify usage messages. (tmoravec)
|
|
707c2f8 Remove -Werror (moneromooo-monero)
|
|
|
|
|
|
It seemed like a good idea at the time
|
|
|
|
|
|
Its od outputs small decimals with leading 0, which means octal in C
|
|
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.
|
|
To use if you want all key images, not just the ones for
recently imported outputs
|
|
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.
|
|
avoids pointless allocs and memcpy
|
|
Also add the type back, as it was somehow weirdly split into
two different fields, one being a union...
|
|
|
|
|
|
|
|
|
|
|
|
- tx_prefix_hash is required in the key derivation for decryption of the tx keys
|
|
|
|
- docker protobuf dependencies, cross-compilation
- device/trezor protobuf build fixes, try_compile
- libusb built under all platforms, used by trezor for direct connect
|
|
We know all the data we'll want for getblocks.bin is contiguous
|
|
|
|
|
|
Estimate restore height from given date
Check date format early, error out early if invalid
|
|
|
|
Found by Coverity (188336 in Anonimal's Coverity account).
|
|
|
|
|
|
6456cb41 Bulletproof: Initialize members in default construtor. (Tadeas Moravec)
|
|
ab783b17 easylogging++: ensure logger is initialized before main (moneromooo-monero)
9b69a0ae daemon: print monero version at startup when calling a detached daemon (moneromooo-monero)
4d71d463 mlocker: remove early page size log (moneromooo-monero)
|
|
0c5dd316 cryptonote: add a set_null for transaction_prefix (moneromooo-monero)
|
|
aba9a9c2 daemon: stop miner before we bring the whole thing down (moneromooo-monero)
|
|
ac665418 ringct: fix dummy bulletproofs on ledger in fake mode (moneromooo-monero)
|
|
e98ae34e core: fix adding new pre-hoh block when a tx is already in the pool (moneromooo-monero)
|