- 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.
* 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>
* 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.
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.
* 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
- 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.
- 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.
- 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.
* 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.
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.
* Terminology changes from state to hpfs.
* Syncing hpfs parents in priority order.
* Changing how the hash is calculate in hpfs response validate check.
* Added contract id config.
* Verify contract id with user/peer challenge.
* Updated cluster scripts.
* Updated node client lib for contract id verification.
* Saving raw inputs in the ledger.
* Store full history in separate folder.
* Moved full history fb structs to a seperate fbs file
* Removed raw_inputs from the proposal
* Fixed code comments
* Saving raw user input string
* Code refactoring
* Resolved PR comments