Commit Graph

228 Commits

Author SHA1 Message Date
Ravin Perera
efbd775fa1 Refactored C contract lib interface. (#175) 2020-11-30 10:03:06 +05:30
Ravin Perera
332e5a4750 User input json/bson format improvements. (#174)
* Removed hex encoding in json input container.
* Refactored client lib exports.
2020-11-28 21:24:35 +05:30
Ravin Perera
79b55258de Poll-based contract output reading. (#172) 2020-11-27 15:57:36 +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
4de1bb2393 Already submitted input detection. (#170)
* Added same nonce/sig for input comparison.
* Added status response withholding for already submitted inputs.
2020-11-26 23:27:40 +05:30
Ravin Perera
d476f787a7 Introduced UNL update control message. (#169) 2020-11-26 22:26:12 +05:30
Savinda Senevirathne
993eb11971 hpfs state hash checkpoint binary update. (#168) 2020-11-26 20:37:57 +05:30
Ravin Perera
bb223b1e3a JSON message parsing for contract control messages. (#166) 2020-11-26 09:31:39 +05:30
Ravin Perera
c41b37fd52 Request missing history when behind the ledger cap. (#165) 2020-11-25 16:11:46 +05:30
Ravin Perera
29425095e0 User nonce validation and expiration. (#164) 2020-11-25 07:10:07 +05:30
Ravin Perera
9339e09026 Updated hpfs binary with log file block alignment improvements. (#163) 2020-11-24 21:48:13 +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
Ravin Perera
9c1f62dbde Migrated user inputs from domain sockets to memfd. (#159) 2020-11-23 21:52:05 +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
Ravin Perera
beedfb2709 C contract library and NodeJS library improvements. (#157) 2020-11-20 10:48:57 +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
Ravin Perera
1608e9fc49 Contract execution refactor. (#153) 2020-11-18 07:16:17 +05:30
Ravin Perera
0098c3ddab Revamped NodeJS library examples. (#151) 2020-11-16 17:08:47 +05:30
ravinsp
645f0023a0 Fixed consensus proposal time vote filter. 2020-11-14 17:20:09 +05:30
Savinda Senevirathne
8d5cb670ce Expire inactive sessions. (#150) 2020-11-13 15:28:40 +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
e6b74f2c02 Added hpws binary with max msg size fix. (#148) 2020-11-11 10:55:02 +05:30
priyadharsun
8f00c5e7d4 Introduced contract control channel with 'terminate' message (#147) 2020-11-10 14:09:24 +05:30
Chalith Desaman
49e30961bd Node js contract library AsyncCallbackEmitter implementation (#146) 2020-11-09 14:21:43 +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
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