Commit Graph

4911 Commits

Author SHA1 Message Date
moneromooo-monero 395eb9217a blockchain: remove buggy long term block weight cache
It seems to be buggy on reorgs, and prevents the use of
a blockchain with two nodes.
We'll speed this up again if/when the need arises.
2019-02-19 15:21:57 +00:00
moneromooo-monero 0c0f6034c0 blockchain: fix block template creation race
If two create_block_template are called at nearly the same time,
and a block is added at nearly the same time, this could happen:

- the blockchain top block is B0
- thread 1 enters create_block_template, takes blockchain lock
- thread 1 creates a fresh block referencing prev block B0
- thread 1 releases blockchain lock
- thread 0 adds a new block
- thread 0 enters create_block_template
- thread 0 updates block template
- thread 1 takes txpool lock and continues creating block template
- thread 1 overwrites block template with previous data
2019-02-18 15:43:08 +00:00
Riccardo Spagni e81829bb52 Merge pull request #5159
1d628550 blockchain: fix long term weight addition on pop/init (moneromooo-monero)
2019-02-18 17:08:09 +02:00
Riccardo Spagni 35616a71da Merge pull request #5158
993a1994 tests: add a CNv4 JIT test (moneromooo-monero)
736f2579 crypto: plug CNv4 JIT into cn_slow_hash (moneromooo-monero)
2e9b988a crypto: clear cache after generating random program (moneromooo-monero)
683c3d13 performance_tests: add tests for new Cryptonight variants (moneromooo-monero)
2019-02-18 17:07:50 +02:00
Riccardo Spagni 09bbfa805d Merge pull request #5157
3b7967c6 rpc: fix wrongly formatted JSON for pruned tx (stoffu)
2019-02-18 17:07:25 +02:00
moneromooo-monero 993a1994fa tests: add a CNv4 JIT test 2019-02-18 13:14:15 +00:00
moneromooo-monero 1d62855044 blockchain: fix long term weight addition on pop/init 2019-02-18 12:46:32 +00:00
moneromooo-monero 736f25795c crypto: plug CNv4 JIT into cn_slow_hash
Enabled by setting the MONERO_USE_CNV4_JIT env var to 1
2019-02-18 10:37:06 +00:00
moneromooo-monero 2e9b988adf crypto: clear cache after generating random program 2019-02-18 10:37:02 +00:00
Riccardo Spagni a8e752d383 Merge pull request #5155
2c0fc8b4 db_lmdb: fix missing mdb_dbi_close in migration (moneromooo-monero)
2019-02-18 11:15:05 +02:00
Riccardo Spagni 1a0fa56189 Merge pull request #5153
32ebc95d CMakeLists.txt: detect and use -pthread compiler flag (moneromooo-monero)
be2d061b miner: fix build with boost 1.69 (moneromooo-monero)
1de62cb1 mlocker: fix access to global lock map after dtor on exit (moneromooo-monero)
5544bb83 mlocker: fix dtor ordering problem (moneromooo-monero)
2019-02-18 11:14:50 +02:00
stoffu 3b7967c660 rpc: fix wrongly formatted JSON for pruned tx
Fix for #4399.
Also unifies code for serializing pruned tx to binary/json into one.

(Cherry-picked from #4586)
2019-02-18 15:24:00 +09:00
SChernykh 4b32859d2f CNv4 JIT compiler for x86-64 and tests
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
2019-02-17 23:56:23 +01:00
moneromooo-monero 2c0fc8b466 db_lmdb: fix missing mdb_dbi_close in migration
Fixed by hyc
2019-02-17 22:15:29 +00:00
moneromooo-monero be2d061b94 miner: fix build with boost 1.69 2019-02-17 10:52:54 +00:00
moneromooo-monero 7aa0cc58e2 blockchain: fix m_long_term_block_weight_height initialization
Also check return of that function, it can now return error
2019-02-15 13:01:56 +00:00
moneromooo-monero bd7f82515b blockchain: forbid older BP rct versions from v11 2019-02-15 10:20:23 +00:00
moneromooo-monero f9d820ada1 Fix v3/v4 db conversion 2019-02-15 01:21:37 +00:00
moneromooo-monero 0b0fb709c3 Build fixes for some platforms 2019-02-14 19:25:58 +00:00
moneromooo-monero 3ac3366a6e blockchain: add v10 fork heights 2019-02-14 14:56:19 +00:00
Lee Clagett c2b8037a42 Adding cnv4-2 tweaks 2019-02-14 14:44:27 +00:00
SChernykh 1b77e80a78 Cryptonight variant 4 aka CryptonightR
It introduces random integer math into the main loop.
2019-02-14 14:44:27 +00:00
xiphon b980fec41c slow-hash: some more big endian fixes 2019-02-14 14:44:27 +00:00
moneromooo-monero cd22a02db3 slow-hash: fix for big endian 2019-02-14 14:44:25 +00:00
Pol Mauri 96f5381574 Small function declaration cleanup in slow-hash.c
- These functions are declared twice in slow-hash.c. Remove one of the copies.
- The declarations have the wrong return type, should be void, not int.

Function definitions here: https://github.com/monero-project/monero/blob/1e74586ee99e4bd89626d2eb4d23883cd91f0f81/src/crypto/aesb.c#L151-L180
Test plan: make release-test
2019-02-14 14:44:03 +00:00
cslashm 612ecb13ef Add support for V10 protocol with BulletProofV2 and short amount. 2019-02-14 14:44:03 +00:00
cslashm 823b38bcab Fix dummy decryption in debug mode 2019-02-14 14:44:03 +00:00
cslashm 377de05001 fix log namespace 2019-02-14 14:44:03 +00:00
cslashm ff9853b4b9 New scheme key destination contrfol
Implies protocol version management.
2019-02-14 14:44:03 +00:00
Tom Smeding 041af9545f cryptonote: Fix enum check in expand_transaction_2
This was noticed because GCC warned about using an enum value in a
boolean context.
2019-02-14 14:44:03 +00:00
moneromooo-monero 1767c8172f simplewallet: tell the user to complain to the recipient
for long payment ids
2019-02-14 14:43:59 +00:00
moneromooo-monero c2d0e9a1ce 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-02-14 14:43:56 +00:00
moneromooo-monero 0b18fa54c4 ringct: the commitment mask is now deterministic
saves space in the tx and is safe

Found by knaccc
2019-02-12 12:16:47 +00:00
moneromooo-monero 6ba3a11637 ringct: encode 8 byte amount, saving 24 bytes per output
Found by knaccc
2019-02-12 12:16:45 +00:00
moneromooo-monero 77f8f45459 ringct: save 3 bytes on bulletproof size
Found by luigi1111
2019-02-12 12:16:43 +00:00
moneromooo-monero f7f6760052 add a bulletproof version, new bulletproof type, and rct config
This makes it easier to modify the bulletproof format
2019-02-12 12:16:40 +00:00
moneromooo-monero 5b07e0c9f4 core: include a dummy encrypted payment id when no payment is used
For better transaction uniformity, even though this wastes space.
2019-02-12 12:16:38 +00:00
moneromooo-monero 2eff9b12d8 core, wallet: remember original text version of destination address 2019-02-12 12:16:35 +00:00
moneromooo-monero e10d12b658 simplewallet: disable long payment ids by default
unless --long-payment-id-support is used
2019-02-12 12:16:32 +00:00
moneromooo-monero b84b350fd4 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-02-12 12:16:30 +00:00
moneromooo-monero 1c7650f416 simplewallet: remove ability to transfer with detached short payment ids
It seemed like a good idea at the time
2019-02-12 12:16:27 +00:00
moneromooo-monero 4a7917ef6b blockchain: fix block rate check for empty blockchains 2019-02-12 12:16:25 +00:00
Jethro Grassie 34d2850fac ignore child process when exec 2019-02-12 12:16:22 +00:00
moneromooo-monero 5f89caea90 wallet2: fix ring reuse breaking when using histogram 2019-02-12 12:16:20 +00:00
moneromooo-monero db1e0a5323 core: fix unmixable special case allowing ring size below 11 2019-02-12 12:16:17 +00:00
moneromooo-monero 66772f1235 blockchain: include number of discarded blocks in --reorg-notify 2019-02-12 12:16:13 +00:00
moneromooo-monero af1ade4eee 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-02-12 12:16:11 +00:00
moneromooo-monero fb0dbab934 notify: fix tokenizing being too strict 2019-02-12 12:16:09 +00:00
moneromooo-monero 0ac22d0e1c core: add --block-rate-notify
This runs a command whenever the block rate deviates too much
from the expectation
2019-02-12 12:16:06 +00:00
moneromooo-monero 7d2f817f5e 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-02-12 12:16:04 +00:00