Пример #1
0
        public Web3EthApi(IStateReader stateReader,
                          IDeltaResolver deltaResolver,
                          IDeltaCache deltaCache,
                          IDeltaExecutor executor,
                          IStorageProvider storageProvider,
                          IStateProvider stateProvider,
                          ITransactionRepository receipts,
                          ITransactionReceivedEvent transactionReceived,
                          IPeerRepository peerRepository,
                          IMempool <PublicEntryDao> mempoolRepository,
                          IDfsService dfsService,
                          IHashProvider hashProvider,
                          SyncState syncState,
                          IMapperProvider mapperProvider,
                          IPeerSettings peerSettings)
        {
            _receipts            = receipts;
            _transactionReceived = transactionReceived ?? throw new ArgumentNullException(nameof(transactionReceived));
            HashProvider         = hashProvider;
            _peerId            = peerSettings.PeerId;
            _mempoolRepository = mempoolRepository;
            PeerRepository     = peerRepository;
            _mapperProvider    = mapperProvider;

            StateReader     = stateReader ?? throw new ArgumentNullException(nameof(stateReader));
            DeltaResolver   = deltaResolver ?? throw new ArgumentNullException(nameof(deltaResolver));
            DeltaCache      = deltaCache ?? throw new ArgumentNullException(nameof(deltaCache));
            Executor        = executor ?? throw new ArgumentNullException(nameof(executor));
            StorageProvider = storageProvider ?? throw new ArgumentNullException(nameof(storageProvider));
            StateProvider   = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
            DfsService      = dfsService;
            SyncState       = syncState;
        }
Пример #2
0
 public LedgerController(IDeltaHashProvider deltaHashProvider, IDfsService dfsService, IMapperProvider mapperProvider, ILogger logger)
 {
     _deltaHashProvider = deltaHashProvider;
     _dfsService        = dfsService;
     _mapperProvider    = mapperProvider;
     _logger            = logger;
 }
Пример #3
0
        public CatalystNodePoa(IKeySigner keySigner,
                               IPeerService peer,
                               IConsensus consensus,
                               IDfsService dfsService,
                               ILedger ledger,
                               ILogger logger,
                               IPeerClient peerClient,
                               IPeerSettings peerSettings,
                               IMempool <PublicEntryDao> memPool,
                               ISynchroniser synchronizer,
                               IPeerRepository peerRepository,
                               IContract contract = null)
        {
            Guard.Argument(peerRepository, nameof(peerRepository)).NotNull();

            _peer           = peer;
            _peerClient     = peerClient;
            _peerSettings   = peerSettings;
            Consensus       = consensus;
            _dfsService     = dfsService;
            _ledger         = ledger;
            _keySigner      = keySigner;
            _logger         = logger;
            _memPool        = memPool;
            _contract       = contract;
            _synchronizer   = synchronizer;
            _peerRepository = peerRepository;

            var privateKey = keySigner.KeyStore.KeyStoreDecrypt(KeyRegistryTypes.DefaultKey);

            _publicKey = keySigner.CryptoContext.GetPublicKeyFromPrivateKey(privateKey);
        }
Пример #4
0
 public DeltaHubWithFastRetryPolicy(IBroadcastManager broadcastManager,
                                    IPeerSettings peerSettings,
                                    IDfsService dfsService,
                                    IHashProvider hashProvider,
                                    ILogger logger) : base(broadcastManager, peerSettings, dfsService, hashProvider, logger)
 {
 }
Пример #5
0
        public async Task Put_Informs_Bitswap()
        {
            _dfs = TestDfs.GetTestDfs(null, "sha2-256");
            await _dfs.StartAsync();

            try
            {
                var data = Guid.NewGuid().ToByteArray();
                var cid  = new Cid
                {
                    Hash = MultiHash.ComputeHash(data)
                };

                var cts = new CancellationTokenSource();
                cts.CancelAfter(20000);

                var wantTask = _dfs.BitSwapApi.GetAsync(cid, cts.Token);
                var cid1     = await _dfs.BlockApi.PutAsync(data, cancel : cts.Token);

                Assert.AreEqual(cid, cid1);
                Assert.AreEqual(cid, wantTask.Result.Id);
                Assert.AreEqual(data.Length, wantTask.Result.Size);
                Assert.AreEqual(data, wantTask.Result.DataBytes);
            }
            finally
            {
                await _dfs.StopAsync();
            }
        }
Пример #6
0
        public PoaTestNode(string name,
                           IPrivateKey privateKey,
                           IPeerSettings nodeSettings,
                           IDfsService dfsService,
                           IEnumerable <PeerId> knownPeerIds,
                           IFileSystem parentTestFileSystem)
        {
            Name          = name;
            _nodeSettings = nodeSettings;

            _nodeDirectory = parentTestFileSystem.GetCatalystDataDir();

            _dfsService = dfsService;

            _rpcSettings = RpcSettingsHelper.GetRpcServerSettings(nodeSettings.Port + 100);
            _nodePeerId  = nodeSettings.PeerId;

            _memPool        = new Mempool(new MempoolService(new InMemoryRepository <PublicEntryDao, string>()));
            _peerRepository = new PeerRepository(new InMemoryRepository <Peer, string>());
            var peersInRepo = knownPeerIds.Select(p => new Peer
            {
                PeerId    = p,
                IsPoaNode = true,
                LastSeen  = DateTime.UtcNow
            }).ToList();

            _peerRepository.Add(peersInRepo);

            _deltaByNumber = new DeltaByNumberRepository(new InMemoryRepository <DeltaByNumber, string>());

            _containerProvider = new ContainerProvider(new[]
            {
                Constants.NetworkConfigFile(NetworkType.Devnet),
                Constants.SerilogJsonConfigFile
            }
                                                       .Select(f => Path.Combine(Constants.ConfigSubFolder, f)), parentTestFileSystem, TestContext.CurrentContext);

            RegisterNodeDependencies(_containerProvider.ContainerBuilder,
                                     excludedModules: new List <Type>
            {
                typeof(ApiModule),
                typeof(RpcServerModule)
            }
                                     );
            _containerProvider.ConfigureContainerBuilder(true, true);
            OverrideContainerBuilderRegistrations();

            _scope = _containerProvider.Container.BeginLifetimeScope(Name);
            _node  = _scope.Resolve <ICatalystNode>();

            var keyStore    = _scope.Resolve <IKeyStore>();
            var keyRegistry = _scope.Resolve <IKeyRegistry>();

            keyRegistry.RemoveItemFromRegistry(KeyRegistryTypes.DefaultKey);
            keyRegistry.AddItemToRegistry(KeyRegistryTypes.DefaultKey, privateKey);

            keyStore.KeyStoreEncryptAsync(privateKey, nodeSettings.NetworkType, KeyRegistryTypes.DefaultKey)
            .ConfigureAwait(false).GetAwaiter()
            .GetResult();
        }
 /// <summary>Initializes a new instance of the <see cref="AddFileToDfsRequestObserver" /> class.</summary>
 /// <param name="dfsService">The DFS.</param>
 /// <param name="peerSettings"></param>
 /// <param name="fileTransferFactory">The upload file transfer factory.</param>
 /// <param name="logger">The logger.</param>
 public GetFileFromDfsRequestObserver(IDfsService dfsService,
                                      IPeerSettings peerSettings,
                                      IUploadFileTransferFactory fileTransferFactory,
                                      ILogger logger) : base(logger, peerSettings)
 {
     _fileTransferFactory = fileTransferFactory;
     _dfsService          = dfsService;
 }
Пример #8
0
        public void Init()
        {
            _hashProvider     = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256"));
            _broadcastManager = Substitute.For <IBroadcastManager>();
            var logger = Substitute.For <ILogger>();

            _peerId     = PeerIdHelper.GetPeerId("me");
            _dfsService = Substitute.For <IDfsService>();
            _hub        = new DeltaHubWithFastRetryPolicy(_broadcastManager, _peerId.ToSubstitutedPeerSettings(), _dfsService, _hashProvider, logger);
        }
Пример #9
0
        public void Init()
        {
            _hashProvider        = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256"));
            _fileTransferFactory = Substitute.For <IUploadFileTransferFactory>();
            _dfsService          = Substitute.For <IDfsService>();
            var peerSettings = PeerIdHelper.GetPeerId("test").ToSubstitutedPeerSettings();

            _observer = new GetFileFromDfsRequestObserver(_dfsService, peerSettings, _fileTransferFactory,
                                                          Substitute.For <ILogger>());
        }
Пример #10
0
 /// <summary>Initializes a new instance of the <see cref="AddFileToDfsRequestObserver" /> class.</summary>
 /// <param name="dfsService">The DFS.</param>
 /// <param name="peerSettings"></param>
 /// <param name="fileTransferFactory">The download file transfer factory.</param>
 /// <param name="hashProvider"></param>
 /// <param name="logger">The logger.</param>
 public AddFileToDfsRequestObserver(IDfsService dfsService,
                                    IPeerSettings peerSettings,
                                    IDownloadFileTransferFactory fileTransferFactory,
                                    IHashProvider hashProvider,
                                    ILogger logger) : base(logger, peerSettings)
 {
     _fileTransferFactory = fileTransferFactory;
     _dfsService          = dfsService;
     _hashProvider        = hashProvider;
 }
Пример #11
0
        public void Init()
        {
            var hashingAlgorithm = HashingAlgorithm.GetAlgorithmMetadata("keccak-256");

            _hashProvider = new HashProvider(hashingAlgorithm);
            _dfsService   = Substitute.For <IDfsService>();
            _logger       = Substitute.For <ILogger>();

            _dfsReader = new DeltaDfsReader(_dfsService, _logger);
        }
        public void Init()
        {
            Setup(TestContext.CurrentContext);

            _hashProvider        = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256"));
            _logger              = Substitute.For <ILogger>();
            _fakeContext         = Substitute.For <IChannelHandlerContext>();
            _fileDownloadFactory = new DownloadFileTransferFactory(_logger);
            _logger              = Substitute.For <ILogger>();
            _dfsService          = Substitute.For <IDfsService>();
        }
Пример #13
0
        public void Init()
        {
            var fileSystem1 = Substitute.For <IFileSystem>();

            fileSystem1.GetCatalystDataDir().Returns(new DirectoryInfo(Path.Combine(Environment.CurrentDirectory,
                                                                                    $"dfs1-_{DateTime.Now:yyMMddHHmmssffff}")));

            var fileSystem2 = Substitute.For <IFileSystem>();

            fileSystem2.GetCatalystDataDir().Returns(new DirectoryInfo(Path.Combine(Environment.CurrentDirectory,
                                                                                    $"dfs2-_{DateTime.Now:yyMMddHHmmssffff}")));

            _dfsService      = TestDfs.GetTestDfs(fileSystem1);
            _dfsServiceOther = TestDfs.GetTestDfs(fileSystem2);
        }
Пример #14
0
        public void Init()
        {
            this.Setup(TestContext.CurrentContext);
            ContainerProvider.Container.Resolve <IHashProvider>();

            var passwordReader = Substitute.For <IPasswordManager>();

            passwordReader.RetrieveOrPromptAndAddPasswordToRegistry(Arg.Any <PasswordRegistryTypes>(), Arg.Any <string>())
            .Returns(TestPasswordReader.BuildSecureStringPassword("abcd"));

            Substitute.For <ILogger>();

            _dfs1 = TestDfs.GetTestDfs();
            _dfs2 = TestDfs.GetTestDfs();
        }
Пример #15
0
        public DeltaHub(IBroadcastManager broadcastManager,
                        IPeerSettings peerSettings,
                        IDfsService dfsService,
                        IHashProvider hashProvider,
                        ILogger logger)
        {
            _broadcastManager = broadcastManager;
            _peerId           = peerSettings.PeerId;
            _dfsService       = dfsService;
            _hashProvider     = hashProvider;
            _logger           = logger;

            DfsRetryPolicy = Polly.Policy <IFileSystemNode> .Handle <Exception>()
                             .WaitAndRetryAsync(4, retryAttempt =>
                                                TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)));
        }
Пример #16
0
        public void Init()
        {
            _hashProvider     = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256"));
            _manualResetEvent = new ManualResetEvent(false);
            _senderIdentifier = PeerIdHelper.GetPeerId("sender");
            var peerSettings = _senderIdentifier.ToSubstitutedPeerSettings();

            _fakeDfsService = Substitute.For <IDfsService>();
            var logger = Substitute.For <ILogger>();

            _fakeContext                 = Substitute.For <IChannelHandlerContext>();
            _nodeFileTransferFactory     = Substitute.For <IDownloadFileTransferFactory>();
            _addFileToDfsRequestObserver = new AddFileToDfsRequestObserver(_fakeDfsService,
                                                                           peerSettings,
                                                                           _nodeFileTransferFactory,
                                                                           _hashProvider,
                                                                           logger);
        }
Пример #17
0
        public PeerSyncManager(IPeerClient peerClient,
                               IPeerRepository peerRepository,
                               IPeerService peerService,
                               IUserOutput userOutput,
                               IDeltaHeightWatcher deltaHeightWatcher,
                               IDfsService dfsService,
                               double threshold     = 0.5d,
                               int minimumPeers     = 2,
                               IScheduler scheduler = null)
        {
            _peerClient                   = peerClient;
            _peerRepository               = peerRepository;
            _peerService                  = peerService;
            _userOutput                   = userOutput;
            _deltaHeightWatcher           = deltaHeightWatcher;
            _dfsService                   = dfsService;
            _scoredDeltaIndexRangeSubject =
                new ReplaySubject <IEnumerable <DeltaIndex> >(1, scheduler ?? Scheduler.Default);
            ScoredDeltaIndexRange = _scoredDeltaIndexRangeSubject.AsObservable();

            _threshold    = threshold;
            _minimumPeers = minimumPeers;
        }
Пример #18
0
 /// <summary>
 ///   Creates a new controller.
 /// </summary>
 public KeyController(IDfsService dfs) : base(dfs)
 {
 }
Пример #19
0
 /// <summary>
 ///   Creates a new controller.
 /// </summary>
 public BootstrapController(IDfsService dfs) : base(dfs)
 {
 }
Пример #20
0
 /// <summary>
 ///     Creates a new controller.
 /// </summary>
 public BitSwapController(IDfsService dfs) : base(dfs)
 {
 }
Пример #21
0
 public DfsController(IMapper mapper, IDfsService dfsService)
 {
     this.mapper     = mapper;
     this.dfsService = dfsService;
 }
Пример #22
0
 /// <summary>
 ///   Creates a new controller.
 /// </summary>
 public BlockController(IDfsService dfs) : base(dfs)
 {
 }
Пример #23
0
 public BlockRepositoryApiTest()
 {
     ipfs = TestDfs.GetTestDfs();
 }
Пример #24
0
 public NameApiTest()
 {
     ipfs = TestDfs.GetTestDfs(null, "sha2-256");
 }
Пример #25
0
 /// <summary>
 ///   Creates a new controller.
 /// </summary>
 public DnsController(IDfsService dfs) : base(dfs)
 {
 }
Пример #26
0
        public DhtApiTest()
        {
            ipfs = TestDfs.GetTestDfs();

            _locaId = ipfs.LocalPeer.Id;
        }
Пример #27
0
 /// <summary>
 ///   Creates a new controller.
 /// </summary>
 public SwarmController(IDfsService dfs) : base(dfs)
 {
 }
Пример #28
0
 public PinApiTest()
 {
     _dfs = TestDfs.GetTestDfs();
 }
Пример #29
0
 /// <summary>
 ///     Creates a new controller.
 /// </summary>
 public PinController(IDfsService dfs) : base(dfs)
 {
 }
Пример #30
0
 /// <summary>
 ///   Creates a new controller.
 /// </summary>
 public BlockRepositoryController(IDfsService dfs) : base(dfs)
 {
 }