[Bugfix] Fix incorrect disconnect call for static functions
Problem:
When using `uiInterface.NotifyBlockTip.disconnect(BlockNotifyGenesisWait)`
to disconnect a static function, the compilation fails because `boost::signals2::disconnect`
requires the exact type signature match of the slot. Using the function name directly
doesn't resolve to the correct function pointer for static functions.
Solution:
The fix explicitly uses `&BlockNotifyGenesisWait` to pass the function pointer.
This resolves the compilation error.
Impact:
Only affects the disconnect mechanism for static functions in `uiInterface.NotifyBlockTip`.
Signed-off-by: Dongyan Qian <dongyan0314@gmail.com>
This reverses the order in which the auxpow structure and the PoW on it
are verified. By checking the PoW first, we make it harder for random
nodes to pass data of their choosing into CAuxPow::check.
Cherry-picked from: namecoin/namecoin-core@b6e3241b
Conflicts resolved:
- CAuxPow member name mismatch
- source code from validation.cpp resides in dogecoin.cpp
Replaces assert() calls with if() statements returning functional
failure that can be handled for situations that can be triggered
from outside of compiled code - i.e. peers.
Backported from: 42bd4c74
Original Author: dergoegge <n.goeggi@gmail.com>
The discord shortened URL has been hijacked for a while and this
has been routing users to a potentially malicious environment.
To remove this risk completely, this removes all URLs that are not
under github.com/dogecoin/dogecoin, to reduce the impact of any
future URL hijacking.
the .99 makes sure that code in master is never mistaken for
release code, and is always a higher version than the last minor
release
Also set the last release date to match 1.14.8 instead of 1.14.7
Change the branching strategy to be able to release software for
multiple versions asynchronously, while having an integral up to
date but unstable master branch.
This is a major administrative policy change.
- Implements getmocktime instead of time.sleep to prevent races
- Enforce success of all mocktime operations
- Do not increment mocktime with 0 seconds
- Use fresh incoming peers for each test
- Explicitly do test teardown
- Remove TXID_RELAY_DELAY as this no longer exists in the dogecoind
implementation
- Add the inflight throttling test to replace the removed inflight
limit test
- Add an expiry fallback test
Maintaining up to 100000 INVs per peer is excessive. A Dogecoin
Core node will never send more than 7 invs per second.
Backported from: de11b0a4
Original Author: Pieter Wuille <pieter@wuille.net>
The major changes are:
* Announcements from outbound (and whitelisted) peers are now
always preferred over those from inbound peers. This used to be
the case for the first request (by delaying the first request
from inbound peers), and a bias after. The 2s delay for requests
from inbound peers still exists, but after that, if viable
outbound peers remain for any given transaction, they will
always be tried first.
* No more hard cap of 100 in flight transactions per peer, as
there is less need for it (memory usage is linear in the number
of announcements, but independent from the number in flight,
and CPU usage isn't affected by it). Furthermore, if only one
peer announces a transaction, and it has over 100 in flight and
requestable already, we still want to request it from them. The
cap is replaced with an additional 2s delay (possibly combined
with the existing 2s delays for inbound connections).
Backported from: 242d1647
173a1d2d
Original Author: Pieter Wuille <pieter@wuille.net>
Conflicts:
- replaced GenTx with uint256 because no segwit
- removed additional 2s penalty for non-segwit peers
- used int64_t instead of std::chrono::microseconds per utiltime
- implemented TxRequest as g_txrequest instead of as a member of
PeerManager, which we don't have
- removed the Dogecoin-specific strict max inflight test
- make exceptions for whitelisted nodes as there is no fine-
grained permission system
This adds a new module that defines TxRequestTracker, a data
structure that maintains all information about transaction
requests, and coordinates requests.
Backported from: da3b8fde
3c7fe0e5
fd9a0060
Original Author: Pieter Wuille <pieter@wuille.net>
Conflicts:
- replaced GenTx with uint256 because no segwit
- used int64_t instead of std::chrono::microseconds per utiltime
- removed wtxid tests