Exemplo n.º 1
0
        public DeltaBuilderTests()
        {
            _hashProvider = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("blake2b-256"));

            _random = new Random();

            _randomFactory = Substitute.For <IDeterministicRandomFactory>();
            _randomFactory.GetDeterministicRandomFromSeed(Arg.Any <byte[]>())
            .Returns(ci => new IsaacRandom(((byte[])ci[0]).ToHex()));

            _producerId   = PeerIdHelper.GetPeerId("producer");
            _peerSettings = _producerId.ToSubstitutedPeerSettings();

            _previousDeltaHash = _hashProvider.ComputeUtf8MultiHash("previousDelta").CreateCid();
            _zeroCoinbaseEntry = new CoinbaseEntry
            {
                Amount            = UInt256.Zero.ToUint256ByteString(),
                ReceiverPublicKey = _producerId.PublicKey.ToByteString()
            };

            _logger = Substitute.For <ILogger>();

            _cache = Substitute.For <IDeltaCache>();

            _dateTimeProvider = new DateTimeProvider();
        }
Exemplo n.º 2
0
        public void Init()
        {
            _hashProvider = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256"));

            _random = new Random(1);

            _randomFactory = Substitute.For <IDeterministicRandomFactory>();
            _randomFactory.GetDeterministicRandomFromSeed(Arg.Any <byte[]>())
            .Returns(ci => new IsaacRandom(((byte[])ci[0]).ToHex()));

            _producerId   = PeerIdHelper.GetPeerId("producer");
            _peerSettings = _producerId.ToSubstitutedPeerSettings();

            _previousDeltaHash = _hashProvider.ComputeUtf8MultiHash("previousDelta").ToCid();
            _zeroCoinbaseEntry = new CoinbaseEntry
            {
                Amount            = UInt256.Zero.ToUint256ByteString(),
                ReceiverPublicKey = _producerId.PublicKey.ToByteString()
            };

            _logger = Substitute.For <ILogger>();

            _cache = Substitute.For <IDeltaCache>();

            Delta previousDelta = new Delta();

            previousDelta.StateRoot = ByteString.CopyFrom(Keccak.EmptyTreeHash.Bytes);
            _cache.TryGetOrAddConfirmedDelta(Arg.Any <Cid>(), out Arg.Any <Delta>()).Returns(x =>
            {
                x[1] = previousDelta;
                return(true);
            });

            _dateTimeProvider = new DateTimeProvider();

            IDb             codeDb       = new MemDb();
            ISnapshotableDb stateDb      = new StateDb();
            ISpecProvider   specProvider = new CatalystSpecProvider();

            _cryptoContext = new FfiWrapper();
            _stateProvider = new StateProvider(stateDb, codeDb, LimboLogs.Instance);
            IStorageProvider  storageProvider = new StorageProvider(stateDb, _stateProvider, LimboLogs.Instance);
            KatVirtualMachine virtualMachine  = new KatVirtualMachine(_stateProvider,
                                                                      storageProvider,
                                                                      new StateUpdateHashProvider(),
                                                                      specProvider,
                                                                      new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256")),
                                                                      new FfiWrapper(),
                                                                      LimboLogs.Instance);

            _deltaExecutor = new DeltaExecutor(specProvider,
                                               _stateProvider,
                                               storageProvider,
                                               virtualMachine,
                                               _cryptoContext,
                                               _logger);
        }
Exemplo n.º 3
0
 public CandidateBuilderStep(PeerId producerUniqueId,
                             IDeterministicRandomFactory randomFactory,
                             IHashProvider hashProvider,
                             ILogger logger)
 {
     _producerUniqueId = producerUniqueId ?? throw new ArgumentNullException(nameof(producerUniqueId));
     _randomFactory    = randomFactory ?? throw new ArgumentNullException(nameof(randomFactory));
     _hashProvider     = hashProvider ?? throw new ArgumentNullException(nameof(hashProvider));
     _logger           = logger ?? throw new ArgumentNullException(nameof(logger));
 }
 public DeltaBuilder(IDeltaTransactionRetriever transactionRetriever,
                     IDeterministicRandomFactory randomFactory,
                     IHashProvider hashProvider,
                     IPeerSettings peerSettings,
                     IDeltaCache deltaCache,
                     IDateTimeProvider dateTimeProvider,
                     ILogger logger)
 {
     _transactionRetriever = transactionRetriever;
     _randomFactory        = randomFactory;
     _hashProvider         = hashProvider;
     _producerUniqueId     = peerSettings.PeerId;
     _deltaCache           = deltaCache;
     _dateTimeProvider     = dateTimeProvider;
     _logger = logger;
 }