// processDirBlock validates dir block and save it to factom db. // similar to blockChain.BC_ProcessBlock func processDirBlock(msg *wire.MsgDirBlock) error { // Error condiftion for Milestone 1 if nodeMode == common.SERVER_NODE { return errors.New("Server received msg:" + msg.Command()) } blk, _ := db.FetchDBlockByHeight(msg.DBlk.Header.DBHeight) if blk != nil { procLog.Info("DBlock already exists for height:" + string(msg.DBlk.Header.DBHeight)) cp.CP.AddUpdate( "DBOverlap", // tag "warning", // Category "Directory Block Overlap", // Title "DBlock already exists for height:"+string(msg.DBlk.Header.DBHeight), // Message 0) // Expire return nil } msg.DBlk.IsSealed = true dchain.AddDBlockToDChain(msg.DBlk) //Add it to mem pool before saving it in db fMemPool.addBlockMsg(msg, strconv.Itoa(int(msg.DBlk.Header.DBHeight))) // store in mempool with the height as the key procLog.Debug("SyncUp: MsgDirBlock DBHeight=", msg.DBlk.Header.DBHeight) cp.CP.AddUpdate( "DBSyncUp", // tag "Status", // Category "SyncUp:", // Title "MsgDirBlock DBHeigth=:"+string(msg.DBlk.Header.DBHeight), // Message 0) // Expire return nil }
// processDirBlock validates dir block and save it to factom db. // similar to blockChain.BC_ProcessBlock func processDirBlock(msg *wire.MsgDirBlock) error { // Error condiftion for Milestone 1 if nodeMode == common.SERVER_NODE { return errors.New("Server received msg:" + msg.Command()) } blk, _ := db.FetchDBlockByHeight(msg.DBlk.Header.DBHeight) if blk != nil { procLog.Info("DBlock already exists for height:" + string(msg.DBlk.Header.DBHeight)) cp.CP.AddUpdate( "DBOverlap", // tag "warning", // Category "Directory Block Overlap", // Title "DBlock already exists for height:"+string(msg.DBlk.Header.DBHeight), // Message 0) // Expire return nil } msg.DBlk.IsSealed = true dchain.AddDBlockToDChain(msg.DBlk) //Add it to mem pool before saving it in db fMemPool.addBlockMsg(msg, strconv.Itoa(int(msg.DBlk.Header.DBHeight))) // store in mempool with the height as the key procLog.Debug("SyncUp: MsgDirBlock DBHeight=", msg.DBlk.Header.DBHeight) cp.CP.AddUpdate( "DBSyncUp", // tag "Status", // Category "SyncUp:", // Title "MsgDirBlock DBHeigth=:"+string(msg.DBlk.Header.DBHeight), // Message 0) // Expire /* dbhash, dbHeight, _ := db.FetchBlockHeightCache() fmt.Printf("last block height in db is %d, just-arrived block height is %d\n", dbHeight, msg.DBlk.Header.DBHeight) commonHash, _ := common.CreateHash(msg.DBlk) // this means, there's syncup breakage happened, and let's renew syncup. if uint32(dbHeight) < msg.DBlk.Header.DBHeight-500 { startHash, _ := wire.NewShaHash(dbhash.Bytes()) stopHash, _ := wire.NewShaHash(commonHash.Bytes()) outMsgQueue <- &wire.MsgInt_ReSyncup{ StartHash: startHash, StopHash: stopHash, } } */ return nil }