Commit Graph

47 Commits

Author SHA1 Message Date
Ravin Perera
f2ed9040c0 User protocol upgrade and js client lib. (#191)
* Unified js client lib for browser and nodejs.
* Client lib multiple connections support.
* Implemented server challenge response.
* Contract guid and version validation.
* Server key validation.
* User json message encoding improvements.
2020-12-11 11:02:58 +05:30
Savinda Senevirathne
0bc53fe23c Review UNL message rules. (#188) 2020-12-09 13:34:40 +05:30
Savinda Senevirathne
a421f13d91 Introduce consensus/npl public/private flags to config. (#182)
Npl messages are forwarded and broadcasted only to trusted nodes if npl flag is set to private. If public, messages are broadcasted to all the connected peers.
Consensus proposals are forwarded and broadcasted only to trusted nodes if consensus flag is set to private. If public, proposals are broadcasted to all the connected peers.
2020-12-03 08:12:56 +05:30
Ravin Perera
596fd2b43c Added contract id verification. (#180)
* Added contract id config.
* Verify contract id with user/peer challenge.
* Updated cluster scripts.
* Updated node client lib for contract id verification.
2020-12-01 16:08:41 +05:30
Chalith Desaman
2f5d95ae7a Save raw inputs alongside the ledger (#167)
* Saving raw inputs in the ledger.
* Store full history in separate folder.

* Moved full history fb structs to a seperate fbs file

* Removed raw_inputs from the proposal

* Fixed code comments

* Saving raw user input string

* Code refactoring

* Resolved PR comments
2020-11-30 15:42:20 +05:30
Ravin Perera
80392cc995 Persisted contract UNL updates in config file. (#171)
* Refactored config loading and saving.
* Aded unl update persistance.
2020-11-27 09:06:17 +05:30
Ravin Perera
d476f787a7 Introduced UNL update control message. (#169) 2020-11-26 22:26:12 +05:30
Savinda Senevirathne
bf710c6bde Idle connection timeout config for both peer and user connections. (#158) 2020-11-20 19:48:45 +05:30
Chalith Desaman
f475dcb1fb Dynamic peer list implementation. (#152) 2020-11-18 12:58:58 +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
ravinsp
ef1a650f91 Added TLS on/off flag for user port. 2020-09-24 11:05:42 +05:30
priyadharsun
91122474a1 Replaced Boost log with Plog. (#124) 2020-09-23 06:06:42 +05:30
Chalith Desaman
0de20dba28 Parallel read request processing with thread pool. (#118) 2020-09-18 09:29:34 +05:30
Savinda Senevirathne
2fc93d4291 Migrating json parsing from rapidjson to jsoncons. (#112)
* Migrating JSON parsing from RapidJSNO library to jsoncons library

* updating readme file and removing RapidJSON headers
2020-08-31 14:05:42 +05:30
Ravin Perera
baf5d8b14a Fixed incorrect memory access issues. (#109) 2020-08-20 15:20:11 +05:30
Ravin Perera
817ccd6a88 Implemented contract read requests. (#98) 2020-06-19 21:52:03 +05:30
Ravin Perera
10374352c6 hpfs integration. (#94) 2020-06-04 13:51:53 +05:30
Ravidu Lashan
ef8ec0f51d Added challenge issue and verification for peer connections (#93)
Implemented flatbuffer peer challenge issue and verification messages.
Replaced session flags with challenge status enum.
2020-04-20 05:55:42 +05:30
Ravin Perera
920be03ade Websocket re-architecture with websocketd and websocat (#89)
- Replaced beast with websocketd and websocat. #79 #83 #84
- Implemented inbound/outbound peer connection merging.
- Added graceful shutdown of hpcore with sigint. #87
2020-04-05 08:12:55 +05:30
Ravin Perera
4fefb7ca71 Refactored stage sync logic. (#86)
* Cleaned up stage time sync logic and avoided extra missed rounds.
* Moved stage sync time logic to beginning of consensus stage.
* Removed check_majority_stage.
* Re-organised lcl sync flow.
2020-02-10 14:27:37 +01:00
Ravin Perera
8cf869cf9e Observer mode fix (#78)
* Fixed observer mode consensus issues.
* Added startup_mode to fix mode change check.
2020-01-17 11:04:45 +05:30
Ravin Perera
b6497d0f82 Cmake cleanup (#77) 2019-12-21 07:05:20 +05:30
Ravin Perera
7255dae84c Code cleanup and naming consistency improvement. (#73) 2019-12-19 19:22:17 +05:30
Ravin Perera
b475e2796e Integrated default app bill verification for user inputs. (#72)
Initial appbill implementation from @codetsunami integrated to hpcore. #47
2019-12-19 17:26:04 +05:30
Asanka Indrajith
b506b34b4f Consensus reliability enhancements (#62)
* Implemented going observer mode, fixed genesis lcl retrieval issue and stage closing time.

* Fixed clearing all user output instead of consensed outputs

* Modified waiting time to improve performance.

* Fixed deadlock of waiting for insufficient peers because of recent changes.

* Removed initial waiting time for peer connections to start consensus.
2019-12-06 05:08:51 -05:00
Ravin Perera
0dde10c306 Contract state monitoring and rollback infrastructure. (#61) 2019-11-25 19:30:15 +05:30
ravinsp
684a6bb18f Removed ptrace and improved process args handling. 2019-11-23 07:25:22 +05:30
ravinsp
403f2e1b21 Implemented passive operating mode. 2019-11-11 12:25:21 +05:30
ravinsp
ef46666fd2 Added peer and user connection limits. 2019-11-10 14:55:55 +05:30
ravinsp
a3bc504bf7 Integrated merkel map buildup after contract execution. 2019-11-09 11:44:50 +05:30
Ravin Perera
d16b43406b Added bad and duplicate message counters to socket_session (#55) 2019-11-07 06:57:34 +05:30
Ravin Perera
cb364cc420 Compilation time improvements. (#52)
* Precompiled header for all common library headers (with cmake 3.16rc3).
* Divided cmake build into shared libraries.
* Added gold linker support.
* Separated websockets lambda expressions to an independent file.
2019-11-02 14:46:21 +05:30
Ravidu Lashan
2ba739c984 Implemented socket message monitor infrastructure (#48)
* Completed adding message threshold

* Removed unused cpp file

* Completed review suggestions

* Added default value check

* Cleanup.

* Added header definitions for socket monitor
2019-10-30 14:16:22 +05:30
Ravidu Lashan
46d114f44b Added read message max size in socket communication (#42)
* Added peermaxmsg size to config

* Completed inital implementation

* Completed adding message max size

* Refactored code

* Refactored code to have data types using std library

* Added peer maxmpm

* Added const to session_options
2019-10-25 11:34:54 +05:30
Ravidu Lashan
40358890af Added initial TLS support for socket communication (#41)
* Added initial commit

* Added tls to web sockets which require key file and cert file

* Added meaningful comments
2019-10-24 14:54:33 +05:30
Ravin Perera
b4237f1285 Added npl channel to contract process. 2019-10-21 19:25:45 +05:30
Asanka Indrajith
7ed1466ad9 p2p connection, message handling, validation and serialization (#38)
Implement basic peer to peer connection establishment and maintenance.
Message serialization and parsing using FlatBuffer(Including defining message schema).
Validating incoming proposal messages.
2019-10-21 08:32:25 -04:00
Ravin Perera
f77dae2f28 Added file log. 2019-10-21 14:01:16 +05:30
Ravin Perera
2d5d8960c0 Boost log integration. (#37) 2019-10-20 21:45:59 +05:30
Ravin Perera
da9c5de9d0 Removed keytype config field in favour of key prefix. 2019-10-17 10:18:51 +05:30
Ravin Perera
0fb9ebf79f Changed base64 to hex encoding. 2019-10-17 00:17:15 +05:30
Ravin Perera
ebf13209e1 Code consistency improvements (#21)
Fully-qualified namespace accessors
Updated function out param order
reinterpret_cast
2019-10-11 20:08:53 +05:30
Ravidu Lashan
070994277d Added key type to the config file (#17)
Added key type to the config
2019-10-10 15:33:42 +05:30
Ravin Perera
d8581f7ce9 General code optmisations and cleanup. (#15)
Updated `version_compare` based on this issue: #13 
Got rid of `replace_string_contents` helper func.
Replaced #define macros with static consts.
Moved comments from headers to source files.
2019-10-10 12:57:46 +05:30
Ravin Perera
374424f98f Code comments and consistency improvements. (#12) 2019-10-09 22:26:08 +05:30