Substratum Dev Team Show & Tell — 31-May-19

Show & Tell weekly sessions are an excellent insight into the challenges and triumphs facing the Substratum development team. Each week a set of slides is released and a group conference is held with dialogue and examples of work completed, tabled and planned on the horizon!

This week showed some exciting troubleshooting, and some major steps forward in both the monetization and neighborhood dynamics areas of Substratum Node.

With an air of battle hardened precision, B.J. Allmon lead developer begins the meeting by always outlining the Strategic Goals of v1.0.0 Substratum Node:

Priority 1 — Make the Internet Free (as in Freedom) and Fair

Priority 2 — Earn Cryptocurrency. Change the World

Tactical Focus Items are also listed and briefly mentioned as Work-In-Progress

Notably mentioned this week was how the team worked with Brian M, an amazing community node-running tester, who live tested a 5-node cluster with the developer team to troubleshoot. This led to 3 defect cards (the team uses Agile lean project management techniques) outlining fixes.

The team created an “Epic” story for RC1 critical fixes to correct some further routing bugs. These fixes are being implemented in next week or so.

Another minor version roll out is imminent (0.4.7)

RC1 is starting to be packaged and continuous work around this each and every day.

It was most exciting to hear comments about horizon planning for both Substratum Host and Cryptopay!

The actual Show and Tell segment takes up the bulk of each weekly meeting. Team Members take turns to ‘Tell’ the team and community of code commits or fixes, and also ‘Show’ on-screen changes or new implemented features to demonstrate their use.

Outlined below are the major points to digest from this week!

Creating a Sub Config File — Dan Wiebe:

Dev team implemented a ‘config file’ into Node software, because at the moment, the CLI (command line) startup command has a lot of parameters that need to be typed each time a user wants to run Substratum Node. (or integrate these parameters or settings into the environment)

Issue is, there could be prying eyes viewing a user’s command-line if typed each time. Not to mention it is cumbersome for testing and for users to simply start node on machines where their settings are not changing much.

Accountant scans & add delinquencies to ban — Dan Wiebe:

The Accountant module within SubNode keeps track of ‘who owes what, to who’ for routing, and from time to time refers to a receivables table of these values to ‘balance the books.’

Bills accumulate towards a threshold (based on a curve) where the bill is to be paid for consuming.

There is another threshold noted as a delinquency limit, and when these limits are exceeded, the accountant will add that consuming wallet to a ‘ban-list’ in memory, because their debt for consuming hasn’t been paid.

Based on this, a user using a wallet on the ban-list will not have their packets routed — meaning that their node will not be able to consume, unless they pay their dues, or consume across Node with another wallet with a positive balance.

Another upcoming change on this item will be that nodes with a consuming wallet on the ban-list will be removed from the ban-list when they have paid enough of what they owe.

Node Gossip not properly introducing 6th Node — Dan Wiebe:

Currently the node neighborhood is designed to have up to 5 immediate neighbors connected to each individual node.

A bug was detected through testing with Brian, where a 6th node was not being properly passed on to another nearby neighbor to attach to, when it tried to connect to a node that was ‘full’ (already had 5 connections). There was a discrepancy with passing on the newcomer node to another one nearby. The gossip protocol was not checking with the neighbors being passed to about whether the newcomer was already a connected neighbor to them. Due to this, new nodes joining were occasionally being passed back and forth and would not connect properly to neighbors nearby.

No more bootstrap nodes — Matt:

The bootstrap function has been deprecated and the code cleaned up to remove this. There were a few parameters and command references now removed.

Now nodes can connect freely with neighbors, by debut and passing gossip.

Removal of EntryDNS crashpoints — Dan:

During testing, there were Node crashes when an EntryDNS query failed trying to receive an invalid DNS request from a browser process. There was a fix put in so the Node doesn’t simply crash when this behavior occurs, it just gives an internal error to the EntryDNS module.

SHOW — Demo from BJ:

B.J. put the updated software GUI on-screen to show the changes. The updated SubNode GUI shows a much more streamlined interface. The forms only show the required fields to Serve and Consume, and there will be a ‘Config’ option in the Node menu to allow configuration of settings into the config file that was integrated.

Changing the Node status (between Off>Serving>Consuming etc) will retain the configuration that was inputted by the user.

Note — configuration settings only persist while the Node instance is running. It will be embedded in future versions.

Also in future version coming soon, there will be data shown in the UI like statistics of routing, earnings etc

Account Payment Detection — Matt:

This module scans the blockchain for the highest block number, and detect recent transactions to update the accountant module and payment statuses (keeping the books up to date!). Block number stored in database, so scanning can be done in forward fashion.

Over last 9 weeks, the team has seen constant progression, with each weekly iteration drawing a week closer on the countdown.

The team ‘just scraped through’ this week on the countdown, with the tech debt involved this week working on the 3 defect cards (it’s Brian’s fault lol).

“Team worked really hard, and getting stuff pushed through.” — BJ

This is a moving target — scope can change, people could be off sick etc!

“This week reflects the work we did with the testing community… the 29% and defect fixes…”

BJ explained that the team is now ‘playing whack-a-mole’ on remaining issues we don’t want in version 1.

57% capacity was on the ‘planned work’ side so that looks really good.

Guest Questions/Comments during meeting:

From Brian — the team ‘kicked butt’ with the bugs! Things looking good with 5-node and 6-node clusters in current tests! Routing works perfectly with HTTP & HTTPS!

Will continue to test in isolated test environment.

Had to delete the sqlite database (node-data.db) when restarting nodes and building new networks.

Steve Swing — Name and location of database (.db) file has stabilized so it may be prevalent, but is easy to work around now with that.

Overall seems like another weekly ‘notch on the belt’ for the project timelines, with a successful work-week accomplishing fixes and cards leading to v1 RC1 (Release Candidate 1). The sense of relief in the discussion was noticeable from the team, since it was a short work week in the USA, but the meeting was also quieter than usual as some regular attendees were not present.

Stay Tuned for the next update!

Disclaimer: I am not an official Substratum team member, just a community supporter. This write-up is interpretation of the Show & Tell meeting and data released from the team. None of this is to be taken or construed as investment-related or as financial advice.