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.
Compiling the rocksdb binding isn't as straight-forward
as installing rocksdb headers:
$ go build ./...
# github.com/linxGnu/grocksdb
../../go/pkg/mod/github.com/linx!gnu/grocksdb@v1.7.7/cache.go:84:2: could not determine kind of name for C.rocksdb_lru_cache_options_set_num_shard_bits
Adding an optional build tag to compile radiance with rocksdb
support, otherwise remove the blockstore command. This keeps
everything else working with CGO_ENABLED=0.