Set a longer timeout for the cache for /rates, update NBXPlorer, bump

This commit is contained in:
nicolas.dorier
2018-02-01 21:22:22 +01:00
parent a464a8702b
commit d873a1a545
8 changed files with 14 additions and 12 deletions

View File

@@ -37,7 +37,7 @@ services:
- postgres - postgres
nbxplorer: nbxplorer:
image: nicolasdorier/nbxplorer:1.0.1.3 image: nicolasdorier/nbxplorer:1.0.1.10
ports: ports:
- "32838:32838" - "32838:32838"
expose: expose:

View File

@@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework> <TargetFramework>netcoreapp2.0</TargetFramework>
<Version>1.0.1.18</Version> <Version>1.0.1.19</Version>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Remove="Build\dockerfiles\**" /> <Compile Remove="Build\dockerfiles\**" />
@@ -21,10 +21,10 @@
<PackageReference Include="Hangfire.MemoryStorage" Version="1.5.2" /> <PackageReference Include="Hangfire.MemoryStorage" Version="1.5.2" />
<PackageReference Include="Hangfire.PostgreSql" Version="1.4.8.1" /> <PackageReference Include="Hangfire.PostgreSql" Version="1.4.8.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.2" /> <PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.2" />
<PackageReference Include="NBitcoin" Version="4.0.0.52" /> <PackageReference Include="NBitcoin" Version="4.0.0.54" />
<PackageReference Include="NBitpayClient" Version="1.0.0.16" /> <PackageReference Include="NBitpayClient" Version="1.0.0.16" />
<PackageReference Include="DBreeze" Version="1.87.0" /> <PackageReference Include="DBreeze" Version="1.87.0" />
<PackageReference Include="NBXplorer.Client" Version="1.0.1.2" /> <PackageReference Include="NBXplorer.Client" Version="1.0.1.8" />
<PackageReference Include="NicolasDorier.CommandLine" Version="1.0.0.1" /> <PackageReference Include="NicolasDorier.CommandLine" Version="1.0.0.1" />
<PackageReference Include="NicolasDorier.CommandLine.Configuration" Version="1.0.0.2" /> <PackageReference Include="NicolasDorier.CommandLine.Configuration" Version="1.0.0.2" />
<PackageReference Include="NicolasDorier.StandardConfiguration" Version="1.0.0.13" /> <PackageReference Include="NicolasDorier.StandardConfiguration" Version="1.0.0.13" />

View File

@@ -119,7 +119,7 @@ namespace BTCPayServer.Controllers
.Select(derivationStrategy => (Wallet: _WalletProvider.GetWallet(derivationStrategy.Network), .Select(derivationStrategy => (Wallet: _WalletProvider.GetWallet(derivationStrategy.Network),
DerivationStrategy: derivationStrategy.DerivationStrategyBase, DerivationStrategy: derivationStrategy.DerivationStrategyBase,
Network: derivationStrategy.Network, Network: derivationStrategy.Network,
RateProvider: _RateProviders.GetRateProvider(derivationStrategy.Network), RateProvider: _RateProviders.GetRateProvider(derivationStrategy.Network, false),
FeeRateProvider: _FeeProviderFactory.CreateFeeProvider(derivationStrategy.Network))) FeeRateProvider: _FeeProviderFactory.CreateFeeProvider(derivationStrategy.Network)))
.Where(_ => _.Wallet != null && .Where(_ => _.Wallet != null &&
_.FeeRateProvider != null && _.FeeRateProvider != null &&
@@ -164,7 +164,7 @@ namespace BTCPayServer.Controllers
#pragma warning disable CS0618 #pragma warning disable CS0618
var btc = _NetworkProvider.BTC; var btc = _NetworkProvider.BTC;
var feeProvider = _FeeProviderFactory.CreateFeeProvider(btc); var feeProvider = _FeeProviderFactory.CreateFeeProvider(btc);
var rateProvider = storeBlob.ApplyRateRules(btc, _RateProviders.GetRateProvider(btc)); var rateProvider = storeBlob.ApplyRateRules(btc, _RateProviders.GetRateProvider(btc, false));
if (feeProvider != null && rateProvider != null) if (feeProvider != null && rateProvider != null)
{ {
var gettingFee = feeProvider.GetFeeRateAsync(); var gettingFee = feeProvider.GetFeeRateAsync();

View File

@@ -49,7 +49,7 @@ namespace BTCPayServer.Controllers
var network = _NetworkProvider.GetNetwork(cryptoCode); var network = _NetworkProvider.GetNetwork(cryptoCode);
if (network == null) if (network == null)
return NotFound(); return NotFound();
var rateProvider = _RateProviderFactory.GetRateProvider(network); var rateProvider = _RateProviderFactory.GetRateProvider(network, true);
if (rateProvider == null) if (rateProvider == null)
return NotFound(); return NotFound();

View File

@@ -258,7 +258,7 @@ namespace BTCPayServer.Controllers
for (int i = 0; i < 10; i++) for (int i = 0; i < 10; i++)
{ {
var address = line.Derive((uint)i); var address = line.Derive((uint)i);
vm.AddressSamples.Add((line.Path.Derive((uint)i).ToString(), address.ScriptPubKey.GetDestinationAddress(network.NBitcoinNetwork).ToString())); vm.AddressSamples.Add((DerivationStrategyBase.GetKeyPath(DerivationFeature.Deposit).Derive((uint)i).ToString(), address.ScriptPubKey.GetDestinationAddress(network.NBitcoinNetwork).ToString()));
} }
} }
catch catch

View File

@@ -11,6 +11,7 @@ namespace BTCPayServer.Services.Rates
{ {
IMemoryCache _Cache; IMemoryCache _Cache;
ConcurrentDictionary<string, IRateProvider> _Providers = new ConcurrentDictionary<string, IRateProvider>(); ConcurrentDictionary<string, IRateProvider> _Providers = new ConcurrentDictionary<string, IRateProvider>();
ConcurrentDictionary<string, IRateProvider> _LongCacheProviders = new ConcurrentDictionary<string, IRateProvider>();
public IMemoryCache Cache public IMemoryCache Cache
{ {
@@ -30,9 +31,10 @@ namespace BTCPayServer.Services.Rates
public IRateProvider RateProvider { get; set; } public IRateProvider RateProvider { get; set; }
public TimeSpan CacheSpan { get; set; } = TimeSpan.FromMinutes(1.0); public TimeSpan CacheSpan { get; set; } = TimeSpan.FromMinutes(1.0);
public IRateProvider GetRateProvider(BTCPayNetwork network) public TimeSpan LongCacheSpan { get; set; } = TimeSpan.FromMinutes(15.0);
public IRateProvider GetRateProvider(BTCPayNetwork network, bool longCache)
{ {
return _Providers.GetOrAdd(network.CryptoCode, new CachedRateProvider(network.CryptoCode, RateProvider ?? network.DefaultRateProvider, _Cache) { CacheSpan = CacheSpan }); return (longCache ? _LongCacheProviders : _Providers).GetOrAdd(network.CryptoCode, new CachedRateProvider(network.CryptoCode, RateProvider ?? network.DefaultRateProvider, _Cache) { CacheSpan = longCache ? LongCacheSpan : CacheSpan });
} }
} }
} }

View File

@@ -7,6 +7,6 @@ namespace BTCPayServer.Services.Rates
{ {
public interface IRateProviderFactory public interface IRateProviderFactory
{ {
IRateProvider GetRateProvider(BTCPayNetwork network); IRateProvider GetRateProvider(BTCPayNetwork network, bool longCache);
} }
} }

View File

@@ -18,7 +18,7 @@ namespace BTCPayServer.Services.Rates
{ {
_Mocks.Add(mock); _Mocks.Add(mock);
} }
public IRateProvider GetRateProvider(BTCPayNetwork network) public IRateProvider GetRateProvider(BTCPayNetwork network, bool longCache)
{ {
return _Mocks.FirstOrDefault(m => m.CryptoCode == network.CryptoCode); return _Mocks.FirstOrDefault(m => m.CryptoCode == network.CryptoCode);
} }