Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Developtest #11

Open
wants to merge 96 commits into
base: master
Choose a base branch
from
Open

Developtest #11

wants to merge 96 commits into from

Conversation

fdoving
Copy link
Owner

@fdoving fdoving commented Jun 17, 2021

test

HyperPeek and others added 30 commits May 21, 2021 17:29
… 001 (PR RavenProject#873)

Merged, as we want to continue testing on develop.
Update configure.ac to c++17

Update ax_cxx_compile_stdcxx.m4 from bitcoin
    Copied from bitcoin master branch.

Use C++11 member initializer in CNodeState
    Manually copied/adapted from bitcoin#21370

net_processing:
 IteratorComparator add const. [c++17]
Ref: CVE-2017-8798
    bitcoin#10414
    bitcoin#15993

    configure-checks for miniupnpc API >=10.
    This commit does not include the compile-time checks from bitcoin#15993.
Added 7 nodes picked from my 3 testnet wallets.
Better than the two we know do not respond to anything.
* contrib: Dockerfile updated

    Use Ubuntu 20.04.
    Drop outdated bitcoin-ppa.
    Build Berkeley DB 4.8 from source with install_db4.sh.

    Usage: 'docker build -t ravencoin:4.7 -f contrib/Dockerfile .'

* Remove obsolete Dockerfiles.
Expat renamed files because of CVE-2013-0340/CWE-776.
    This switches to v.2.4.1.
    Source changed from sourceforge to github.

doc: update dependencies.md
* gui: option to hide text in toolbar

Add option to only show icons in toolbar.

Closes RavenProject#478

* Don't require restart.

* Update comment.
…ject#1036)

backport bitcoin#204

    In Qt 5 the last column resizing with dragging its left edge works
    out-of-the-box.
    The current TableViewLastColumnResizingFixer implementation could put
    the last column content out of the view port and confuse a user.
moved app out of the if.
    removed extra qt version check.
Code segment moved to match the order it appears
    Switched alt-<num> hotkeys to match the correct order.
    Set hotkey for Restricted assets (ALT+8).
…tion (RavenProject#1019)

Handle pre-fork padded P2SH-ish transactions like v4.3.2.1.
)

Disable units spinbox if max units is already set.

    Set minvalue for spinbox after setting value, to allow
    updates when the number of units in the selected asset is
    lower than the number of units in the previous.
Update asset list when the qcombobox is shown.
    Fixes RavenProject#1059
…Project#1057)

Backport part of bitcoin#14624

bitcoin#3db746beb407f7cdd9cd6a605a195bef1254b4c0
Bump version number for second test release.
backport of bitcoin#22054

Slightly modified for Ravencoin.

Co-Authored-by: fdov <fd21@pm.me>
If the wallet does not have words, an error message is shown.
This happens after the wallet is unlocked, to check for words.
This change locks the wallet after showing the error.
Backport parts of bitcoin#15486

Changes addrman to use the test-before-evict discipline in which an
address is to be evicted from the tried table is first tested and if
it is still online it is not evicted.

Adds tests to provide test coverage for this change.

This change was suggested as Countermeasure 3 in
Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Ethan Heilman,
Alison Kendler, Aviv Zohar, Sharon Goldberg. ePrint Archive Report
2015/263. March 2015.
practicalswift and others added 28 commits January 21, 2022 20:08
* pcoinscatcher (CCoinsViewErrorCatcher)
* pcoinsdbview (CCoinsViewDB)
* pcoinsTip (CCoinsViewCache)
* pblocktree (CBlockTreeDB)
* Remove variables shadowing pcoinsdbview
This is currently unused, but will by used by wallet to cache when
transactions are in the mempool, obviating the need for calls to
mempool from CWalletTx::InMempool()
This is both good practice (we want to move all such callbacks
into a background thread eventually) and prevents a lock inversion
when we go to use this in wallet (mempool.cs->cs_wallet and
cs_wallet->mempool.cs would otherwise both be used).
This blocks until the wallet has synced up to the current height.
This prevents the wallet-RPCs-return-stale-info issue from being
re-introduced when new-block callbacks no longer happen in the
block-connection cs_main lock

conflict:
We have disabled bumpfee
This avoid calling out to mempool state during coin selection,
balance calculation, etc. In the next commit we ensure all wallet
callbacks from CValidationInterface happen in the same queue,
serialized with each other. This helps to avoid re-introducing one
of the issues described in #9584 [1] by further disconnecting
wallet from current chain/mempool state.

Thanks to @morcos for the suggestion to do this.

Note that there are several race conditions introduced here:

 * If a user calls sendrawtransaction from RPC, adding a
   transaction which is "trusted" (ie from them) and pays them
   change, it may not be immediately used by coin selection until
   the notification callbacks finish running. No such race is
   introduced in normal transaction-sending RPCs as this case is
   explicitly handled.

 * Until Block{Connected,Disconnected} and
   TransactionAddedToMempool calls also run in the CSceduler
   background thread, there is a race where
   TransactionAddedToMempool might be called after a
   Block{Connected,Disconnected} call happens.

 * Wallet will write a new best chain from the SetBestChain
   callback prior to having processed the transaction from that
   block.

[1] "you could go to select coins, need to use 0-conf change, but
such 0-conf change may have been included in a block who's
callbacks have not yet been processed - resulting in thinking they
are not in mempool and, thus, not selectable."

Conflicts:

Already backported beef7ec4be725beea870a2da510d2817487601ec
This runs Block{Connected,Disconnected}, SetBestChain, Inventory,
and TransactionAddedToMempool on the background scheduler thread.

Of those, only BlockConnected is used outside of Wallet/ZMQ, and
is used only for orphan transaction removal in net_processing,
something which does not need to be synchronous with anything
else.

This partially reverts #9583, re-enabling some of the gains from
 #7946. This does not, however, re-enable the gains achieved by
repeatedly releasing cs_main between each transaction processed.

Conflicts:
Already backported beef7ec4be725beea870a2da510d2817487601ec
Note that UpdatedBlockTip is also used in net_processing to
announce new blocks to peers. As this may need additional review,
this change is included in its own commit.
* SetAddressBook(...) is locking cs_wallet internally
* DelAddressBook(...) is locking cs_wallet internally
* writing variable 'nTotalBytesRecv' requires holding mutex 'cs_totalBytesRecv' exclusively
* writing variables 'nTotalBytesSent'/'nMaxOutboundTotalBytesSentInCycle'/'nMaxOutboundCycleStartTime' require holding mutex 'cs_totalBytesSent' exclusively
* writing variable 'nMaxOutboundTimeframe'/'nMaxOutboundLimit' require holding mutex 'cs_totalBytesSent' exclusively
* writing variable 'vAddedNodes' requires holding mutex 'cs_vAddedNodes' exclusively
PR #10286 introduced a few steps which are not robust to early shutdown
in initialization.

Stumbled upon this with #11781, not sure if there are other scenarios
that can trigger it, but it's harden against this in any case.
…ments

manual backport of bitcoin #10493
picked: 680bc2cbb34d6bedd0e64b17d0555216572be4c8

Origial-author: practicalswift

Before this commit:

  for (std::map<T1, T2>::iterator x = y.begin(); x != y.end(); ++x) {
  }

After this commit:

  for (auto& x : y) {
  }
10x the default counting periods.
Previous period was 2016 blocks or about 1.4 day.
Proposed period is 20160 blocks or about 14 days.

- The LOCKED_IN period is extended from 1.4 to 14 days, during which non upgraded nodes will be warned of the upcoming fork.
- 10 times as expensive to potentially try to force activation with rented hashpower.
- Slower activation. Previous minimum activation time from counting starts, about 3 days, with this proposal about 30 days.
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.

10 participants