Savinda Senevirathne
c87ae6693d
Patch config and hpfs sync refactor. ( #208 )
...
* Terminology changes from state to hpfs.
* Syncing hpfs parents in priority order.
* Changing how the hash is calculate in hpfs response validate check.
2021-01-06 10:50:58 +05:30
Ravin Perera
f97d7de530
Moved h32 hash type from hpfs to util. ( #204 )
2020-12-23 21:58:49 +05:30
Ravin Perera
c25ebe66f4
Util helper func simplification. ( #203 )
2020-12-23 21:49:13 +05:30
Savinda Senevirathne
e835e18d18
New config file structure. ( #201 )
2020-12-23 18:52:58 +05:30
Ravin Perera
1a954ad96e
Implemented output signature checks. ( #200 )
2020-12-22 16:55:44 +05:30
Savinda Senevirathne
0bc53fe23c
Review UNL message rules. ( #188 )
2020-12-09 13:34:40 +05:30
Ravin Perera
fe9e276f8d
Consensus deadlock fixes and reliability improvements. ( #187 )
...
* Consensus time vote improvements.
* Skipped self proposal in Observer mode.
* Added docker cluster script params.
* Added state/lcl sync abandon threshold.
* Added pubkey display for cluster script.
* Added proposal latency log.
* Added sync completion check to prevent deadlocks.
2020-12-08 15:17:27 +05:30
Savinda Senevirathne
7bf0475b6f
Subject unl list to consensus. ( #186 )
...
* Unl hash in consensus proposals.
* Unl syncing and sync request serving.
* Adding unl hash to the ledger block.
2020-12-08 15:05:38 +05:30
Chalith Desaman
a87e8a0c7e
Subject UNL changeset to consensus. ( #183 )
2020-12-07 13:06:58 +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
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
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
Savinda Senevirathne
e90e9bb5dd
Limiting NPL message broadcasting and forwarding to trusted nodes. ( #173 )
...
* Limiting NPL message broadcasting and forwarding to trusted nodes.
* Error fix in read_iosocket.
2020-11-30 11:11:40 +05:30
Ravin Perera
d476f787a7
Introduced UNL update control message. ( #169 )
2020-11-26 22:26:12 +05:30
Ravin Perera
c41b37fd52
Request missing history when behind the ledger cap. ( #165 )
2020-11-25 16:11:46 +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
Ravin Perera
86e2e1211c
Introduced consensus round nonce and reintroduced stage 0. ( #160 )
...
* Reintroduced stage 0.
* Introduced round nonce for reduced lcl predictability.
2020-11-23 23:00:13 +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
priyadharsun
eb0012bc47
Change epoch milliseconds return type to uint64_t. ( #155 )
2020-11-19 12:54:33 +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
2e2a11b908
Improved history ledger integrity checks. ( #149 )
...
* Code cleanup.
* Resolving review comments.
* Ledger history sync validation improvements and resolving review comments.
* Ledger terminology related changes.
* Ledger related terminology change updates.
* Resolving review comments.
2020-11-13 13:43:01 +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
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
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
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
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
Savinda Senevirathne
37629471c5
Refactored consensus to run on a separate thread. ( #123 )
2020-09-18 15:53:15 +05:30
Savinda Senevirathne
38ef3cc1b1
Replacing lock_guard from scoped_lock. ( #120 )
2020-09-18 10:29:34 +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
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
Ravin Perera
465573ad29
Updated nodejs contract lib for streamed input reading. ( #110 )
2020-08-21 15:27:25 +05:30
Ravin Perera
baf5d8b14a
Fixed incorrect memory access issues. ( #109 )
2020-08-20 15:20:11 +05:30
Ravin Perera
d4a786e3b9
Refactored NPL message processing. Passed lcl to contract args. ( #105 )
2020-08-05 21:30:48 +05:30
Ravin Perera
96f23cb0ff
Added bson support for user message protocol. ( #99 )
2020-07-02 21:40:55 +05:30
Ravin Perera
04e230c82e
Improvements in state request/response handling. ( #97 )
2020-06-18 15:07:33 +05:30
Ravin Perera
b89dbe0a2c
Rearchitected state sync with hpfs. ( #96 )
2020-06-10 20:51:45 +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
ef4999f29e
Added binary support for user sockets. ( #90 )
2020-04-05 13:04:32 +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