diff --git a/src/FederationSetup/FederationSetup.csproj b/src/FederationSetup/FederationSetup.csproj
index 18824c7165..8a99449676 100644
--- a/src/FederationSetup/FederationSetup.csproj
+++ b/src/FederationSetup/FederationSetup.csproj
@@ -3,7 +3,7 @@
Exe
netcoreapp3.1
- 1.0.7.2
+ 1.0.9.4
Stratis Group Ltd.
diff --git a/src/FodyNlogAdapter/FodyNlogAdapter.csproj b/src/FodyNlogAdapter/FodyNlogAdapter.csproj
index cbe4ffec69..c170873a76 100644
--- a/src/FodyNlogAdapter/FodyNlogAdapter.csproj
+++ b/src/FodyNlogAdapter/FodyNlogAdapter.csproj
@@ -3,7 +3,7 @@
netcoreapp3.1
FodyNlogAdapter
- 1.0.7.2
+ 1.0.9.4
False
Stratis Group Ltd.
Stratis.Utils.FodyNlogAdapter
diff --git a/src/NBitcoin/ChainStore.cs b/src/NBitcoin/ChainStore.cs
index 677ab38e17..17b0ec09ea 100644
--- a/src/NBitcoin/ChainStore.cs
+++ b/src/NBitcoin/ChainStore.cs
@@ -4,7 +4,7 @@
namespace NBitcoin
{
- public interface IChainStore
+ public interface IChainStore : IDisposable
{
BlockHeader GetHeader(ChainedHeader chainedHeader, uint256 hash);
@@ -90,5 +90,9 @@ public void PutChainData(IEnumerable items)
foreach (ChainDataItem item in items)
this.chainData.TryAdd(item.Height, item.Data);
}
+
+ public void Dispose()
+ {
+ }
}
}
diff --git a/src/NBitcoin/NBitcoin.csproj b/src/NBitcoin/NBitcoin.csproj
index 360631cae1..c4bf23121a 100644
--- a/src/NBitcoin/NBitcoin.csproj
+++ b/src/NBitcoin/NBitcoin.csproj
@@ -7,7 +7,7 @@
- 4.0.0.81
+ 4.0.0.82
diff --git a/src/Stratis.Bitcoin.Api.Tests/ApiSettingsTest.cs b/src/Stratis.Bitcoin.Api.Tests/ApiSettingsTest.cs
index 9282939dad..68e35b79a9 100644
--- a/src/Stratis.Bitcoin.Api.Tests/ApiSettingsTest.cs
+++ b/src/Stratis.Bitcoin.Api.Tests/ApiSettingsTest.cs
@@ -14,8 +14,10 @@ namespace Stratis.Bitcoin.Api.Tests
///
/// Tests the settings for the API features.
///
- public class ApiSettingsTest : TestBase
+ public class ApiSettingsTest : TestBase, IDisposable
{
+ private IFullNode fullNode;
+
public ApiSettingsTest() : base(KnownNetworks.Main)
{
}
@@ -266,14 +268,20 @@ public void GivenUseHttpsAndNoCertificateFilePath_ThenShouldThrowConfigurationEx
settingsAction.Should().Throw();
}
- private static ApiSettings FullNodeSetup(NodeSettings nodeSettings)
+ private ApiSettings FullNodeSetup(NodeSettings nodeSettings)
{
- return new FullNodeBuilder()
+ this.fullNode = new FullNodeBuilder()
.UseNodeSettings(nodeSettings)
.UseApi()
.UsePowConsensus()
- .Build()
- .NodeService();
+ .Build();
+
+ return this.fullNode.NodeService();
+ }
+
+ public void Dispose()
+ {
+ this.fullNode.NodeService().Dispose();
}
}
}
diff --git a/src/Stratis.Bitcoin.Cli/Stratis.Bitcoin.Cli.csproj b/src/Stratis.Bitcoin.Cli/Stratis.Bitcoin.Cli.csproj
index 204b7b347f..0a98506414 100644
--- a/src/Stratis.Bitcoin.Cli/Stratis.Bitcoin.Cli.csproj
+++ b/src/Stratis.Bitcoin.Cli/Stratis.Bitcoin.Cli.csproj
@@ -3,7 +3,7 @@
Exe
netcoreapp3.1
- 1.0.7.2
+ 1.0.9.4
Stratis Group Ltd.
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.Api/Stratis.Bitcoin.Features.Api.csproj b/src/Stratis.Bitcoin.Features.Api/Stratis.Bitcoin.Features.Api.csproj
index f55ffab7f4..4298c8014f 100644
--- a/src/Stratis.Bitcoin.Features.Api/Stratis.Bitcoin.Features.Api.csproj
+++ b/src/Stratis.Bitcoin.Features.Api/Stratis.Bitcoin.Features.Api.csproj
@@ -6,7 +6,7 @@
Stratis.Bitcoin.Features.Api
Library
Stratis.Features.Api
- 1.0.9.0
+ 1.0.9.4
False
library
diff --git a/src/Stratis.Bitcoin.Features.BlockStore/Stratis.Bitcoin.Features.BlockStore.csproj b/src/Stratis.Bitcoin.Features.BlockStore/Stratis.Bitcoin.Features.BlockStore.csproj
index 7d390aaee7..24b4fbb6d0 100644
--- a/src/Stratis.Bitcoin.Features.BlockStore/Stratis.Bitcoin.Features.BlockStore.csproj
+++ b/src/Stratis.Bitcoin.Features.BlockStore/Stratis.Bitcoin.Features.BlockStore.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.ColdStaking/Stratis.Bitcoin.Features.ColdStaking.csproj b/src/Stratis.Bitcoin.Features.ColdStaking/Stratis.Bitcoin.Features.ColdStaking.csproj
index 6211506257..d3fda23724 100644
--- a/src/Stratis.Bitcoin.Features.ColdStaking/Stratis.Bitcoin.Features.ColdStaking.csproj
+++ b/src/Stratis.Bitcoin.Features.ColdStaking/Stratis.Bitcoin.Features.ColdStaking.csproj
@@ -7,7 +7,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.Consensus/Stratis.Bitcoin.Features.Consensus.csproj b/src/Stratis.Bitcoin.Features.Consensus/Stratis.Bitcoin.Features.Consensus.csproj
index 4855707279..add8119808 100644
--- a/src/Stratis.Bitcoin.Features.Consensus/Stratis.Bitcoin.Features.Consensus.csproj
+++ b/src/Stratis.Bitcoin.Features.Consensus/Stratis.Bitcoin.Features.Consensus.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.Dns/Stratis.Bitcoin.Features.Dns.csproj b/src/Stratis.Bitcoin.Features.Dns/Stratis.Bitcoin.Features.Dns.csproj
index fd7dd4ba85..e9375679cd 100644
--- a/src/Stratis.Bitcoin.Features.Dns/Stratis.Bitcoin.Features.Dns.csproj
+++ b/src/Stratis.Bitcoin.Features.Dns/Stratis.Bitcoin.Features.Dns.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.Interop/Stratis.Bitcoin.Features.Interop.csproj b/src/Stratis.Bitcoin.Features.Interop/Stratis.Bitcoin.Features.Interop.csproj
index eafcd307fd..4ef4ac7ca1 100644
--- a/src/Stratis.Bitcoin.Features.Interop/Stratis.Bitcoin.Features.Interop.csproj
+++ b/src/Stratis.Bitcoin.Features.Interop/Stratis.Bitcoin.Features.Interop.csproj
@@ -2,7 +2,7 @@
netcoreapp3.1
- 1.0.9.0
+ 1.0.9.4
Stratis Group Ltd.
Stratis.Features.Interop
Stratis.Features.Interop
diff --git a/src/Stratis.Bitcoin.Features.LightWallet/Stratis.Bitcoin.Features.LightWallet.csproj b/src/Stratis.Bitcoin.Features.LightWallet/Stratis.Bitcoin.Features.LightWallet.csproj
index fbb223252f..d2fd1a4780 100644
--- a/src/Stratis.Bitcoin.Features.LightWallet/Stratis.Bitcoin.Features.LightWallet.csproj
+++ b/src/Stratis.Bitcoin.Features.LightWallet/Stratis.Bitcoin.Features.LightWallet.csproj
@@ -7,7 +7,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.MemoryPool/Stratis.Bitcoin.Features.MemoryPool.csproj b/src/Stratis.Bitcoin.Features.MemoryPool/Stratis.Bitcoin.Features.MemoryPool.csproj
index a6f014b9b8..1a63662b19 100644
--- a/src/Stratis.Bitcoin.Features.MemoryPool/Stratis.Bitcoin.Features.MemoryPool.csproj
+++ b/src/Stratis.Bitcoin.Features.MemoryPool/Stratis.Bitcoin.Features.MemoryPool.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
library
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.Miner/Stratis.Bitcoin.Features.Miner.csproj b/src/Stratis.Bitcoin.Features.Miner/Stratis.Bitcoin.Features.Miner.csproj
index 6910530703..9cf61ff269 100644
--- a/src/Stratis.Bitcoin.Features.Miner/Stratis.Bitcoin.Features.Miner.csproj
+++ b/src/Stratis.Bitcoin.Features.Miner/Stratis.Bitcoin.Features.Miner.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.Notifications/Stratis.Bitcoin.Features.Notifications.csproj b/src/Stratis.Bitcoin.Features.Notifications/Stratis.Bitcoin.Features.Notifications.csproj
index 0d7c6d5814..8798669ae1 100644
--- a/src/Stratis.Bitcoin.Features.Notifications/Stratis.Bitcoin.Features.Notifications.csproj
+++ b/src/Stratis.Bitcoin.Features.Notifications/Stratis.Bitcoin.Features.Notifications.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.PoA.IntegrationTests.Common/Stratis.Bitcoin.Features.PoA.IntegrationTests.Common.csproj b/src/Stratis.Bitcoin.Features.PoA.IntegrationTests.Common/Stratis.Bitcoin.Features.PoA.IntegrationTests.Common.csproj
index 23c484f5c9..fe9320f91b 100644
--- a/src/Stratis.Bitcoin.Features.PoA.IntegrationTests.Common/Stratis.Bitcoin.Features.PoA.IntegrationTests.Common.csproj
+++ b/src/Stratis.Bitcoin.Features.PoA.IntegrationTests.Common/Stratis.Bitcoin.Features.PoA.IntegrationTests.Common.csproj
@@ -13,7 +13,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
diff --git a/src/Stratis.Bitcoin.Features.PoA/BasePoAFeatureConsensusRules/PoAHeaderSignatureRule.cs b/src/Stratis.Bitcoin.Features.PoA/BasePoAFeatureConsensusRules/PoAHeaderSignatureRule.cs
index 463120c42d..5ca5e216b7 100644
--- a/src/Stratis.Bitcoin.Features.PoA/BasePoAFeatureConsensusRules/PoAHeaderSignatureRule.cs
+++ b/src/Stratis.Bitcoin.Features.PoA/BasePoAFeatureConsensusRules/PoAHeaderSignatureRule.cs
@@ -1,10 +1,12 @@
using System.Collections.Generic;
+using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using NBitcoin;
using Stratis.Bitcoin.Base;
using Stratis.Bitcoin.Consensus;
using Stratis.Bitcoin.Consensus.Rules;
+using Stratis.Bitcoin.Utilities;
namespace Stratis.Bitcoin.Features.PoA.BasePoAFeatureConsensusRules
{
@@ -26,6 +28,8 @@ public class PoAHeaderSignatureRule : FullValidationConsensusRule
private Network network;
+ private HashHeightPair lastCheckPoint;
+
///
public override void Initialize()
{
@@ -41,10 +45,17 @@ public override void Initialize()
this.network = this.Parent.Network;
this.maxReorg = this.network.Consensus.MaxReorgLength;
+
+ KeyValuePair lastCheckPoint = engine.Network.Checkpoints.LastOrDefault();
+ this.lastCheckPoint = (lastCheckPoint.Value != null) ? new HashHeightPair(lastCheckPoint.Value.Hash, lastCheckPoint.Key) : null;
}
public override async Task RunAsync(RuleContext context)
{
+ // Only start validating at the last checkpoint block.
+ if (context.ValidationContext.ChainedHeaderToValidate.Height < (this.lastCheckPoint?.Height ?? 0))
+ return;
+
ChainedHeader chainedHeader = context.ValidationContext.ChainedHeaderToValidate;
var header = chainedHeader.Header as PoABlockHeader;
diff --git a/src/Stratis.Bitcoin.Features.PoA/Stratis.Bitcoin.Features.PoA.csproj b/src/Stratis.Bitcoin.Features.PoA/Stratis.Bitcoin.Features.PoA.csproj
index c7ae1b8ef9..c1f1506f2b 100644
--- a/src/Stratis.Bitcoin.Features.PoA/Stratis.Bitcoin.Features.PoA.csproj
+++ b/src/Stratis.Bitcoin.Features.PoA/Stratis.Bitcoin.Features.PoA.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.RPC/Stratis.Bitcoin.Features.RPC.csproj b/src/Stratis.Bitcoin.Features.RPC/Stratis.Bitcoin.Features.RPC.csproj
index 39a5af5470..cca62d77b4 100644
--- a/src/Stratis.Bitcoin.Features.RPC/Stratis.Bitcoin.Features.RPC.csproj
+++ b/src/Stratis.Bitcoin.Features.RPC/Stratis.Bitcoin.Features.RPC.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.SignalR/Stratis.Bitcoin.Features.SignalR.csproj b/src/Stratis.Bitcoin.Features.SignalR/Stratis.Bitcoin.Features.SignalR.csproj
index ca4179f18f..6ae3104a4a 100644
--- a/src/Stratis.Bitcoin.Features.SignalR/Stratis.Bitcoin.Features.SignalR.csproj
+++ b/src/Stratis.Bitcoin.Features.SignalR/Stratis.Bitcoin.Features.SignalR.csproj
@@ -1,7 +1,7 @@
netcoreapp3.1
- 1.0.9.0
+ 1.0.9.4
Stratis.Features.SignalR
Stratis.Features.SignalR
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.SmartContracts/Stratis.Bitcoin.Features.SmartContracts.csproj b/src/Stratis.Bitcoin.Features.SmartContracts/Stratis.Bitcoin.Features.SmartContracts.csproj
index 5df6fc35f1..1f5434f3c1 100644
--- a/src/Stratis.Bitcoin.Features.SmartContracts/Stratis.Bitcoin.Features.SmartContracts.csproj
+++ b/src/Stratis.Bitcoin.Features.SmartContracts/Stratis.Bitcoin.Features.SmartContracts.csproj
@@ -2,7 +2,7 @@
netcoreapp3.1
- 1.0.9.0
+ 1.0.9.4
Stratis Group Ltd.
Stratis.Features.SmartContracts
Stratis.Features.SmartContracts
diff --git a/src/Stratis.Bitcoin.Features.Wallet/Stratis.Bitcoin.Features.Wallet.csproj b/src/Stratis.Bitcoin.Features.Wallet/Stratis.Bitcoin.Features.Wallet.csproj
index 8ed6295963..b692f5ccb0 100644
--- a/src/Stratis.Bitcoin.Features.Wallet/Stratis.Bitcoin.Features.Wallet.csproj
+++ b/src/Stratis.Bitcoin.Features.Wallet/Stratis.Bitcoin.Features.Wallet.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.WatchOnlyWallet/Stratis.Bitcoin.Features.WatchOnlyWallet.csproj b/src/Stratis.Bitcoin.Features.WatchOnlyWallet/Stratis.Bitcoin.Features.WatchOnlyWallet.csproj
index 5fba3ca6fd..3aa77791f8 100644
--- a/src/Stratis.Bitcoin.Features.WatchOnlyWallet/Stratis.Bitcoin.Features.WatchOnlyWallet.csproj
+++ b/src/Stratis.Bitcoin.Features.WatchOnlyWallet/Stratis.Bitcoin.Features.WatchOnlyWallet.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.IntegrationTests.Common/Stratis.Bitcoin.IntegrationTests.Common.csproj b/src/Stratis.Bitcoin.IntegrationTests.Common/Stratis.Bitcoin.IntegrationTests.Common.csproj
index 23bdded8d1..6ab2b824c4 100644
--- a/src/Stratis.Bitcoin.IntegrationTests.Common/Stratis.Bitcoin.IntegrationTests.Common.csproj
+++ b/src/Stratis.Bitcoin.IntegrationTests.Common/Stratis.Bitcoin.IntegrationTests.Common.csproj
@@ -13,7 +13,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
diff --git a/src/Stratis.Bitcoin.IntegrationTests/CoinViewTests.cs b/src/Stratis.Bitcoin.IntegrationTests/CoinViewTests.cs
index bc559604f1..5fbafe8ba2 100644
--- a/src/Stratis.Bitcoin.IntegrationTests/CoinViewTests.cs
+++ b/src/Stratis.Bitcoin.IntegrationTests/CoinViewTests.cs
@@ -282,11 +282,15 @@ public void CanSaveChainIncrementally()
var chain = new ChainIndexer(this.regTest);
var data = new DataFolder(TestBase.CreateTestDir(this));
- using (var repo = new ChainRepository(new LevelDbChainStore(this.network, data, chain)))
+ var chainStore = new LevelDbChainStore(this.network, data, chain);
+ chain[0].SetChainStore(chainStore);
+
+ using (var repo = new ChainRepository(chainStore))
{
chain.SetTip(repo.LoadAsync(chain.Genesis).GetAwaiter().GetResult());
Assert.True(chain.Tip == chain.Genesis);
chain = new ChainIndexer(this.regTest);
+ chain[0].SetChainStore(chainStore);
ChainedHeader tip = this.AppendBlock(chain);
repo.SaveAsync(chain).GetAwaiter().GetResult();
var newChain = new ChainIndexer(this.regTest);
diff --git a/src/Stratis.Bitcoin.Networks/Stratis.Bitcoin.Networks.csproj b/src/Stratis.Bitcoin.Networks/Stratis.Bitcoin.Networks.csproj
index 8581922f87..d997a6b287 100644
--- a/src/Stratis.Bitcoin.Networks/Stratis.Bitcoin.Networks.csproj
+++ b/src/Stratis.Bitcoin.Networks/Stratis.Bitcoin.Networks.csproj
@@ -14,9 +14,9 @@
false
false
false
- 1.0.9.0
- 1.0.9.0
- 1.0.9.0
+ 1.0.9.4
+ 1.0.9.4
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Tests.Common/Stratis.Bitcoin.Tests.Common.csproj b/src/Stratis.Bitcoin.Tests.Common/Stratis.Bitcoin.Tests.Common.csproj
index 5171db905b..b68c03a998 100644
--- a/src/Stratis.Bitcoin.Tests.Common/Stratis.Bitcoin.Tests.Common.csproj
+++ b/src/Stratis.Bitcoin.Tests.Common/Stratis.Bitcoin.Tests.Common.csproj
@@ -13,7 +13,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
diff --git a/src/Stratis.Bitcoin.Tests/Base/ChainRepositoryTest.cs b/src/Stratis.Bitcoin.Tests/Base/ChainRepositoryTest.cs
index f16c407824..26a3c968b2 100644
--- a/src/Stratis.Bitcoin.Tests/Base/ChainRepositoryTest.cs
+++ b/src/Stratis.Bitcoin.Tests/Base/ChainRepositoryTest.cs
@@ -77,15 +77,20 @@ public void LoadChainFromDisk()
new ChainRepository.ChainRepositoryData()
{ Hash = block.HashBlock, Work = block.ChainWorkBytes }
.ToBytes(this.Network.Consensus.ConsensusFactory));
+
+ ConsensusFactory consensusFactory = KnownNetworks.StraxRegTest.Consensus.ConsensusFactory;
+ batch.Put(2, block.Header.GetHash().ToBytes(), block.Header.ToBytes(consensusFactory));
}
engine.Write(batch);
}
}
- using (var repo = new ChainRepository(new LevelDbChainStore(chain.Network, new DataFolder(dir), chain)))
+ var chainStore = new LevelDbChainStore(chain.Network, new DataFolder(dir), chain);
+ using (var repo = new ChainRepository(chainStore))
{
var testChain = new ChainIndexer(KnownNetworks.StraxRegTest);
+ testChain[0].SetChainStore(chainStore);
testChain.SetTip(repo.LoadAsync(testChain.Genesis).GetAwaiter().GetResult());
Assert.Equal(tip, testChain.Tip);
}
diff --git a/src/Stratis.Bitcoin/Base/BaseFeature.cs b/src/Stratis.Bitcoin/Base/BaseFeature.cs
index ab220c696c..06aa92bb8b 100644
--- a/src/Stratis.Bitcoin/Base/BaseFeature.cs
+++ b/src/Stratis.Bitcoin/Base/BaseFeature.cs
@@ -390,24 +390,32 @@ public static IFullNodeBuilder UseBaseFeature(this IFullNodeBuilder fullNodeBuil
services.AddSingleton();
services.AddSingleton();
services.AddSingleton().AddSingleton((provider) => { return provider.GetService() as IFullNode; });
- services.AddSingleton(new ChainIndexer(fullNodeBuilder.Network));
- services.AddSingleton(DateTimeProvider.Default);
- services.AddSingleton();
- services.AddSingleton();
- services.AddSingleton();
+
+ ChainIndexer chainIndexer = new ChainIndexer(fullNodeBuilder.Network);
+ IChainStore chainStore = null;
if (dbType == DbType.Leveldb)
{
- services.AddSingleton();
+ chainStore = new LevelDbChainStore(fullNodeBuilder.Network, fullNodeBuilder.NodeSettings.DataFolder, chainIndexer);
services.AddSingleton();
}
if (dbType == DbType.RocksDb)
{
- services.AddSingleton();
+ chainStore = new RocksDbChainStore(fullNodeBuilder.Network, fullNodeBuilder.NodeSettings.DataFolder, chainIndexer);
services.AddSingleton();
}
+ chainIndexer[0].SetChainStore(chainStore);
+
+ services.AddSingleton(chainStore);
+ services.AddSingleton(chainIndexer);
+
+ services.AddSingleton(DateTimeProvider.Default);
+ services.AddSingleton();
+ services.AddSingleton();
+ services.AddSingleton();
+
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
diff --git a/src/Stratis.Bitcoin/Base/ChainRepository.cs b/src/Stratis.Bitcoin/Base/ChainRepository.cs
index 43a5c9eb4e..24cfb4a387 100644
--- a/src/Stratis.Bitcoin/Base/ChainRepository.cs
+++ b/src/Stratis.Bitcoin/Base/ChainRepository.cs
@@ -82,6 +82,11 @@ public Task LoadAsync(ChainedHeader genesisHeader)
genesisHeader.SetChainStore(this.chainStore);
tip = genesisHeader;
}
+ else
+ {
+ // Confirm that the chain tip exists in the headers table.
+ this.chainStore.GetHeader(tip, tip.HashBlock);
+ }
this.locator = tip.GetLocator();
return tip;
diff --git a/src/Stratis.Bitcoin/Persistence/ChainStores/LevelDbChainStore.cs b/src/Stratis.Bitcoin/Persistence/ChainStores/LevelDbChainStore.cs
index 00633b7e19..e038293326 100644
--- a/src/Stratis.Bitcoin/Persistence/ChainStores/LevelDbChainStore.cs
+++ b/src/Stratis.Bitcoin/Persistence/ChainStores/LevelDbChainStore.cs
@@ -7,7 +7,7 @@
namespace Stratis.Bitcoin.Persistence.ChainStores
{
- public class LevelDbChainStore : IChainStore, IDisposable
+ public class LevelDbChainStore : IChainStore
{
private readonly Network network;
diff --git a/src/Stratis.Bitcoin/Persistence/ChainStores/RocksDbChainStore.cs b/src/Stratis.Bitcoin/Persistence/ChainStores/RocksDbChainStore.cs
index f47751b068..44f6da3c23 100644
--- a/src/Stratis.Bitcoin/Persistence/ChainStores/RocksDbChainStore.cs
+++ b/src/Stratis.Bitcoin/Persistence/ChainStores/RocksDbChainStore.cs
@@ -10,7 +10,7 @@ namespace Stratis.Bitcoin.Persistence.ChainStores
///
/// Rocksdb implementation of the chain storage
///
- public sealed class RocksDbChainStore : IChainStore, IDisposable
+ public sealed class RocksDbChainStore : IChainStore
{
internal static readonly byte ChainTableName = 1;
internal static readonly byte HeaderTableName = 2;
diff --git a/src/Stratis.Bitcoin/Properties/AssemblyInfo.cs b/src/Stratis.Bitcoin/Properties/AssemblyInfo.cs
index 29221d9419..b5aece1f47 100644
--- a/src/Stratis.Bitcoin/Properties/AssemblyInfo.cs
+++ b/src/Stratis.Bitcoin/Properties/AssemblyInfo.cs
@@ -32,6 +32,6 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.9.4")]
-[assembly: AssemblyFileVersion("1.0.9.4")]
+[assembly: AssemblyVersion("1.0.9.5")]
+[assembly: AssemblyFileVersion("1.0.9.5")]
[assembly: InternalsVisibleTo("Stratis.Bitcoin.Tests")]
\ No newline at end of file
diff --git a/src/Stratis.Bitcoin/Stratis.Bitcoin.csproj b/src/Stratis.Bitcoin/Stratis.Bitcoin.csproj
index 959ba38c65..53262f9916 100644
--- a/src/Stratis.Bitcoin/Stratis.Bitcoin.csproj
+++ b/src/Stratis.Bitcoin/Stratis.Bitcoin.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.4
+ 1.0.9.5
False
..\Stratis.ruleset
Stratis Group Ltd.
diff --git a/src/Stratis.CirrusD/Stratis.CirrusD.csproj b/src/Stratis.CirrusD/Stratis.CirrusD.csproj
index 0b1097d821..d2a861dd90 100644
--- a/src/Stratis.CirrusD/Stratis.CirrusD.csproj
+++ b/src/Stratis.CirrusD/Stratis.CirrusD.csproj
@@ -3,7 +3,7 @@
Exe
netcoreapp3.1
- 1.0.7.2
+ 1.0.9.4
Stratis Group Ltd.
Stratis Group Ltd.
diff --git a/src/Stratis.CirrusDnsD/Stratis.CirrusDnsD.csproj b/src/Stratis.CirrusDnsD/Stratis.CirrusDnsD.csproj
index 07e4cc68c2..3ac3f4b76c 100644
--- a/src/Stratis.CirrusDnsD/Stratis.CirrusDnsD.csproj
+++ b/src/Stratis.CirrusDnsD/Stratis.CirrusDnsD.csproj
@@ -17,7 +17,7 @@
latest
Stratis Group Ltd.
- 1.0.7.2
+ 1.0.9.4
diff --git a/src/Stratis.CirrusMinerD/Stratis.CirrusMinerD.csproj b/src/Stratis.CirrusMinerD/Stratis.CirrusMinerD.csproj
index 4db7f3c50f..e3aba576fb 100644
--- a/src/Stratis.CirrusMinerD/Stratis.CirrusMinerD.csproj
+++ b/src/Stratis.CirrusMinerD/Stratis.CirrusMinerD.csproj
@@ -3,7 +3,7 @@
Exe
netcoreapp3.1
- 1.0.7.2
+ 1.0.9.4
Stratis Group Ltd.
Stratis Group Ltd.
diff --git a/src/Stratis.CirrusPegD/Stratis.CirrusPegD.csproj b/src/Stratis.CirrusPegD/Stratis.CirrusPegD.csproj
index 6e61ead1b3..c2f65685d1 100644
--- a/src/Stratis.CirrusPegD/Stratis.CirrusPegD.csproj
+++ b/src/Stratis.CirrusPegD/Stratis.CirrusPegD.csproj
@@ -3,7 +3,7 @@
Exe
netcoreapp3.1
- 1.0.7.2
+ 1.0.9.4
Stratis Group Ltd.
diff --git a/src/Stratis.Features.Collateral/Stratis.Features.Collateral.csproj b/src/Stratis.Features.Collateral/Stratis.Features.Collateral.csproj
index 7fbfe851c0..cccf336b86 100644
--- a/src/Stratis.Features.Collateral/Stratis.Features.Collateral.csproj
+++ b/src/Stratis.Features.Collateral/Stratis.Features.Collateral.csproj
@@ -2,7 +2,7 @@
netcoreapp3.1
- 4.0.1.0
+ 4.0.3.0
Stratis Group Ltd.
diff --git a/src/Stratis.Features.Diagnostic/Stratis.Features.Diagnostic.csproj b/src/Stratis.Features.Diagnostic/Stratis.Features.Diagnostic.csproj
index 712e7fda46..17500a3c5e 100644
--- a/src/Stratis.Features.Diagnostic/Stratis.Features.Diagnostic.csproj
+++ b/src/Stratis.Features.Diagnostic/Stratis.Features.Diagnostic.csproj
@@ -4,7 +4,7 @@
netcoreapp3.1
..\None.ruleset
true
- 1.0.9.0
+ 1.0.9.4
Stratis Group Ltd.
diff --git a/src/Stratis.Features.FederatedPeg/Stratis.Features.FederatedPeg.csproj b/src/Stratis.Features.FederatedPeg/Stratis.Features.FederatedPeg.csproj
index 0533d830c7..b90904fa2d 100644
--- a/src/Stratis.Features.FederatedPeg/Stratis.Features.FederatedPeg.csproj
+++ b/src/Stratis.Features.FederatedPeg/Stratis.Features.FederatedPeg.csproj
@@ -12,7 +12,7 @@
Full
..\None.ruleset
Stratis Group Ltd.
- 4.0.1.0
+ 4.0.3.0
diff --git a/src/Stratis.Features.SQLiteWalletRepository/Stratis.Features.SQLiteWalletRepository.csproj b/src/Stratis.Features.SQLiteWalletRepository/Stratis.Features.SQLiteWalletRepository.csproj
index f4bd0541e8..b601030dcb 100644
--- a/src/Stratis.Features.SQLiteWalletRepository/Stratis.Features.SQLiteWalletRepository.csproj
+++ b/src/Stratis.Features.SQLiteWalletRepository/Stratis.Features.SQLiteWalletRepository.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.0.9.0
+ 1.0.9.4
False
Stratis Group Ltd.
diff --git a/src/Stratis.Sidechains.Networks/CirrusMain.cs b/src/Stratis.Sidechains.Networks/CirrusMain.cs
index 813ca8bb01..1305f7c9e7 100644
--- a/src/Stratis.Sidechains.Networks/CirrusMain.cs
+++ b/src/Stratis.Sidechains.Networks/CirrusMain.cs
@@ -263,6 +263,8 @@ public CirrusMain()
{ 1_750_000, new CheckpointInfo(new uint256("0x58c96a878efeeffea1b1924b61eed627687900e01588ffaa2f4a161973f01abf")) },
{ 1_850_000, new CheckpointInfo(new uint256("0x6e2590bd9a8eaab25b236c0c9ac314abec70b18aa053b96c9257f2356dec8314")) },
{ 2_150_000, new CheckpointInfo(new uint256("0x4c65f29b5098479cab275afd77d302ebe5ed8d8ef33e02ae54bf185865763f18")) },
+ { 2_500_000, new CheckpointInfo(new uint256("0x2853be7b7224840d3d4b60427ea832e9bd67d8fc6bfcd4956b8c6b2414cf8fc2")) },
+ { 2_827_550, new CheckpointInfo(new uint256("0xcf0ebdd99ec04ef260d22befe70ef7b948e50b5fcc18d9d37376d49e872372a0")) }
};
this.DNSSeeds = new List
diff --git a/src/Stratis.Sidechains.Networks/Stratis.Sidechains.Networks.csproj b/src/Stratis.Sidechains.Networks/Stratis.Sidechains.Networks.csproj
index 7e5174018a..f9b17507f8 100644
--- a/src/Stratis.Sidechains.Networks/Stratis.Sidechains.Networks.csproj
+++ b/src/Stratis.Sidechains.Networks/Stratis.Sidechains.Networks.csproj
@@ -5,7 +5,7 @@
Full
..\None.ruleset
- 1.0.9.0
+ 1.0.9.4
Stratis Group Ltd.
Stratis.Sidechains.Networks
diff --git a/src/Stratis.SmartContracts.Core/Stratis.SmartContracts.Core.csproj b/src/Stratis.SmartContracts.Core/Stratis.SmartContracts.Core.csproj
index c29d7cef28..0f9b5ea440 100644
--- a/src/Stratis.SmartContracts.Core/Stratis.SmartContracts.Core.csproj
+++ b/src/Stratis.SmartContracts.Core/Stratis.SmartContracts.Core.csproj
@@ -3,7 +3,7 @@
netcoreapp3.1
- 2.0.1.0
+ 2.0.3.0
Stratis Group Ltd.
Stratis Group Ltd.
diff --git a/src/Stratis.SmartContracts.Networks/Stratis.SmartContracts.Networks.csproj b/src/Stratis.SmartContracts.Networks/Stratis.SmartContracts.Networks.csproj
index 3ec5aaaf66..fcdff29339 100644
--- a/src/Stratis.SmartContracts.Networks/Stratis.SmartContracts.Networks.csproj
+++ b/src/Stratis.SmartContracts.Networks/Stratis.SmartContracts.Networks.csproj
@@ -3,7 +3,7 @@
netcoreapp3.1
- 2.0.1.0
+ 2.0.3.0
Stratis Group Ltd.
diff --git a/src/Stratis.StraxD/Stratis.StraxD.csproj b/src/Stratis.StraxD/Stratis.StraxD.csproj
index dfc1d24fe5..0dad1d8c76 100644
--- a/src/Stratis.StraxD/Stratis.StraxD.csproj
+++ b/src/Stratis.StraxD/Stratis.StraxD.csproj
@@ -16,7 +16,7 @@
latest
- 1.0.7.2
+ 1.0.9.4
Stratis Group Ltd.
diff --git a/src/Stratis.StraxDnsD/Stratis.StraxDnsD.csproj b/src/Stratis.StraxDnsD/Stratis.StraxDnsD.csproj
index 1294f020cb..b7c838e980 100644
--- a/src/Stratis.StraxDnsD/Stratis.StraxDnsD.csproj
+++ b/src/Stratis.StraxDnsD/Stratis.StraxDnsD.csproj
@@ -16,7 +16,7 @@
latest
- 1.0.7.2
+ 1.0.9.4
Stratis Group Ltd.