Archive for November, 2021

Blatta 9987: hearsay embargo

Monday, 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

Wednesday, 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

Sunday, 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

Saturday, 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

Thursday, 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

Saturday, 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

Monday, 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