Interpretando los mensajes recibidos durante la sincronización en geth

Actualmente estoy sincronizando con la cadena de bloques de Ethereum usando geth.

Veo dos tipos de mensajes y tengo una pequeña brecha de comprensión en lo que significan. Los mensajes se muestran a continuación, con mi suposición de lo que significan.

Mensaje de sincronización tipo 1:

I0906 10:09:01.619035 eth/handler.go:295] Peer 77e6a5959a5e0529 [eth/63]: timed out DAO fork-check, dropping
  • I0906- No estoy seguro - ¿una ID de registro?
  • 10:09:01.619035- tiempo
  • eth/handler.go:295]- inseguro?
  • Peer 77e6a5959a5e0529- el par desde el que se origina el mensaje
  • [eth/63]: timed out DAO fork-check, dropping- código de error y mensaje

Mensaje de sincronización tipo 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- No estoy seguro - ¿una ID de registro?
  • 10:16:21.875217- tiempo
  • core/blockchain.go:963]- inseguro?
  • imported 2048 block(s) (0 queued 0 ignored) including 4408 txs in 10.3195903s.- número de bloques descargados, número de transacciones y tiempo de descarga - ¿"importado" tiene un significado especial?
  • #774796- número de bloque, primero o último de 2048?
  • [7fcf4021 / a0a4535a]- no sé

¿Qué significa cada segmento de los tipos de mensajes anteriores?

¿Hay una página man relacionada con esto?

El .gomaterial se refiere al código, como github.com/ethereum/go-ethereum/blob/master/core/…
@XavierLeprêtreB9lab gracias, sí, acabo de mirar ese código. Actualmente estoy tratando de averiguar el comportamiento de glog/logs, pensando que I0906se crea cuando se inicia un registro... pero no puedo encontrar el código relevante atm.

Respuestas (1)

Mensaje tipo 1 , del código correspondiente :

// 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
            }
}()

Mi interpretación es que cualquier par que no (?) participe en la bifurcación dura theDAO se elimina de la lista de pares utilizados para importar bloques.

  • I0906- ¿Aún no lo sabes?
  • 10:09:01.619035- tiempo
  • eth/handler.go:295]- archivo y línea de código relevante
  • Peer 77e6a5959a5e0529- el par desde el que se origina el mensaje
  • [eth/63]:- p código de mensaje?
  • timed out DAO fork-check, dropping- mensaje

Mensaje tipo 2 , del código correspondiente :

    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- todavía no estoy seguro - Creo que podría crearse cuando glogse inicializa
  • 10:16:21.875217- tiempo
  • core/blockchain.go:963]- archivo y línea de código
  • imported 2048 block(s)- 2048 = stats.processed número de bloques procesados
  • (0 queued 0 ignored)-stats.queued, stats.ignored
  • including 4408 txs in 10.3195903s.- número de transacciones txcount y tiempo de procesamiento tend
  • #774796- último número de bloque (del 2048 importado), end.Number()
  • [7fcf4021 / a0a4535a]- primeros 4 bytes de hash del primer y último bloque (de los 2048 importados), start.Hash().Bytes()[:4], end.Hash().Bytes()[:4]

En cuanto a la I0906creo que se relaciona con el tagparámetro de [glog][2], pero todavía no estoy seguro:

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