public ClientManager()
{
mEventLog = new EventLog();
mBlacklist = new Dictionary<uint, bool>();
mBlacklist[0xC425E50F] = true;
mBlocksSubmitted = 0;
mBlocksAccepted = 0;
#region Bitcoin
MiningTarget bc = new MiningTarget();
bc.mName = "Bitcoin";
bc.mPOWAlgorithm = HashAlgorithm.DoubleSHA256;
bc.mWallet = new WalletInfo();
bc.mWallet.mRPCAddress = "127.0.0.1";
bc.mWallet.mRPCPort = 8332;
bc.mWallet.mRPCUser = "rpcuser";
bc.mWallet.mRPCPass = "rpcpass";
PoolInfo pi = new PoolInfo();
pi.mName = "Slush";
pi.mAddress = "stratum.bitcoin.cz";
pi.mPort = 3333;
pi.mUser = "f2mserver.worker1";
pi.mPassword = "yezPpJrt";
bc.mPools.Add(pi);
#endregion
#region Bitgem
MiningTarget bg = new MiningTarget();
bg.mName = "Bitgem";
bg.mPOWAlgorithm = HashAlgorithm.Scrypt;
bg.mWallet = new WalletInfo();
bg.mWallet.mRPCAddress = "127.0.0.1";
bg.mWallet.mRPCPort = 8348;
bg.mWallet.mRPCUser = "rpcuser";
bg.mWallet.mRPCPass = "rpcpass";
pi = new PoolInfo();
pi.mName = "JTeam";
pi.mAddress = "us-east.jtcpools.org";
pi.mPort = 3365;
pi.mUser = "f2mserver.worker1";
pi.mPassword = "torque9900";
bg.mPools.Add(pi);
#endregion
#region Gamerscoin
MiningTarget gc = new MiningTarget();
gc.mName = "Gamerscoin";
gc.mPOWAlgorithm = HashAlgorithm.Scrypt;
gc.mWallet = new WalletInfo();
gc.mWallet.mRPCAddress = "127.0.0.1";
gc.mWallet.mRPCPort = 7332;
gc.mWallet.mRPCUser = "rpcuser";
gc.mWallet.mRPCPass = "rpcpass";
pi = new PoolInfo();
pi.mName = "gamerscoin";
pi.mAddress = "gamers-coin.org";
pi.mPort = 3333;
pi.mUser = "rono.f2mserver";
pi.mPassword = "torque9900";
gc.mPools.Add(pi);
#endregion
#region AllMulti
MiningTarget multi = new MiningTarget();
multi.mName = "Mutli";
multi.mPOWAlgorithm = HashAlgorithm.Scrypt;
pi = new PoolInfo();
pi.mName = "WeMineAll";
pi.mAddress = "multi2.wemineall.com";
pi.mPort = 5555;
pi.mUser = "f2mserver.1";
pi.mPassword = "x";
multi.mPools.Add(pi);
#endregion
#region BBQ
MiningTarget bbq = new MiningTarget();
bbq.mName = "BBQ";
bbq.mPOWAlgorithm = HashAlgorithm.Scrypt;
pi = new PoolInfo();
pi.mName = "BBQPool";
pi.mAddress = "www.bbqpool.net";
pi.mPort = 3333;
pi.mUser = "f2mserver.1";
pi.mPassword = "x";
bbq.mPools.Add(pi);
#endregion
//mMiningTarget = gc;
//mMiningTarget = bg;
//mMiningTarget = bc;
//mMiningTarget = multi;
mMiningTarget = bbq;
//mUpstream = new US_Wallet(this);
//mUpstream.SetHost(mMiningTarget.mWallet.mRPCAddress, mMiningTarget.mWallet.mRPCPort);
//mUpstream.SetCredentials(mMiningTarget.mWallet.mRPCUser, mMiningTarget.mWallet.mRPCPass);
mUpstream = new US_Stratum(this);
mUpstream.SetHost(mMiningTarget.mPools[0].mAddress, mMiningTarget.mPools[0].mPort);
mUpstream.SetCredentials(mMiningTarget.mPools[0].mUser, mMiningTarget.mPools[0].mPassword);
//mUpstream = new US_Wallet();
//mUpstream.SetHost("127.0.0.1", 7332);
//mUpstream.SetCredentials("rpcuser", "rpcpass");
//mUpstream = new US_Stratum();
//mUpstream.SetHost("gamers-coin.org", 3333);
//mUpstream.SetCredentials("rono.f2mserver", "torque9900");
mPrevBlocks = new WorkBlock[5];
mPrevBlockIndex = 0;
mMailer = new Email();
mClients = new List<Client>();
mClientListMutex = new Mutex();
mListener = new Listener(80, this);
mUpdateThread = new Thread(new ThreadStart(Update));
mHashrate = 0;
BeginBlock();
mUpdateThread.Start();
}