a function that turns user data into in edges based on supported vertices
a local data push table that maintains the "push" state for each edge
on startup, if there are any edges that need to be pushed, push them
on new edge, if there are any edges that need to be pushed, push them
each edge can be in the following states (not pushed, pushing, pushed, retry later)
if an edge comes back from the service marked as in quarantine, it needs to be scheduled to be pushed at a later date. We can just use a simple timestamp threshold, no need for a timer, since users are generating so much data, it won't sit too long waiting to be pushed
we need to generate a unique proof key per edge, a simple way is sha256(uuid, secure random salt)
we need to generate a unique fingerprint per edge with a sha256(edge byte value, proof key)
mint an NFT for each data point, and keep the corresponding NFT hash id in the local data push table for local lookups (needed for UI)
When do we push data to the kgraph; how do we know which data to push to kgraph; what happens if that data is not >epsilon
Acceptance criteria: