Commit Graph

293 Commits

Author SHA1 Message Date
Chalith Desaman
44fa3134ea Updating hpfs log index on ledger creation (#274) 2021-03-24 16:49:38 +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
adheeb-adb
473fd4183c User message with more details (#263)
* user message with more details

* PR fixes
2021-03-08 12:25:29 +05:30
Chalith Desaman
2522a363c9 Changed the validation for max_connections and max_known_connections when reading the cfg (#262)
* Changed the validation for max_con and max_known_con when reading the config

* Minor comment fix

* Improved a code comment
2021-03-08 09:36:33 +05:30
Savinda Senevirathne
70a83893b0 Fixing connection not closing when threshold exceeded from a single attempt. (#261)
* Fixing connection not closing when threshold exceeded from a sigle message.

* Updated hpws binary.
2021-03-05 16:58:41 +05:30
Chalith Desaman
c426e2a30e Accept proposals and npl messages from unl nodes only (#260)
* Skip proposal and npl messages from non unl nodes

* Minor code comment change

* Resolved PR comments and Changed weakly connected status check

* Changed weakly connected status counter

* Added a comment
2021-03-05 16:42:39 +05:30
Savinda Senevirathne
1ca4784688 Updating the self pubkey in the unl list when rekey the contract. (#259)
PR approved
2021-03-05 13:49:20 +05:30
Ravin Perera
1cebcb1c35 Config runtime re-save refactor. (#258)
* Check peer discovery config when persisting peers.

* Refactored config persistance.

* Fixed config read offset issue.

* Refactored peer list structs.

* Minor constexpr.
2021-02-25 14:25:12 +05:30
Ravin Perera
5b56d9c1b3 Updated hpfs hash verification with file mode checks. (#257)
* Added file mode to hpfs responses.

* Parse file mode on hpfs response read.

* Apply file/dir mode.

* Fixed mode apply logic.

* Fixed code review comments.

* Additional fix.
2021-02-24 11:13:28 +05:30
Chalith Desaman
363116fc2a Added user input max ledger seq offset limit config (#256)
- Added new config for max input ledger offset inside contract section.
- Updated implementation of getting and updating patch config inside node and c contracts.
- Skip inputs if max ledger offset exceeds, when handling user inputs and nup messages.
2021-02-24 09:19:36 +05:30
Ravin Perera
137c199b07 P2P Flatbuffers schema refactor. (#255) 2021-02-23 13:15:03 +05:30
Chalith Desaman
312713c296 Fixed disk io error - set fds to -1 when closing in hpws parent process (#254) 2021-02-23 12:23:55 +05:30
Savinda Senevirathne
ff197a8bb6 Optimizing finding last shard sequence number. (#253)
* Optimizing finding last shard in primary and blob.

* Resolving PR comments and bug fix.

* Resolving PR comments.
2021-02-22 10:47:55 +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
e394497698 Used uint32 for roundtime and timeout fields. (#248) 2021-02-17 12:21:51 +05:30
Ravin Perera
90641e0849 Persist discovered peers to config. (#246) 2021-02-16 16:20:19 +05:30
Ravin Perera
9d1163c8c3 Config flag to disable peer port listening. (#245) 2021-02-16 14:27:03 +05:30
Ravin Perera
9f4499653a Dynamic roundtime detection. (#244)
When consensus is unreliable detect roundtime based on roundtime reported by peers.
2021-02-16 13:34:29 +05:30
Ravin Perera
4c4e109233 Contract process resource limits. (#243) 2021-02-15 16:36:10 +05:30
ravinsp
3783c687a2 Improved missing config field error reporting. 2021-02-15 15:10:44 +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
Ravin Perera
033b5fa7bc User inputs round limit. (#240) 2021-02-14 20:19:53 +05:30
Ravin Perera
067883b778 Support external hpfs process. (#239) 2021-02-09 15:23:03 +05:30
Ravin Perera
94eedcaf5b Added roundtime offset based on contract id. (#238) 2021-02-05 17:48:21 +05:30
Ravin Perera
c366e8acfa Generate tls key files on hpcore new. (#237) 2021-02-05 15:36:11 +05:30
Ravin Perera
e1b1382599 Read request configuration options. (#236)
* Ignores read requests when contract execution disabled.
* Added concurrent_read_reqeuests config.
* Improved metric test script.
2021-02-05 14:54:42 +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
Ravin Perera
ae55a6ea5a Added rolling log configs. (#234) 2021-02-03 11:18:56 +05:30
Ravin Perera
9bca6700ae Contract stdout/err logging. (#233) 2021-02-02 20:58:39 +05:30
Savinda Senevirathne
d08d2630f6 Refactoring hpfs, hpfs sync and hpfs serve code. (#231)
* Refactoring hpfs code to a class so it can support multiple mounts.
* Refactoring hpfs serve into a class to support mulitiple mount serving.
* Refactoring hpfs sync into class to support multiple instances.
* Code improvements in hpfs_sync.
* Taking a sync target list for hpfs syncing target set.
2021-02-02 13:17:21 +05:30
Ravin Perera
08680ee8d4 hpws upgrade with websocket protocol improvements. (#232)
* Updated hpws binary and header.
* Improved binary encoding support in client lib.
2021-02-01 22:31:28 +05:30
adheeb-adb
62c91ad90c sqlite wrapper for ledger database. (#228)
Added wrapper methods to create ledger table and insert records for sqlite database.
2021-01-29 18:06:31 +05:30
Ravin Perera
3d36912c25 Added configs to max in connections per remote host. (#229) 2021-01-29 13:05:39 +05:30
Ravin Perera
70493d827d Contract id mismatch log message. (#227)
* Added contract id mismatch log.
* Added individual docker image run script.
2021-01-22 16:36:34 +05:30
Ravin Perera
610b67cec0 Contract execute config flag. (#226)
* Added contract execute flag. Made bin_path optional.
* Updated docker cluster default config.
* Renamed contract config to hp config.
2021-01-22 14:33:07 +05:30
Chalith Desaman
eef6448f08 Handle unl change announcement in js client library. (#225) 2021-01-19 15:29:17 +05:30
Savinda Senevirathne
146bb1d46c Apply patch file changes only after consensus verification. (#222) 2021-01-19 11:56:33 +05:30