(Merged from various earlier blink test commits)
These tests spin up a network of nodes, mining, registering service
nodes, then send blink txes in various ways across them testing that
blinks work as expected and that various potential scenarios blink is
designed to protect against are actually prevented.
The tests use python to spool up nodes and wallets, and require python3
with pytest and requests installed. Tests can be run manually with:
cd tests/network_tests
pytest-3
or with moderately and much more verbose output of operations with:
pytest-3 -v # Shows individual test cases
pytest-3 -vv # Same, but also spews tons of output on failures
pytest-3 -svv # Show the verbose output live (even on success)
It gets added to the default testing suite (assume the python requisites
are installed), though in very non-verbose form.
+toc -doc -drmonero
Fixed the windows path, and improved logging and data
(for graph) logging, fixed some locks and added more checks.
Still there is a locking error,
not added by my patches, but present in master version
(locking of map/list of peers).
Update of the PR with network limits
works very well for all speeds
(but remember that low download speed can stop upload
because we then slow down downloading of blockchain
requests too)
more debug options
fixed pedantic warnings in our code
should work again on Mac OS X and FreeBSD
fixed warning about size_t
tested on Debian, Ubuntu, Windows(testing now)
TCP options and ToS (QoS) flag
FIXED peer number limit
FIXED some spikes in ingress/download
FIXED problems when other up and down limit
commands and options for network limiting
works very well e.g. for 50 KiB/sec up and down
ToS (QoS) flag
peer number limit
TODO some spikes in ingress/download
TODO problems when other up and down limit
added "otshell utils" - simple logging (with colors, text files channels)