Commit Graph

6929 Commits

Author SHA1 Message Date
cslashm 356ea85da7
Add support for V10 protocol with BulletProofV2 and short amount. 2019-03-08 21:15:52 +03:00
cslashm e1b8e3d7b4
Fix dummy decryption in debug mode 2019-03-08 21:15:52 +03:00
cslashm d56c1d68f9
fix log namespace 2019-03-08 21:15:52 +03:00
cslashm 6314a4e78a
New scheme key destination contrfol
Implies protocol version management.
2019-03-08 21:15:51 +03:00
Tom Smeding 02db718dfe
cryptonote: Fix enum check in expand_transaction_2
This was noticed because GCC warned about using an enum value in a
boolean context.
2019-03-08 21:15:51 +03:00
moneromooo-monero a315729e98
simplewallet: tell the user to complain to the recipient
for long payment ids
2019-03-08 21:15:51 +03:00
moneromooo-monero 423cf4406d
ringct: fix v1 ecdhInfo serialization
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-03-08 21:15:51 +03:00
moneromooo-monero 33a76e92f4
ringct: the commitment mask is now deterministic
saves space in the tx and is safe

Found by knaccc
2019-03-08 21:15:51 +03:00
moneromooo-monero 7ad2500f68
ringct: encode 8 byte amount, saving 24 bytes per output
Found by knaccc
2019-03-08 21:15:51 +03:00
moneromooo-monero 7057806c49
ringct: save 3 bytes on bulletproof size
Found by luigi1111
2019-03-08 21:15:51 +03:00
moneromooo-monero b5c9aed261
add a bulletproof version, new bulletproof type, and rct config
This makes it easier to modify the bulletproof format
2019-03-08 21:15:50 +03:00
moneromooo-monero 817be97f39
core: include a dummy encrypted payment id when no payment is used
For better transaction uniformity, even though this wastes space.
2019-03-08 21:15:50 +03:00
moneromooo-monero 73574c7380
core, wallet: remember original text version of destination address 2019-03-08 21:15:50 +03:00
moneromooo-monero 2a616c8b15
simplewallet: disable long payment ids by default
unless --long-payment-id-support is used
2019-03-08 21:15:50 +03:00
moneromooo-monero 8fdc0d4cb3
blockchain: fix wrong hf version when popping multiple blocks
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-03-08 21:15:50 +03:00
moneromooo-monero 66d1424200
simplewallet: remove ability to transfer with detached short payment ids
It seemed like a good idea at the time
2019-03-08 21:15:50 +03:00
moneromooo-monero 3974e40efa
blockchain: fix block rate check for empty blockchains 2019-03-08 21:15:50 +03:00
Jethro Grassie ad6a732f24
ignore child process when exec 2019-03-08 21:15:49 +03:00
moneromooo-monero abb4728cf7
wallet2: fix ring reuse breaking when using histogram 2019-03-08 21:15:49 +03:00
moneromooo-monero 51a7dd045e
core: fix unmixable special case allowing ring size below 11 2019-03-08 21:15:49 +03:00
moneromooo-monero 7942e862b8
blockchain: include number of discarded blocks in --reorg-notify 2019-03-08 21:15:49 +03:00
moneromooo-monero eb982caad1
core: add a few more block rate window sizes
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-08 21:15:49 +03:00
moneromooo-monero eb5a2cbdd2
notify: fix tokenizing being too strict 2019-03-08 21:15:49 +03:00
moneromooo-monero cdf2e30825
core: add --block-rate-notify
This runs a command whenever the block rate deviates too much
from the expectation
2019-03-08 21:15:49 +03:00
moneromooo-monero 7eab7b6a72
blockchain: add --reorg-notify
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-03-08 21:15:48 +03:00
moneromooo-monero bc19bcb2f6
cryptonote_core: warn when the block rate deviates from expectations
The warning threshold is set to allow a false positive every
ten days on average.
2019-03-08 21:15:48 +03:00
moneromooo-monero 3353e6e784
notify: handle arbitrary tags 2019-03-08 21:15:48 +03:00
moneromooo-monero eaf602bceb
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.
2019-03-08 21:15:48 +03:00
moneromooo-monero d48a44d161
Makefile: fix building without a git tree 2019-03-08 21:15:48 +03:00
moneromooo-monero d5c079ef1e
wallet2: extend fake out picks away from the gamma pick
in order to unbias selection from blocks with few txes
2019-03-08 21:15:48 +03:00
Riccardo Spagni ba1fd08e41
update version to 0.13.0.4 2019-03-08 21:15:47 +03:00
Lee Clagett 6246aada9d
Providing user supplied default constructor for expect<void> 2019-03-08 21:15:47 +03:00
moneromooo-monero 18683acc84
console_handler: add a global log when exiting via EOF
It's a common confusion point for users which run monerod
without stdin and with --detach
2019-03-08 21:15:47 +03:00
moneromooo-monero 89c74b5710
blockchain: move two new verification errors to the verify category
Lest we get people get scared again
2019-03-08 21:15:47 +03:00
moneromooo-monero 650594ab63
rpc: fix output distribution caching ignoring chain changes
0 is placeholder for whole chain, so we should compare chain
height changes rather than chain-height-or-zero. Even this isn't
totally foolproof if a blocks are popped and the same number
added again, but it is much better as it prevents the data from
slowly going out of sync.
2019-03-08 21:15:47 +03:00
xiphon 7e669f2d43
device: fixed Ledger Nano S device selection 2019-03-08 21:15:47 +03:00
moneromooo-monero 586e9189a6
Rename "blackball" for clarity
Apparently some people seem to think it's a censorship list...
2019-03-08 21:15:47 +03:00
moneromooo-monero e776762bf6
core: don't verify range proofs multiple times 2019-03-08 21:15:46 +03:00
stoffu 13edabb3e6
tx_pool: revert #4592 and move bin2hex conversion to on_get_transaction_pool 2019-03-08 21:15:46 +03:00
iDunk5400 d1d21b0378
ANSI colors in Windows 10 (v0.13) 2019-03-08 21:15:46 +03:00
moneromooo-monero 0bed77b72e
spawn: close all file descriptors before execve
No need to give whatever we're calling access to what we use
2019-03-08 21:15:46 +03:00
moneromooo-monero 627c303c2f
util: close keys file lock on exec 2019-03-08 21:15:46 +03:00
moneromooo-monero b26d373800
daemon: fix reading past stack on exit 2019-03-08 21:15:46 +03:00
moneromooo-monero 5ebebc1420
wallet_rpc_server: fix change_wallet_password RPC 2019-03-08 21:15:45 +03:00
moneromooo-monero 4fccdaea6a
wallet2_api: fix generating new wallet in the GUI
It was creating a new wallet without a password first (this should
be fixed), then not changing the password correctly
2019-03-08 21:15:45 +03:00
Riccardo Spagni 01a67e96b1
update the version in readme 2019-03-08 21:15:45 +03:00
Riccardo Spagni 72f5fb8019
bump version to 0.13.0.3 2019-03-08 21:15:45 +03:00
stoffu 2777f8c421
tx_pool: store hex string instead of raw binary to tx_blob of get_transaction_pool RPC
Inspired by https://github.com/masari-project/masari/issues/93
2019-03-08 21:15:45 +03:00
Tyler Baker 154c7abdb3
Dockerfile: init and update submodules
The Docker image is failing to build, as the submodules are not being
explicitly initialized and updated.

Fixes: https://github.com/monero-project/monero/issues/4582

Signed-off-by: Tyler Baker <tyler@foundries.io>
2019-03-08 21:15:45 +03:00
xiphon 83aa5c70d0
build: use ARCH 'native' by default, allow to configure and override it 2019-03-08 21:15:40 +03:00