Commit Graph

199 Commits

Author SHA1 Message Date
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
Savinda Senevirathne
51173e37f2 Support message separation for multiple inputs from same user. (#142) 2020-11-06 10:55:40 +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
Ravin Perera
254e92fc7c Updated hpws binary with fd and zombie cleanup fixes. (#141) 2020-11-04 06:29:35 +05:30
Savinda Senevirathne
7a4515865d Replaced contract I/O pipes with domain sockets. (#140) 2020-11-02 16:50:21 +05:30
Ravin Perera
37cc27c5ce Improved debug logging for state sync. (#139)
* Added random peer send pubkey extraction.
* Improved debug logs in state serve and state sync.
2020-10-27 16:03:34 +05:30
ravinsp
3481961aa8 Fixed incorrect hpfs process kill on read-request. 2020-10-27 15:52:26 +05:30
Ravin Perera
116a54e980 Fixed ledger read fd leak. Reordered subsystem init. (#138) 2020-10-26 08:11:55 +05:30
Ravin Perera
a60444b57f Updated hpfs binary for fd leak and race condition fix. (#137) 2020-10-25 21:34:47 +05:30
Ravin Perera
00069b7a43 Updated ledger creation to report current lcl. (#136) 2020-10-24 07:22:28 +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
ravinsp
5c4edfafb9 Updated hpfs binary due to file rename issue. 2020-10-23 15:21:22 +05:30
Ravin Perera
7a4e91b0dd Integrated hpfs in-proc sessions. (#134) 2020-10-23 10:04:45 +05:30
Savinda Senevirathne
4f6ff4fbef Peer message forwarding. (#133) 2020-10-19 10:44:31 +05:30
Ravin Perera
7183383ab7 Replace websocketd/websocat with hpws. (#131) 2020-10-15 17:02:06 +05:30
Chalith Desaman
5f40aebf08 NPL message refactor. (#132)
* Implemented feeding and broadcasting npl messages from the contract execution in real-time.
* Replaced npl pipe with domain sockets.
* Refactored npl read and write in nodejs echo contract
2020-10-14 15:18:00 +05:30
Ravin Perera
cb4d0c4f59 Ledger maintenance refactor. (#130)
* Added ledger namespace.
* Thread-safe lcl access and update.
* Refactored history sync and serving into a thread.
* Restructured ledger cache item.
2020-10-08 22:25:47 +05:30
ravinsp
31048f55b8 Fixed contract output fetcher thread join issue. 2020-10-06 17:00:38 +05:30
Ravin Perera
54d6bf5bf6 Improved vm scripts. (#129)
* Added node-or-cluster mode.
* Added json based cluster config.
* Restructured new, update, reconfig modes.
* Added screen logging mode.
2020-10-03 21:38:43 +05:30
ravinsp
1245da52b2 Fixed configuration logic issues. 2020-09-26 23:12:55 +05:30
ravinsp
c41e0d2e72 Added latest hpfs binary. 2020-09-26 22:11:53 +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
05f356f6e0 Fixed log line severity indicator issue. 2020-09-26 21:33:15 +05:30
ravinsp
3f2e066424 Fixed string split issue with non-delimited strings. 2020-09-26 21:31:28 +05:30
Ravin Perera
4df0918f8e Boost reference removal and dev setup script. (#127)
* Removed unneeded boost library links.
* Replaced boost string split with util function.
* Added dev setup script.
* Updated readme.
2020-09-26 18:20:07 +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
Chalith Desaman
3e2b7dbcfa Replaced boost filesystem operations with linux system calls (#125)
* Replaced boost filesystem operations with linux syscalls
* Removed boost filesystem dependency from CMAKE
2020-09-23 12:49:06 +05:30
priyadharsun
91122474a1 Replaced Boost log with Plog. (#124) 2020-09-23 06:06:42 +05:30
Savinda Senevirathne
37629471c5 Refactored consensus to run on a separate thread. (#123) 2020-09-18 15:53:15 +05:30
Ravin Perera
180b1ec714 Marked fds to close on exec. (#122) 2020-09-18 11:40:03 +05:30
Ravin Perera
f622a252e6 Improved return codes of hpfs hash access interface. (#121) 2020-09-18 10:36:46 +05:30
Savinda Senevirathne
38ef3cc1b1 Replacing lock_guard from scoped_lock. (#120) 2020-09-18 10:29:34 +05:30
ravinsp
a5ef8df83e VM scripts parallel lcl retrieval. 2020-09-18 10:12:56 +05:30
Chalith Desaman
0de20dba28 Parallel read request processing with thread pool. (#118) 2020-09-18 09:29:34 +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
Ravin Perera
64efc53cef Added latest hpfs binary and integrated hpfs logging. (#117) 2020-09-15 21:55:13 +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
10cfb6e75f VM cluster script improvements. 2020-09-09 13:19:08 +05:30
ravinsp
8c4b6662d7 Fixed some ledger request serving logs. 2020-09-07 15:02:32 +05:30
ravinsp
f121fa90fb Fixed process kill waitpid cleanup issues. 2020-09-07 14:34:07 +05:30
ravinsp
4ad8c59051 Updated proposal purify and added logs. 2020-09-07 13:03:08 +05:30
ravinsp
8d1b1eab2f Merge branch 'master' of https://github.com/HotPocketDev/core 2020-09-04 12:03:42 +05:30
ravinsp
974fe82395 Updated const parameters in util functions. 2020-09-04 12:03:36 +05:30
Chalith Desaman
00028e53b2 Removed crypto dependency from CMakeList (#113) 2020-09-04 12:01:23 +05:30