Commit Graph

65 Commits

Author SHA1 Message Date
Chalith Desaman
ed974b0425 hpws udp visa implementation (#383) 2023-09-23 10:15:52 +05:30
Kithmini Gunawardhana
e7e1268a99 Networking fixes related to peer connectivity issues (#384) 2023-09-23 10:03:45 +05:30
ravinsp
9b864ad1e8 Improved connection handling loop. 2023-05-07 14:02:35 +05:30
Ravin Perera
5cef95c9f6 Enabled and fixed compiler warnings. (#359) 2022-01-28 16:03:34 +05:30
Ravin Perera
8dabfb4a2e IP ban refactor with hpws. (#354)
* Refactored corebill.
* Integrated hpws ban tracking.
* Removed session handler helpers.
* Improved bad behaviour reporting.
2021-12-17 07:08:26 +05:30
Chalith Desaman
d3df42db4e Increased max queue limits from 64 to 254 (#344) 2021-08-19 19:10:54 +05:30
Ravin Perera
7ba84e8e7a Ledger close refactor. (#330) 2021-07-14 10:09:13 +05:30
Ravin Perera
aae1617ec0 Metrics script improvements. (#322) 2021-06-09 13:22:14 +05:30
Ravin Perera
33bd63ac64 Status tracking infrastructure. (#317)
* Added node's current status information tracker.
* Used the status tracker for responding to status messages.
* Used change-event notifications to broadcast UNL change event.
2021-06-04 15:08:10 +05:30
Ravin Perera
07962bc3d5 Improvements for larger clsuters. (#316)
- Cluster script improvements.
- Skipped msg too old check unverified peer sessions.
- Moved known peer maintenance to peer loop.
2021-05-30 12:32:51 +05:30
Ravin Perera
321ae2d753 hpfs binary with optimized write fix. (#303)
* Updated hpfs bin.
* Improved logs.
* Local cluster script log level fix.
2021-05-08 17:51:16 +05:30
Ravin Perera
fded7b7917 Introduced priority queues for proposal processing. (#301)
* Introduced high priority queue for comm session message processing.
* Added high priority send for proposals.
2021-05-03 21:44:36 +05:30
Savinda Senevirathne
7cec6d01c1 Changes for unstable consensus. (#272)
* Return empty hash when set or vector is empty in crypto.

* Changing <operator in sequence_hash struct.

* Fixing vm script and allowing only single sync target per vpath.

* Making vm cluster log level to debug.

* Increasing hpws max message size and fixing lcl mode in vm cluster scripts.

* lcl block fix.
2021-03-17 12:17:50 +05:30
Savinda Senevirathne
a3775c6864 Include failed server name and port number (Peer/user) in hpws server creation fail error (#270)
* Adding name and server name to port binding error message.

* Resolving PR comments.
2021-03-14 19:12:32 +05:30
Savinda Senevirathne
70a83893b0 Fixing connection not closing when threshold exceeded from a single attempt. (#261)
* Fixing connection not closing when threshold exceeded from a sigle message.

* Updated hpws binary.
2021-03-05 16:58:41 +05:30
Chalith Desaman
312713c296 Fixed disk io error - set fds to -1 when closing in hpws parent process (#254) 2021-02-23 12:23:55 +05:30
Ravin Perera
e394497698 Used uint32 for roundtime and timeout fields. (#248) 2021-02-17 12:21:51 +05:30
Ravin Perera
9d1163c8c3 Config flag to disable peer port listening. (#245) 2021-02-16 14:27:03 +05:30
Ravin Perera
08680ee8d4 hpws upgrade with websocket protocol improvements. (#232)
* Updated hpws binary and header.
* Improved binary encoding support in client lib.
2021-02-01 22:31:28 +05:30
Ravin Perera
3d36912c25 Added configs to max in connections per remote host. (#229) 2021-01-29 13:05:39 +05:30
Savinda Senevirathne
cc7cae60a9 Provide error message when cannot bind to listening ports at startup. (#199) 2020-12-21 16:43:39 +05:30
Savinda Senevirathne
17313dae29 Comm session race conditions. (#192) 2020-12-11 16:36:04 +05:30
Savinda Senevirathne
f3055822ed Introduce pubkey/unl tracking to Peer sessions. (#181)
* Adding pubkey in binary to comm sessions and is_unl flag to peer sessions.
* Removing display_name overloads and populating pubkey in user session.
* Changing peer session lookup key from uniqueid to pubkey (binary).
2020-12-02 13:05:06 +05:30
Chalith Desaman
459799760b Added element limits for queue and lists (#162) 2020-11-24 13:17:53 +05:30
Ravin Perera
d9517b6164 Reorganized util and hpws source files. (#161) 2020-11-23 23:18:42 +05:30
Savinda Senevirathne
bf710c6bde Idle connection timeout config for both peer and user connections. (#158) 2020-11-20 19:48:45 +05:30
Savinda Senevirathne
fe24ef2388 Introduce peer requirement announcement. (#156) 2020-11-20 16:01:46 +05:30
Savinda Senevirathne
9160b2ee15 Improve corebill and graylisting. (#154) 2020-11-19 08:40:15 +05:30
Chalith Desaman
f475dcb1fb Dynamic peer list implementation. (#152) 2020-11-18 12:58:58 +05:30
Savinda Senevirathne
8d5cb670ce Expire inactive sessions. (#150) 2020-11-13 15:28:40 +05:30
Ravin Perera
e6b74f2c02 Added hpws binary with max msg size fix. (#148) 2020-11-11 10:55:02 +05:30
Ravin Perera
3ea0299964 Comm session re-architecture and self comm channel. (#145)
* Introduced self comm channel instead of loopback websocket.
* Introduced comm_session and comm_server inheritance hierarchy.
* Separated peer session and user session classes.
2020-11-08 22:14:08 +05:30
Ravin Perera
ba0cae019d Refactored consensus into 3 rounds. (#144)
* Refactored consensus into 3 stages and removed stage 0.
* Consensus threshold calculation improvements.
* Refactored candidate user input processing.
* Renamed proposal sent timestamp field.
* Introduced comm_session display name.
2020-11-07 15:01:01 +05:30
Ravin Perera
202a6a2715 Ledger and state sync improvements. (#143)
* Increased stage time window.
* Introduced central state tracker.
* Used shared mutex for target state update.
* Refactored lcl and state sync checks in consensus.
* lcl/state sync loop wait time improvements.
2020-11-04 16:01:10 +05:30
ravinsp
86fba4e87a Updated hpws binary to fix multi-threaded read/write. 2020-10-24 06:54:36 +05:30
Savinda Senevirathne
fabfdcce89 Weakly connected status announcement. (#135)
* Forward others' messages only to the weakly connected nodes instead of broadcasting to all the connected peers.
* Announcing connected status depends on a threshold to other connected peers.
* Forwarding messages of weakly connected peers to other peers.
2020-10-23 16:57:01 +05:30
Ravin Perera
7a4e91b0dd Integrated hpfs in-proc sessions. (#134) 2020-10-23 10:04:45 +05:30
Ravin Perera
7183383ab7 Replace websocketd/websocat with hpws. (#131) 2020-10-15 17:02:06 +05:30
ravinsp
6599fa32ca Fixed compiler warnings on return values and null args. 2020-09-26 21:58:22 +05:30
Ravin Perera
4d920a9219 Fixed child process signal behaviours. (#128)
* Restored signal handlers upon fork().
* Improved error handling of hpfs process kill scenario.
* Set pgid for forked processes for graceful sending of SIGINT.
2020-09-26 21:39:26 +05:30
ravinsp
ef1a650f91 Added TLS on/off flag for user port. 2020-09-24 11:05:42 +05:30
Ravin Perera
5bfa722b24 Converted forked process logging to use stdout. (#126)
Forked processes are now logging to stdout to avoid race conditions with hpcore log file.
2020-09-24 10:40:17 +05:30
priyadharsun
91122474a1 Replaced Boost log with Plog. (#124) 2020-09-23 06:06:42 +05:30
Ravin Perera
180b1ec714 Marked fds to close on exec. (#122) 2020-09-18 11:40:03 +05:30
Ravin Perera
93f57efbe3 Added release build support. (#119)
* Cleaned up and updated cmake to have release build support.
* Added segfault handler.
* Added latest hpfs release build.
* Fixed coding issues revealed by release build.
2020-09-16 17:51:54 +05:30
priyadharsun
9cc5d46792 Outbound message re architecture (#116)
* Removing const keyword from send function definition in comm_session class.

* Rearchitecture outgoing messages.

* Removed concurrentqueue.h file out of the project.

* Updated ReadMe file.

* Minor comment reformattings.

* Readme update with concurrent queue github link.

* Removed should_stop_messaging_threads variable.

* Updated ReadMe file

* Updated and Changed the formatting of the Blake3 build script in ReadMe.

* Resolved review comment.

Co-authored-by: Savinda Senevirathne <savindadilsara@gmail.com>
2020-09-11 12:26:16 +05:30
ravinsp
3c231727e5 Cleaned up unused includes. 2020-09-11 06:42:04 +05:30
Ravin Perera
d2f45daf4c Implemented multi-threaded inbound network message processing. (#115)
Used per-session thread to offload messages from network and a single thread for processing collected messages.
2020-09-10 15:40:08 +05:30
ravinsp
f121fa90fb Fixed process kill waitpid cleanup issues. 2020-09-07 14:34:07 +05:30
Ravin Perera
baf5d8b14a Fixed incorrect memory access issues. (#109) 2020-08-20 15:20:11 +05:30