示例#1
0
        public void Init(int numPlayers, int numQuorums, int numSlots, int quorumSize, QuorumBuildingMethod qbMethod, AdversaryModel model, Zp[] inputs, int prime)
        {
            switch (model)
            {
                case AdversaryModel.HonestButCurious:
                    Circuit = CreateHbcCircuit(numPlayers, numQuorums, numSlots, quorumSize, prime);
                    break;

                case AdversaryModel.Byzantine:
                    Circuit = CreateByzantineCircuit(numPlayers, numQuorums, numSlots, quorumSize, prime);
                    break;

                default:
                    throw new Exception("Unknown adversary model.");
            }
            base.Init(numPlayers, numQuorums, numSlots, quorumSize, qbMethod, Circuit, inputs, prime);
        }
示例#2
0
        protected void Init(IList <int> processors, int numQuorums, int quorumSize, QuorumBuildingMethod method)
        {
            Debug.Assert(processors != null && processors.Count > 0, "Processors have not been created yet.");
            switch (method)
            {
            case QuorumBuildingMethod.RandomSampler:
                //qbuilder = new StaticSampler(this, processors, numQuorums, quorumSize);
                break;

            case QuorumBuildingMethod.AlmostEverywhereBA:

                //qbuilder = new AlmostEverywhereProtocol(Id, processors, Send);
                break;

            case QuorumBuildingMethod.CuckooRule:

                //qbuilder = new CuckooRule(Id, processors, Send);
                break;

            default:
                throw new NotSupportedException();
            }
            qbuilder.QbFinished += new QbFinishHandler(OnQbFinish);
        }
示例#3
0
        public void Init(int numPlayers, int numQuorums, int numSlots, int quorumSize, QuorumBuildingMethod qbMethod, Circuit circuit, Zp[] inputs, int prime)
        {
            // create and init players
            var players = AddNewParties(numPlayers);

            for (int i = 0; i < numPlayers; i++)
            {
                players[i].Init(circuit, inputs[i], numSlots, PartyIds, numQuorums, quorumSize, qbMethod);
            }

            IsInitialized = true;
        }
示例#4
0
        public void Init(int numPlayers, int numQuorums, int numSlots, int quorumSize, QuorumBuildingMethod qbMethod, AdversaryModel model, Zp[] inputs, int prime)
        {
            switch (model)
            {
            case AdversaryModel.HonestButCurious:
                Circuit = CreateHbcCircuit(numPlayers, numQuorums, numSlots, quorumSize, prime);
                break;

            case AdversaryModel.Byzantine:
                Circuit = CreateByzantineCircuit(numPlayers, numQuorums, numSlots, quorumSize, prime);
                break;

            default:
                throw new Exception("Unknown adversary model.");
            }
            base.Init(numPlayers, numQuorums, numSlots, quorumSize, qbMethod, Circuit, inputs, prime);
        }
示例#5
0
 public virtual void Init(Circuit circuit, Zp input, int numSlots,
                          IList <int> players, int numQuorums, int quorumSize, QuorumBuildingMethod qbMethod)
 {
     base.Init(players, numQuorums, quorumSize, qbMethod);
     Protocol = new DkmsProtocol(circuit, this, players, input, numSlots, null);
 }