Commit Graph

32 Commits

Author SHA1 Message Date
Chalith Desaman
d3df42db4e Increased max queue limits from 64 to 254 (#344) 2021-08-19 19:10:54 +05:30
Savinda Senevirathne
e48d0377cb Running post_exec.sh as run_as user. (#333) 2021-07-15 11:20:32 +05:30
Ravin Perera
7b909ed005 Perform contract setuid just before execv. (#332) 2021-07-15 09:26:20 +05:30
Ravin Perera
7ba84e8e7a Ledger close refactor. (#330) 2021-07-14 10:09:13 +05:30
Ravin Perera
d315f9c316 Introduced smart contract run-as user. (#329)
* Added contract run_as config.
* Run smart contract process under the run_as user.
* Integrated run_as user to contract hpfs startup.
2021-06-30 16:15:11 +05:30
Savinda Senevirathne
7442c4f111 Rolling contract log files. (#324) 2021-06-22 09:21:15 +05:30
Ravin Perera
c1e1cd12a8 Input responses while syncing. (#323)
* Send pending input responses after syncing.
* Send input statuses on expired inputs.
* Sqlite no journal.
2021-06-12 15:14:21 +05:30
Ravin Perera
33bd63ac64 Status tracking infrastructure. (#317)
* Added node's current status information tracker.
* Used the status tracker for responding to status messages.
* Used change-event notifications to broadcast UNL change event.
2021-06-04 15:08:10 +05:30
Ravin Perera
b172152cba Sync and consensus improvements. (#312)
* Refactored hpfs sync to support parallel target sync.
* Removed role change in consensus.
2021-05-25 21:43:08 +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
ef2bb22b67 hpfs sync target refactoring. (#302) 2021-05-04 16:33:19 +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
78fb68e064 Peer message flatbuffer parsing fixes. (#294) 2021-04-25 21:16:42 +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
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
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
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
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
Savinda Senevirathne
b6a69e5824 Refresh consensus context when a roundtime change happens. (#267) 2021-03-12 16:39:26 +05:30
Ravin Perera
137c199b07 P2P Flatbuffers schema refactor. (#255) 2021-02-23 13:15:03 +05:30
Savinda Senevirathne
a775b0e419 Configs to support full history mode. (#252)
* Adding full history mode and max shard configs for primary and blob shards.

* Commenting validation checks for hpfs responses until bug is fixed.

* Comment update.
2021-02-19 14:45:25 +05:30
Ravin Perera
6b8d60a404 Separated lcl string usage to sequence no and hash. (#251) 2021-02-18 18:28:38 +05:30
Ravin Perera
8eac87fb85 Added smart contract upgrade support. (#250)
Supports smart contract self-upgrades by allowing "post_exec.sh" script to be executed after consensus contract execution.
2021-02-18 17:25:42 +05:30
Chalith Desaman
7059f68f11 Removed legacy lcl code and dependencies (#249) 2021-02-18 17:07:50 +05:30
Savinda Senevirathne
16c5b3fae2 Introducing ledger shards and new ledger syncing logic. (#247)
- The ledgers are stored in a sqlite database in ledger file system.
- Ledgers are organized in shards inside primary folder.
- Raw inputs are saved as shards inside blob folder. No input files are created if neither inputs nor outputs are available.
- Both last primary shard hash and last blob shard hashes are subjected to consensus and necessary sync operations are performed if out of sync.
- Hpfs sync support setting single sync targets from both ends of the list. (Targets set from front are prioritized).
- Contract and ledger syncs and serving are performed independently.
2021-02-18 11:24:05 +05:30
Ravin Perera
4c4e109233 Contract process resource limits. (#243) 2021-02-15 16:36:10 +05:30
Ravin Perera
0937ca0bbe Npl outputs round limit. (#242) 2021-02-15 14:50:03 +05:30
Ravin Perera
0de7983504 User outputs round limit. (#241)
Implemented user outputs round limit and upgraded the contract libraries to support the configs.
2021-02-15 14:23:47 +05:30
Savinda Senevirathne
a4399544b9 Separate contract and ledger file system mounts. (#235)
- Creating two separate hpfs folders for contract and ledger file systems (contract_fs and ledger_fs).
- Added separate mounts for contract and ledger file systems.
- Added separate instances for contract serving and ledger serving.
- Added separate instances for contract syncing and ledger syncing.
- Modified cluster creating script to accompany folder name changes in contract folder.
2021-02-05 11:48:52 +05:30