aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-11-07Use fixed preallocation instead of costly GetSerializeSizePieter Wuille
Dbwrapper used GetSerializeSize() to compute the size of the buffer to preallocate. For some cases (specifically: CCoins) this requires a costly compression call. Avoid this by just using fixed size preallocations instead.
2016-11-07Add optimized CSizeComputer serializersPieter Wuille
To get the advantages of faster GetSerializeSize() implementations back that were removed in "Make GetSerializeSize a wrapper on top of CSizeComputer", reintroduce them in the few places in the form of a specialized Serialize() implementation. This actually gets us in a better state than before, as these even get used when they're invoked indirectly in the serialization of another object.
2016-11-07Make CSerAction's ForRead() constexprPieter Wuille
The CSerAction's ForRead() method does not depend on any runtime data, so guarantee that requests to it can be optimized out by making it constexpr. Suggested by Cory Fields.
2016-11-07Avoid -Wshadow errorsPieter Wuille
Suggested by Pavel Janik.
2016-11-07Get rid of nType and nVersionPieter Wuille
Remove the nType and nVersion as parameters to all serialization methods and functions. There is only one place where it's read and has an impact (in CAddress), and even there it does not impact any of the recursively invoked serializers. Instead, the few places that need nType or nVersion are changed to read it directly from the stream object, through GetType() and GetVersion() methods which are added to all stream classes.
2016-11-07Make GetSerializeSize a wrapper on top of CSizeComputerPieter Wuille
Given that in default GetSerializeSize implementations created by ADD_SERIALIZE_METHODS we're already using CSizeComputer(), get rid of the specialized GetSerializeSize methods everywhere, and just use CSizeComputer. This removes a lot of code which isn't actually used anywhere. For CCompactSize and CVarInt this actually removes a more efficient size computing algorithm, which is brought back in a later commit.
2016-11-07Make nType and nVersion private and sometimes constPieter Wuille
Make the various stream implementations' nType and nVersion private and const (except in CDataStream where we really need a setter).
2016-11-07Make streams' read and write return voidPieter Wuille
The stream implementations had two cascading layers (the upper one with operator<< and operator>>, and a lower one with read and write). The lower layer's functions are never cascaded (nor should they, as they should only be used from the higher layer), so make them return void instead.
2016-11-07Remove unused ReadVersion and WriteVersionPieter Wuille
CDataStream and CAutoFile had a ReadVersion and WriteVersion method that was never used. Remove them.
2016-11-07Merge #9077: [qa] Increase wallet-dump RPC timeoutMarcoFalke
e89614b [qa] Add more helpful RPC timeout message (Russell Yanofsky) 8463aaa [qa] Increase wallet-dump RPC timeout (Russell Yanofsky)
2016-11-07[qa] Add more helpful RPC timeout messageRussell Yanofsky
Replace previous timeout('timed out',) exception with more detailed error.
2016-11-07[qa] Increase wallet-dump RPC timeoutRussell Yanofsky
Increase wallet-dump RPC timeout from 30 seconds to 1 minute. This avoids a timeout error that seemed to happen regularly (around 50% of builds) on a particular jenkins server during the first getnewaddress RPC call made by the test. The failing stack trace looked like: Unexpected exception caught during testing: timeout('timed out',) File ".../bitcoin/qa/rpc-tests/test_framework/test_framework.py", line 146, in main self.run_test() File ".../bitcoin/qa/rpc-tests/wallet-dump.py", line 73, in run_test addr = self.nodes[0].getnewaddress() File ".../bitcoin/qa/rpc-tests/test_framework/coverage.py", line 49, in __call__ return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs) File ".../bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 145, in __call__ response = self._request('POST', self.__url.path, postdata.encode('utf-8')) File ".../bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 121, in _request return self._get_response() File ".../bitcoin/qa/rpc-tests/test_framework/authproxy.py", line 160, in _get_response http_response = self.__conn.getresponse() File "/usr/lib/python3.4/http/client.py", line 1171, in getresponse response.begin() File "/usr/lib/python3.4/http/client.py", line 351, in begin version, status, reason = self._read_status() File "/usr/lib/python3.4/http/client.py", line 313, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") File "/usr/lib/python3.4/socket.py", line 374, in readinto return self._sock.recv_into(b)
2016-11-07Merge #9094: qt: Use correct conversion function for boost::path datadirJonas Schnelli
e760b30 qt: Use correct conversion function for boost::path datadir (Wladimir J. van der Laan)
2016-11-07Merge #8981: Wshadow: Do not shadow argument with a local variableWladimir J. van der Laan
ff6639b Do not shadow local variable (Pavel Janík)
2016-11-07Merge #8976: libconsensus: Add input validation of flagsWladimir J. van der Laan
5ca8ef2 libconsensus: Add input validation of flags (Wladimir J. van der Laan)
2016-11-07Merge #7730: Remove priority estimationWladimir J. van der Laan
0bd581a add release notes for removal of priority estimation (Alex Morcos) b2322e0 Remove priority estimation (Alex Morcos)
2016-11-07add release notes for removal of priority estimationAlex Morcos
2016-11-07Remove priority estimationAlex Morcos
2016-11-07Merge #8709: Allow filterclear messages for enabling TX relay only.Wladimir J. van der Laan
1f951c6 Allow filterclear messages for enabling TX relay only. (R E Broadley)
2016-11-07Merge #9052: Use RelevantServices instead of node_network in AttemptToEvict.Wladimir J. van der Laan
d32036a Use RelevantServices instead of node_network in AttemptToEvict. (Gregory Maxwell)
2016-11-07Merge #8568: new var DIST_CONTRIB adds useful things for packagers from contribWladimir J. van der Laan
1ee6f91 new var DIST_CONTRIB adds useful things for packagers from contrib/ to EXTRA_DIST (nomnombtc)
2016-11-07new var DIST_CONTRIB adds useful things for packagers from contrib/ to ↵nomnombtc
EXTRA_DIST
2016-11-07Merge #9093: [doc] release-process: Mention GitHub release and archived ↵Wladimir J. van der Laan
release notes faead5e [doc] release-process: Mention GitHub release and archived release notes (MarcoFalke)
2016-11-07qt: Use correct conversion function for boost::path datadirWladimir J. van der Laan
Fixes #9089.
2016-11-07Merge #9083: Enforcing consistency, 'gitian' to 'Gitian'MarcoFalke
66ca6cd Enforcing consistency, 'gitian' to 'Gitian' (S. Matthew English)
2016-11-07Merge #8675: Make copyright header lines uniformWladimir J. van der Laan
4b04e32 [copyright] copyright header style uniform (isle2983)
2016-11-07Merge #8736: base58: Improve DecodeBase58 performance.Wladimir J. van der Laan
e892dc1 Use prefix operator in for loop of DecodeBase58. (Jiaxing Wang) 159ed95 base58: Improve DecodeBase58 performance. (Jiaxing Wang)
2016-11-07[doc] release-process: Mention GitHub release and archived release notesMarcoFalke
2016-11-07Merge #8708: net: have CConnman handle message sendingWladimir J. van der Laan
9027680 net: handle version push in InitializeNode (Cory Fields) 7588b85 net: construct CNodeStates in place (Cory Fields) 440f1d3 net: remove now-unused ssSend and Fuzz (Cory Fields) 5c2169c drop the optimistic write counter hack (Cory Fields) ea33268 net: switch all callers to connman for pushing messages (Cory Fields) 3e32cd0 connman is in charge of pushing messages (Cory Fields) b98c14c serialization: teach serializers variadics (Cory Fields)
2016-11-07Merge #9070: Lockedpool fixesWladimir J. van der Laan
b3ddc5e LockedPool: avoid quadratic-time allocation (Kaz Wesley) 0b59f80 LockedPool: fix explosion for illegal-sized alloc (Kaz Wesley) 21b8f3d LockedPool: test handling of invalid allocations (Kaz Wesley)
2016-11-06[copyright] copyright header style uniformisle2983
Three categories of modifications: 1) 1 instance of 'The Bitcoin Core developers \n', 1 instance of 'the Bitcoin Core developers\n', 3 instances of 'Bitcoin Core Developers\n', and 12 instances of 'The Bitcoin developers\n' are made uniform with the 443 instances of 'The Bitcoin Core developers\n' 2) 3 instances of 'BitPay, Inc\.\n' are made uniform with the other 6 instances of 'BitPay Inc\.\n' 3) 4 instances where there was no '(c)' between the 'Copyright' and the year where it deviates from the style of the local directory.
2016-11-04Merge #9085: Remove unused CTxOut::GetHash()Pieter Wuille
190fd32 Remove unused CTxOut::GetHash() (Matt Corallo)
2016-11-04Remove unused CTxOut::GetHash()Matt Corallo
2016-11-04Enforcing consistency, 'gitian' to 'Gitian'S. Matthew English
There was once instance of 'gitian'. I changed it to 'Gitian' so that it would be consistent with all other instances in the file.
2016-11-04Merge #9069: Clean up bctest.py and bitcoin-util-test.pyWladimir J. van der Laan
2b175d4 Clean up bctest.py and bitcoin-util-test.py (John Newbery)
2016-11-03net: handle version push in InitializeNodeCory Fields
2016-11-03net: construct CNodeStates in placeCory Fields
2016-11-03net: remove now-unused ssSend and FuzzCory Fields
2016-11-03drop the optimistic write counter hackCory Fields
This is now handled properly in realtime.
2016-11-03net: switch all callers to connman for pushing messagesCory Fields
Drop all of the old stuff.
2016-11-03connman is in charge of pushing messagesCory Fields
The changes here are dense and subtle, but hopefully all is more explicit than before. - CConnman is now in charge of sending data rather than the nodes themselves. This is necessary because many decisions need to be made with all nodes in mind, and a model that requires the nodes calling up to their manager quickly turns to spaghetti. - The per-node-serializer (ssSend) has been replaced with a (quasi-)const send-version. Since the send version for serialization can only change once per connection, we now explicitly tag messages with INIT_PROTO_VERSION if they are sent before the handshake. With this done, there's no need to lock for access to nSendVersion. Also, a new stream is used for each message, so there's no need to lock during the serialization process. - This takes care of accounting for optimistic sends, so the nOptimisticBytesWritten hack can be removed. - -dropmessagestest and -fuzzmessagestest have not been preserved, as I suspect they haven't been used in years.
2016-11-03serialization: teach serializers variadicsCory Fields
Also add a variadic CDataStream ctor for ease-of-use.
2016-11-03Merge #9073: Trivial: Add common failure cases for rpc server connection failureWladimir J. van der Laan
8f329f9 Add common failure cases for rpc server connection failure (instagibbs)
2016-11-03Add common failure cases for rpc server connection failureinstagibbs
2016-11-03Merge #8969: Decouple peer-processing-logic from block-connection-logic (#2)Wladimir J. van der Laan
f5b960b Move nTimeBestReceived updating into net processing code (Matt Corallo) d8670fb Move all calls to CheckBlockIndex out of net-processing logic (Matt Corallo) d6ea737 Remove network state wipe from UnloadBlockIndex. (Matt Corallo) fc0c24f Move MarkBlockAsReceived out of ProcessNewMessage (Matt Corallo) 65f35eb Move FlushStateToDisk call out of ProcessMessages::TX into ATMP (Matt Corallo)
2016-11-03Clean up bctest.py and bitcoin-util-test.pyJohn Newbery
- remove newlines - change tabs for spaces, to align with convention in other py files - add comments - add 'Bitcoin Core Developers' copyright notice
2016-11-03Merge #9050: net: make a few values immutable, and use deterministic ↵Wladimir J. van der Laan
randomness for the localnonce 59ac5c5 net: Use deterministic randomness for CNode's nonce, and make it const (Cory Fields) aff6584 net: constify a few CNode vars to indicate that they're threadsafe (Cory Fields)
2016-11-03Merge #9071: Declare wallet.h functions inlineWladimir J. van der Laan
2ca882a Declare wallet.h functions inline (Pieter Wuille)
2016-11-03Merge #9053: IBD using chainwork instead of height and not using header ↵Pieter Wuille
timestamps e141beb IsInitialBlockDownload no longer uses header-only timestamps. (Gregory Maxwell) 2082b55 Remove GetTotalBlocksEstimate and checkpoint tests that test nothing. (Gregory Maxwell) fd46136 IBD check uses minimumchain work instead of checkpoints. (Gregory Maxwell)
2016-11-02Merge #9036: wallet: Change default confirm target from 2 to 6Pieter Wuille
0fdf810 wallet: Change default confirm target from 2 to 6 (Wladimir J. van der Laan)