code: func (rlf *ramLedgerFactory) GetOrCreate(chainID string) (blockledger.ReadWriter, error) {
  	rlf.mutex.Lock()
  	defer rlf.mutex.Unlock()
  
  	key := chainID
  
  	l, ok := rlf.ledgers[key]
  	if ok {
  		return l, nil
  	}
  
  	ch := newChain(rlf.maxSize)
  	rlf.ledgers[key] = ch
  	return ch, nil
  }
docs: // GetOrCreate gets an existing ledger (if it exists) or creates it if it does not