code: func (rl *ramLedger) Append(block *cb.Block) error {
  	rl.lock.Lock()
  	defer rl.lock.Unlock()
  
  	if block.Header.Number != rl.newest.block.Header.Number+1 {
  		return errors.Errorf("block number should have been %d but was %d",
  			rl.newest.block.Header.Number+1, block.Header.Number)
  	}
  
  	if rl.newest.block.Header.Number+1 != 0 { // Skip this check for genesis block insertion
  		if !bytes.Equal(block.Header.PreviousHash, rl.newest.block.Header.Hash()) {
  			return errors.Errorf("block should have had previous hash of %x but was %x",
  				rl.newest.block.Header.Hash(), block.Header.PreviousHash)
  		}
  	}
  
  	rl.appendBlock(block)
  	return nil
  }
docs: // Append appends a new block to the ledger