Skip to content

Commit 7aaa8c3

Browse files
authored
[persistence/contract] fix pebbleDB batch & notify (#539)
1 parent 6843e0b commit 7aaa8c3

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

persistence/contract/contract.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ func (c *Contract) LatestProjects() []*Project {
104104
}
105105

106106
func (c *Contract) latestProjects() *blockProject {
107-
batch := c.db.NewBatch()
107+
batch := c.db.NewIndexedBatch()
108108
defer batch.Close()
109109

110110
headBytes, closer, err := batch.Get(c.dbHead())
@@ -200,7 +200,7 @@ func (c *Contract) Prover(operator common.Address) *Prover {
200200
}
201201

202202
func (c *Contract) latestProvers() *blockProver {
203-
batch := c.db.NewBatch()
203+
batch := c.db.NewIndexedBatch()
204204
defer batch.Close()
205205

206206
headBytes, closer, err := batch.Get(c.dbHead())
@@ -266,7 +266,7 @@ func (c *Contract) dbHead() []byte {
266266
}
267267

268268
func (c *Contract) updateDB(blockNumber uint64, projectDiff *blockProjectDiff, proverDiff *blockProverDiff) error {
269-
batch := c.db.NewBatch()
269+
batch := c.db.NewIndexedBatch()
270270
defer batch.Close()
271271

272272
preBlock := blockNumber - 1
@@ -278,7 +278,7 @@ func (c *Contract) updateDB(blockNumber uint64, projectDiff *blockProjectDiff, p
278278
if err != nil && err != pebble.ErrNotFound {
279279
return errors.Wrap(err, "failed to get pre block data")
280280
}
281-
var preBlockData *block
281+
preBlockData := &block{}
282282
if err == nil {
283283
dst := make([]byte, len(preBlockBytes))
284284
copy(dst, preBlockBytes)
@@ -348,12 +348,12 @@ func (c *Contract) processLogs(from, to uint64, logs []types.Log, notify bool) e
348348
}
349349
for blockNumber := from; blockNumber <= to; blockNumber++ {
350350
projects, ok := projectMap[blockNumber]
351-
if ok && notify {
352-
c.notifyProject(projects)
353-
}
354351
if err := c.updateDB(blockNumber, projects, proverMap[blockNumber]); err != nil {
355352
return err
356353
}
354+
if ok && notify {
355+
c.notifyProject(projects)
356+
}
357357
}
358358
return nil
359359
}
@@ -462,7 +462,7 @@ func New(db *pebble.DB, size, beginningBlockNumber uint64, chainEndpoint string,
462462
projectContractAddr: projectContractAddr,
463463
chainHeadNotifications: chainHeadNotifications,
464464
projectNotifications: projectNotifications,
465-
listStepSize: 1000,
465+
listStepSize: 10000,
466466
watchInterval: 1 * time.Second,
467467
client: client,
468468
proverInstance: proverInstance,

0 commit comments

Comments
 (0)