Implement storing binary serialized operations in the HAF database
Related issue: #92 (closed)
Merge Request related to this one on the hive-side: hive!802 (merged)
Changes to the repo:
- Fixed
hive_fork_manager
being built always in the mainnet configuration on the CI - Added new type:
hive.operation
- Added operator class (using btree) for the
hive.operation
type - Changed
hive.operations.body
column type fromtext
tohive.operation
- Made
CUSTOM_LOG
variadic arguments optional - Optimized
escape_raw
function - Changed tests to work with the new type
- Made
colect_data_and_fill_returned_recordset
truly noexcept - Created
colect_operation_data_and_fill_returned_recordset
function wrappingcolect_data_and_fill_returned_recordset
function specifically for thehive.operation
type - Changed sql_serializer to put binary data into the
hive.operations
table instead of the json representation - Added
HiveOperation
type class for thesqlalchemy
ORM
What should be added/changed/discussed before merging (not critical):
Fix warnings generated by thesqlalchemy
ORM related to thehive.operation
type- Make
update_state_provider_keyauth
function work with the binary data representation instead of text one - Search for other possibilities to optimize the SQL code execution using binary data representation instead of the text one
@gandalf Please review and test full replay + live sync
Edited by Bartek Wrona