0xProject / 0x-mesh

A peer-to-peer network for sharing 0x orders
https://0x-org.gitbook.io/mesh/
Other
259 stars 111 forks source link

core: Validation of new orders occurring at `latest` block #590

Open fabioberger opened 4 years ago

fabioberger commented 4 years ago

Currently, Mesh validates incoming orders at the latest block height. Since eth_call's can take some time to complete, it is possible that Mesh has already processed higher block number before the order was inserted to the DB. This could lead to events being missed and the fillableTakerAmount stored in the DB being incorrect.

The solution is to block the processing of new block events while validating incoming orders and to validate them at the latest block processed by the Mesh node. We then add it to Mesh before unblocking the block event processing.

fabioberger commented 4 years ago

Addressed in #566

jalextowle commented 4 years ago

After #793, this became an issue again. Rather than reverting to the old solution of using a database lock, a new solution will be implemented in #863.