Exemple #1
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);
            }
        }