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
The current implementation of the Stream.WriteTerm function for streams outputs a pointer as part of the stream’s representation, which results in non-deterministic behavior.
Using the pointer (%p) to represent the stream makes the output non-deterministic, as pointer values change between executions. This is particularly problematic in our case, where we use the Prolog engine in our blockchain. Determinism is critical for ensuring consistent state, reproducibility, and validation across distributed nodes.
Issue
The current implementation of the
Stream.WriteTerm
function for streams outputs a pointer as part of the stream’s representation, which results in non-deterministic behavior.prolog/engine/stream.go
Lines 82 to 86 in ea00e9b
Analysis
Using the pointer
(%p)
to represent the stream makes the output non-deterministic, as pointer values change between executions. This is particularly problematic in our case, where we use theProlog
engine in our blockchain. Determinism is critical for ensuring consistent state, reproducibility, and validation across distributed nodes.The text was updated successfully, but these errors were encountered: