Skip to content

commits from bitcoin/master#357

Merged
Bushstar merged 31 commits into
FeatherCoin:masterfrom
Bushstar:master
Jul 24, 2018
Merged

commits from bitcoin/master#357
Bushstar merged 31 commits into
FeatherCoin:masterfrom
Bushstar:master

Conversation

@Bushstar
Copy link
Copy Markdown
Collaborator

tests: fixes mininode's P2PConnection sending messages on closing transport
bitcoin/bitcoin#13715

depends: disable Werror when building zmq
bitcoin/bitcoin#13689

[trivial] Correct help text for importaddress RPC
bitcoin/bitcoin#13074

wallet: Fix non-determinism in ParseHDKeypath(...). Avoid using an uninitialized variable in path calculation.
bitcoin/bitcoin#13712

Add createwallet "disableprivatekeys" option: a sane mode for watchonly-wallets
bitcoin/bitcoin#9662

docs: Specify preferred Python string formatting technique
bitcoin/bitcoin#13718

p2p: Remove dead service bits code
bitcoin/bitcoin#11637

lint: Add linter for circular dependencies
bitcoin/bitcoin#13695

Remove boost::program_options dependency
bitcoin/bitcoin#13482

Fix bitcoin-cli --version
bitcoin/bitcoin#13725

Utils and libraries: Removes the boost/algorithm/string/join dependency
bitcoin/bitcoin#13726

wallet: Introduce assertion to document the assumption that cache and cache_used are always set in tandem
bitcoin/bitcoin#13683

trivial: Replace CPubKey::operator[] with CPubKey::vch where possible
bitcoin/bitcoin#13722

Remove redundant variables, statements and forward declarations
bitcoin/bitcoin#13691

doc: Remove field in getblocktemplate help that has never been used.
bitcoin/bitcoin#12764

Avoid locking mutexes that are already held by the same thread
bitcoin/bitcoin#11762

Utils: Refactor ArgsManager a little
bitcoin/bitcoin#13733

Drop dead code from Stacks
bitcoin/bitcoin#13633

Net: Fixed a race condition when disabling the network.
bitcoin/bitcoin#13212

trivial: remove unneeded include
bitcoin/bitcoin#13740

Avoid creating a temporary vector for size-prefixed elements
bitcoin/bitcoin#13719

tests: Skip P2PConnection's is_closing() check when not available
bitcoin/bitcoin#13747

marcohextor and others added 30 commits July 24, 2018 09:02
…nsport

- checks if  _transport.is_closing() (added in python3.4.4/python3.5.1)
before attempting to send messages on P2PConnection's send_message
method.
Protects against added circular depencies, makes it explicit in the
code when circular dependencies have been removed.

Modeled after EXPECTED_BOOST_INCLUDES in lint-includes.sh
By declaring the relevant option.

Note contrib/devtools/gen-manpages.sh relies on this version information.
This commit removes the `boost/algorithm/string/join` dependency
from the project by replacing `boost::algorithm::join` with
a simple helper function.
This commit contains 2 refactors.

1. mark "const" on ArgsManager::GetHelpMessage and IsArgKnown.
2. remove unused "error" argument from ArgsManager::IsArgKnown.

Firstly, I mark "const" on where it is possible to. It is mentioned
before (e.g. bitcoin/bitcoin#13190 (review)).

And about 2nd change, ArgsManager::IsArgKnown was added at commit #4f8704d which was
merged at PR #13112. But from its beggining, "error" argument never be used.
I think it should be refactored.
Stacks is local to this file, and only used in DataFromTransaction, so
it's easy to confirm this code is unused.
This change addresses a race condition where setnetworkactive=false wouldn't always disconnect all peers.

Before this change, the following could happen:
1. Thread A -- Begins connecting to a node.
2. Thread B -- Sets kNetworkActive=false and disconnects connected nodes.
3. Thread A -- Finishes connecting and adds node to list of connected nodes.

The node that was connected from Thread A remains connected and active,
even though kNetworkActive=false.

To fix the race, disconnections when kNetworkActive=false are now handled in the main network loop.

fixes #13038
bitcoin/bitcoin#13715 introduced a new check
for _transport.is_closing() in mininode's P2PConnection's.  This function
is only available from Python 3.4.4, though, while Bitcoin is supposed
to support all Python 3.4 versions.

In this change, we make the check conditional on is_closing() being
available.  If it is not, then we revert to the behaviour before the
check was introduced; this means that
bitcoin/bitcoin#13579 is not fixed for old
systems, but at least the tests work as they used to do before.

This includes a small refactoring from a one-line lambda to an
inline function, because this makes the code easier to read with more
and more conditions being added.

Fixes bitcoin/bitcoin#13745.
@Bushstar Bushstar merged commit 6bb0367 into FeatherCoin:master Jul 24, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.