No description
Find a file
Wesley Shillingford 1edb8c6c93
Node telemetry (#2446)
* Node telemetry

* Add genesis block

* Don't checkif at the end of the stream with UDP to support compatibility with different message versions

* Add single request and optional blocking

* Formatting

* Use nano locks

* Fix clang build

* Out of date comments

* Update some names of classes/functions/variables

* Fix for disconnected peer channels & some cleanup

* Remove unnecessary lock requirement in active_transactions::lock. (#2475)

* Remove unnecessarry lock requirement in active_transactions::lock.
This also removes some code-smell around passing in a bool to determine if the lock should actually be acquired.

* Using a timeout counter in line with other test idioms.

* Confirmation solicitor revamp (#2472)

* Optional minimum version when querying representatives from crawler

* Revamping confirmation_solicitor to mimick previous active_transactions behavior

* Use a time-based approach to throttle confirmation requests and block flooding

* Addressing Wesley review

* Remove unusued node.hpp include (thanks wes)

* Simplify logic by using unordered_map::operator[] which calls the default constructor if not found

* Split solicitor add into broadcast+add and bring back the logic to  active_transactions

This brings back rate-limitting logic and modifying election variables to active_transactions only. Timings are also slightly adjusted:

- Only 2 requests required before starting to flood blocks
- Timings for test network

* Rename flag

* Only broadcast OR request confirmation in the same loop for the same election

* Enclose lambda in clang-format off

* Beta network reset #2 (#2476)

* Delete rep_weights_beta.bin

* New genesis

* Change header_magic_number to one never used before

* use v1.1 for actions-aws-cli (#2486)

* The start of CLI tests (#2403)

* The start of CLI tests

* Add needed header file after merge

* Serg review comments

* Websocket bootstrap subscription (#2471)

* Bootstrap attempt ID
* Websocket bootstrap subscription

* Change processed blocks factor for requeued pulls (#2437)

From `processed blocks / 10000` to `processed blocks / 4096` for better processing of largest chains in case of failures

* Upgrade confirmation height table to include cemented frontier (#2481)

* Upgrade confirmation height table to include cemented frontier

* Stein review comments

* Add //clang-format block around lambda

* Update comment (thanks Gui)

* Upgrade to v17 instead

* Update comments

* Request aggregator (#2485)

* Request aggregator

Adds a class that runs in a new thread to pool confirmation requests by endpoint.
This allows a reduction of bandwidth, vote generation, and moves some vote generation out of the I/O threads.

* Use a constant for confirm_ack_hashes_max

* Small code simplification

* Use const transaction

* Disable clang-format for lambdas

* Add missing deadlines and update deadline before poll block

* Use a scoped lock_guard pattern and initialize start in-class

* Misc. fixes and documentation

* use clang-format-8 (#2490)

There is some funkiness with clang-format-9 and lambdas that are not
honored

* Formatting fix so clangformat 8 applies cleanly (#2491)

* Support multiple work peers in the same host (#2477)

* Correct check for peers when creating work

* Support multiple work peers in the same address

* Send cancels despite errors to account for non-conforming implementations

* Add tests using a fake work peer, acting as good, malicious or slow

* Comment

* Formatting

* Fix multiple response error in RPC

* Formatting

* Add extra error handling when specifying port and not address with the RPC (and vice versa)

* Formatting

* Serg comments

* Formatting

* Mask not needed

* Missed file check in for mask removal

* Fix test failures

* Gui suggestions

* Formatting

* Fix assert with test on Windows and some cleanup

* Lower number of nodes in node_telemetry.many_nodes when using sanitizers

Co-authored-by: clemahieu <clemahieu@gmail.com>
Co-authored-by: Guilherme Lawless <guilherme.lawless@gmail.com>
Co-authored-by: Russel Waters <vaelstrom@gmail.com>
Co-authored-by: Sergey Kroshnin <sergiysw@gmail.com>
Co-authored-by: cryptocode <stein@nano.org>
2020-01-24 15:36:23 +00:00
.github use clang-format-8 (#2490) 2020-01-17 15:12:39 -05:00
ci update vc_redist url (#2503) 2020-01-21 11:38:11 -05:00
CL Fix typo in comment 2017-12-28 01:24:23 -06:00
cmake/Modules Add rocksdb to build system (#2157) 2019-07-16 15:02:40 +01:00
cpptoml@5399650056 TOML config file support and migration (#2221) 2019-08-23 18:49:32 +02:00
crypto Update Argon2 to release 20190702 (#2357) 2019-10-22 15:47:16 +03:00
docker update dockerfile to use cached rocksdb (#2395) 2019-11-08 10:28:33 -05:00
etc adding support for rpm building (#1175) 2019-02-15 11:23:58 -05:00
gtest@dea0216d0c Migrate Gtest to submodule (#1661) 2019-03-14 07:26:43 -04:00
images Update README (#709) 2018-03-08 06:17:14 -05:00
lmdb@c6bb7edf9f Fix handling non-UTF8 code pages on windows (#1695) 2019-02-04 11:51:05 -05:00
miniupnp@582375b64f Update miniupnp submodule to version 2.1 @582375b (#1659) 2019-01-29 16:26:30 -05:00
nano Node telemetry (#2446) 2020-01-24 15:36:23 +00:00
nano-pow-server@32e7826865 include nano_pow_server as a submodule and build into ci framework for tagged releases (#2333) 2019-10-24 09:49:21 -04:00
util fetch cached boost rocksdb qt (#2391) 2019-11-06 11:20:25 -05:00
valgrind Use the MDB_NOMEMINIT flag with the ledger db environment (#2077) 2019-06-25 12:11:21 +01:00
.clang-format.base Remove compiler warnings (incl from third party headers) (#2072) 2019-07-12 17:28:21 +01:00
.gitignore Rewrite load tester in C++ (#1989) 2019-05-16 13:34:28 +01:00
.gitlab-ci.yml adding support for rpm building (#1175) 2019-02-15 11:23:58 -05:00
.gitmodules include nano_pow_server as a submodule and build into ci framework for tagged releases (#2333) 2019-10-24 09:49:21 -04:00
asan_blacklist Fixing an asan issue. 2014-11-04 22:01:22 -06:00
CMakeLists.txt Improve build times (#2425) 2019-12-05 18:19:16 +00:00
doxygen.config Rename internal project bits from RaiBlocks to Nano (#1504) 2018-12-28 14:58:50 -06:00
Info.plist.in Add version info to Info.plist (#1631) 2019-01-28 21:29:46 +01:00
LICENSE Update license year 2019 (#1527) 2019-01-01 17:47:29 -06:00
logo.png Minimal wallet rebranding 2018-02-06 20:26:00 -06:00
Nano.icns Rename internal project bits from RaiBlocks to Nano (#1504) 2018-12-28 14:58:50 -06:00
Nano.ico Rename internal project bits from RaiBlocks to Nano (#1504) 2018-12-28 14:58:50 -06:00
Nano.rc Rename internal project bits from RaiBlocks to Nano (#1504) 2018-12-28 14:58:50 -06:00
nanocurrency-beta.spec.in nano_rpc included in packaging (#1961) 2019-05-06 13:47:24 -04:00
nanocurrency.spec.in nano_rpc included in packaging (#1961) 2019-05-06 13:47:24 -04:00
qt.conf Found the correct magic recipe to get packaging working. 2014-11-09 18:51:16 -06:00
README.md Update README badging to reflect changes to actions 2019-12-17 16:27:54 -05:00
rep_weights_live.bin Update live bootstrap_weights (#2404) 2019-11-12 11:22:29 -05:00
resources.qrc fixed the inclusion of the logo file into the binary using QT resources 2017-04-20 13:19:26 -05:00
tsan_clang_blacklist TSAN suppressions file (#1941) 2019-04-30 16:55:32 +01:00
tsan_suppressions Suppress RocksDB TSAN warnings (#2345) 2019-10-16 18:29:16 +01:00
valgrind.supp Valgrind fixes & suppressions (#1814) 2019-03-15 13:55:45 +03:00


Logo

Live Artifacts Beta Artifacts GitHub release (latest by date) GitHub tag (latest by date) Tests RelWithDebug Tests Discord


What is Nano?

Nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions.


Guides & Documentation

Other documentation details can be found at https://docs.nano.org.



Want to Contribute?

Please see the contributors guide.


Contact us

We want to hear about any trouble, success, delight, or pain you experience when using Nano. Let us know by filing an issue, joining us on Reddit, or joining us on Discord.