code: func newChain(directory string) blockledger.ReadWriter {
  	jl := &jsonLedger{
  		directory: directory,
  		signal:    make(chan struct{}),
  		marshaler: &jsonpb.Marshaler{Indent: "  "},
  	}
  	jl.initializeBlockHeight()
  	logger.Debugf("Initialized to block height %d with hash %x", jl.height-1, jl.lastHash)
  	return jl
  }
docs: // newChain creates a new chain backed by a JSON ledger