public void LeaderChange()
        {
            using (SidechainTestContext context = new SidechainTestContext())
            {
                context.StartAndConnectNodes();

                IFederationGatewaySettings federationGatewaySettings = new FederationGatewaySettings(context.FedSide1.FullNode.Settings);
                ILeaderProvider            leaderProvider            = new LeaderProvider(federationGatewaySettings);

                PubKey currentLeader = leaderProvider.CurrentLeaderKey;

                int tipBefore = context.FedSide1.GetTip().Height;

                // TODO check blocks get mined and make sure the block notification will change
                // the leader.
                TestHelper.WaitLoop(
                    () =>
                {
                    return(context.FedSide1.GetTip().Height >= tipBefore + 5);
                }
                    );

                leaderProvider.CurrentLeaderKey.Should().NotBe(currentLeader);
            }
        }
Example #2
0
        public void LeaderChange()
        {
            using (SidechainNodeBuilder builder = SidechainNodeBuilder.CreateSidechainNodeBuilder(this))
            {
                builder.ConfigParameters.Add("sidechain", "true");
                builder.ConfigParameters.Add("redeemscript", this.scriptAndAddresses.payToMultiSig.ToString());
                builder.ConfigParameters.Add("publickey", this.pubKeysByMnemonic[this.mnemonics[0]].ToString());

                CoreNode node = builder.CreateSidechainNode(this.sidechainNetwork, this.sidechainNetwork.FederationKeys[0]);
                node.Start();
                node.EnableFastMining();

                IFederationGatewaySettings federationGatewaySettings = new FederationGatewaySettings(node.FullNode.Settings);
                ILeaderProvider            leaderProvider            = new LeaderProvider(federationGatewaySettings);

                PubKey currentLeader = leaderProvider.CurrentLeader;

                var tipBefore = node.GetTip().Height;

                // TODO check blocks get mined and make sure the block notification will change
                // the leader
                //TestHelper.WaitLoop(
                //    () =>
                //    {
                //        return node.GetTip().Height >= tipBefore + 5;
                //    }
                //    );

                //leaderProvider.CurrentLeader.Should().NotBe(currentLeader);
            }
        }
Example #3
0
        public void LeaderChange()
        {
            this.StartAndConnectNodes();

            IFederationGatewaySettings federationGatewaySettings = new FederationGatewaySettings(this.MainAndSideChainNodeMap["fedSide1"].Node.FullNode.Settings);
            ILeaderProvider            leaderProvider            = new LeaderProvider(federationGatewaySettings);

            PubKey currentLeader = leaderProvider.CurrentLeader;

            var tipBefore = this.MainAndSideChainNodeMap["fedSide1"].Node.GetTip().Height;

            // TODO check blocks get mined and make sure the block notification will change
            // the leader.
            TestHelper.WaitLoop(
                () =>
            {
                return(this.MainAndSideChainNodeMap["fedSide1"].Node.GetTip().Height >= tipBefore + 5);
            }
                );

            leaderProvider.CurrentLeader.Should().NotBe(currentLeader);
        }
Example #4
0
 public LeaderProviderTests()
 {
     this.federationGatewaySettings = Substitute.For <IFederationGatewaySettings>();
     this.federationGatewaySettings.FederationPublicKeys.Returns(this.BuildLeaderPubKeys());
     this.leaderProvider = new LeaderProvider(this.federationGatewaySettings);
 }