Cory Fields
e81a602cf0
net: pass CClientUIInterface into CConnman
8 years ago
Cory Fields
f60b9059e4
net: Pass best block known height into CConnman
...
CConnman then passes the current best height into CNode at creation time.
This way CConnman/CNode have no dependency on main for height, and the signals
only move in one direction.
This also helps to prevent identity leakage a tiny bit. Before this change, an
attacker could theoretically make 2 connections on different interfaces. They
would connect fully on one, and only establish the initial connection on the
other. Once they receive a new block, they would relay it to your first
connection, and immediately commence the version handshake on the second. Since
the new block height is reflected immediately, they could attempt to learn
whether the two connections were correlated.
This is, of course, incredibly unlikely to work due to the small timings
involved and receipt from other senders. But it doesn't hurt to lock-in
nBestHeight at the time of connection, rather than letting the remote choose
the time.
8 years ago
Cory Fields
fdf69ff21a
net: move max/max-outbound to CConnman
8 years ago
Cory Fields
8a593694b1
net: move semOutbound to CConnman
8 years ago
Cory Fields
bd72937dc4
net: move nLocalServices/nRelevantServices to CConnman
...
These are in-turn passed to CNode at connection time. This allows us to offer
different services to different peers (or test the effects of doing so).
8 years ago
Cory Fields
be9c796dc5
net: move SendBufferSize/ReceiveFloodSize to CConnman
8 years ago
Cory Fields
63cafa6329
net: move send/recv statistics to CConnman
8 years ago
Cory Fields
adf5d4c2e4
net: SocketSendData returns written size
8 years ago
Cory Fields
ee44fa9576
net: move messageHandlerCondition to CConnman
8 years ago
Cory Fields
960cf2e405
net: move nLocalHostNonce to CConnman
...
This behavior seems to have been quite racy and broken.
Move nLocalHostNonce into CNode, and check received nonces against all
non-fully-connected nodes. If there's a match, assume we've connected
to ourself.
8 years ago
Cory Fields
551e0887db
net: move nLastNodeId to CConnman
8 years ago
Cory Fields
6c19d92361
net: move whitelist functions into CConnman
8 years ago
Cory Fields
53347f0cb9
net: create generic functor accessors and move vNodes to CConnman
8 years ago
Cory Fields
c0569c7fa1
net: Add most functions needed for vNodes to CConnman
8 years ago
Cory Fields
8ae2dac1c6
net: move added node functions to CConnman
8 years ago
Cory Fields
502dd3a8a0
net: Add oneshot functions to CConnman
8 years ago
Cory Fields
a0f3d3cdad
net: move ban and addrman functions into CConnman
8 years ago
Cory Fields
aaf018e3b7
net: handle nodesignals in CConnman
8 years ago
Cory Fields
b1a5f43208
net: move OpenNetworkConnection into CConnman
8 years ago
Cory Fields
02137f11e2
net: Move socket binding into CConnman
8 years ago
Cory Fields
5b446dd5b1
net: Pass CConnection to wallet rather than using the global
8 years ago
Cory Fields
8d58c4d81f
net: Pass CConnman around as needed
8 years ago
Cory Fields
d7349ca50d
net: Add rpc error for missing/disabled p2p functionality
8 years ago
Cory Fields
cd16f48028
net: Create CConnman to encapsulate p2p connections
8 years ago
Cory Fields
d93b14dc5d
net: move CBanDB and CAddrDB out of net.h/cpp
...
This will eventually solve a circular dependency
8 years ago
Cory Fields
531214fb10
gui: add NodeID to the peer table
8 years ago
Jeremy Rubin
ec81881b86
Performance Regression Fix: Pre-Allocate txChanged vector
8 years ago
Cory Fields
d6a5dc4a2e
add waitfornewblock/waitforblock/waitforblockheight rpcs and use them for tests
...
waitfornewblock waits until a new block is received, or the timeout expires, then
returns the current block height/hash.
waitforblock waits for a specific blockhash, or until the timeout expires, then
returns the current block height/hash. If the target blockhash is the current
tip, it will return immediately.
waitforblockheight waits until the tip has reached a certain height or higher,
then returns the current height and hash.
waitforblockheight is used to avoid polling in the rpc tests.
8 years ago
Jonas Schnelli
04802930d4
[Qt][CoinControl] fix UI bug that could result in paying unexpected fee
8 years ago
Pavel Janík
125b946cb4
Do not shadow upper local variable 'send', prevent -Wshadow compiler warning.
8 years ago
Hampus Sjöberg
c015634400
qt: Adding transaction size to transaction details window
8 years ago
Hampus Sjöberg
fdf82fba31
Adding method GetTotalSize() to CTransaction
...
GetTotalSize() returns the total transaction size (including witness) in
bytes.
8 years ago
Jeremy Rubin
426e7bce0e
Fix obvious assignment/equality error in test
8 years ago
Jeremy Rubin
f71d4a3786
Minimal fix to slow prevector tests as stopgap measure
8 years ago
Pieter Wuille
34521e4d7d
Do not store witness txn in rejection cache
8 years ago
Suhas Daftuar
c40b034327
Clear witness with vin/vout in CWallet::CreateTransaction()
8 years ago
mruddy
ff2ed7a5bc
trivial: remove unnecessary variable fDaemon
8 years ago
Gregory Maxwell
6d0ced1865
Do not set an addr time penalty when a peer advertises itself.
...
Claims a peer makes about itself are inherently more credible.
8 years ago
Pavel Janík
7c069a7093
Do not shadow global variable
8 years ago
Pieter Wuille
4424af5190
Predeclare PrecomputedTransactionData as sturct
8 years ago
Jorge Timón
cdd79eb70f
C++11: s/boost::scoped_ptr/std::unique_ptr/
8 years ago
Pieter Wuille
854f1af22e
Make the dummy argument to getaddednodeinfo optional
8 years ago
djpnewton
f012a857f5
rest.cpp: change HTTP_INTERNAL_SERVER_ERROR to HTTP_BAD_REQUEST
8 years ago
Pavel Janík
b175cb755b
Do not shadow variables.
8 years ago
Johnson Lau
482f852da6
Implement NULLDUMMY softfork
8 years ago
Alexey Vesnin
323a5fe06a
Berkeley DB v6 compatibility fix
...
Fixes building error looking like this:
CXX wallet/libbitcoin_wallet_a-db.o
wallet/db.cpp: In member function ‘void CDBEnv::EnvShutdown()’:
wallet/db.cpp:46:16: error: call of overloaded ‘DbEnv(int)’ is ambiguous
DbEnv(0).remove(strPath.c_str(), 0);
^
wallet/db.cpp:46:16: note: candidates are:
In file included from wallet/db.h:21:0,
from wallet/db.cpp:6:
/usr/include/db_cxx.h:916:2: note: DbEnv::DbEnv(const DbEnv&)
DbEnv(const DbEnv &);
^
/usr/include/db_cxx.h:518:2: note: DbEnv::DbEnv(DB_ENV)
DbEnv(DB_ENV *dbenv);
^
/usr/include/db_cxx.h:516:2: note: DbEnv::DbEnv(u_int32_t)
DbEnv(u_int32_t flags);
^
Makefile:5780: recipe for target 'wallet/libbitcoin_wallet_a-db.o' failed
make[2]: ** [wallet/libbitcoin_wallet_a-db.o] Error 1
8 years ago
Pieter Wuille
203f2121be
Reduce default number of blocks to check at startup
8 years ago
Pieter Wuille
5127c4f21c
Add preciousblock RPC
...
Includes a bugfix by Luke-Jr.
8 years ago
Pieter Wuille
887919c7b7
Check for compatibility with download in FindNextBlocksToDownload
8 years ago
Pieter Wuille
144ed76ea0
Fix some locks
...
This makes sure that cs_filter is never held while taking cs_main
or CNode::cs_vSend.
8 years ago