aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-01-19depends: qt: disable printer for all platforms, not just osxCory Fields
This also fixes the native osx build.
2017-01-18Merge #9512: Fix various things -fsanitize complains aboutWladimir J. van der Laan
82e8baa Avoid boost dynamic_bitset in rest_getutxos (Pieter Wuille) 99f001e Fix memory leak in multiUserAuthorized (Pieter Wuille) 5a0b7e4 Fix memory leak in net_tests (Pieter Wuille) 6b03bfb Fix memory leak in wallet tests (Pieter Wuille) f94f3e0 Avoid integer overflows in scriptnum tests (Pieter Wuille) 843c560 Avoid unaligned access in crypto i/o (Pieter Wuille)
2017-01-18Merge #9508: Remove unused Python importsMarcoFalke
95bab82 Remove unused Python imports (practicalswift)
2017-01-16Merge #9561: Wake message handling thread when we receive a new blockPieter Wuille
241d893 Wake message handling thread when we receive a new block (Matt Corallo) f13914a Make WakeMessageHandler public (Matt Corallo)
2017-01-16Merge #9484: Introduce assumevalid setting to skip validation presumed valid ↵Pieter Wuille
scripts. 7b5e3fe Add assumevalid testcase (John Newbery) e440ac7 Introduce assumevalid setting to skip presumed valid scripts. (Gregory Maxwell)
2017-01-16qt: periodic translations updateWladimir J. van der Laan
2017-01-16Merge #9380: Separate different uses of minimum feesWladimir J. van der Laan
eb30d1a Introduce -dustrelayfee (Alex Morcos) 7b1add3 Introduce -incrementalrelayfee (Alex Morcos) daec955 Introduce -blockmintxfee (Alex Morcos)
2017-01-16Introduce -dustrelayfeeAlex Morcos
2017-01-16Introduce -incrementalrelayfeeAlex Morcos
2017-01-15Merge #9400: Set peers as HB peers upon full block validationPieter Wuille
d4781ac Set peers as HB peers upon full block validation (Gregory Sanders)
2017-01-15Merge #9486: Make peer=%d log prints consistentWladimir J. van der Laan
e6111b2 Make peer id logging consistent ("peer=%d" instead of "peer %d") (Matt Corallo)
2017-01-15Merge #9469: [depends] Qt 5.7.1Wladimir J. van der Laan
bb077fa [depends] Remove OBJCXX define from config.site.in (fanquake) c37ea4d depends: fix qt translations build (Cory Fields) 2b32dea depends: use new variable layout for qt sdk (Cory Fields) 02fcb29 [depends] Qt 5.7.1 (fanquake)
2017-01-15Merge #9550: Trim down the XP notice and say more about what we support.MarcoFalke
7094bf7 Trim down the XP notice and say more about what we support. (Gregory Maxwell)
2017-01-15Trim down the XP notice and say more about what we support.Gregory Maxwell
The big notice at the top of the release note is not interesting to most users now and apparently comes across poorly to some. Better to provide more information about what we do support.
2017-01-14Wake message handling thread when we receive a new blockMatt Corallo
This forces the message handling thread to make another full iteration of SendMessages prior to going back to sleep, ensuring we announce the new block to all peers before sleeping.
2017-01-14Make WakeMessageHandler publicMatt Corallo
2017-01-14Add assumevalid testcaseJohn Newbery
Adds a qa testcase testing the new "-assumevalid" option. The testcase builds a chain that includes and invalid signature for one of the transactions and sends that chain to three nodes: - node0 has no -assumevalid parameter and rejects the invalid chain. - node1 has -assumevalid set and accepts the invalid chain. - node2 has -assumevalid set but the invalid block is not buried deep enough to assume invalid, and so rejects the invalid chain.
2017-01-14Merge #9531: Release notes for estimation changesMarcoFalke
34ede12 Document fee estimation changes (Alex Morcos) b348287 Clarify that prioritisetransaction remains supported (Alex Morcos)
2017-01-14Merge #9528: [qt] Rename formateNiceTimeOffset(qint64) to ↵MarcoFalke
formatNiceTimeOffset(qint64) 988d300 [qt] Rename formateNiceTimeOffset(qint64) to formatNiceTimeOffset(qint64) (practicalswift)
2017-01-14[depends] Remove OBJCXX define from config.site.infanquake
2017-01-14depends: fix qt translations buildCory Fields
Their buildsystem insists on using the installed ltranslate, but gets confused about how to find it. Since we manually control the build order, just drop the dependency.
2017-01-14depends: use new variable layout for qt sdkCory Fields
2017-01-14[depends] Qt 5.7.1fanquake
2017-01-13Merge #9490: Replace FindLatestBefore used by importmuti with ↵Pieter Wuille
FindEarliestAtLeast. 4b06e41 Add unit test for FindEarliestAtLeast (Suhas Daftuar) 997a98a Replace FindLatestBefore used by importmuti with FindEarliestAtLeast. (Gregory Maxwell)
2017-01-13Merge #9375: Relay compact block messages prior to full block connectionPieter Wuille
02ee4eb Make most_recent_compact_block a pointer to a const (Matt Corallo) 73666ad Add comment to describe callers to ActivateBestChain (Matt Corallo) 962f7f0 Call ActivateBestChain without cs_main/with most_recent_block (Matt Corallo) 0df777d Use a temp pindex to avoid a const_cast in ProcessNewBlockHeaders (Matt Corallo) c1ae4fc Avoid holding cs_most_recent_block while calling ReadBlockFromDisk (Matt Corallo) 9eb67f5 Ensure we meet the BIP 152 old-relay-types response requirements (Matt Corallo) 5749a85 Cache most-recently-connected compact block (Matt Corallo) 9eaec08 Cache most-recently-announced block's shared_ptr (Matt Corallo) c802092 Relay compact block messages prior to full block connection (Matt Corallo) 6987219 Add a CValidationInterface::NewPoWValidBlock callback (Matt Corallo) 180586f Call AcceptBlock with the block's shared_ptr instead of CBlock& (Matt Corallo) 8baaba6 [qa] Avoid race in preciousblock test. (Matt Corallo) 9a0b2f4 [qa] Make compact blocks test construction using fetch methods (Matt Corallo) 8017547 Make CBlockIndex*es in net_processing const (Matt Corallo)
2017-01-13Make most_recent_compact_block a pointer to a constMatt Corallo
2017-01-13Remove unused Python importspracticalswift
2017-01-13Merge #9441: Net: Massive speedup. Net locks overhaulPieter Wuille
e60360e net: remove cs_vRecvMsg (Cory Fields) 991955e net: add a flag to indicate when a node's send buffer is full (Cory Fields) c6e8a9b net: add a flag to indicate when a node's process queue is full (Cory Fields) 4d712e3 net: add a new message queue for the message processor (Cory Fields) c5a8b1b net: rework the way that the messagehandler sleeps (Cory Fields) c72cc88 net: remove useless comments (Cory Fields) ef7b5ec net: Add a simple function for waking the message handler (Cory Fields) f5c36d1 net: record bytes written before notifying the message processor (Cory Fields) 60befa3 net: handle message accounting in ReceiveMsgBytes (Cory Fields) 56212e2 net: set message deserialization version when it's actually time to deserialize (Cory Fields) 0e973d9 net: remove redundant max sendbuffer size check (Cory Fields) 6042587 net: wait until the node is destroyed to delete its recv buffer (Cory Fields) f6315e0 net: only disconnect if fDisconnect has been set (Cory Fields) 5b4a8ac net: make GetReceiveFloodSize public (Cory Fields) e5bcd9c net: make vRecvMsg a list so that we can use splice() (Cory Fields) 53ad9a1 net: fix typo causing the wrong receive buffer size (Cory Fields)
2017-01-13[qt] Rename formateNiceTimeOffset(qint64) to formatNiceTimeOffset(qint64)practicalswift
2017-01-13Introduce assumevalid setting to skip presumed valid scripts.Gregory Maxwell
This disentangles the script validation skipping from checkpoints. A new option is introduced "assumevalid" which specifies a block whos ancestors we assume all have valid scriptsigs and so we do not check them when they are also burried under the best header by two weeks worth of work. Unlike checkpoints this has no influence on consensus unless you set it to a block with an invalid history. Because of this it can be easily be updated without risk of influencing the network consensus. This results in a massive IBD speedup. This approach was independently recommended by Peter Todd and Luke-Jr since POW based signature skipping (see PR#9180) does not have the verifiable properties of a specific hash and may create bad incentives. The downside is that, like checkpoints, the defaults bitrot and older releases will sync slower. On the plus side users can provide their own value here, and if they set it to something crazy all that will happen is more time will be spend validating signatures. Checkblocks and checklevel are also moved to the hidden debug options: Especially now that checkblocks has a low default there is little need to change these settings, and users frequently misunderstand them as influencing security or IBD speed. By hiding them we offset the space added by this new option.
2017-01-12net: remove cs_vRecvMsgCory Fields
vRecvMsg is now only touched by the socket handler thread. The accounting vars (nRecvBytes/nLastRecv/mapRecvBytesPerMsgCmd) are also only used by the socket handler thread, with the exception of queries from rpc/gui. These accesses are not threadsafe, but they never were. This needs to be addressed separately. Also, update comment describing data flow
2017-01-12net: add a flag to indicate when a node's send buffer is fullCory Fields
Similar to the recv flag, but this one indicates whether or not the net's send buffer is full. The socket handler checks the send queue when a new message is added and pauses if necessary, and possibly unpauses after each message is drained from its buffer.
2017-01-12net: add a flag to indicate when a node's process queue is fullCory Fields
Messages are dumped very quickly from the socket handler to the processor, so it's the depth of the processing queue that's interesting. The socket handler checks the process queue's size during the brief message hand-off and pauses if necessary, and the processor possibly unpauses each time a message is popped off of its queue.
2017-01-12net: add a new message queue for the message processorCory Fields
This separates the storage of messages from the net and queued messages for processing, allowing the locks to be split.
2017-01-12net: rework the way that the messagehandler sleepsCory Fields
In order to sleep accurately, the message handler needs to know if _any_ node has more processing that it should do before the entire thread sleeps. Rather than returning a value that represents whether ProcessMessages encountered a message that should trigger a disconnnect, interpret the return value as whether or not that node has more work to do. Also, use a global fProcessWake value that can be set by other threads, which takes precedence (for one cycle) over the messagehandler's decision. Note that the previous behavior was to only process one message per loop (except in the case of a bad checksum or invalid header). That was changed in PR #3180. The only change here in that regard is that the current node now falls to the back of the processing queue for the bad checksum/invalid header cases.
2017-01-12net: remove useless commentsCory Fields
2017-01-12net: Add a simple function for waking the message handlerCory Fields
This may be used publicly in the future
2017-01-12net: record bytes written before notifying the message processorCory Fields
2017-01-12net: handle message accounting in ReceiveMsgBytesCory Fields
This allows locking to be pushed down to only where it's needed Also reuse the current time rather than checking multiple times.
2017-01-12Add comment to describe callers to ActivateBestChainMatt Corallo
2017-01-12Avoid boost dynamic_bitset in rest_getutxosPieter Wuille
2017-01-12Fix memory leak in multiUserAuthorizedPieter Wuille
2017-01-12Fix memory leak in net_testsPieter Wuille
2017-01-12Fix memory leak in wallet testsPieter Wuille
2017-01-12Avoid integer overflows in scriptnum testsPieter Wuille
2017-01-12Avoid unaligned access in crypto i/oPieter Wuille
2017-01-12Document fee estimation changesAlex Morcos
2017-01-12Clarify that prioritisetransaction remains supportedAlex Morcos
2017-01-12Add unit test for FindEarliestAtLeastSuhas Daftuar
2017-01-12Replace FindLatestBefore used by importmuti with FindEarliestAtLeast.Gregory Maxwell
In spite of the name FindLatestBefore used std::lower_bound to try to find the earliest block with a nTime greater or equal to the the requested value. But lower_bound uses bisection and requires the input to be ordered with respect to the comparison operation. Block times are not well ordered. I don't know what lower_bound is permitted to do when the data is not sufficiently ordered, but it's probably not good. (I could construct an implementation which would infinite loop...) To resolve the issue this commit introduces a maximum-so-far to the block indexes and searches that. For clarity the function is renamed to reflect what it actually does. An issue that remains is that there is no grace period in importmulti: If a address is created at time T and a send is immediately broadcast and included by a miner with a slow clock there may not yet have been any block with at least time T. The normal rescan has a grace period of 7200 seconds, but importmulti does not.