(dbID proto.DatabaseID, height int32, offset int32, qt *types.QueryAsTx)
| 263 | } |
| 264 | |
| 265 | func (s *Service) addQueryTracker(dbID proto.DatabaseID, height int32, offset int32, qt *types.QueryAsTx) (err error) { |
| 266 | log.WithFields(log.Fields{ |
| 267 | "req": qt.Request.Header.Hash(), |
| 268 | "resp": qt.Response.Hash(), |
| 269 | }).Debug("add query tracker") |
| 270 | |
| 271 | if atomic.LoadInt32(&s.stopped) == 1 { |
| 272 | // stopped |
| 273 | return ErrStopped |
| 274 | } |
| 275 | |
| 276 | if err = qt.Request.Verify(); err != nil { |
| 277 | return |
| 278 | } |
| 279 | if err = qt.Response.VerifyHash(); err != nil { |
| 280 | return |
| 281 | } |
| 282 | |
| 283 | _, err = s.db.Writer().Exec(saveRequestSQL, string(dbID), qt.Request.Header.Hash().String(), height, offset) |
| 284 | if err != nil { |
| 285 | err = errors.Wrapf(err, "save request failed: %s, %s, %d", dbID, qt.Request.Header.Hash().String(), height) |
| 286 | return |
| 287 | } |
| 288 | _, err = s.db.Writer().Exec(saveResponseSQL, string(dbID), qt.Response.Hash().String(), height, offset) |
| 289 | if err != nil { |
| 290 | err = errors.Wrapf(err, "save response failed: %s, %s, %d", dbID, qt.Response.Hash().String(), height) |
| 291 | } |
| 292 | return |
| 293 | } |
| 294 | |
| 295 | func (s *Service) addBlock(dbID proto.DatabaseID, count int32, b *types.Block) (err error) { |
| 296 | instance, err := s.getUpstream(dbID) |
no test coverage detected