Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
faq:misc [2018/03/01 12:21] – old revision restored digital manfaq:misc [2018/07/06 14:17] – [SBBSList] Updated for sbbslist v4 digital man
Line 52: Line 52:
 :!: **Answer:**\\ :!: **Answer:**\\
 The best way is to first join [[network:DOVE-Net]], then run the Synchronet BBS List The best way is to first join [[network:DOVE-Net]], then run the Synchronet BBS List
-(SBL) door on *your* BBS and add an entry for your BBS. This entry should+([[module:sbbslist]]) door on *your* BBS and add an entry for your BBS. This entry should
 be automatically exported to the DOVE-Net SYNCDATA echo which will then be be automatically exported to the DOVE-Net SYNCDATA echo which will then be
-propagated to [[bbs:Vertrauen]] and every other BBS on DOVE-Net. The sbbslist.html+propagated to [[bbs:Vertrauen]] and every other BBS on DOVE-Net. The ''sbbslist.html''
 page is automatically generated on Vertrauen every night at midnight page is automatically generated on Vertrauen every night at midnight
 (Pacific time), so wait a day or so for your entry to appear on the list. (Pacific time), so wait a day or so for your entry to appear on the list.
 If it doesn't appear, verify that that your BBS entry was properly If it doesn't appear, verify that that your BBS entry was properly
-exported (as a message) to the SYNCDATA message area. The events that run +exported (as a message) to the SYNCDATA message area. The timed events 
-SMB2SBL and SBL2SMB to import and export BBS entries should be configured +SMB2SBL and SBL2SMB that will import and export BBS entries should be configured 
-by default. If they are not, see xtrn/sbl/sbl.doc for more details.+by default. If they are not, see [[module:sbbslist]] for more details.
  
 ===== Time Stamp Error =====  ===== Time Stamp Error ===== 
Line 133: Line 133:
 Because, for the message-IDs to be useful for any intended purpose (e.g. dupe-checking, reply-linking) they **must** be //unique// for every message created on a BBS. Because, for the message-IDs to be useful for any intended purpose (e.g. dupe-checking, reply-linking) they **must** be //unique// for every message created on a BBS.
  
-When using [[https://www.ietf.org/rfc/rfc0822.txt|Internet-standard message-IDs]] (defined in 1982), this is not a problem because the entire message identifier is basically free-form text (between ''<'' and ''>'' delimiters), leaving the entire data portion completely up to the implementer to add whatever data they feel necessary to guarantee a unique ID for any particular message created at any given time. No data within an Internet-standard message-ID is expected to be interpreted or used in any way, other than to uniquely identify a particular message. The data could be a large number or just a string of meaningless symbols and so long as it is unique, it's doing its job rather perfectly. Usually, an Internet-standard message-ID will contain a globally unique addresses (e.g. public IP address or host name) so as to prevent random collisions with the IDs generated on a nearly unlimited number of other systems on the Internet, but there is no //requirement// that an address is included in the identifier.+When using [[https://www.ietf.org/rfc/rfc0822.txt|Internet-standard message-IDs]] (defined in 1982), this is not a problem because the entire message identifier is basically free-form text (between ''<'' and ''>'' delimiters), leaving the entire data portion completely up to the implementer (e.g. programmer) to add whatever data they feel necessary to guarantee a unique ID for any particular message created at any given time. No data within an Internet-standard message-ID is expected to be interpreted or used in any way, other than to uniquely identify a particular message. The data could be a large number or just a string of meaningless symbols and so long as it is unique, it's doing its job rather perfectly. Usually, an Internet-standard message-ID will contain a globally unique addresses (e.g. public IP address or host name) so as to prevent random collisions with the IDs generated on a nearly unlimited number of other systems on the Internet, but there is no //requirement// that an address is included in the identifier.
  
-However, for FidoNet, [[http://ftsc.org/docs/fts-0009.001|the de facto standard]] (defined in 1991) imposed some restraints on the contents of the message-ID (between ''^AMSGID: '' and ''\r'' delimiters): 2 fields separated by a single space: ''origaddr'' and ''serialno''. The definition of the ''serialno'' field is thus:+However, for FidoNet, [[http://ftsc.org/docs/fts-0009.001|the de facto standard]] (defined in 1991) imposed some restraints on the contents of its message-IDs (the data between ''^AMSGID: '' and ''CR'' delimiters): 2 fields separated by a single space: **''origaddr''** and **''serialno''**. 
 + 
 +The definition of the ''serialno'' field is thus:
 <file> <file>
 ... may be any eight character hexadecimal number, as long as it is unique - ... may be any eight character hexadecimal number, as long as it is unique -
 no two messages from a given system may have the same serial number within a three years. no two messages from a given system may have the same serial number within a three years.
 </file> </file>
-My interpretation of this requirement is that the author thought that 32-bits (8 hex digits) of data were enough to uniquely identify every message generated on a single FidoNet node for at least 3 years. Even if that were true, as an experienced BBS software developer, I have these issues with that concept:+My interpretation of this requirement is that the author of the specification was asserting that 32-bits (8 hex digits) of data (~4.2B unique numbers) was enough to uniquely identify every message generated on a single FidoNet node for at least 3 years. Even if that assertion were true, as an experienced BBS software developer, I have these issues with that concept:
   - 3 years is not long enough. I have message threads on my BBS dating back 20 years or more and I certainly expect and my software depends on the message-IDs being unique so long as the messages are stored in the message bases. If the messages are stored for a 100 years, their identifiers should still be unique then. So forget the 3 year clause, that's no more valid a limitation than Bill Gates' 640 Kilobytes((supposedly a myth, but a good one)).   - 3 years is not long enough. I have message threads on my BBS dating back 20 years or more and I certainly expect and my software depends on the message-IDs being unique so long as the messages are stored in the message bases. If the messages are stored for a 100 years, their identifiers should still be unique then. So forget the 3 year clause, that's no more valid a limitation than Bill Gates' 640 Kilobytes((supposedly a myth, but a good one)).
-  - A pseudo-randomly chosen 32-bit number is obviously **not** a good choice, but it //would// probably work for the majority use case. I fear that some inexperienced or lazy programmers might have chosen this solution and no one would be the wiser until... someday there's a random ID collision and someone might notice and complain. But probably not. +  - A pseudo-randomly chosen 32-bit number is obviously **not** a good choice, but it //would// probably work for the majority use case. I fear that some inexperienced or lazy programmers might have chosen this simple "solutionand no one would be the wiser until... someday there's a random ID collision and someone might notice and complain. But probably not. 
-  - A 32-bit ''time_t'' (Unix time, in seconds since Jan-1-1970) would seem an obvious choice for the ''serialno'' field except for the fact that today's systems can generate many thousands of messages per second if they need to. Even the multinode systems of the 80's and 90's could easily generate multiple messages within the same second. Many FidoNet programmers fatally chose a ''time_t'' value as their ''serialno'' as their source of //uniqueness// and you can see the proof of this in the MSGIDs that show up in FidoNet messages //to this day//((If this is your software doing this, you should fix or replace it)). Again, nobody is wise to this design flaw until there is a "random" collision one day... and maybe someone notices. But usually not. +  - A 32-bit ''time_t'' (Unix time, in seconds since Jan-1-1970) would seem an obvious choice for the ''serialno'' field except for the fact that today's systems can generate many thousands of messages //per second// if they need to. Even the multinode systems of the 80's and 90's could easily generate multiple messages within the same second. Many FidoNet programmers fatally chose a ''time_t'' value as their ''serialno'' and only source of //uniqueness// and you can see the proof of this in the MSGIDs that show up in FidoNet messages //to this day//((If this is your software doing this, you should fix or replace it)). Again, nobody is wise to this design flaw until there is a "random" collision one day... and maybe someone notices. But usually not. 
-  - A system to exclusively register monotonically-incrementing message serial numbers would be error prone (e.g. the sysop deletes the data file tracking the last assigned serial number) and unnecessarily bottle-neck message generation (e.g. importing thousands of messages from some other networking technology, which would need unique FidoNet-style message-IDs assigned to each)+  - A system to exclusively register monotonically-incrementing message serial numbers would be error prone (e.g. the sysop deletes the data file tracking the last assigned serial number) and unnecessarily bottle-neck message generation (e.g. importing thousands of messages from some other networking technology, which would need unique FidoNet-style message-IDs assigned to each).
   - It's obviously still a problem if 2 //different// systems generate the same message-ID ''serialno'' value, unless there's some //other// source of "uniqueness" in the Message-ID...   - It's obviously still a problem if 2 //different// systems generate the same message-ID ''serialno'' value, unless there's some //other// source of "uniqueness" in the Message-ID...
  
Line 160: Line 162:
   <msgnum>.<subcode>@<ftn_addr>   <msgnum>.<subcode>@<ftn_addr>
  
-where the ''<msgnum>'' is the monotonically-incrementing message number for the message in this particular message database (//echo area//)''<subcode>'' identifies the message database where the identified message is stored, and ''<ftn_addr>'' is the 3D or 4D FTN-style address of the FidoNet-style node that created the messageExample:+where  
 +  * ''<msgnum>'' is the monotonically-incrementing message number for the message in this particular message database (//echo area//) 
 +  * ''<subcode>'' identifies the system-local message database where the identified message is stored 
 +  * ''<ftn_addr>'' is the 3D or 4D FTN-style address of the FidoNet-style node that created the message 
 + 
 +Example:
   73470.sync@1:103/705   73470.sync@1:103/705
  
 The result **is** a "//valid return address for the originating network//", in that a FidoNet NetMail sent to this address will normally reach the sysop of the originating node (in the example case, me). But the //originating// network might **not** be an FTN network. There is **nothing** in FTS-9 that specifies the form or content of the ''origaddr'' field. In fact, it mentions the use of "double-quotes" and how they must be escaped if part of the address. When is the last time you saw quotes of any kind in an FTN address? Clearly the author was leaving this definition open to non-FTN addresses. And again, it's only a "should" clause anyway. This field could only contain the GPS coordinates of my birthplace and would still be completely within the requirements of the specification. The result **is** a "//valid return address for the originating network//", in that a FidoNet NetMail sent to this address will normally reach the sysop of the originating node (in the example case, me). But the //originating// network might **not** be an FTN network. There is **nothing** in FTS-9 that specifies the form or content of the ''origaddr'' field. In fact, it mentions the use of "double-quotes" and how they must be escaped if part of the address. When is the last time you saw quotes of any kind in an FTN address? Clearly the author was leaving this definition open to non-FTN addresses. And again, it's only a "should" clause anyway. This field could only contain the GPS coordinates of my birthplace and would still be completely within the requirements of the specification.
      
-The serial number (''serialno'') field generated by Synchronet and its utilities is a mathematical sum of the area-unique ''<msgnum>'' and a number derived from the date and time the message was created so as to maximize the use of the allocated 32-bits. The serial number will by unique among all the messages generated by a Synchronet-system in a single message area (echo), but is not guaranteed to be unique, by itself, among //all// the FTN-connected message areas of a single Synchronet-system. The ''serialno'' field //alone// does **not** constitute a unique message identifier (so don't try to use it as one).+The serial number (''serialno'') field generated by Synchronet and its utilities is a mathematical sum of the area-unique ''<msgnum>'' and a number derived from the date and time the message was created so as to maximize the use of the allocated 32-bits. The serial number will by unique among all the messages generated by a Synchronet-system in a single message area (echo), but is not guaranteed to be unique, by itself, among //all// the FTN-connected message areas of a single Synchronet-system. The ''serialno'' field //alone// does **not** constitute a unique message identifierso don't try to use it as one!
  
 **But it doesn't //look// like other other FTN MSGID's!?!** **But it doesn't //look// like other other FTN MSGID's!?!**
Line 175: Line 182:
 If you have or know of someone that has software that has a problem with the Synchronet-generated FTN MSGID's, I am truly sorry. That same software, if it exists, would have a similar problem, whatever that is, with many other unique FTN MSGID's which existed long before Synchronet and SBBSecho started sending messages with unique message-IDs into FidoNet-style networks. If you have or know of someone that has software that has a problem with the Synchronet-generated FTN MSGID's, I am truly sorry. That same software, if it exists, would have a similar problem, whatever that is, with many other unique FTN MSGID's which existed long before Synchronet and SBBSecho started sending messages with unique message-IDs into FidoNet-style networks.
  
-**But //why// don't you change it to look like other other FTN MSGID's!?!**+**But //why// don't you change it to look like other FTN MSGID's!?!**
  
 Because: Because: