Pieter Wuille
834db9539b
Get rid of CTxMempool::lookup() entirely
2018-10-17 20:51:51 +03:00
Pieter Wuille
2737ac3d7f
Optimization: use usec in expiration and reuse nNow
2018-10-17 20:51:42 +03:00
Pieter Wuille
594213c60d
Optimization: don't check the mempool at all if no mempool req ever
2018-10-17 20:51:33 +03:00
Pieter Wuille
d4e4acd906
Optimize the relay map to use shared_ptr's
2018-10-17 20:51:23 +03:00
lateminer
ea21ee91da
Fix typo
...
txmempool.h
2018-10-17 20:36:32 +03:00
Pieter Wuille
5e9497ce5b
Add support for unique_ptr and shared_ptr to memusage
2018-10-17 20:34:57 +03:00
Pieter Wuille
ab86d7e4ff
Switch CTransaction storage in mempool to std::shared_ptr
2018-10-17 20:34:25 +03:00
Suhas Daftuar
0814da4e9d
Only use AddInventoryKnown for transactions
...
filterInventoryKnown is only used when relaying transactions,
so stop adding block hashes to the filter.
2018-10-17 20:32:50 +03:00
Gregory Maxwell
b3992a38d4
Defer inserting into maprelay until just before relaying.
2018-10-17 20:32:14 +03:00
Wladimir J. van der Laan
c41e3c69aa
UpdateTip: log only one line at most per block
2018-10-17 20:26:54 +03:00
Gregory Maxwell
89655c3a1e
Remove unneeded feerate param from RelayTransaction/AcceptToMemoryPool.
2018-10-17 20:22:44 +03:00
Gregory Maxwell
16b0e12385
Do not use mempool for GETDATA for tx accepted after the last mempoolreq
2018-10-17 19:56:28 +03:00
Gregory Maxwell
c41eb3a831
Move bloom and feerate filtering to just prior to tx sending.
2018-10-17 19:47:32 +03:00
Pieter Wuille
80803b1de0
Return mempool queries in dependency order
2018-10-17 19:45:54 +03:00
Pieter Wuille
eeded98dce
Handle mempool requests in send loop, subject to trickle
...
By eliminating queued entries from the mempool response and responding only at
trickle time, this makes the mempool no longer leak transaction arrival order
information (as the mempool itself is also sorted)-- at least no more than
relay itself leaks it.
2018-10-17 19:45:45 +03:00
Pieter Wuille
16e9766115
Split up and optimize transaction and block inv queues
2018-10-17 19:45:37 +03:00
Daniel Kraft
ad0ec643b7
[trivial] Add missing const qualifiers.
...
Add some const qualifiers to references that are not modified and should
be marked as const.
2018-10-17 19:44:48 +03:00
Gregory Maxwell
05c3d2e290
Eliminate TX trickle bypass, sort TX invs for privacy and priority.
...
Previously Bitcoin would send 1/4 of transactions out to all peers
instantly. This causes high overhead because it makes >80% of
INVs size 1. Doing so harms privacy, because it limits the
amount of source obscurity a transaction can receive.
These randomized broadcasts also disobeyed transaction dependencies
and required use of the orphan pool. Because the orphan pool is
so small this leads to poor propagation for dependent transactions.
When the bypass wasn't in effect, transactions were sent in the
order they were received. This avoided creating orphans but
undermines privacy fairly significantly.
This commit:
Eliminates the bypass. The bypass is replaced by halving the
average delay for outbound peers.
Sorts candidate transactions for INV by their topological
depth then by their feerate (then hash); removing the
information leakage and providing priority service to
higher fee transactions.
Limits the amount of transactions sent in a single INV to
7tx/sec (and twice that for outbound); this limits the
harm of low fee transaction floods, gives faster relay
service to higher fee transactions. The 7 sounds lower
than it really is because received advertisements need
not be sent, and because the aggregate rate is multipled
by the number of peers.
2018-10-17 19:44:11 +03:00
Matt Corallo
705fe53e49
Fix some minor compact block issues that came up in review
2018-10-17 19:24:21 +03:00
Matt Corallo
49c0e28d70
Use vTxHashes to optimize InitData significantly
2018-10-17 19:24:13 +03:00
Pieter Wuille
346175e76c
Elaborate bucket size math
2018-10-17 19:24:06 +03:00
Matt Corallo
b88d342f2c
Provide a flat list of txid/terators to txn in CTxMemPool
2018-10-17 19:23:57 +03:00
Matt Corallo
3f6cddb53e
Add reconstruction debug logging
2018-10-17 19:23:44 +03:00
Matt Corallo
4e55d9962c
Get our "best three" peers to announce blocks using cmpctblocks
2018-10-17 19:23:07 +03:00
Matt Corallo
1ce3308431
Add ability to fetch CNode by NodeId
2018-10-17 19:22:59 +03:00
Matt Corallo
0fcad61796
Add receiver-side protocol implementation for CMPCTBLOCK stuff
2018-10-17 19:20:33 +03:00
Matt Corallo
c94ec58bcf
Add sender-side protocol implementation for CMPCTBLOCK stuff
2018-10-17 19:20:24 +03:00
Matt Corallo
c12555699b
Add protocol messages for short-ids blocks
2018-10-17 19:16:08 +03:00
Matt Corallo
c46749cd7b
Add COMPACTSIZE wrapper similar to VARINT for serialization
2018-10-17 19:15:59 +03:00
Matt Corallo
19421ceb48
Add TestMemPoolEntryHelper::FromTx version for CTransaction
2018-10-17 19:15:49 +03:00
Matt Corallo
37fff1268d
Add some blockencodings tests
2018-10-17 19:15:39 +03:00
Matt Corallo
1af775cf68
Add partial-block block encodings API
2018-10-17 19:15:27 +03:00
Matt Corallo
78b7288568
If AcceptBlockHeader returns true, pindex will be set.
2018-10-17 19:13:58 +03:00
Daniel Kraft
7571028f10
net: Avoid duplicate getheaders requests.
2018-10-17 19:08:41 +03:00
Pavel Janík
dadb56e60d
Fix doxygen comment: the transaction is returned in txOut
...
Github-Pull: #8993
Rebased-From: 1d8e12ba48154b2c59213e92efb50958d430a007
2018-10-17 01:09:27 +03:00
BtcDrak
2987944269
Sync bitcoin-tx with tx version policy
...
Github-Pull: #8932
Rebased-From: b0aea8057921f0ed2288cf07048f652c7d6d9cf3
2018-10-17 01:09:07 +03:00
fanquake
31be10f37d
[build-aux] Boost_Base serial 27
...
Github-Pull: #8920
Rebased-From: 282abd8358e254d976cad05d0eb48586db276bcd
2018-10-17 01:08:56 +03:00
fanquake
cae922d164
Set minimum required Boost to 1.47.0
...
Github-Pull: #8920
Rebased-From: 6dd37237222f7102e223ece948150cb5c5087e3c
2018-10-17 01:08:25 +03:00
UdjinM6
4039e1c019
Missed one "return false" in recent refactoring in #9067
...
Github-Pull: #9120
Rebased-From: 45d372f88900bda74835a20a44246746c2ac94e6
2018-10-17 01:07:40 +03:00
UdjinM6
4dc8b6acfd
Every main()/exit() should return/use one of EXIT_ codes instead of magic numbers
2018-10-17 01:07:26 +03:00
UdjinM6
10ea8235a8
Fix exit codes:
...
- `--help`, `--version` etc should exit with `0` i.e. no error ("not enough args" case should still trigger an error)
- error reading config file should exit with `1`
Slightly refactor AppInitRPC/AppInitRawTx to return standard exit codes (EXIT_FAILURE/EXIT_SUCCESS) or CONTINUE_EXECUTION (-1)
Github-Pull: #9067
Rebased-From: bd0de1386e1c7f9b875d52290de0d561c8d56bc9
2018-10-17 01:05:27 +03:00
Cory Fields
793b8f55b1
net: don't send feefilter messages before the version handshake is complete
...
Github-Pull: #9117
Rebased-From: 46625538d674a5aaf1bcfa7c8be8a49e5a23fa9e
2018-10-17 01:03:48 +03:00
lateminer
e7d66ad900
Update secp256k1 subtree
...
https://github.com/bitcoin/bitcoin/pull/9340
2018-10-17 00:59:57 +03:00
lateminer
eb242178e1
Attempt to fix testnet
2018-10-17 00:40:44 +03:00
lateminer
f57cc59be2
Remove replace-by-fee
2018-10-15 22:21:51 +03:00
Wladimir J. van der Laan
b4753d6757
Remove internal miner
2018-10-15 22:11:55 +03:00
mruddy
d3c1c6bdb9
Net: Add IPv6 Link-Local Address Support
2018-10-14 23:49:15 +03:00
Jonas Schnelli
507dfaeb4a
[Wallet] slightly refactor GetOldestKeyPoolTime()
2018-10-14 23:49:03 +03:00
lateminer
eea97b0e37
Make it compile and apply some fixes
2018-10-14 22:49:30 +03:00
lateminer
af1585d232
Update client version to 2.12.2.1
2018-10-14 19:09:13 +03:00