Daniel Martí
Daniel Martí
I basically arrived at the same thoughts that Rod brought up. I also have a worry that the transition will be painful, but given that ipld-prime is a v0, I...
I should note that returning a nil error for "not found" can be very reasonable if such a case is entirely normal, and using the result normally won't cause problems....
Let me see if I'm up to speed: right now, with BlockReadOpener, you have a callback for every block being read. This is enough to *pause* a traversal, which can...
Having said the above, I'm not opposed to an "imperative traversal" layer as a wrapper for ease of use, if that can be useful for some cases like graphsync. At...
Worth noting that, with https://github.com/ipfs/go-graphsync/pull/300, the layer that graphsync has above an ipld-prime traversal is significantly easier to understand. In paticular, there are no longer multiple channels at play. I'm...
Dupe of https://github.com/ipld/go-car/issues/243 or https://github.com/ipld/go-car/issues/95, perhaps. We already have multiple issues that all boil down to: we should be able to consume some index formats directly from disk.
Could you please expand a little on why the current mechanism with an extra goroutine is undesirable? I think it is the fairly standard way to stop I/O processes in...
1 - I agree that goroutines add complexity and potential races. That said, turning a relatively simple "Traverse" API into a "TraversalController" interface also adds considerable complexity of its own...
> Maybe I'm just a terrible programmer, but I'm pretty sure go's concurrency stuff really isn't that effective for avoiding races when using a normal human sized brain. It's also...
> I am not proposing removing the existing API -- I'm suggesting adding a second. I thought of that too, shortly after writing my replies above. I think that would...