コード例 #1
0
ファイル: BinaryAgreement.cs プロジェクト: LAToken/lachain
 public BinaryAgreement(
     BinaryAgreementId agreementId, IPublicConsensusKeySet wallet, IConsensusBroadcaster broadcaster)
     : base(wallet, agreementId, broadcaster)
 {
     _agreementId  = agreementId;
     _requested    = ResultStatus.NotRequested;
     _currentEpoch = 0;
     _resultEpoch  = 0;
     _wasRepeat    = false;
 }
コード例 #2
0
ファイル: RootProtocol.cs プロジェクト: LAToken/lachain
 public RootProtocol(RootProtocolId id, IPublicConsensusKeySet wallet, ECDSAPrivateKey privateKey,
                     IConsensusBroadcaster broadcaster, IValidatorAttendanceRepository validatorAttendanceRepository,
                     ulong cycleDuration, bool useNewChainId) : base(wallet, id, broadcaster)
 {
     _keyPair = new EcdsaKeyPair(privateKey);
     _rootId  = id;
     _validatorAttendanceRepository = validatorAttendanceRepository;
     _cycleDuration = cycleDuration;
     _useNewChainId = useNewChainId;
 }
コード例 #3
0
ファイル: CommonSubset.cs プロジェクト: LAToken/lachain
 public CommonSubset(
     CommonSubsetId commonSubsetId, IPublicConsensusKeySet wallet, IConsensusBroadcaster broadcaster
     ) : base(wallet, commonSubsetId, broadcaster)
 {
     _commonSubsetId          = commonSubsetId;
     _binaryAgreementInput    = new bool?[N];
     _binaryAgreementResult   = new bool?[N];
     _reliableBroadcastResult = new EncryptedShare[N];
     _result = null;
 }
コード例 #4
0
ファイル: CommonCoin.cs プロジェクト: LAToken/lachain
 public CommonCoin(
     CoinId coinId, IPublicConsensusKeySet wallet, PrivateKeyShare privateKeyShare,
     IConsensusBroadcaster broadcaster
     ) : base(wallet, coinId, broadcaster)
 {
     _coinId          = coinId ?? throw new ArgumentNullException(nameof(coinId));
     _thresholdSigner = new ThresholdSigner(
         _coinId.ToBytes(), privateKeyShare, wallet.ThresholdSignaturePublicKeySet
         );
     _result = null;
 }
コード例 #5
0
ファイル: AbstractProtocol.cs プロジェクト: LAToken/lachain
 protected AbstractProtocol(
     IPublicConsensusKeySet wallet,
     IProtocolIdentifier id,
     IConsensusBroadcaster broadcaster
     )
 {
     _thread = new Thread(Start)
     {
         IsBackground = true
     };
     _thread.Start();
     Broadcaster = broadcaster;
     Id          = id;
     Wallet      = wallet;
 }
コード例 #6
0
 public ReliableBroadcast(
     ReliableBroadcastId broadcastId, IPublicConsensusKeySet wallet, IConsensusBroadcaster broadcaster) :
     base(wallet, broadcastId, broadcaster)
 {
     _broadcastId    = broadcastId;
     _echoMessages   = new ECHOMessage?[N];
     _readyMessages  = new ReadyMessage?[N];
     _sentValMessage = new bool[N];
     _requested      = ResultStatus.NotRequested;
     _merkleTreeSize = N;
     while ((_merkleTreeSize & (_merkleTreeSize - 1)) != 0)
     {
         _merkleTreeSize++; // increment while not power of two
     }
 }
コード例 #7
0
ファイル: HoneyBadger.cs プロジェクト: LAToken/lachain
        public HoneyBadger(HoneyBadgerId honeyBadgerId, IPublicConsensusKeySet wallet,
                           PrivateKey privateKey, IConsensusBroadcaster broadcaster)
            : base(wallet, honeyBadgerId, broadcaster)
        {
            _honeyBadgerId   = honeyBadgerId;
            _privateKey      = privateKey;
            _receivedShares  = new EncryptedShare[N];
            _decryptedShares = new ISet <PartiallyDecryptedShare> [N];
            for (var i = 0; i < N; ++i)
            {
                _decryptedShares[i] = new HashSet <PartiallyDecryptedShare>();
            }

            _taken     = new bool[N];
            _shares    = new IRawShare[N];
            _requested = ResultStatus.NotRequested;
        }
コード例 #8
0
ファイル: BinaryBroadcast.cs プロジェクト: LAToken/lachain
        public BinaryBroadcast(
            BinaryBroadcastId broadcastId, IPublicConsensusKeySet wallet, IConsensusBroadcaster broadcaster)
            : base(wallet, broadcastId, broadcaster)
        {
            _broadcastId = broadcastId;
            _requested   = ResultStatus.NotRequested;

            _binValues         = new BoolSet();
            _receivedValues    = new BoolSet[N];
            _playerSentAux     = new bool[N];
            _validatorSentConf = new bool[N];
            for (var i = 0; i < N; ++i)
            {
                _receivedValues[i] = new BoolSet();
            }
            _receivedCount      = new int[2];
            _receivedAux        = new int[2];
            _wasBvalBroadcasted = new bool[2];
            _confReceived       = new List <BoolSet>();
            _result             = null;
            _confSent           = false;
        }