internal void InsertBlock(BlockS b) { connection.Open(); string query = "INSERT INTO block (" + "height, hash, version, merkleroot, time, nonce, bits, " + "size, strippedsize, weight, chainwork, nextblockhash, versionhex" + ") VALUES('" + b.height + "', " + "'" + b.hash + "', '" + b.version + "', " + "'" + b.merkleroot + "', '" + b.time + "', '" + b.nonce + "', " + "'" + String.Format("{0:x}", b.bits) + "', '" + b.size + "', '" + b.strippedsize + "', '" + b.weight + "', " + "'" + b.chainwork + "', " + "'" + b.nextblockhash + "', " + "'" + String.Format("{0:x}", b.versionhex) + "');"; //Create Command MySqlCommand cmd = new MySqlCommand(query, connection); //Execute the command cmd.ExecuteNonQuery(); connection.Close(); }
public void toBlockSTest() { // Object for connecting to Bitcoin node RPCClient RPCC = new RPCClient("mattyab:N1ceMeme!", "192.168.1.146", Network.Main); Block blck = RPCC.GetBlock(0); BlockS b = BlockS.toBlockS(blck, RPCC); }
public Block GetBlock(int height) { string query = "SELECT * FROM blockchain.block WHERE height = " + height + ";"; //Create Command MySqlCommand cmd = new MySqlCommand(query, connection); //Create a data reader and Execute the command //Create default block Block block = default(Block); connection.Open(); using (MySqlDataReader dataReader = cmd.ExecuteReader()) { //Read the data and store them in the Block while (dataReader.Read()) { block = new Block(); BlockS b = new BlockS(); b.height = Convert.ToInt32(dataReader.GetString("height")); b.hash = new uint256(dataReader.GetString("hash")); b.version = Convert.ToInt32(dataReader.GetString("version")); b.merkleroot = new uint256(dataReader.GetString("merkleroot")); b.time = Convert.ToUInt32(dataReader.GetString("time")); b.nonce = Convert.ToUInt32(dataReader.GetString("nonce")); b.bits = uint.Parse(dataReader.GetString("bits"), System.Globalization.NumberStyles.HexNumber); b.size = Convert.ToUInt32(dataReader.GetString("size")); b.strippedsize = Convert.ToUInt32(dataReader.GetString("strippedsize")); b.weight = Convert.ToUInt32(dataReader.GetString("weight")); b.chainwork = new uint256(dataReader.GetString("chainwork")); b.nextblockhash = new uint256(dataReader.GetString("nextblockhash")); b.versionhex = uint.Parse(dataReader.GetString("versionhex"), System.Globalization.NumberStyles.HexNumber); block = b.toBlock(); } } connection.Close(); if (block == default(Block)) { return(null); } else { return(block); } }
//Public Constructor public Block() { BlockS tmp = new BlockS(); tmp.blockID = BlockList.Last.Value.blockID + 1; tmp.time_stamp = DateTime.Now.ToString(); tmp.previousHash = getprevHash(); tmp.hash = getHash(); tmp.info = getInfo(); if (Search(BlockList, tmp.hash) != null) { BlockList.AddLast(tmp); } Save(BlockList); }
public void Load() { StreamReader lees = new StreamReader(@"C:\Users\User-PC\Desktop\test read\data.txt"); lees = File.OpenText(@"C:\Users\User-PC\Desktop\test read\data.txt"); string lyn; while ((lyn = lees.ReadLine()) != null) { string[] element = lyn.Split(','); BlockS tmp = new BlockS(); tmp.blockID = Convert.ToInt32(element[0]); tmp.time_stamp = element[1]; tmp.previousHash = element[2]; tmp.hash = element[3]; tmp.info = element[4]; BlockList.AddLast(tmp); } lees.Close(); }
public BlockHolder(int height, SqlConnector SQC, RPCClient RPCC) { this.height = height; this.SQC = SQC; this.RPCC = RPCC; Block SQLBlock = SQC.GetBlock(height); Block RPCBlock = GetFromRPC(); //Console.Write("Got RPC block " + height + ": "); hash = RPCBlock.GetHash(); if (SQLBlock == null) { wasOnSQL = false; //Console.Write("Not on SQL! "); SQC.InsertBlock(BlockS.toBlockS(RPCBlock, RPCC)); //Console.WriteLine("Inserted."); } }
public void GenerateRandomBlock() { int random = randomblocks.Next(1, 9); switch (random) { case 1: nextTetrisBlock = new BlockI(); break; case 2: nextTetrisBlock = new BlockJ(); break; case 3: nextTetrisBlock = new BlockL(); break; case 4: nextTetrisBlock = new BlockO(); break; case 5: nextTetrisBlock = new BlockS(); break; case 6: nextTetrisBlock = new BlockT(); break; case 7: nextTetrisBlock = new BlockB(); break; default: nextTetrisBlock = new BlockZ(); break; } nextTetrisBlock.blockposition = new Point(14 * blocksize, blocksize); }