private pbft_message Create_Block() { /*the client should send a message from the network and the On_Message_Received will be excuted this must be changed * THE primary should contact the client and request for a message and then fom that message create a new block*/ Console.WriteLine("waiting for the clinet to send A message"); System.Console.WriteLine(); string Block = Console.ReadLine(); /* create a new block and this should be in a function with */ PBFT_Messages.pbft_message new_block = new PBFT_Messages.pbft_message() { message = Block, id = configs.PublicKey, message_Type = Message_Type.preprepare, seq = state.Confirmed_messages.Count + 1, view_number = state.view_number, }; Temp_Message temp = new Temp_Message() { commit_counter = 0, Prepare_counter = 0, message = new_block.message, id = new_block.id, seq = new_block.seq, view_number = new_block.view_number, }; Temporary_Messages.Add(Tuple.Create(new_block.seq, new_block.view_number), temp); return(new_block); }
public void Add_To_Temp(Func <bool> predicate, pbft_message Message, Tuple <int, int> Message_Tuple) { if (!predicate()) { Temp_Message temp = new Temp_Message() { commit_counter = 0, Prepare_counter = 0, message = Message.message, id = Message.id, seq = Message.seq, view_number = Message.view_number, }; Temporary_Messages.Add(Message_Tuple, temp); System.Console.WriteLine("Message with sequence number" + Message.seq + " and viewnumber " + Message.view_number + " added to the temporary pool"); } }