private-attribution / ipa

A raw implementation of Interoperable Private Attribution
MIT License
42 stars 25 forks source link

Finalizer protocol for sharded executions #1446

Closed akoshelev closed 3 days ago

akoshelev commented 1 week ago

for Hybrid protocol we will send all histograms back to the leader shard where they will be aggregated and returned back to the report collector.

For sharded shuffle (test protocol) we will send rows/reports back to the leader to concatenate them all together.

Both of these will be supported by the newly added ShardAssembledResult trait, while this PR only brings the implementation for Hybrid

codecov[bot] commented 1 week ago

Codecov Report

Attention: Patch coverage is 98.23789% with 4 lines in your changes missing coverage. Please review.

Project coverage is 93.51%. Comparing base (0cbc5de) to head (0622515). Report is 7 commits behind head on main.

Files with missing lines Patch % Lines
ipa-core/src/protocol/context/dzkp_malicious.rs 80.00% 3 Missing :warning:
ipa-core/src/protocol/basics/shard_fin.rs 99.52% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #1446 +/- ## ========================================== - Coverage 93.54% 93.51% -0.04% ========================================== Files 231 232 +1 Lines 41090 41317 +227 ========================================== + Hits 38438 38636 +198 - Misses 2652 2681 +29 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


🚨 Try these New Features:

akoshelev commented 4 days ago

I made a small change to get rid of Step associated trait bound and use MaliciousSteps concrete type. It turns out (thanks sharded shuffle) that it is not possible to provide this type when working with generic contexts, unless we want extra bounds on it.

As we use malicious steps anyway in both implementations, it is just easier to manage this way