NewSelectiveCar should accept a dagservice
See comment/resulting code here: https://github.com/ipfs/go-ipfs/commit/39b9c3a32b9bcc682
The core justification is the fact that the dagervice can do proper paralellizing etc within a session. The blockstore is "dumb", thus not a great primitive for an interface-API.
it just needs an interface that implements Get(cid.Cid) (blocks.Block, error), it shouldn't be hard to make an adapter if that API doesn't fit already would it?
NewSelectiveCar is a "thing with state", the adapter would be "something else with state" that keeps the session and other bits. I opened this issue based on conversation with @Stebalien, I will doublecheck I didn't mis-understand
this might be a limitation in my Go knowledge but it seems to me that a special-case adapter could be provided here that handles that all on the calling side? or maybe that's just too clunky?