Skip to content

Implement storing binary serialized operations in the HAF database

Mateusz Tyszczak requested to merge tm-ops-as-hive-operation into develop

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 from text to hive.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 wrapping colect_data_and_fill_returned_recordset function specifically for the hive.operation type
  • Changed sql_serializer to put binary data into the hive.operations table instead of the json representation
  • Added HiveOperation type class for the sqlalchemy ORM

What should be added/changed/discussed before merging (not critical):

  • Fix warnings generated by the sqlalchemy ORM related to the hive.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

Merge request reports