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

Function verifyData

cmd/integration-test-server/main.go:220–267  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

218}
219
220func verifyData() error {
221 file, err := os.OpenFile(uploadedDataFile, os.O_RDONLY, 0755)
222 if err != nil {
223 return err
224 }
225 defer file.Close()
226
227 fileScanner := bufio.NewScanner(file)
228 fileScanner.Buffer(make([]byte, dataSize*2), kvSize*2)
229 fileScanner.Split(bufio.ScanLines)
230
231 sm, err := createShardManager()
232 if err != nil {
233 return err
234 }
235
236 client, err := rpc.DialHTTP(rpcEndpoint)
237 if err != nil {
238 return err
239 }
240 defer client.Close()
241
242 i := uint64(0)
243 for fileScanner.Scan() {
244 expectedData := common.Hex2Bytes(fileScanner.Text())
245 blob := utils.EncodeBlobs(expectedData)[0]
246 commit, _, _ := sm.TryReadMeta(i)
247 data, _, err := sm.TryRead(i, kvSize, common.BytesToHash(commit))
248 if err != nil {
249 return errors.New(fmt.Sprintf("read %d from shard fail with err: %s", i, err.Error()))
250 }
251 if bytes.Compare(blob[:], data) != 0 {
252 return errors.New(fmt.Sprintf("compare shard data %d fail, expected data %s; data: %s",
253 i, common.Bytes2Hex(blob[:64]), common.Bytes2Hex(data[:64])))
254 }
255
256 rpcdata, err := downloadBlobFromRPC(client, i, common.BytesToHash(commit))
257 if err != nil {
258 return errors.New(fmt.Sprintf("get data %d from rpc fail with err: %s", i, err.Error()))
259 }
260 if bytes.Compare(blob[:], rpcdata) != 0 {
261 return errors.New(fmt.Sprintf("compare rpc data %d fail, expected data %s; data: %s",
262 i, common.Bytes2Hex(blob[:64]), common.Bytes2Hex(rpcdata[:64])))
263 }
264 i++
265 }
266 return nil
267}
268
269func downloadBlobFromRPC(client *rpc.Client, kvIndex uint64, hash common.Hash) ([]byte, error) {
270 var result hexutil.Bytes

Callers 1

mainFunction · 0.85

Calls 6

createShardManagerFunction · 0.85
downloadBlobFromRPCFunction · 0.70
CloseMethod · 0.65
TryReadMetaMethod · 0.65
TryReadMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected