Commits on Jul 10, 2018
  1. Remove useless mapRequest tracking that just effects Qt display.

    TheBlueMatt committed Jul 10, 2018
    I thought we had removed this a long time ago, TBH, its really
    confusing feedback to users that we display whether a tx was
    broadcast to immediate neighbor nodes, given that has little
    indication of whether the tx propagated very far.
Commits on Jun 11, 2018
  1. Only set fNewBlock to true in AcceptBlock when we write to disk

    TheBlueMatt committed Jun 11, 2018
    The only affect this should have is fixing the return code in
    submitblock in cases where a block fails ContextualCheckBlock and
    not setting nLastBlockTime on peers that provide blocks which fail
    ContextualCheckBlock (which is only used in eviction and cosmetic).
Commits on Jun 5, 2018
Commits on May 12, 2018
  1. Do not unlock cs_main in ABC unless we've actually made progress.

    TheBlueMatt authored and skeees committed Oct 9, 2017
    Technically, some internal datastructures may be in an inconsistent
    state if we do this, though there are no known bugs there. Still,
    for future safety, its much better to only unlock cs_main if we've
    made progress (not just tried a reorg which may make progress).
Commits on Apr 27, 2018
  1. Simplify semantics of ChainStateFlushed callback

    TheBlueMatt committed Apr 27, 2018
    Previously, ChainStateFlushed would fire either if a full flush
    completed (which can happen due to memory limits, forced flush, or
    on its own DATABASE_WRITE_INTERVAL timer) *or* on a
    ChainStateFlushed-specific DATABASE_WRITE_INTERVAL timer. This is
    both less clear for clients (as there are no guarantees about a
    flush having actually happened prior to the call), and reults in
    extra flushes not clearly intended by the code. We drop the second
    case, providing a strong guarantee without removing the periodit
    timer-based flushing.
  2. scripted-diff: Rename SetBestChain callback ChainStateFlushed

    TheBlueMatt committed Apr 27, 2018
    This much more accurately captures the meaning of the callback.
    sed -i 's/SetBestChain/ChainStateFlushed/g' src/validationinterface.h src/validationinterface.cpp src/wallet/wallet.h src/wallet/wallet.cpp src/validation.cpp src/index/txindex.h src/index/txindex.cpp
Commits on Apr 16, 2018
  1. Default to defining endian-conversion DECLs in compat w/o config

    TheBlueMatt committed Apr 16, 2018
    While this isn't a supported build configuration, some build
    systems need to build without going through our autotools steps,
    so defaulting to something sane may make it easier to build.
    Specifically, this fixes the inability to build
    rust-bitcoinconsensus on some non-x86 platforms. It needs to build
    without our autotools/configure steps to ensure correct compile
    args are passed from the rust build system to gcc. Converting the
    args from the rust build system to gcc would be a lot of
    unmaintainable work.
Commits on Apr 13, 2018
Commits on Mar 29, 2018
Commits on Mar 28, 2018
  1. Revert "test: Update trust git root".

    TheBlueMatt committed Mar 28, 2018
    This reverts commit 7deba93.
    This is neither a "test" change, nor should the trusted-git-root
    have been updated - there is a process for expired PGP keys.
Commits on Feb 8, 2018
  1. Fix ignoring tx data requests when fPauseSend is set on a peer

    TheBlueMatt committed Feb 8, 2018
    This resolves a bug introduced in
    66aa1d5 where, if when responding
    to a series of transaction requests in a getdata we hit the send
    buffer limit and set fPauseSend, we will skip one transaction per
    call to ProcessGetData.
    Bug found by Cory Fields (@theuni).
Commits on Feb 6, 2018
  1. Fix fast-shutdown crash if genesis block was not loaded

    TheBlueMatt committed Feb 6, 2018
    If the ShutdownRequested() check at the top of ActivateBestChain()
    returns false during initial genesis block load we will fail an
    assertion in UTXO DB flush as the best block hash IsNull(). To work
    around this, we move the check until after one round of
    ActivateBestChainStep(), ensuring the genesis block gets connected.
  2. Fix fast-shutdown hang on ThreadImport+GenesisWait

    TheBlueMatt committed Feb 6, 2018
    If the user somehow manages to get into ShutdownRequested before
    ThreadImport gets to ActivateBestChain() we may hang waiting on
    condvar_GenesisWait forever. A simple wait_for and
    ShutdownRequested resolves this case.
  3. Hold mempool.cs for the duration of ATMP.

    TheBlueMatt committed Feb 6, 2018
    This resolves an issue where getrawmempool() can race mempool
    notification signals. Intuitively we use mempool.cs as a "read
    lock" on the mempool with cs_main being the write lock, so holding
    the read lock intermittently while doing write operations is
    somewhat strange.
    This also avoids the introduction of cs_main in getrawmempool()
    which reviewers objected to in the previous fix in #12273
Commits on Jan 25, 2018
  1. Move scheduler/threadGroup into common-init instead of per-app

    TheBlueMatt committed Jan 25, 2018
    This resolves #12229 which pointed out a shutdown deadlock due to
    scheduler/checkqueue having been shut down while network message
    processing is still running.
Commits on Jan 19, 2018
  1. Fall back to oneshot for DNS Seeds which don't support filtering.

    TheBlueMatt committed Oct 19, 2017
    This allows us to not have to update the chainparams whenever a
    DNS Seed changes its filtering support, as well fixes a bug
    introduced in 4440710 where returned nodes will never be
  2. Use GetDesireableServiceFlags in static seeds, document this.

    TheBlueMatt committed Oct 19, 2017
    4440710 broke inserting entries into addrman from static seeds
    (as well as dnsseeds which did not support service bits). Static
    seeds were already being filtered by UA for 0.13.1+ (ie
    NODE_WITNESS), so simply changing the default service bits to
    include NODE_WITNESS (and updating docs appropriately) is
    For DNS Seeds, we will later fix by falling back to oneshot if a
    seed does not support filtering.
Commits on Dec 26, 2017
  1. Require no cs_main lock for ProcessNewBlock/ActivateBestChain

    TheBlueMatt committed Dec 4, 2017
    This requires the removal of some very liberal (incorrect) cs_mains
    sprinkled in some tests. It adds some chainActive.Tip() races, but
    the tests are all single-threaded anyway.
Commits on Dec 24, 2017
Commits on Dec 19, 2017
  1. Remove dead feeest-file read code for old versions

    TheBlueMatt committed Dec 19, 2017
    0.15.0 introduced a new feeest file format, and support for parsing
    old versions was never fully added. We now simply fail to read the
    old format, so remove the dead partial-implementation.
Commits on Dec 15, 2017
  1. Create new mutex for orphans, no cs_main in PLV::BlockConnected

    TheBlueMatt committed Dec 4, 2017
    This should (marginally) speed up validationinterface queue
    draining by avoiding a cs_main lock in one client.
Commits on Dec 13, 2017
Commits on Dec 12, 2017
Commits on Dec 11, 2017
  1. Do not un-mark fInMempool on wallet txn if ATMP fails.

    TheBlueMatt committed Dec 11, 2017
    Irrespective of the failure reason, un-marking fInMempool
    out-of-order is incorrect - it should be unmarked when
    TransactionRemovedFromMempool fires.
Commits on Dec 5, 2017