Substratum Dev Team Show & Tell — 28-June-19 (i34)

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 planned, completed and lurking on the horizon!


This week has a small number of items on the Show & Tell, but they are very important.

As always, B.J. Allmon heads the meeting by 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 outlined listed and briefly mentioned as Work-In-Progress


Many of the listed items are completed for Release Candidate 1, and this is very promising in terms of having a secure and stable candidate to fully test, leading to the final Version 1 (v1.0.0) release!

BJ explained that the team also has spent a little time mapping out CrytoPay flows, and also integration ideas in the Amplify product suite and Amplify wallet.


The ‘Show and Tell’ segment this week shows only a small number of cards, since there are very few cards left to work on for RC1.

But the things in it are GOOD! — B. J. Allmon


Outlined below are the items to report this week:

TELL — Proxy Client timeout charges for 0-byte — Dan Wiebe

Actually fixed now!

Dan spoke a little about this last week. The issue arises when a connection or stream is broken between a browser and a server. If the browser closes or stops requesting the connection to a website for example, SubNode was not communicating that to the website server (including if this happens from the server end also). This arises because SubNode sits in between the browser and the server in the network layer. So there needed to be a way to send the “Drop-Report” across the network to the exit node to inform the Server to terminate the connection. And vice-versa for the server to report to the originating node browser if that connection drops or ceases to connect.

Tell — Write logs with closures and macros, not functions — Dan Wiebe

When SubNode writes logs, there is usually a string written which is input into a log function. The level of the logging determines whether the logging subsystem outputs the log text or not.

In many cases the work involved with the logging was not required, and performance and resources were being wasted doing this.

So instead, the function and string work will be avoided if the logging is not to be written when your logging level is set very high (to WARN or ERROR)

So this actually boosts performance when you don’t have the logging level set to DEBUG or TRACE

SHOW — Release Notes for v0.4.8 — B.J. Allmon

B.J. Allmon went over the release notes and fixes that were implemented in the recent minor release.

The main reason this minor release was pushed out, was so the fixes could apply to testers using the GUI, so they can also have the benefit of the performance fix with the accountant thread.

SHOW — Make logs consistent — Dan Wiebe

Logging was pulled up on screen, and the old versus the new were compared in text form.

Overall, there is now less logging being written that was wasting space and creating extra parsing. This includes referencing the libraries being used that get output into the logs.

So the logs are more streamlined but also consistent over the different log level outputs.


Incredible to see the 1-week figure on the trajectory for RC1

Incredible to see the 1-week figure on the trajectory!

But it can be misleading even though things are looking good.

First time in the history of my software development career, I’ve seen this same 2-week forecast over a 2 month range! — B.J. Allmon

B.J. Allmon explained that 4th July is a USA holiday where they aren’t working and the talk in the community has been it would be great for excitement and marketing etc.

But the team is unemotional about it, so they are just trying to get the work done.

In the To-Do bucket, there are just 3 cards, but only 2 can be worked on in parallel — the third are dependant on the other ones, so it’s an order-dependant process to complete them all.


Team Capacity Utilization

B.J Allmon added an ‘Ideal’ benchmark bar, and the ‘Initiative’ bar, which shows across the majority of the work done on the SubNode initiative.

The recent bar showing ‘Other’ related to the work on the logging, which wasn’t critical to RC1, but allowed members of the team to be productive on other enhancement.

The team has four things in flight which are really close.

Stay tuned for another Show & Tell next week with the Substratum Developers — hopefully its an announcement of the Release Candidate 1 being ready for testing in the real world!


For those who want more technical insight, I tried to capture the Guest Open Space chatter. If you don’t want to ‘geek out’, you can stop reading here!


Guest Questions/Comments during meeting (paraphrased!)

Andreas reminded of the changing (dynamic) IP concern

BJ — Some ideas are being discussed, which will be exciting to see how it can be implemented. The team agrees it is totally doable.

Steve — we need to investigate what happens to the IP on the ISP end, and how it affects the nodes connected. It would require another neighbor on the network to ‘notice’ that the IP address changes, and then be able to reintroduce the node into the network again.

Cuba — the feedback in the community is that the performance has improved!

BJ — has seen a lot of the State error coming up in the test community and lots of items noticed with Windows 10. The team is getting to that, and a lot of work for Windows users is in the backlog and will be worked on for that.

BJ — we have considered the test community suggestion to have some official nodes running to start the network. But we wouldn’t want to ship the software with nodes already embedded in the GUI

Currently the overall UX experience is the ‘Version1 experience.’

We have a lot of ideas — based on things like Proxy, instead of subverting the machine DNS.

The GUI needs to be completely revamped at some point.

We need to rethink that, but now the priority is a functional product that proves that it works.

Brian — the ‘Consume’ button seems to be flawed

Especially in the Windows GUI, as even though the DNS entry is showing up on the IPv4 settings, routing stops working when a user clicks CONSUME button from the SERVING state.

This can be fixed with a work-around by having the State as SERVING, open up the IPv4 properties in your network settings, and set the DNS manually to 127.0.0.1 — works every time so far.

BJ — this seems to be an issue and the fix is in the works


Disclaimer: I am not an official Substratum team member — I am a community moderator. 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.