home bbs files messages ]

Just a sample of the Echomail archive

Cooperative anarchy at its finest, still active today. Darkrealms is the Zone 1 Hub.

   ASIAN_LINK      Not the kind that loves you long time      8,456 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 6,478 of 8,456   
   mark lewis to Ozz Nixon   
   Name that compression...   
   30 Mar 19 11:45:32   
   
   REPLY: 1:275/362.0 5c9edd22   
   MSGID: 1:3634/12.73 5c9f8f1e   
   PID: GED+LNX 1.1.5-b20180707   
   CHRS: CP437 2   
   TZUTC: -0400   
   TID: hpt/lnx 1.9.0-cur 07-09-15   
      
    On 2019 Mar 29 22:06:18, you wrote to Maurice Kinal:   
      
    ON> it would make sense on the server to use timestamp - and a piece of   
    ON> logic to make sure no two nodes post during the same second.   
      
   i would not rely on seconds granularity at all... sure, for manual posting but   
   certainly not for offline QWK/QWKE/BW uploads where the user may upload 50+   
   messages in one go... are you going to make them wait for 50 seconds while you   
   delay a second for each message? what happens if you have two or more users   
   online which upload their offline replies at the same time? sure, the odds are   
   against that happening but we all know the name of Murphy very well, don't we   
   )   
      
   then there's external automated posting tools that can easily post 100+   
   messages per second on today's hardware...   
      
   using the timestamp along with a plain simple serial number would work... but   
   for that matter just a plain simple serial number is really all that is   
   needed... i never did figure out why so many tried to come up with convoluted   
   serial number generating routines... i remember that many used CRC16 and then   
   CRC32 which are well known to have limited range as well as easily hit   
   collisions... then some thought of using MD5 which then had to be chopped to   
   fit within the limits of the serial number and again, limited range and   
   collisions reared their heads...   
      
   but i know of at least one format, written in 1994 and implemented that same   
   year, that incorporates the multinode node number, timestamp and serial   
   number...   
      
   ==== Begin "MSGID.TXT"  ====   
   Area: FIDONet Developers Area (E)   
   Date : Apr 15 '94, 20:20   
   From : Leonard Erickson                                       1:105/51.0   
   To   : Paul Edwards   
   Subj : Re: EchoMail   
   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ   
   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ   
      
    -=> Quoting Paul Edwards to Mikael St†ldal <=-   
      
    PE> There is no requirement for there to be a MSGID kludge, and can you   
    PE> honestly say that you have NEVER been at risk of violating the MSGID   
    PE> standard, ie there was no possibility that you ever generated two   
    PE> MSGID's the same within any 3 year period?  I certainly can't.   
      
   The identifier part of the MSGID is 8 hex digits. As a worst case,   
   there are 1096 days in 3 years. (assuming that there's aleap year in   
   there somewhere). There are 86400 seconds in a day. That gives 94694400   
   seconds. In HEX that's 5A4EC00. Note that this is *7* digits. The max   
   number of possible ID's is 100000000h. Doing the division gives 2Dh or   
   45d IDs for each second. I think we can live with a system that's   
   limited to tossing messages at 45/second. Or that tosses faster, but   
   won't let itself be run again until enough time has passed. 3.9   
   *million* messages per day is more traffic than anybody is likely to   
   generate!   
      
   As a *simple* method of doing this, have the program generate the   
   Julian Day Number (April 15, AD 1994 is JD#2449457). Then figure modulo   
   2048 of it. That's 49. Shift it to the right an appropriate number of   
   bits (multiply by 20 00 00 hex). That gives us 62 00 00 00 hex. And we   
   have 20 00 00 hex or 2,097,152 decimal message numbers per day. I think   
   that can be handled easily enough. Just generate a message number   
   (starting at 0 for the start of the day) and add it to the modified jd.   
      
   So we get:   
           serial = (JD# mod $800) * $200000 + mnum   
      
   That's *not* that hard. And you can even allow for multiple tasks by   
   just allocated the least significant digit or digits. With 2 digits   
   allocated for a task number, that gives each task 8k numbers to   
   allocate per day. I think that's enough. :-)   
      
   For up to 16 tasks:   
           serial = (JD# mod $800) * $200000 + num *16 + task#   
      
   For up to 256 tasks:   
           serial = (JD# mod $800) * $200000 + num *256 + task#   
      
   ... Unrecoverable Application Error: (A)bort, (R)etry, (B)uy Desqview ?   
   -!- Blue Wave/QBBS v2.12 [NR]   
    ! Origin: Shadowshack (1:105/51.0)   
      
   ==== End "MSGID.TXT" ====   
      
   the above may not be sufficient, though, if one is importing usenet newsgroups   
   and generating MSGID serial numbers for them... however, the idea is quite   
   workable...   
      
   i have pascal code that does the above with some slight variation and at least   
   two FTN capable programs are using my code under license but it is still   
   simple enough to create and manage... it was testing on a live system for just   
   over three years before being released for public consumption in utility   
   tools...   
      
   the only real gotcha is if the incremental serial number file is lost... then   
   it may be possible to generate duplicate serial numbers on the same day from   
   the same node but once the date rolls over, that is taken care of... unless   
   the system clock gets reset for some reason... ok, so that's two possible   
   gotchas...   
      
   either way, plain straight incremented numbers are the easiest and you don't   
   need to worry about the clock or how many nodes... just that the serial number   
   file is not reset... of course proper file locking and access is needed to   
   protect against two or more nodes getting the same number at the same time...   
      
   so anyway, there it is, FWIW...   
      
   )\/(ark   
      
   Always Mount a Scratch Monkey   
   Do you manage your own servers? If you are not running an IDS/IPS yer doin' it   
   wrong...   
   ... Too many people think a potato tastes like a Pringle.   
   ---   
    * Origin:  (1:3634/12.73)   
   SEEN-BY: 1/120 15/2 18/0 200 116/116 123/0 25 50 150 755 1970 135/300   
   SEEN-BY: 153/7001 7715 154/10 20 30 40 700 203/0 221/0 6 226/17 227/400   
   SEEN-BY: 229/107 354 426 452 1014 240/5832 249/206 317 400 261/38   
   SEEN-BY: 280/464 5003 310/31 317/3 322/757 340/800 342/200 393/68   
   SEEN-BY: 396/45 423/120 633/280 770/1 3634/0 12 15 27 50   
   PATH: 3634/12 154/10 280/464 229/426   
      

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca