| 639 | } |
| 640 | |
| 641 | func (s *SyncClient) RequestL2List(indexes []uint64) (uint64, error) { |
| 642 | if len(indexes) == 0 { |
| 643 | return 0, nil |
| 644 | } |
| 645 | for _, pr := range s.peers { |
| 646 | id := rand.Uint64() |
| 647 | var packet BlobsByListPacket |
| 648 | _, err := pr.RequestBlobsByList(id, s.storageManager.ContractAddress(), indexes[0]/s.storageManager.KvEntries(), indexes, &packet) |
| 649 | if err != nil { |
| 650 | return 0, err |
| 651 | } |
| 652 | _, _, _, err = s.onResult(packet.Blobs) |
| 653 | if err != nil { |
| 654 | return 0, err |
| 655 | } |
| 656 | return id, nil |
| 657 | } |
| 658 | return 0, fmt.Errorf("no peer can be used to send requests") |
| 659 | } |
| 660 | |
| 661 | func (s *SyncClient) mainLoop() { |
| 662 | defer s.wg.Done() |