Splitting pure Go and Cgo code into separate Go files allows other packages to depend on blockstore mocks. This is useful for writing test scenarios for external components that consume data from blockstore.