miner: optimistically import built payloads to lower API latency

This commit is contained in:
Péter Szilágyi 2023-10-05 10:55:32 +03:00
parent 052355f5e2
commit b0a8cb13bf

View file

@ -193,6 +193,7 @@ func (w *worker) buildPayload(args *BuildPayloadArgs) (*Payload, error) {
if empty.err != nil { if empty.err != nil {
return nil, empty.err return nil, empty.err
} }
w.chain.InsertBlockWithoutSetHead(empty.block) // ignore error, we're caching (also chain will log)
// Construct a payload object for return. // Construct a payload object for return.
payload := newPayload(empty.block, args.Id()) payload := newPayload(empty.block, args.Id())
@ -228,6 +229,7 @@ func (w *worker) buildPayload(args *BuildPayloadArgs) (*Payload, error) {
r := w.getSealingBlock(fullParams) r := w.getSealingBlock(fullParams)
if r.err == nil { if r.err == nil {
payload.update(r, time.Since(start)) payload.update(r, time.Since(start))
w.chain.InsertBlockWithoutSetHead(r.block) // ignore error, we're caching (also chain will log)
} }
timer.Reset(w.recommit) timer.Reset(w.recommit)
case <-payload.stop: case <-payload.stop: