Follow-up to #1649 and #2087. Proposal Ids are bound to the state at the read version, and read version selection isn't deterministic in the presence of concurrent transactions. So a possible way to resolve that for BFT is to:
Add a mechanism to capture non-deterministic values during primary execution, likely in a KV table, and to send them to secondaries for re-execution. That's one way to capture the merkle tree read version, and the mechanism would be generally useful once we add support for REST requests from CCF etc
Follow-up to #1649 and #2087. Proposal Ids are bound to the state at the read version, and read version selection isn't deterministic in the presence of concurrent transactions. So a possible way to resolve that for BFT is to:
Add a mechanism to capture non-deterministic values during primary execution, likely in a KV table, and to send them to secondaries for re-execution. That's one way to capture the merkle tree read version, and the mechanism would be generally useful once we add support for REST requests from CCF etc