You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A user is able to create an order with arbitrary metadata by attaching it to the appdata.
To build a system that is easily extensible and doesn't require every piece of metadata that protocol is supposed to understand to the auction we'll make it the responsibility of the driver to fetch the appdata, parse, and understand it.
That means the driver should fetch /v1/app_data/<app_data_hash> for every order and cache them in memory. The content associated with the hash will never change so we only need to worry about evicting entries that didn't get used for a long time (i.e. orders that already got settled).
Also this cache should be shared across all connected solvers as this data is not solver specific.
Finally the cache should not store the raw appdata JSON strings but rather parsed rust structs so that the driver can already use the contained metadata easily.
Fetching the content of missing appdata hashes can probably be done as part of the auction pre-processing (since this is done once per auction for all solvers to share) but please use good judgement to decide on the actual implementation.
Afterwards the parsed AppData should be added to the domain Order struct.
For parsing the AppData the app-data crate should be used. For this issue it's not necessary that the app-data crate already is able to parse the new data. Once that is implemented the driver will be able to parse it right away.
The text was updated successfully, but these errors were encountered:
A user is able to create an order with arbitrary metadata by attaching it to the
appdata
.To build a system that is easily extensible and doesn't require every piece of metadata that protocol is supposed to understand to the auction we'll make it the responsibility of the driver to fetch the
appdata
, parse, and understand it.That means the driver should fetch
/v1/app_data/<app_data_hash>
for every order and cache them in memory. The content associated with the hash will never change so we only need to worry about evicting entries that didn't get used for a long time (i.e. orders that already got settled).Also this cache should be shared across all connected solvers as this data is not solver specific.
Finally the cache should not store the raw appdata JSON strings but rather parsed rust structs so that the driver can already use the contained metadata easily.
Fetching the content of missing appdata hashes can probably be done as part of the auction pre-processing (since this is done once per auction for all solvers to share) but please use good judgement to decide on the actual implementation.
Afterwards the parsed
AppData
should be added to the domain Order struct.For parsing the
AppData
theapp-data
crate should be used. For this issue it's not necessary that theapp-data
crate already is able to parse the new data. Once that is implemented the driver will be able to parse it right away.The text was updated successfully, but these errors were encountered: