Commit Graph

470 Commits

Author SHA1 Message Date
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
ravinsp
3c6e718245 Minor fix in C contract lib. 2021-02-15 14:50:22 +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
Ravin Perera
d34b7bce53 Performance metric collection scripts. (#230)
* Scripts to collect performance metrics.
* Added log level to hp client lib.
2021-01-31 18:08:32 +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
Chalith Desaman
73f5eea451 Unl change announcement to connected users. (#224)
Introduced json and bson messages for unl list announcement.
When the unl set is modified send a json or bson unl list message (according to the user protocol) to all the connected users.
2021-01-19 11:33:27 +05:30
Chalith Desaman
cf02108576 Interface to read patch config from c contract lib. (#223) 2021-01-18 14:38:39 +05:30
adheeb-adb
a816b9079b Return error when unable to create contract directory. (#221) 2021-01-15 14:51:44 +05:30
Savinda Senevirathne
fa0c1e8130 Support config patch in c contract library. (#219) 2021-01-15 14:49:54 +05:30
Chalith Desaman
0914994772 Replaced ifstreams with file read inside the config and patch config read. (#220) 2021-01-15 11:50:26 +05:30
Chalith Desaman
b15d8260cc Read patch config implementation for js contract lib. (#218) 2021-01-12 09:48:14 +05:30
Chalith Desaman
99c768360e Contract hpargs revamp. (#217) 2021-01-11 14:28:01 +05:30
Ravin Perera
11cb57e9ee Keep hp cfg and patch cfg consistent. (#216)
* Copy from hp cfg to patch cfg upon startup.
* Persist to hp cfg whenever patch cfg is updated.
2021-01-10 17:48:12 +05:30
Ravin Perera
d39b9a56ec Fixed crash on foked lcl sync. (#215) 2021-01-08 21:25:17 +05:30
Chalith Desaman
12a8252598 Patch config update method for js contract library (#214)
Load patch.cfg in js contract lib. 
Update values of the patch config. 
Common method with optional parameters.
2021-01-08 17:38:21 +05:30