Commit Graph

372 Commits

Author SHA1 Message Date
ravinsp
6cfa47418c Minor updates to echo contract and hpfs. 2021-05-23 17:14:34 +05:30
Chalith Desaman
2bb6be0ce5 Fixed full history hpfs log syncing issues (#311) 2021-05-19 19:06:47 +05:30
Ravin Perera
45492f7c7f Added stage slice config to control stage time allocation. (#310) 2021-05-19 16:59:01 +05:30
Ravin Perera
94b29b9e05 Added genesis fallback on ledger corruption. (#309) 2021-05-18 16:57:51 +05:30
Ravin Perera
6a8f449d5b Introduced bson support for browser js client lib. (#308)
* Added blake3 import and safari compatibility fix.
* Created browser lib with bson support.
* Added 'terser' for minification.
* Added TextEncoder compatiblity fix.
2021-05-13 15:14:29 +05:30
Savinda Senevirathne
5da88aa5c5 Ignoring messages greater than 1MB from peer duplicate message check. (#307) 2021-05-12 14:55:09 +05:30
Savinda Senevirathne
3988828ac7 Remove connection whitelisting on user connect. (#306) 2021-05-12 13:49:10 +05:30
Ravin Perera
63f62228c2 hpfs binary update and vm cluster script improvements. (#305)
* Updated hpfs binary for log file extending fix.
* Updated vmcluster scripts to include separate hpfiles dir per contract.
2021-05-12 09:23:36 +05:30
Ravin Perera
4e75b497ec Improvements to vm cluster scripts. (#304)
* Improvements to vm cluster scripts.
* Fixed sync priority change issue.
2021-05-11 09:01:09 +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
ef2bb22b67 hpfs sync target refactoring. (#302) 2021-05-04 16:33:19 +05:30
ravinsp
f85059ea2a Updated hpws binary with tcp packet delay fix. 2021-05-04 09:04:07 +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
Ravin Perera
a8ae9c5876 Updated hpfs binary off_t return type fix. Introduced hpfs log level to hp config. (#300)
Updated hpfs binary off_t return type fix. Introduced hpfs log level to hp config
2021-05-02 08:54:40 +05:30
Ravin Perera
4f82afe5b1 Pre-emptive hpfs sync responses. (#299)
Hpfs sync requester reports its own filesystem state to the responder. Responder uses that information to pre-emptively send additional filesystem data the requester may need.
2021-05-01 08:27:42 +05:30
Savinda Senevirathne
3381608afd Updating hpws binary after hpws poll interval increase. (#298) 2021-04-30 10:20:57 +05:30
Ravin Perera
f55341f49e Updated hpfs binary with write optimization support. (#297) 2021-04-30 05:59:31 +05:30
Ravin Perera
505d1ad849 Reacquire hpfs rw session after each sync target completion. (#296) 2021-04-29 10:08:43 +05:30
Ravin Perera
954914e932 Fixed get status peer address formatting crash. (#295) 2021-04-28 14:37:26 +05:30
Ravin Perera
78fb68e064 Peer message flatbuffer parsing fixes. (#294) 2021-04-25 21:16:42 +05:30
Ravin Perera
e8d63c95f2 Improved vmscripts and js client lib reliability. (#293)
* Added certbot ssl support to vm scripts.
* Client lib blake3 init improvement.
* Client lib connection review process improvement.
2021-04-23 13:28:47 +05:30
Ravin Perera
23dac682d1 Minor improvements to vm cluster scripts. (#292) 2021-04-20 21:44:44 +05:30
Chalith Desaman
05e8077e5b Persisting hpfs log responses to the hpfs (#291)
Fixing the in memory raw shard hash update.
Passing the seq_no of index update to verify that the index records are consistent.
Restart rw session after completing last primary shard sync.
Fixed issue in fs read write by multiple threads.
Hpfs log sync modifications.
2021-04-16 20:06:20 +05:30
Ravin Perera
2283d2bf89 Performed ledger input output writing inside a transaction. (#290) 2021-04-13 12:34:38 +05:30
Ravin Perera
7a837ede7c Supported not storing raw data shards. (#289) 2021-04-13 11:11:37 +05:30
Ravin Perera
77279dc6ac Updated proposal time checks. (#288) 2021-04-13 11:06:58 +05:30
Ravin Perera
83bb158dd3 Fixed integer serialization issue with bson. (#287) 2021-04-12 07:15:57 +05:30
Ravin Perera
370e03fe84 Switched user input nonce from string to uint64. (#286) 2021-04-11 14:51:57 +05:30
Ravin Perera
3941f5f6c6 Revamped ledger input/output storage and query execution. (#285)
- Ledger sqlite db improvements.
- Removed flatbuffers from ledger blob data storage.
- Added consensus private mode blob data filtration.
2021-04-11 11:45:14 +05:30
Ravin Perera
0a3183a3d6 Included output hash and ledger info in output return message. (#284) 2021-04-08 10:42:33 +05:30
Ravin Perera
d4646179c2 Returned input hash and ledger info for input submissions. (#283)
- Introduced input hash which can later be used to query the ledger.
- Returned input hash and ledger info at input submission.
- Updated js client lib to support input hash.
- Updated consensus proposal candidate expiration rules.
2021-04-07 21:22:29 +05:30
Savinda Senevirathne
137d7633e0 Updated hpfs binary and its relevant hpcore changes. (#282)
* Hpfs index file is updated to match the file with the hpfs version.
* Added updated hpfs binary.
* Version log changes because Plog is not initialized at the time of version init.
2021-04-02 10:36:29 +05:30
Chalith Desaman
5833431157 hpfs binary update, hpfs log serving and passing to hpfs (#281)
* full history announcement in peer challenge and ability to send random messages only to full history nodes.

* log sync infrastructure codes.

* Resolving merge conflict  induced errors.

* Fork detection implementation.

* Cleanup.

* Resolving PR comments.

* hpfs binary update, hpfs log serving and persisting

* Fixed merge conflict and added missing log

Co-authored-by: Savinda Senevirathne <savindadilsara@gmail.com>
2021-04-01 17:13:58 +05:30
Ravin Perera
bba5266f5d Fixed consensus issues with large no. of users and inputs. (#280)
* Fixed issue in consensus contract output  sorting.

* Improved load test script.

* Removed flatbuffer verifier restrictions to support large no. of users and inputs.

* Improved consensus proposal cleanup.

* Restored the earlier proposal cleanup logic.

* Minor fixes.

* const fix.
2021-04-01 17:12:39 +05:30
Savinda Senevirathne
af48f3b01f Hpfs log file sync and fork detection. (#279)
Basic infrastructure for log file sync.
A fork is detected by comparing the hpfs log index file against the ledger.
Min and max ledger sequence hashes are sent to a full history node to request log history.
2021-04-01 13:08:29 +05:30
Ravin Perera
99c5912f14 Version management refactor. (#278)
- Introduced separate versioning for ledger file storage.
- Refactored versioning information code base.
2021-03-31 10:19:12 +05:30
Ravin Perera
ef42d4c986 Ledger query results raw input/output support. (#277) 2021-03-30 15:44:20 +05:30
Savinda Senevirathne
140b2f80fd Truncate log and hpfs index file from given sequence number. (#276)
- Truncation is invoked by making truncate system call on /hpfs::index.<seq_no> file.
- Updating hpfs binary.
- Truncation waits until any active RW and RO sessions are finished.
2021-03-29 13:22:55 +05:30
Ravin Perera
948113398c Ledger query infrastructure. (#275)
* Added json ledger query param parser.

* Added initial query response creation.

* Updated client lib.

* Implemented get ledger by seq no.

* Added ledger query execution wrappers.

* Included log record info.

* Fixed empty output hash issue.

* Added bson support.

* Added db file existance check.

* Added requesy/reply tracking for queries in client lib.

* Improved multi connection usage in client lib.

* Added genesis ledger query support.

* Updated naming convention of query result fields.

* Comments.

* Used sqlite bind() for query param.

* Used binary hashes in ledger sqlite db.

* Missing const.
2021-03-29 11:20:15 +05:30
Chalith Desaman
44fa3134ea Updating hpfs log index on ledger creation (#274) 2021-03-24 16:49:38 +05:30
Ravin Perera
31344fe266 Updated js client and contract libs. (#273)
* Updated js contract lib to for ES spec compatibility.
* Added 'ed' prefix to generated keys in js client lib.
* Fixed js client lib incorrect connection timeout tracking.
2021-03-23 09:42:48 +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
Chalith Desaman
b7e9301797 Formatting the hp config validation error message (#271)
* Formatting config validation error

* Camel case typo in js client lib

* Changed error message
2021-03-16 18:40:18 +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
Chalith Desaman
9999c28a37 Remove self connection on peer discovery (#269)
* Resetting last shard syncing flags when sync is abandoned. (#268)

* Remove self loopback connection when self is added by peer discovery

* Resolved PR comments

Co-authored-by: Savinda Senevirathne <savindadilsara@gmail.com>
2021-03-12 19:01:58 +05:30
Savinda Senevirathne
af4c9df9dc Resetting last shard syncing flags when sync is abandoned. 2021-03-12 17:31:57 +05:30
Savinda Senevirathne
b6a69e5824 Refresh consensus context when a roundtime change happens. (#267) 2021-03-12 16:39:26 +05:30
Chalith Desaman
00a3da9a2b Request historical shards when max shard range is increased (#266)
* Remove and request historical shards at the startup

* Shard history requesting only at the first consensus round

* Removed test log

* Skip max shard seq no file in removing loop

* Updated the code comments

* Persisting condition changed

* Fixed code comment typos

* Fixed code comment typos

* Resolved PR comments

* Halt consensus until completing only the latest shard sync

* Added meaningful comments

* Resolved PR comments and updated hpfs binary

* Logic enhancement and cleanup

* Cleanup the code comment
2021-03-12 12:13:46 +05:30
Savinda Senevirathne
b45cdb999d Include hp version number on all required places. (#265)
* Adding HP version header to binary files and adding hp table to ledger.sqlite.

* Updating hp_version in user challenge message.

* Minor improvement.
2021-03-10 20:08:04 +05:30
Chalith Desaman
1eabe7db4a Changed historical shard removing logic and removing historical shards on startup (#264)
* Changed historical shard deletion logic

* Undo a change

* Resolved PR comments
2021-03-08 17:08:02 +05:30