Changeset 2391


Ignore:
Timestamp:
Jan 19, 2011, 4:36:44 PM (11 years ago)
Author:
nolte
Message:

MTC *1 Live Up* Update.
MTC working again. Fixed rereservation bug which killed the challenge twice.

Location:
trunk/CrypPlugins/KeySearcher/P2P
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KeySearcher/P2P/DistributedBruteForceManager.cs

    r2295 r2391  
    137137
    138138                bool reservationRemoved = false;
    139                 var reservationTimer = new Timer {Interval = 5*60*1000};    //Every 5 minutes
     139                var reservationTimer = new Timer {Interval = 18*60*1000};    //Every 18 minutes
    140140                reservationTimer.Elapsed += new ElapsedEventHandler(delegate
    141141                                                                        {
  • trunk/CrypPlugins/KeySearcher/P2P/Storage/StorageHelper.cs

    r2359 r2391  
    116116        internal RequestResult UpdateFromDht(NodeBase nodeToUpdate, bool forceUpdate = false)
    117117        {
    118 
    119             if (!forceUpdate && nodeToUpdate.LastUpdate > DateTime.Now.Subtract(new TimeSpan(0, 0, 5)))
    120             {
    121                 return new RequestResult { Status = RequestResultType.Success };
    122             }
    123 
    124             nodeToUpdate.LastUpdate = DateTime.Now;
    125 
    126             var requestResult = RetrieveWithStatistic(KeyInDht(nodeToUpdate));
    127             var nodeBytes = requestResult.Data;
    128 
    129             if (nodeBytes == null)
    130             {
     118                if (!forceUpdate && nodeToUpdate.LastUpdate > DateTime.Now.Subtract(new TimeSpan(0, 0, 5)))
     119                {
     120                    return new RequestResult {Status = RequestResultType.Success};
     121                }
     122
     123                nodeToUpdate.LastUpdate = DateTime.Now;
     124
     125                var requestResult = RetrieveWithStatistic(KeyInDht(nodeToUpdate));
     126                var nodeBytes = requestResult.Data;
     127
     128                if (nodeBytes == null)
     129                {
     130                    return requestResult;
     131                }
     132
     133                var binaryReader = new BinaryReader(new MemoryStream(nodeBytes));
     134
     135                //oldVersionFlag will be used to garantee further changes in the Stream
     136                var oldVersionFlag = CheckNodeVersion(binaryReader);
     137
     138                if (nodeToUpdate is Node)
     139                {
     140                    UpdateNodeFromDht((Node) nodeToUpdate, binaryReader);
     141                }
     142                else
     143                {
     144                    UpdateLeafFromDht((Leaf) nodeToUpdate, binaryReader);
     145                }
     146
     147                // Load results
     148                var resultCount = binaryReader.ReadInt32();
     149       
     150                for (var i = 0; i < resultCount; i++)
     151                {
     152                    try
     153                    {
     154                        if (oldVersionFlag < 5)
     155                        {
     156                            var newResult = new KeySearcher.ValueKey
     157                                                {
     158                                                    key = binaryReader.ReadString(),
     159                                                    value = binaryReader.ReadDouble(),
     160                                                    decryption = binaryReader.ReadBytes(binaryReader.ReadInt32())
     161                                                };
     162                            /*
     163                                                                        user = "Unknown",
     164                                                                        time = DateTime.MinValue,
     165                                                                        maschid = 666,
     166                                                                        maschname = "Devil"
     167
     168                            */
     169                            nodeToUpdate.Result.AddLast(newResult);
     170                        }
     171                        else
     172                        {
     173                            var newResult = new KeySearcher.ValueKey
     174                                                {
     175                                                    key = binaryReader.ReadString(),
     176                                                    value = binaryReader.ReadDouble(),
     177                                                    decryption = binaryReader.ReadBytes(binaryReader.ReadInt32())
     178                                                };
     179                            /*
     180                                                    user = binaryReader.ReadString(),
     181                                                    time = DateTime.FromBinary(binaryReader.ReadInt64()),
     182                                                    maschid = binaryReader.ReadInt64(),
     183                                                    maschname = binaryReader.ReadString()
     184                            */
     185                            nodeToUpdate.Result.AddLast(newResult);
     186                        }
     187                    }
     188                    catch(Exception e)
     189                    {
     190                        keySearcher.GuiLogMessage(e.Message + ": Node causing the failure: " + nodeToUpdate.ToString(),NotificationLevel.Error);
     191                        if (nodeToUpdate is Leaf)
     192                        {
     193                            nodeToUpdate.Result.Clear();
     194                        }
     195                    }                                       
     196                }
     197
     198                if (binaryReader.BaseStream.Length != binaryReader.BaseStream.Position)
     199                {
     200                    //Reading the number of avatarnames
     201                    int avatarcount = binaryReader.ReadInt32();
     202                    for (int i = 0; i < avatarcount; i++)
     203                    {
     204                        //Reading the avatarname and the maschine-count for this name
     205                        string avatarname = binaryReader.ReadString();
     206                        int maschcount = binaryReader.ReadInt32();
     207                        var readMaschcount = new Dictionary<long, Information>();
     208
     209                        for (int j = 0; j < maschcount; j++)
     210                        {
     211                            //reading the IDs and patterncount
     212                            long maschID = binaryReader.ReadInt64();
     213                            int count = binaryReader.ReadInt32();
     214                            string host = binaryReader.ReadString();
     215                            var date = DateTime.FromBinary(binaryReader.ReadInt64());
     216                            readMaschcount.Add(maschID, new Information() {Count = count, Hostname = host, Date = date});
     217
     218                        }
     219
     220                        if (nodeToUpdate.Activity.ContainsKey(avatarname))
     221                        {
     222                            nodeToUpdate.Activity[avatarname] = readMaschcount;
     223                        }
     224                        else
     225                        {
     226                            nodeToUpdate.Activity.Add(avatarname, readMaschcount);
     227                        }
     228                    }
     229                }
     230
     231                if (resultCount > 0)
     232                {
     233                    keySearcher.IntegrateNewResults(nodeToUpdate.Result, nodeToUpdate.Activity,
     234                                                    nodeToUpdate.DistributedJobIdentifier);
     235                    statisticsGenerator.ProcessPatternResults(nodeToUpdate.Result);
     236                }
     237
     238                nodeToUpdate.UpdateCache();
    131239                return requestResult;
    132             }
    133 
    134             var binaryReader = new BinaryReader(new MemoryStream(nodeBytes));
    135 
    136             //oldVersionFlag will be used to garantee further changes in the Stream
    137             var oldVersionFlag = CheckNodeVersion(binaryReader);
    138 
    139             if (nodeToUpdate is Node)
    140             {
    141                 UpdateNodeFromDht((Node) nodeToUpdate, binaryReader);
    142             } else
    143             {
    144                 UpdateLeafFromDht((Leaf)nodeToUpdate, binaryReader);
    145             }
    146 
    147             // Load results
    148             var resultCount = binaryReader.ReadInt32();
    149             for (var i = 0; i < resultCount; i++)
    150             {
    151                 if (oldVersionFlag < 5)
    152                 {
    153                     var newResult = new KeySearcher.ValueKey
    154                                         {
    155                                             key = binaryReader.ReadString(),
    156                                             value = binaryReader.ReadDouble(),
    157                                             decryption = binaryReader.ReadBytes(binaryReader.ReadInt32())
    158                                         };
    159                     /*
    160                                                                 user = "Unknown",
    161                                                                 time = DateTime.MinValue,
    162                                                                 maschid = 666,
    163                                                                 maschname = "Devil"
    164 
    165                     */
    166                     nodeToUpdate.Result.AddLast(newResult);
    167                 }
    168                 else
    169                 {
    170                     var newResult = new KeySearcher.ValueKey
    171                                         {
    172                                             key = binaryReader.ReadString(),
    173                                             value = binaryReader.ReadDouble(),
    174                                             decryption = binaryReader.ReadBytes(binaryReader.ReadInt32())
    175                                         };
    176                     /*
    177                                             user = binaryReader.ReadString(),
    178                                             time = DateTime.FromBinary(binaryReader.ReadInt64()),
    179                                             maschid = binaryReader.ReadInt64(),
    180                                             maschname = binaryReader.ReadString()
    181                     */
    182                     nodeToUpdate.Result.AddLast(newResult);
    183                 }
    184             }
    185240           
    186             if (binaryReader.BaseStream.Length != binaryReader.BaseStream.Position)
    187             { 
    188                 //Reading the number of avatarnames
    189                 int avatarcount = binaryReader.ReadInt32();
    190                 for(int i=0; i<avatarcount;i++)
    191                 {
    192                     //Reading the avatarname and the maschine-count for this name
    193                     string avatarname = binaryReader.ReadString();
    194                     int maschcount = binaryReader.ReadInt32();
    195                     var readMaschcount = new Dictionary<long, Information>();
    196                    
    197                     for (int j = 0; j < maschcount; j++)
    198                     {
    199                         //reading the IDs and patterncount
    200                         long maschID = binaryReader.ReadInt64();
    201                         int count = binaryReader.ReadInt32();
    202                         string host = binaryReader.ReadString(); 
    203                         var date = DateTime.FromBinary(binaryReader.ReadInt64());
    204                         readMaschcount.Add(maschID, new Information() {Count = count, Hostname = host, Date = date});
    205                        
    206                     }
    207                    
    208                     if (nodeToUpdate.Activity.ContainsKey(avatarname))
    209                     {
    210                         nodeToUpdate.Activity[avatarname] = readMaschcount;
    211                     }
    212                     else
    213                     {
    214                         nodeToUpdate.Activity.Add(avatarname, readMaschcount);                     
    215                     }
    216                 }               
    217             }
    218                        
    219             if (resultCount > 0)
    220             {
    221                 keySearcher.IntegrateNewResults(nodeToUpdate.Result, nodeToUpdate.Activity, nodeToUpdate.DistributedJobIdentifier);
    222                 statisticsGenerator.ProcessPatternResults(nodeToUpdate.Result);
    223             }
    224 
    225             nodeToUpdate.UpdateCache();
    226             return requestResult;
     241
    227242        }
    228243
  • trunk/CrypPlugins/KeySearcher/P2P/Tree/KeyPoolTree.cs

    r2295 r2391  
    7575            var foundNode = FindNextLeaf(SearchOption.SkipReservedLeafs);
    7676            keySearcher.GuiLogMessage("Returned from FindNextLeaf(SearchOption.SkipReservedLeafs)...", NotificationLevel.Debug);
     77
    7778            if (foundNode == null)
    7879                keySearcher.GuiLogMessage("FindNextLeaf(SearchOption.SkipReservedLeafs) returned null!", NotificationLevel.Debug);
     80
    7981            if (skippedReservedNodes)
    8082                keySearcher.GuiLogMessage("FindNextLeaf(SearchOption.SkipReservedLeafs) skipped reserved nodes!", NotificationLevel.Debug);
Note: See TracChangeset for help on using the changeset viewer.