Example #1
0
        private static Network InitStratisRegTest()
        {
            // TODO: move this to Networks
            var net = Network.GetNetwork("StratisRegTest");

            if (net != null)
            {
                return(net);
            }

            Block.BlockSignature  = true;
            Transaction.TimeStamp = true;

            var consensus = Network.StratisTest.Consensus.Clone();

            consensus.PowLimit = new Target(uint256.Parse("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"));

            consensus.PowAllowMinDifficultyBlocks = true;
            consensus.PowNoRetargeting            = true;

            var messageStart = new byte[4];

            messageStart[0] = 0xcd;
            messageStart[1] = 0xf2;
            messageStart[2] = 0xc0;
            messageStart[3] = 0xef;
            var magic = BitConverter.ToUInt32(messageStart, 0);

            var genesis = Network.StratisMain.GetGenesis();

            genesis.Header.Time        = 1494909211;
            genesis.Header.Nonce       = 2433759;
            genesis.Header.Bits        = consensus.PowLimit;
            consensus.HashGenesisBlock = genesis.GetHash(consensus.NetworkOptions);

            Assert(consensus.HashGenesisBlock == uint256.Parse("0x93925104d664314f581bc7ecb7b4bad07bcfabd1cfce4256dbd2faddcf53bd1f"));

            consensus.DefaultAssumeValid = null; // turn off assumevalid for regtest.

            var builder = new NetworkBuilder()
                          .SetName("StratisRegTest")
                          .SetRootFolderName(StratisRootFolderName)
                          .SetDefaultConfigFilename(StratisDefaultConfigFilename)
                          .SetConsensus(consensus)
                          .SetMagic(magic)
                          .SetGenesis(genesis)
                          .SetPort(18444)
                          .SetRPCPort(18442)
                          .SetMaxTimeOffsetSeconds(StratisMaxTimeOffsetSeconds)
                          .SetMaxTipAge(StratisDefaultMaxTipAgeInSeconds)
                          .SetBase58Bytes(Base58Type.PUBKEY_ADDRESS, new byte[] { (65) })
                          .SetBase58Bytes(Base58Type.SCRIPT_ADDRESS, new byte[] { (196) })
                          .SetBase58Bytes(Base58Type.SECRET_KEY, new byte[] { (65 + 128) })
                          .SetBase58Bytes(Base58Type.ENCRYPTED_SECRET_KEY_NO_EC, new byte[] { 0x01, 0x42 })
                          .SetBase58Bytes(Base58Type.ENCRYPTED_SECRET_KEY_EC, new byte[] { 0x01, 0x43 })
                          .SetBase58Bytes(Base58Type.EXT_PUBLIC_KEY, new byte[] { (0x04), (0x88), (0xB2), (0x1E) })
                          .SetBase58Bytes(Base58Type.EXT_SECRET_KEY, new byte[] { (0x04), (0x88), (0xAD), (0xE4) });

            return(builder.BuildAndRegister());
        }
Example #2
0
        private static Network InitPurpleRegTest()
        {
            // TODO: move this to Networks
            var net = Network.GetNetwork("PurpleRegTest");

            if (net != null)
            {
                return(net);
            }

            Block.BlockSignature  = true;
            Transaction.TimeStamp = true;

            var consensus = Network.PurpleTest.Consensus.Clone();

            consensus.PowLimit = new Target(uint256.Parse("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"));

            consensus.PowAllowMinDifficultyBlocks = true;
            consensus.PowNoRetargeting            = true;

            var messageStart = new byte[4];

            messageStart[0] = 0xdd;
            messageStart[1] = 0xd6;
            messageStart[2] = 0xea;
            messageStart[3] = 0xf7;
            var magic = BitConverter.ToUInt32(messageStart, 0);

            var genesis = Network.PurpleMain.GetGenesis();

            genesis.Header.Time  = 1515944354;
            genesis.Header.Nonce = 2;
            genesis.Header.Bits  = consensus.PowLimit;

            consensus.HashGenesisBlock = genesis.GetHash(consensus.NetworkOptions);

            Assert(consensus.HashGenesisBlock == uint256.Parse("0x59b6c7ad17bd6f16cdc68e4e5e41aad885bbc8b973c7d589b5ef726d39d29360"));

            consensus.DefaultAssumeValid = null; // turn off assumevalid for regtest.

            var builder = new NetworkBuilder()
                          .SetName("PurpleRegTest")
                          .SetConsensus(consensus)
                          .SetMagic(magic)
                          .SetGenesis(genesis)
                          .SetPort(18444)
                          .SetRPCPort(18442)
                          .SetBase58Bytes(Base58Type.PUBKEY_ADDRESS, new byte[] { (51) })
                          .SetBase58Bytes(Base58Type.SCRIPT_ADDRESS, new byte[] { (125) })
                          .SetBase58Bytes(Base58Type.SECRET_KEY, new byte[] { (63 + 128) })
                          .SetBase58Bytes(Base58Type.ENCRYPTED_SECRET_KEY_NO_EC, new byte[] { 0x01, 0x42 })
                          .SetBase58Bytes(Base58Type.ENCRYPTED_SECRET_KEY_EC, new byte[] { 0x01, 0x43 })
                          .SetBase58Bytes(Base58Type.EXT_PUBLIC_KEY, new byte[] { (0x04), (0x88), (0xB2), (0x1E) })
                          .SetBase58Bytes(Base58Type.EXT_SECRET_KEY, new byte[] { (0x04), (0x88), (0xAD), (0xE4) });

            return(builder.BuildAndRegister());
        }
        /// <summary>
        /// Parse a bitcoin amount (Culture Invariant)
        /// </summary>
        /// <param name="bitcoin"></param>
        /// <param name="nRet"></param>
        /// <returns></returns>
        public static bool TryParseBTC(string bitcoin, out Money nRet)
        {
            Network btcNetwork = Network.GetNetwork("main");

            return(TryParseDefault(btcNetwork, bitcoin + " BTC", out nRet));
        }