Commit Graph

84 Commits

Author SHA1 Message Date
Dulana Peiris
a740b8ed0c Added license file to Docker (#392) 2023-12-15 17:22:31 +05:30
Chalith Desaman
f8877fd61a Increased local docker image version (#385) 2023-09-23 10:27:50 +05:30
Kithmini Gunawardhana
6a2384cd03 Usage of nonce hash for ledger hash generation (#375) 2023-08-03 16:52:56 +05:30
Kithmini Gunawardhana
d68472d3b4 HotPocket Version upgrade (#374) 2023-05-08 11:40:43 +05:30
Udith Indrakantha
0c8c5aa0e3 Updating docker image tags with version number (#372) 2022-11-16 12:18:26 +05:30
Ravin Perera
5cef95c9f6 Enabled and fixed compiler warnings. (#359) 2022-01-28 16:03:34 +05:30
Ravin Perera
cf695af30b Remove appbill. (#358) 2022-01-27 10:39:18 +05:30
Ravin Perera
8dabfb4a2e IP ban refactor with hpws. (#354)
* Refactored corebill.
* Integrated hpws ban tracking.
* Removed session handler helpers.
* Improved bad behaviour reporting.
2021-12-17 07:08:26 +05:30
Ravin Perera
d7733698de Updated docker images. (#326) 2021-06-23 12:54:39 +05:30
Ravin Perera
6a1fb3c5ad Added time based kill switch. (#325) 2021-06-22 11:08:15 +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
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
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
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
Ravin Perera
137c199b07 P2P Flatbuffers schema refactor. (#255) 2021-02-23 13:15:03 +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
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
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
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
Savinda Senevirathne
c87ae6693d Patch config and hpfs sync refactor. (#208)
* Terminology changes from state to hpfs.
* Syncing hpfs parents in priority order.
* Changing how the hash is calculate in hpfs response validate check.
2021-01-06 10:50:58 +05:30
Ravin Perera
f97d7de530 Moved h32 hash type from hpfs to util. (#204) 2020-12-23 21:58:49 +05:30
Ravin Perera
1a954ad96e Implemented output signature checks. (#200) 2020-12-22 16:55:44 +05:30
Ravin Perera
d476f787a7 Introduced UNL update control message. (#169) 2020-11-26 22:26:12 +05:30
Ravin Perera
bb223b1e3a JSON message parsing for contract control messages. (#166) 2020-11-26 09:31:39 +05:30
Ravin Perera
29425095e0 User nonce validation and expiration. (#164) 2020-11-25 07:10:07 +05:30
Ravin Perera
d9517b6164 Reorganized util and hpws source files. (#161) 2020-11-23 23:18:42 +05:30
Ravin Perera
9c1f62dbde Migrated user inputs from domain sockets to memfd. (#159) 2020-11-23 21:52:05 +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
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
7183383ab7 Replace websocketd/websocat with hpws. (#131) 2020-10-15 17:02:06 +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
6599fa32ca Fixed compiler warnings on return values and null args. 2020-09-26 21:58:22 +05:30
Ravin Perera
4df0918f8e Boost reference removal and dev setup script. (#127)
* Removed unneeded boost library links.
* Replaced boost string split with util function.
* Added dev setup script.
* Updated readme.
2020-09-26 18:20:07 +05:30
Chalith Desaman
3e2b7dbcfa Replaced boost filesystem operations with linux system calls (#125)
* Replaced boost filesystem operations with linux syscalls
* Removed boost filesystem dependency from CMAKE
2020-09-23 12:49:06 +05:30
priyadharsun
91122474a1 Replaced Boost log with Plog. (#124) 2020-09-23 06:06:42 +05:30
Ravin Perera
93f57efbe3 Added release build support. (#119)
* Cleaned up and updated cmake to have release build support.
* Added segfault handler.
* Added latest hpfs release build.
* Fixed coding issues revealed by release build.
2020-09-16 17:51:54 +05:30
Chalith Desaman
00028e53b2 Removed crypto dependency from CMakeList (#113) 2020-09-04 12:01:23 +05:30
Savinda Senevirathne
648b70892c Blake2 to Blake3 hash migration (#111)
* hash call update from blake2b to blake3
* including installation steps for blake3 in readme
2020-08-21 15:50:39 +05:30
Savinda Senevirathne
eb70d9f308 Updating hpfs binary for blake3 migration (#108) 2020-08-20 14:48:55 +05:30
Ravin Perera
96f23cb0ff Added bson support for user message protocol. (#99) 2020-07-02 21:40:55 +05:30
Ravin Perera
817ccd6a88 Implemented contract read requests. (#98) 2020-06-19 21:52:03 +05:30
Ravin Perera
b89dbe0a2c Rearchitected state sync with hpfs. (#96) 2020-06-10 20:51:45 +05:30
ravinsp
9ee09bebb7 Renamed proc namespace. 2020-06-05 22:08:38 +05:30
Ravin Perera
3aed949032 Added large I/O message support. (#95) 2020-06-05 21:54:06 +05:30
Ravin Perera
10374352c6 hpfs integration. (#94) 2020-06-04 13:51:53 +05:30
Ravin Perera
920be03ade Websocket re-architecture with websocketd and websocat (#89)
- Replaced beast with websocketd and websocat. #79 #83 #84
- Implemented inbound/outbound peer connection merging.
- Added graceful shutdown of hpcore with sigint. #87
2020-04-05 08:12:55 +05:30
Richard Holland
57424accbe fix precompiled header error 2020-02-13 23:31:28 +13:00
Ravin Perera
b6497d0f82 Cmake cleanup (#77) 2019-12-21 07:05:20 +05:30
Ravin Perera
d82ab8f626 Reorganized local and remote cluster setup scripts. (#75) 2019-12-20 11:29:52 +05:30