MCPcopy Create free account
hub / github.com/ethstorage/es-node / checkBlobCommit

Method checkBlobCommit

ethstorage/p2p/protocol/syncclient.go:1209–1227  ·  view source on GitHub ↗
(decodedBlob []byte, payload *BlobPayload)

Source from the content-addressed store, hash-verified

1207}
1208
1209func (s *SyncClient) checkBlobCommit(decodedBlob []byte, payload *BlobPayload) bool {
1210 recordDur := s.metrics.ClientRecordTimeUsed("getRoot")
1211 root, err := s.prover.GetRoot(decodedBlob, 0, 0)
1212 recordDur()
1213
1214 if err != nil {
1215 s.lg.Error("Get proof fail", "idx", payload.BlobIndex, "err", err.Error())
1216 return false
1217 }
1218 if !bytes.Equal(root[:ethstorage.HashSizeInContract], payload.BlobCommit[:ethstorage.HashSizeInContract]) {
1219 s.lg.Info("Compare blob failed", "idx", payload.BlobIndex, "err",
1220 fmt.Sprintf("verify blob fail: root: %s; MetaHash hash (24): %s, providerAddr %s, data len %d",
1221 common.Bytes2Hex(root[:ethstorage.HashSizeInContract]), common.Bytes2Hex(payload.BlobCommit[:ethstorage.HashSizeInContract]),
1222 payload.MinerAddress.Hex(), len(payload.EncodedBlob)))
1223 return false
1224 }
1225
1226 return true
1227}
1228
1229func (s *SyncClient) commitBlobs(kvIndices []uint64, decodedBlobs [][]byte, commits []common.Hash) ([]uint64, error) {
1230 recordDur := s.metrics.ClientRecordTimeUsed("commitBlobs")

Callers 2

FetchBlobMethod · 0.95
onResultMethod · 0.95

Calls 3

ClientRecordTimeUsedMethod · 0.65
GetRootMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected