diff --git a/src/FederationSetup/FederationSetup.csproj b/src/FederationSetup/FederationSetup.csproj
index 69b5b66a07..251ad30db3 100644
--- a/src/FederationSetup/FederationSetup.csproj
+++ b/src/FederationSetup/FederationSetup.csproj
@@ -3,7 +3,7 @@
Exe
netcoreapp3.1
- 1.2.0.0
+ 1.2.1.0
Stratis Group Ltd.
diff --git a/src/FodyNlogAdapter/FodyNlogAdapter.csproj b/src/FodyNlogAdapter/FodyNlogAdapter.csproj
index edfea59ee0..295309fbd4 100644
--- a/src/FodyNlogAdapter/FodyNlogAdapter.csproj
+++ b/src/FodyNlogAdapter/FodyNlogAdapter.csproj
@@ -3,7 +3,7 @@
netcoreapp3.1
FodyNlogAdapter
- 1.2.0.0
+ 1.2.1.0
False
Stratis Group Ltd.
Stratis.Utils.FodyNlogAdapter
diff --git a/src/Stratis.Bitcoin.Cli/Stratis.Bitcoin.Cli.csproj b/src/Stratis.Bitcoin.Cli/Stratis.Bitcoin.Cli.csproj
index 6fef66ca86..58c84b2669 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.2.0.0
+ 1.2.1.0
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 cbb1b4420d..ae948a6474 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.2.0.0
+ 1.2.1.0
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 3901f059f1..c810977ab5 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.2.0.0
+ 1.2.1.0
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 423c446b78..aac59a46a8 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.2.0.0
+ 1.2.1.0
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 ed474bb294..c72b94fdd5 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.2.0.0
+ 1.2.1.0
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 5ad3c3077f..c705dd1830 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.2.0.0
+ 1.2.1.0
False
Stratis Group Ltd.
diff --git a/src/Stratis.Bitcoin.Features.ExternalAPI/Stratis.Bitcoin.Features.ExternalApi.csproj b/src/Stratis.Bitcoin.Features.ExternalAPI/Stratis.Bitcoin.Features.ExternalApi.csproj
index 8c8a96a208..871c6e860c 100644
--- a/src/Stratis.Bitcoin.Features.ExternalAPI/Stratis.Bitcoin.Features.ExternalApi.csproj
+++ b/src/Stratis.Bitcoin.Features.ExternalAPI/Stratis.Bitcoin.Features.ExternalApi.csproj
@@ -2,7 +2,7 @@
netcoreapp3.1
- 1.2.0.0
+ 1.2.1.0
Stratis Group Ltd.
Stratis.Features.ExternalAPI
Stratis.Features.ExternalAPI
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 adb2719f73..ca398b89af 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.2.0.0
+ 1.2.1.0
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 c689b947a8..6c9bd74bf9 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.2.0.0
+ 1.2.1.0
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 b419d37d2c..107deb44c9 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.2.0.0
+ 1.2.1.0
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 8a4a2276df..900712dc01 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.2.0.0
+ 1.2.1.0
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 2a08f51253..36c5d83078 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.2.0.0
+ 1.2.1.0
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 4816b77229..575f7acab6 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.2.0.0
+ 1.2.1.0
False
diff --git a/src/Stratis.Bitcoin.Features.PoA/BasePoAFeatureConsensusRules/PoAHeaderSignatureRule.cs b/src/Stratis.Bitcoin.Features.PoA/BasePoAFeatureConsensusRules/PoAHeaderSignatureRule.cs
index 1055896814..0b631843fc 100644
--- a/src/Stratis.Bitcoin.Features.PoA/BasePoAFeatureConsensusRules/PoAHeaderSignatureRule.cs
+++ b/src/Stratis.Bitcoin.Features.PoA/BasePoAFeatureConsensusRules/PoAHeaderSignatureRule.cs
@@ -24,6 +24,8 @@ public class PoAHeaderSignatureRule : FullValidationConsensusRule
private HashHeightPair lastCheckPoint;
+ private PoAConsensusOptions poAConsensusOptions;
+
///
public override void Initialize()
{
@@ -35,6 +37,7 @@ public override void Initialize()
this.slotsManager = engine.SlotsManager;
this.federationHistory = engine.FederationHistory;
this.validator = engine.PoaHeaderValidator;
+ this.poAConsensusOptions = engine.Network.Consensus.Options as PoAConsensusOptions;
KeyValuePair lastCheckPoint = engine.Network.Checkpoints.LastOrDefault();
this.lastCheckPoint = (lastCheckPoint.Value != null) ? new HashHeightPair(lastCheckPoint.Value.Hash, lastCheckPoint.Key) : null;
@@ -72,6 +75,21 @@ public override Task RunAsync(RuleContext context)
PoAConsensusErrors.InvalidHeaderSignature.Throw();
}
+ if (chainedHeader.Height >= this.poAConsensusOptions.GetMiningTimestampV2ActivationStrictHeight)
+ {
+ uint expectedSlot = this.slotsManager.GetMiningTimestamp(chainedHeader.Previous, chainedHeader.Header.Time, pubKey);
+
+ if (chainedHeader.Header.Time != expectedSlot)
+ {
+ this.Logger.LogWarning("Block {0} was mined in the wrong slot by miner '{1}'. The timestamp on the miner's block is {2} seconds earlier than expected.", chainedHeader.Height, pubKey.ToHex(), expectedSlot - chainedHeader.Header.Time);
+ this.Logger.LogTrace("(-)[TIME_TOO_EARLY]");
+ ConsensusErrors.BlockTimestampTooEarly.Throw();
+ }
+
+ return Task.CompletedTask;
+ }
+
+ // TODO: Remove this code once the last checkpoint exceeds 'GetMiningTimestampV2ActivationStrictHeight'.
// Look at the last round of blocks to find the previous time that the miner mined.
TimeSpan roundTime = this.slotsManager.GetRoundLength(this.federationHistory.GetFederationForBlock(chainedHeader).Count);
diff --git a/src/Stratis.Bitcoin.Features.PoA/PoAConsensusOptions.cs b/src/Stratis.Bitcoin.Features.PoA/PoAConsensusOptions.cs
index 145d7741e3..408fb5b369 100644
--- a/src/Stratis.Bitcoin.Features.PoA/PoAConsensusOptions.cs
+++ b/src/Stratis.Bitcoin.Features.PoA/PoAConsensusOptions.cs
@@ -60,6 +60,12 @@ public class PoAConsensusOptions : ConsensusOptions
///
public int GetMiningTimestampV2ActivationHeight { get; set; }
+ ///
+ /// The height at which inituitive mining slots are enfored without any lenience.
+ /// Currently errors are sometimes suppressed if a federation change occurred.
+ ///
+ public int GetMiningTimestampV2ActivationStrictHeight { get; set; }
+
///
/// Logic related to release 1.1.0.0 will activate at this height, this includes Poll Expiry and the Join Federation Voting Request consensus rule.
///
diff --git a/src/Stratis.Bitcoin.Features.PoA/SlotsManager.cs b/src/Stratis.Bitcoin.Features.PoA/SlotsManager.cs
index d8449916c0..e74ab4b347 100644
--- a/src/Stratis.Bitcoin.Features.PoA/SlotsManager.cs
+++ b/src/Stratis.Bitcoin.Features.PoA/SlotsManager.cs
@@ -18,6 +18,13 @@ public interface ISlotsManager
/// The next timestamp at which current node can produce a block.
uint GetMiningTimestamp(uint currentTime);
+ /// Gets next timestamp at which the miner can produce a block.
+ /// The previous/last block produced.
+ /// The current unix timestamp.
+ /// The miner to find the timestamp for.
+ /// The next timestamp at which the miner can produce a block.
+ uint GetMiningTimestamp(ChainedHeader tip, uint currentTime, PubKey currentMiner);
+
/// Determines whether timestamp is valid according to the network rules.
/// The unix timstamp of a block header.
/// True if the timestamp is valid and false otherwise.
@@ -46,7 +53,17 @@ public SlotsManager(Network network, IFederationManager federationManager, IFede
this.consensusOptions = (network as PoANetwork).ConsensusOptions;
}
+ ///
public uint GetMiningTimestamp(uint currentTime)
+ {
+ if (!this.federationManager.IsFederationMember)
+ throw new NotAFederationMemberException();
+
+ return GetMiningTimestamp(this.chainIndexer.Tip, currentTime, this.federationManager.CurrentFederationKey?.PubKey);
+ }
+
+ ///
+ public uint GetMiningTimestamp(ChainedHeader tip, uint currentTime, PubKey currentMiner)
{
/*
A miner can calculate when its expected to mine by looking at the ordered list of federation members
@@ -56,15 +73,14 @@ The fact that the federation can change at any time adds extra complexity to thi
The miner that mined the last block may no longer exist when the next block is about to be mined. As such
we may need to look a bit further back to find a "reference miner" that still occurs in the latest federation.
*/
- ChainedHeader tip = this.chainIndexer.Tip;
if (tip.Height < this.consensusOptions.GetMiningTimestampV2ActivationHeight)
- return GetMiningTimestampLegacy(currentTime);
+ return GetMiningTimestampLegacy(tip, currentTime, currentMiner);
List federationMembers = this.federationHistory.GetFederationForBlock(tip, 1);
if (federationMembers == null)
throw new Exception($"Could not determine the federation at block { tip.Height } + 1.");
- int myIndex = federationMembers.FindIndex(m => m.PubKey == this.federationManager.CurrentFederationKey?.PubKey);
+ int myIndex = federationMembers.FindIndex(m => m.PubKey == currentMiner);
if (myIndex < 0)
throw new NotAFederationMemberException();
@@ -110,18 +126,15 @@ we may need to look a bit further back to find a "reference miner" that still oc
return nextTimestampForMining;
}
- private uint GetMiningTimestampLegacy(uint currentTime)
+ private uint GetMiningTimestampLegacy(ChainedHeader tip, uint currentTime, PubKey currentMiner)
{
- if (!this.federationManager.IsFederationMember)
- throw new NotAFederationMemberException();
-
- List federationMembers = this.federationManager.GetFederationMembers();
+ List federationMembers = this.federationHistory.GetFederationForBlock(tip, 1);
// Round length in seconds.
uint roundTime = (uint)this.GetRoundLength(federationMembers.Count).TotalSeconds;
// Index of a slot that current node can take in each round.
- uint slotIndex = (uint)federationMembers.FindIndex(x => x.PubKey == this.federationManager.CurrentFederationKey.PubKey);
+ uint slotIndex = (uint)federationMembers.FindIndex(x => x.PubKey == currentMiner);
// Time when current round started.
uint roundStartTimestamp = (currentTime / roundTime) * roundTime;
@@ -131,7 +144,7 @@ private uint GetMiningTimestampLegacy(uint currentTime)
// We still consider ourselves "in a turn" if we are in the first half of the turn and we haven't mined there yet.
// This might happen when starting the node for the first time or if there was a problem when mining.
if (currentTime > nextTimestampForMining + (this.consensusOptions.TargetSpacingSeconds / 2) // We are closer to the next turn than our own
- || this.chainIndexer.Tip.Header.Time == nextTimestampForMining) // We have already mined in that slot
+ || tip.Header.Time == nextTimestampForMining) // We have already mined in that slot
{
// Get timestamp for next round.
nextTimestampForMining = roundStartTimestamp + roundTime + slotIndex * this.consensusOptions.TargetSpacingSeconds;
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 15faa5571b..1b3a43cd9e 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.2.0.0
+ 1.2.1.0
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 c6188bec38..af6846e757 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.2.0.0
+ 1.2.1.0
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 fb71d5c61c..75bf9837c2 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.2.0.0
+ 1.2.1.0
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 c558051c57..e0b6e41212 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.2.0.0
+ 1.2.1.0
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 d67e9be299..d82e3195c2 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.2.0.0
+ 1.2.1.0
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 751c7ce4ed..eb52d56cdc 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.2.0.0
+ 1.2.1.0
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 d42ca8c63a..d45c6f0b78 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.2.0.0
+ 1.2.1.0
False
diff --git a/src/Stratis.Bitcoin.Networks/Stratis.Bitcoin.Networks.csproj b/src/Stratis.Bitcoin.Networks/Stratis.Bitcoin.Networks.csproj
index 769c576832..61c3c5b398 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.2.0.0
- 1.2.0.0
- 1.2.0.0
+ 1.2.1.0
+ 1.2.1.0
+ 1.2.1.0
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 44f9525e99..33ee312033 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.2.0.0
+ 1.2.1.0
False
diff --git a/src/Stratis.Bitcoin/Properties/AssemblyInfo.cs b/src/Stratis.Bitcoin/Properties/AssemblyInfo.cs
index 1bbcd41b73..f2c2366227 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.2.0.0")]
-[assembly: AssemblyFileVersion("1.2.0.0")]
+[assembly: AssemblyVersion("1.2.1.0")]
+[assembly: AssemblyFileVersion("1.2.1.0")]
[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 7d9e8abb3c..9d2bac5522 100644
--- a/src/Stratis.Bitcoin/Stratis.Bitcoin.csproj
+++ b/src/Stratis.Bitcoin/Stratis.Bitcoin.csproj
@@ -14,7 +14,7 @@
false
false
false
- 1.2.0.0
+ 1.2.1.0
False
..\Stratis.ruleset
Stratis Group Ltd.
diff --git a/src/Stratis.CirrusD/Stratis.CirrusD.csproj b/src/Stratis.CirrusD/Stratis.CirrusD.csproj
index ca43f19481..547be6e2f4 100644
--- a/src/Stratis.CirrusD/Stratis.CirrusD.csproj
+++ b/src/Stratis.CirrusD/Stratis.CirrusD.csproj
@@ -3,7 +3,7 @@
Exe
netcoreapp3.1
- 1.2.0.0
+ 1.2.1.0
Stratis Group Ltd.
Stratis Group Ltd.
diff --git a/src/Stratis.CirrusDnsD/Stratis.CirrusDnsD.csproj b/src/Stratis.CirrusDnsD/Stratis.CirrusDnsD.csproj
index 7d124bc800..52988feffd 100644
--- a/src/Stratis.CirrusDnsD/Stratis.CirrusDnsD.csproj
+++ b/src/Stratis.CirrusDnsD/Stratis.CirrusDnsD.csproj
@@ -17,7 +17,7 @@
latest
Stratis Group Ltd.
- 1.2.0.0
+ 1.2.1.0
diff --git a/src/Stratis.CirrusMinerD/Stratis.CirrusMinerD.csproj b/src/Stratis.CirrusMinerD/Stratis.CirrusMinerD.csproj
index 6724c1d22b..be40fc59ba 100644
--- a/src/Stratis.CirrusMinerD/Stratis.CirrusMinerD.csproj
+++ b/src/Stratis.CirrusMinerD/Stratis.CirrusMinerD.csproj
@@ -3,7 +3,7 @@
Exe
netcoreapp3.1
- 1.2.0.0
+ 1.2.1.0
Stratis Group Ltd.
Stratis Group Ltd.
diff --git a/src/Stratis.CirrusPegD/Stratis.CirrusPegD.csproj b/src/Stratis.CirrusPegD/Stratis.CirrusPegD.csproj
index ab3b0097eb..ac8a09b5c5 100644
--- a/src/Stratis.CirrusPegD/Stratis.CirrusPegD.csproj
+++ b/src/Stratis.CirrusPegD/Stratis.CirrusPegD.csproj
@@ -3,7 +3,7 @@
Exe
netcoreapp3.1
- 1.2.0.0
+ 1.2.1.0
Stratis Group Ltd.
diff --git a/src/Stratis.Features.Collateral/Stratis.Features.Collateral.csproj b/src/Stratis.Features.Collateral/Stratis.Features.Collateral.csproj
index ae9a2f6b16..4594017939 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.5.0
+ 4.0.6.0
Stratis Group Ltd.
Stratis.Features.Collateral
diff --git a/src/Stratis.Features.Diagnostic/Stratis.Features.Diagnostic.csproj b/src/Stratis.Features.Diagnostic/Stratis.Features.Diagnostic.csproj
index 4b53ffb476..21728903c5 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.2.0.0
+ 1.2.1.0
Stratis Group Ltd.
diff --git a/src/Stratis.Features.FederatedPeg/Stratis.Features.FederatedPeg.csproj b/src/Stratis.Features.FederatedPeg/Stratis.Features.FederatedPeg.csproj
index af3926d170..bbed67351c 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.5.0
+ 4.0.6.0
diff --git a/src/Stratis.Features.SQLiteWalletRepository/Stratis.Features.SQLiteWalletRepository.csproj b/src/Stratis.Features.SQLiteWalletRepository/Stratis.Features.SQLiteWalletRepository.csproj
index 2c298fe571..fbee59fb76 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.2.0.0
+ 1.2.1.0
False
Stratis Group Ltd.
diff --git a/src/Stratis.Sidechains.Networks/CirrusMain.cs b/src/Stratis.Sidechains.Networks/CirrusMain.cs
index ebebb0e1f9..e2285ec1ee 100644
--- a/src/Stratis.Sidechains.Networks/CirrusMain.cs
+++ b/src/Stratis.Sidechains.Networks/CirrusMain.cs
@@ -181,6 +181,7 @@ public CirrusMain()
Release1100ActivationHeight = 3_426_950, // Monday, 20 December 2021 10:00:00 AM (Estimated)
PollExpiryBlocks = 50_000, // Roughly 9 days
GetMiningTimestampV2ActivationHeight = 3_709_000, // Monday 14 February 00:00:00 (Estimated)
+ GetMiningTimestampV2ActivationStrictHeight = 3_783_000, // Monday 28 February 07:00:00 (London Time) (Estimated)
ContractSerializerV2ActivationHeight = 3_386_335 // Monday 13 December 16:00:00 (Estimated)
};
@@ -277,7 +278,8 @@ public CirrusMain()
{ 2_827_550, new CheckpointInfo(new uint256("0xcf0ebdd99ec04ef260d22befe70ef7b948e50b5fcc18d9d37376d49e872372a0")) },
{ 3_000_000, new CheckpointInfo(new uint256("0x79afa4a91a24b5e72632ad01d2a18330aecd1bc2cd4eea82eda5e3945fb0b238")) },
{ 3_200_000, new CheckpointInfo(new uint256("0x6ec55b3b252f45e6677abf553601fb7bc97637319a9646e84d787769afe65988")) },
- { 3_500_000, new CheckpointInfo(new uint256("0x1772356d6498935ab93cbd5eaf1b868c5265480edeef2b5fec133fbc21b292cb")) }
+ { 3_500_000, new CheckpointInfo(new uint256("0x1772356d6498935ab93cbd5eaf1b868c5265480edeef2b5fec133fbc21b292cb")) },
+ { 3_700_000, new CheckpointInfo(new uint256("0x16b41558dedb4945476f0212034bd148bef3cdeccdd1b55a198f8b1d6900716b")) }
};
this.DNSSeeds = new List
diff --git a/src/Stratis.Sidechains.Networks/CirrusRegTest.cs b/src/Stratis.Sidechains.Networks/CirrusRegTest.cs
index 865b5070cc..150168e7d9 100644
--- a/src/Stratis.Sidechains.Networks/CirrusRegTest.cs
+++ b/src/Stratis.Sidechains.Networks/CirrusRegTest.cs
@@ -110,6 +110,7 @@ public CirrusRegTest()
autoKickIdleMembers: true)
{
GetMiningTimestampV2ActivationHeight = 100,
+ GetMiningTimestampV2ActivationStrictHeight = 100,
PollExpiryBlocks = 450 // 2 hours
};
diff --git a/src/Stratis.Sidechains.Networks/CirrusTest.cs b/src/Stratis.Sidechains.Networks/CirrusTest.cs
index 234ffff935..62a2fa69ff 100644
--- a/src/Stratis.Sidechains.Networks/CirrusTest.cs
+++ b/src/Stratis.Sidechains.Networks/CirrusTest.cs
@@ -132,6 +132,7 @@ public CirrusTest()
Release1100ActivationHeight = 2_796_000,
PollExpiryBlocks = 450, // 2 hours,
GetMiningTimestampV2ActivationHeight = 3_000_000, // 15 January 2022
+ GetMiningTimestampV2ActivationStrictHeight = 3_121_500, // 17 January 2022
ContractSerializerV2ActivationHeight = 2_842_681
};
diff --git a/src/Stratis.Sidechains.Networks/Stratis.Sidechains.Networks.csproj b/src/Stratis.Sidechains.Networks/Stratis.Sidechains.Networks.csproj
index dd9f983814..5c9494ff41 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.2.0.0
+ 1.2.1.0
Stratis Group Ltd.
Stratis.Sidechains.Networks
diff --git a/src/Stratis.StraxD/Stratis.StraxD.csproj b/src/Stratis.StraxD/Stratis.StraxD.csproj
index 50a37dba71..624ded64b5 100644
--- a/src/Stratis.StraxD/Stratis.StraxD.csproj
+++ b/src/Stratis.StraxD/Stratis.StraxD.csproj
@@ -16,7 +16,7 @@
latest
- 1.2.0.0
+ 1.2.1.0
Stratis Group Ltd.
diff --git a/src/Stratis.StraxDnsD/Stratis.StraxDnsD.csproj b/src/Stratis.StraxDnsD/Stratis.StraxDnsD.csproj
index 62a114fb7b..dc8ac86ea5 100644
--- a/src/Stratis.StraxDnsD/Stratis.StraxDnsD.csproj
+++ b/src/Stratis.StraxDnsD/Stratis.StraxDnsD.csproj
@@ -16,7 +16,7 @@
latest
- 1.2.0.0
+ 1.2.1.0
Stratis Group Ltd.