Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2020
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. // Infer various receiver quantities
  2. uint64_t nReceiverExcessItems =
  3. std::max((int)(nReceiverUniverseItems - nItems), (int)(nSenderUniverseItems - nItems));
  4. nReceiverExcessItems = std::max(0, (int)nReceiverExcessItems); // must be non-negative
  5. nReceiverExcessItems =
  6. std::min((int)nReceiverUniverseItems, (int)nReceiverExcessItems); // must not exceed total mempool size
  7. uint64_t nReceiverMissingItems = std::max(1, (int)(nItems - (nReceiverUniverseItems - nReceiverExcessItems)));
  8.  
  9. // Optimal symmetric differences between receiver and sender IBLTs
  10. // This is the parameter "a" from the graphene paper
  11. double optSymDiff = nReceiverMissingItems;
  12. if (nItems <= nReceiverUniverseItems + nReceiverMissingItems)
  13. optSymDiff = OptimalSymDiff(nItems, nReceiverUniverseItems, nReceiverExcessItems, nReceiverMissingItems);
  14.  
  15. // Set false positive rate for Bloom filter based on optSymDiff
  16. double fpr = BloomFalsePositiveRate(optSymDiff, nReceiverExcessItems);
  17.  
  18. // So far we have only made room for false positives in the IBLT
  19. // Make more room for missing items
  20. optSymDiff += nReceiverMissingItems;
  21. uint64_t nIbltCells = std::max((int)IBLT_CELL_MINIMUM, (int)ceil(optSymDiff));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement