Interpretieren der während der Synchronisation auf geth empfangenen Nachrichten

Ich synchronisiere derzeit mit Geth auf die Ethereum-Blockchain.

Ich sehe zwei Arten von Nachrichten und habe eine kleine Verständnislücke in ihrer Bedeutung. Die Meldungen werden unten gezeigt, mit meiner Vermutung, was sie bedeuten.

Synchronisationsnachricht Typ 1:

I0906 10:09:01.619035 eth/handler.go:295] Peer 77e6a5959a5e0529 [eth/63]: timed out DAO fork-check, dropping
  • I0906- Nicht sicher - eine Log-ID?
  • 10:09:01.619035- Zeit
  • eth/handler.go:295]- unsicher?
  • Peer 77e6a5959a5e0529- der Peer, von dem die Nachricht stammt
  • [eth/63]: timed out DAO fork-check, dropping- Fehlercode und Meldung

Synchronisationsnachricht Typ 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- Nicht sicher - eine Log-ID?
  • 10:16:21.875217- Zeit
  • core/blockchain.go:963]- unsicher?
  • imported 2048 block(s) (0 queued 0 ignored) including 4408 txs in 10.3195903s.- Anzahl der heruntergeladenen Blöcke, Anzahl der Transaktionen und Downloadzeit - hat "importiert" eine besondere Bedeutung?
  • #774796- Blocknummer, erster oder letzter von 2048?
  • [7fcf4021 / a0a4535a]- weiß nicht

Was bedeutet jedes Segment der oben genannten Nachrichtentypen?

Gibt es dazu eine Manpage?

Das .goZeug bezieht sich auf den Code, wie github.com/ethereum/go-ethereum/blob/master/core/…
@XavierLeprêtreB9lab danke, ja, ich habe mir gerade diesen Code angesehen. Versuchen Sie derzeit, das glog/logs-Verhalten herauszufinden - denken Sie, dass das I0906erstellt wird, wenn ein Protokoll initiiert wird .... kann aber keinen relevanten Code atm finden.

Antworten (1)

Nachrichtentyp 1 , aus dem entsprechenden 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
            }
}()

Meine Interpretation ist, dass alle Peers, die nicht (?) an der theDAO-Hardfork teilnehmen, aus der Liste der Peers gestrichen werden, aus denen Blöcke importiert werden.

  • I0906- Sie wissen es immer noch nicht?
  • 10:09:01.619035- Zeit
  • eth/handler.go:295]- Datei und Zeile des relevanten Codes
  • Peer 77e6a5959a5e0529- der Peer, von dem die Nachricht stammt
  • [eth/63]:- p Nachrichtencode?
  • timed out DAO fork-check, dropping- Nachricht

Nachrichtentyp 2 , aus dem relevanten 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- immer noch unsicher - ich denke, es könnte erstellt werden, wenn gloges initialisiert wird
  • 10:16:21.875217- Zeit
  • core/blockchain.go:963]- Datei und Codezeile
  • imported 2048 block(s)- 2048 = stats.processed Anzahl verarbeiteter Blöcke
  • (0 queued 0 ignored)-stats.queued, stats.ignored
  • including 4408 txs in 10.3195903s.- Anzahl der Transaktionen txcount und Bearbeitungszeit tend
  • #774796- letzte Blocknummer (von der 2048 importiert), end.Number()
  • [7fcf4021 / a0a4535a]- die ersten 4 Bytes der Hashes des ersten und letzten Blocks (der 2048 importierten), start.Hash().Bytes()[:4], end.Hash().Bytes()[:4]

Ich I0906denke , es bezieht sich auf den tagParameter von [glog][2], aber ich bin mir immer noch nicht sicher:

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