2

I'm presently synchronising to the Ethereum blockchain using geth.

I'm seeing two types of message and have a bit of an understanding gap in what they mean. The messages are shown below, with my guess at what they mean.

Synchronisation message type 1:

I0906 10:09:01.619035 eth/handler.go:295] Peer 77e6a5959a5e0529 [eth/63]: timed out DAO fork-check, dropping
  • I0906 - Not sure - a log ID?
  • 10:09:01.619035 - time
  • eth/handler.go:295] - unsure?
  • Peer 77e6a5959a5e0529 - the peer from which the message originates
  • [eth/63]: timed out DAO fork-check, dropping - error code and message

Synchronisation message type 2:

I0906 10:16:21.875217 core/blockchain.go:963] imported 2048 block(s) (0 queued 0 ignored) including 4408 txs in 10.3195903s. #774796 [7fcf4021 / a0a4535a]
  • I0906 - Not sure - a log ID?
  • 10:16:21.875217 - time
  • core/blockchain.go:963] - unsure?
  • imported 2048 block(s) (0 queued 0 ignored) including 4408 txs in 10.3195903s. - number of blocks downloaded, number of transactions and time taken to download - does "imported" have special meaning?
  • #774796 - block number, first or last of 2048?
  • [7fcf4021 / a0a4535a] - don't know

What does each segment of the above message types mean?

Is there a man page related to this?

2

Message type 1, from the relevant code:

// If we're DAO hard-fork aware, validate any remote peer with regard to the hard-fork
    if daoBlock := pm.chainconfig.DAOForkBlock; daoBlock != nil {
        // Request the peer's DAO fork header for extra-data validation
        if err := p.RequestHeadersByNumber(daoBlock.Uint64(), 1, 0, false); err != nil {
            return err
        }
        // Start a timer to disconnect if the peer doesn't reply in time
        p.forkDrop = time.AfterFunc(daoChallengeTimeout, func() {
            glog.V(logger.Warn).Infof("%v: timed out DAO fork-check, dropping", p)
            pm.removePeer(p.id)
        })
        // Make sure it's cleaned up if the peer dies off
        defer func() {
            if p.forkDrop != nil {
                p.forkDrop.Stop()
                p.forkDrop = nil
            }
}()

My interpretation is that any peers not(?) participating in the theDAO hard fork are dropped from the list of peers used to import blocks from.

  • I0906 - Still don't know?
  • 10:09:01.619035 - time
  • eth/handler.go:295] - file and line of relevant code
  • Peer 77e6a5959a5e0529 - the peer from which the message originates
  • [eth/63]: - p message code?
  • timed out DAO fork-check, dropping - message

Message type 2, from the relevant code:

    if (stats.queued > 0 || stats.processed > 0 || stats.ignored > 0) && bool(glog.V(logger.Info)) {
        tend := time.Since(tstart)
        start, end := chain[0], chain[len(chain)-1]
        glog.Infof("imported %d block(s) (%d queued %d ignored) including %d txs in %v. #%v [%x / %x]\n", stats.processed, stats.queued, stats.ignored, txcount, tend, end.Number(), start.Hash().Bytes()[:4], end.Hash().Bytes()[:4])
    }
go self.postChainEvents(events, coalescedLogs)
  • I0906 - still unsure - I think it might be created when glog is initialised
  • 10:16:21.875217 - time
  • core/blockchain.go:963] - file and line of code
  • imported 2048 block(s) - 2048 = stats.processed number of processed blocks
  • (0 queued 0 ignored) - stats.queued, stats.ignored
  • including 4408 txs in 10.3195903s. - number of transactions txcount and time taken to process tend
  • #774796 - last block number (of the 2048 imported), end.Number()
  • [7fcf4021 / a0a4535a] - first 4 bytes of hashes of the first and last blocks (of the 2048 imported), start.Hash().Bytes()[:4], end.Hash().Bytes()[:4]

As regards the I0906 I think it relates to the tag parameter of [glog][2], but I'm still not sure:

func create(tag string, t time.Time) (f *os.File, filename string, err error) { ...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.