From e2a06385208cdba105485a1e47161d32baef96bf Mon Sep 17 00:00:00 2001 From: Francois de la Rouviere Date: Tue, 31 Aug 2021 10:44:40 +0100 Subject: [PATCH] Merge Release/1.0.9.5 to SidechainMasternode (#683) * Better collateral address checking (#670) * Add collateral address check to GetModifiedFederation (#671) * Remove logging from federation build logic * Update all versions to 1.0.9.3 * Add null check in IdleMemberKicker (#673) * Add null check in IdleMemberKicker * Update IdleFederationMembersKicker.cs * Bump version * Add null check in IdleMemberKicker (#673) (#674) * Add null check in IdleMemberKicker * Update IdleFederationMembersKicker.cs * Update all project versions to 1.0.9.4 * Bump SC versions * Validate ChainStore tip on load (#600) * Validate ChainStore tip on load * Change comment * Update tests * Dispose IChainStore * Bump version * CirrusMain checkpoint 2_827_550 (#680) * Bump version to 1.0.9.5 * Merge Disable signature rule in IBD #579 from release/1.1.0.0 Co-authored-by: quantumagi --- src/FederationSetup/FederationSetup.csproj | 2 +- src/FodyNlogAdapter/FodyNlogAdapter.csproj | 2 +- src/NBitcoin/ChainStore.cs | 6 ++++- src/NBitcoin/NBitcoin.csproj | 2 +- .../ApiSettingsTest.cs | 18 ++++++++++----- .../Stratis.Bitcoin.Cli.csproj | 2 +- .../Stratis.Bitcoin.Features.Api.csproj | 2 +- ...Stratis.Bitcoin.Features.BlockStore.csproj | 2 +- ...tratis.Bitcoin.Features.ColdStaking.csproj | 2 +- .../Stratis.Bitcoin.Features.Consensus.csproj | 2 +- .../Stratis.Bitcoin.Features.Dns.csproj | 2 +- .../Stratis.Bitcoin.Features.Interop.csproj | 2 +- ...tratis.Bitcoin.Features.LightWallet.csproj | 2 +- ...Stratis.Bitcoin.Features.MemoryPool.csproj | 2 +- .../Stratis.Bitcoin.Features.Miner.csproj | 2 +- ...atis.Bitcoin.Features.Notifications.csproj | 2 +- ...eatures.PoA.IntegrationTests.Common.csproj | 2 +- .../PoAHeaderSignatureRule.cs | 11 ++++++++++ .../Stratis.Bitcoin.Features.PoA.csproj | 2 +- .../Stratis.Bitcoin.Features.RPC.csproj | 2 +- .../Stratis.Bitcoin.Features.SignalR.csproj | 2 +- ...tis.Bitcoin.Features.SmartContracts.csproj | 2 +- .../Stratis.Bitcoin.Features.Wallet.csproj | 2 +- ...is.Bitcoin.Features.WatchOnlyWallet.csproj | 2 +- ...tis.Bitcoin.IntegrationTests.Common.csproj | 2 +- .../CoinViewTests.cs | 6 ++++- .../Stratis.Bitcoin.Networks.csproj | 6 ++--- .../Stratis.Bitcoin.Tests.Common.csproj | 2 +- .../Base/ChainRepositoryTest.cs | 7 +++++- src/Stratis.Bitcoin/Base/BaseFeature.cs | 22 +++++++++++++------ src/Stratis.Bitcoin/Base/ChainRepository.cs | 5 +++++ .../ChainStores/LevelDbChainStore.cs | 2 +- .../ChainStores/RocksDbChainStore.cs | 2 +- .../Properties/AssemblyInfo.cs | 4 ++-- src/Stratis.Bitcoin/Stratis.Bitcoin.csproj | 2 +- src/Stratis.CirrusD/Stratis.CirrusD.csproj | 2 +- .../Stratis.CirrusDnsD.csproj | 2 +- .../Stratis.CirrusMinerD.csproj | 2 +- .../Stratis.CirrusPegD.csproj | 2 +- .../Stratis.Features.Collateral.csproj | 2 +- .../Stratis.Features.Diagnostic.csproj | 2 +- .../Stratis.Features.FederatedPeg.csproj | 2 +- ...tis.Features.SQLiteWalletRepository.csproj | 2 +- src/Stratis.Sidechains.Networks/CirrusMain.cs | 2 ++ .../Stratis.Sidechains.Networks.csproj | 2 +- .../Stratis.SmartContracts.Core.csproj | 2 +- .../Stratis.SmartContracts.Networks.csproj | 2 +- src/Stratis.StraxD/Stratis.StraxD.csproj | 2 +- .../Stratis.StraxDnsD.csproj | 2 +- 49 files changed, 106 insertions(+), 59 deletions(-) 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.