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

Function downloadBlobFromRPC

cmd/es-node/utils.go:251–272  ·  view source on GitHub ↗
(endpoint string, kvIndex uint64, hash common.Hash)

Source from the content-addressed store, hash-verified

249}
250
251func downloadBlobFromRPC(endpoint string, kvIndex uint64, hash common.Hash) ([]byte, error) {
252 rpcClient, err := rpc.DialOptions(context.Background(), endpoint, rpc.WithHTTPClient(http.DefaultClient))
253 if err != nil {
254 return nil, err
255 }
256
257 var result hexutil.Bytes
258 // kvIndex, blobHash, encodeType, offset, length
259 if err := rpcClient.Call(&result, "es_getBlob", kvIndex, hash, 0, 0, 4096*32); err != nil {
260 return nil, err
261 }
262
263 blobhash, err := blobs.BlobToVersionedHash(result)
264 if err != nil {
265 return nil, fmt.Errorf("blobToCommitment failed: %w", err)
266 }
267 if !bytes.Equal(blobhash[:es.HashSizeInContract], hash[:es.HashSizeInContract]) {
268 return nil, fmt.Errorf("invalid blobhash for %d want: %x, got: %x", kvIndex, hash, blobhash)
269 }
270
271 return result, nil
272}
273
274func initShardManager(ctx *cli.Context, l1Rpc string, l1contract common.Address) (*es.ShardManager, error) {
275 miner := readRequiredFlag(ctx, flags.StorageMiner)

Callers 1

EsNodeSyncFunction · 0.70

Calls 2

BlobToVersionedHashFunction · 0.92
CallMethod · 0.80

Tested by

no test coverage detected