Пример #1
0
    public async Task ExecuteAsync(CancellationToken cancellationToken)
    {
        Logger.InitializeDefaults(Path.Combine(Global.DataDir, "Logs.txt"));
        Logger.LogSoftwareStarted("Wasabi Backend");

        AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
        TaskScheduler.UnobservedTaskException      += TaskScheduler_UnobservedTaskException;
        var configFilePath = Path.Combine(Global.DataDir, "Config.json");
        var config         = new Config(configFilePath);

        config.LoadOrCreateDefaultFile();
        Logger.LogInfo("Config is successfully initialized.");

        var roundConfigFilePath = Path.Combine(Global.DataDir, "CcjRoundConfig.json");
        var roundConfig         = new CoordinatorRoundConfig(roundConfigFilePath);

        roundConfig.LoadOrCreateDefaultFile();
        Logger.LogInfo("RoundConfig is successfully initialized.");

        string host = config.GetBitcoinCoreRpcEndPoint().ToString(config.Network.RPCPort);
        var    rpc  = new RPCClient(
            authenticationString: config.BitcoinRpcConnectionString,
            hostOrUri: host,
            network: config.Network);

        var cachedRpc = new CachedRpcClient(rpc, Cache);
        await Global.InitializeAsync(config, roundConfig, cachedRpc, cancellationToken);

        try
        {
            await WebsiteTorifier.CloneAndUpdateOnionIndexHtmlAsync();
        }
        catch (Exception ex)
        {
            Logger.LogWarning(ex);
        }
    }
Пример #2
0
 public InitConfigStartupTask(Global global, IMemoryCache cache, IWebHostEnvironment hostingEnvironment)
 {
     Global          = global;
     Cache           = cache;
     WebsiteTorifier = new WebsiteTorifier(hostingEnvironment.WebRootPath);
 }