Blatta 9985: One thread only

December 4th, 2021

Version 9985 includes:

- complete removal of threading
- don't listen for tcp connections after irc client connected
- removed --verbose and --debug options, now there is just --log-level, which accepts "debug" as an argument. default is info.
- irc server binds only to localhost
- info logs now have better info

Notes:

I've left this version running for about 14 hours and encountered no exceptions or crashes.

9985-single-thread.vpatch

9985-single-thread.vpatch.thimbronion.sig

Blatta 9986: Rebroadcast simple hearsay, embargo simple hearsay, more...

December 1st, 2021

Version 9986 includes:

- rebroadcast simple hearsay messages
- embargo simple hearsay messages
- more granular db write locking that should eliminate occasional slqite3.Programming error exceptions
- Pass broadcast message bytes straight through instead of recompiling them before rebroadcast
- Better handling of AT entries with empty addresses
- Fix erroneous references to 'logger' that should have been 'logging'

9986-rebroadcast-simple-hearsay-and-more.vpatch

9986-rebroadcast-simple-hearsay-and-more.vpatch.thimbronion.sig

Blatta 9987: hearsay embargo

November 29th, 2021

Version 9987 includes:

- embargoing of in-wot messages
- hearsay message labeling
- removed IRC message formatting from pest message body
- some removal of dead/unnecessary irc related code
- limit of one irc client connection per station
- fix for crash when messages sent to unknown handle
- proper padding
- message bytes complied one time only
- a small number of unit tests

Notes:

This version introduces threads in order to implement hearsay embargoing. This opens the possibility of a whole new world of bugs. The pest portion of Blatta has been refactored for ease of unit testing. I added unit tests to avoid recreating the actual network conditions that would produce the hearsay messages that need to be tested. I am considering adding unit tests for the message packing portion of the code. This could come in handy for others when building their own pestrons.

9987-embargoing.vpatch

9987-embargoing.vpatch.thimbronion.sig

Blatta 9988: deduplication by message hash

November 17th, 2021

Version 9988 includes:

- Overhaul of deduplication algo: Previously timestamps were used to determine whether or not a message was unique. Now a hash of the message is being used. WARNING: Messages from stations that have not yet applied 9988 may not be detected as dupes by 9988 due to the switch from timestamps to hashes. There were multiple issues in previous versions causing messages with identical irc message payloads to appear to be different when hashed.

- Fix for overzealous rubbish message broadcasts.

Additionally, I have started publishing my station's debug log in an effort to aid Blatta testers.

9988-hash-dedup.vpatch

9988-hash-dedup.vpatch.thimbronion.sig

Blatta 9989: presence for wot

November 14th, 2021

Version 9989 includes:

- joins automatically sent for peers in WOT.
- join/part sent for peer/unpeer commands.
- AT timestamp now updated on receipt of rubbish packets
- --channel-name command line option for specifying what chan your Pest network expects everyone to be on.
- Don't include hostname in irc messages from clients.

9989-show-wot-nicks.vpatch

9989-show-wot-nicks.vpatch.thimbronion.sig

Blatta 9990: rubbish messages

November 13th, 2021

Blatta 9990 implements rubbish messages in order to attempt to keep ephemeral ports open.

Also included is a fix to prevent Blatta from crashing on bad input to the AT command and some refactoring wrt message handling that doesn't affect behavior.

9990-keep-ephemeral-ports-open.vpatch

9990-keep-ephemeral-ports-open.vpatch.thimbronion.sig

Blatta 9991: Better logging and miscellaneous fixes

November 11th, 2021

Improved logging with abbreviated message hashes associated with addresses should help track down missing messages.

Improved logging of various things that can go wrong with a message.

Fixes a crash caused by attempting to add a duplicate handle.

AT timestamps are now only set when a message has been received from a peer.

Removed some options that shouldn't be used. Renamed --ports to --irc-ports for clarity

Poll the socket only once per second instead of continuously

Renamed default database file to blatta.db

9991-improved-logging.vpatch

9991-improved-logging.vpatch.thimbronion.sig

Blatta 9992: Better feedback and user input edge case handling

November 6th, 2021

Version 9992 consists entirely of bugfixes related to poor user feedback and poor handling of command input edge cases (errors when the wot is empty, there is no key for a handle, etc.)

9992-handle-edge-cases-add-feedback.vpatch

9992-handle-edge-cases-add-feedback.vpatch.thimbronion.sig

New Alcuin Release and Rename to Blatta

November 1st, 2021

As you may know, "blatta" is Latin for "cockroach." This name seems more aligned with the Pest theme, so I'm going with that.

I'm attempting to release this as a signed genesis. I haven't been able to figure out how to press it myself yet using vk.pl, but it *should* work for those who know how to use their v implementation.

This version implements several Pest-specific commands: AT, WOT, KEY, UNKEY, PEER, UNPEER, and GENKEY. In addition, this version requires only one key to be shared between a pair of peers, and also uses base64 format to store and display keys.

This is the first version that doesn't require a station to be restarted to add new peers, so it may be a bit easier at this point to stand up a longer running test net.

genesis.vdiff genesis.vdiff.thimbronion.sig

Alcuin 9994

October 11th, 2021

From the updated README:

Alcuin implements a subset of the Pest spec, which can be found
here: http://www.loper-os.org/pub/pest/pest_draft.html                                                    

Although it is a work in progress and much is yet to be completed, Alcuin
*should* be able to interact with another Pest client
successfully.

Notably missing:                                                                                          

- Pest specific client commands
- Pest specific warning/informational output for incoming/outgoing messages
- GetData message support
- Key Offer message support
- Key Slice message support                                                                               

Under the hood there is a dynamic AT and WOT, but there is no way to update
them via the client.

For the moment the client must still be configured via the config.py file,
although this is now passed in via the --address-table-path command line
option.  For now, the config file is really a combination WOT/AT.

I am unable to provide a genesis using vdiff at this time because I can't get vdiff to exclude certain ephemeral files and directories.

alcuin-9994.tar.gz alcuin-9994.tar.gz.asc