Substratum Dev Team Show & Tell — 19-July-19 (i37)

Show & Tell weekly sessions are an excellent insight into the challenges and triumphs facing the Substratum development team. For those following these Show & Tell discussions, the format of the progress breakdown has just gotten slightly more tense and exciting, because the team is down to the last handful of critical items (cards) to move to the first Release Candidate (RC1) of the SubstratumNode

As always, B.J. Allmon heads the meeting by outlining the Substratum Node Version 1 Strategic Goals:

  • Priority 1. Make the Internet Free (as in freedom) and Fair. — “As a SubstratumNode user I can allocate my spare computing resources so that the Internet can be a free and fair place for the entire world.”
  • Priority 2. Earn Cryptocurrency. Change the world. — “As a SubstratumNode user I earn $SUB as content is routed through my node so that I am incentivized to make the Internet free and fair.”

Many of the Tactical Focus Items listed have been done for a while. Most of these have been done for the purpose of RC1 and the others that are Work-In-Progress will be built-out further after RC1 to provide more in-depth features.

GUI (Graphical User Interface) updates have notably been challenging and involve a lot of work.

The ‘Show and Tell’ segment

The Development team review the completed work for the week, including Telling the story of each card, or Showing the completed feature.

This week was interesting to hear all the inside dynamics about the wallet generation from Dan Wiebe and accessing it from Node itself. Most engaging was the number of on-screen demos from Command-Line

Correct handling of wallet password from gui

This was an item that Dan noticed. The wallet password is used in multiple places in Node, but it was not correctly being referenced in all places in the software.
Once the wallet details are unlocked with the user password, now it is properly referenced in all areas.

use default fixed service rate pack

Right now there isn’t a configurable rate (cost per CORES packet routed) yet integrated into Node. This card enforces if someone happened to modify the source code to charge some arbitrary rate per CORES packet, Node then reverts to the default rate (which will be specified later on by the user in future Node versions).

provide better clap cli help – clandestine port and neighbors

Help file onscreen in command-line has been built out, with more info and verbiage for users.

Dan also showed this in his Show session, illustrating that the Help screen update provides more info for users when using the wallet integration commands.

show – windows subnode cli doesn’t print out anything – dan wiebe

Dan Wiebe took the lead on the SHOWs this week and first showed a demo of the use of Substratum Node from CMD command-line

Dan shared on-screen after some deliberation (BJ casually walked over, as a battle-scarred Zoom meeting veteran, and fixed it for him)

This is great, as a lot of users and testers are Windows based!

show – consuming private key into database + blockchain: pay bills!- dan wiebe

This segment was both lengthy and very thorough. This area of cryptography is the foundation of blockchain in both Bitcoin, Ethereum and many other chains. As much of the wallet address and key pair dynamics are very elaborate, you might find this other post useful that I am about to publish (link to be added) – its quite a lot to wrap one’s head around!

In a nutshell, wallet integration is coded within Node software, so that it can generate mnemonic seeds and allows the BIP32 cryptography to generate key pairs for wallets on the ETH blockchain.
While you can both generate new wallets and recover your own using your mnemonic seed and passphrase (and use wallet private key), this entire integration means that things can be simplified for users once the UI is built out. It also allows users to use wallets from many different origins including Hardware wallets like Trezor and Ledger.
This is critical for adoption by both new entrants to the crypto sphere, but also to others who are not familiar with managing wallets, and use the assistance of user-friendly platforms and hardware.

While the demo showed the many ins and outs of the way Substratum Node interacts with wallet generation, recovery and integration, Dan also demonstrated what is shown and stored in the database file. (stored in sqlite3 format – node-data.db)
With both security and monetization factors in mind, different parts of wallets and keys are stored in the node-data.db database file itself, depending on what is specified.

It does not show the consuming wallet private key (as that could be used to drain the wallet of funds by a malicious party!)

By providing the consuming private key to SubNode when it runs, it does not display the mnemonic seed or the consuming wallet derivation path, unless this is specified by the user purposefully. If the seed is displayed, it is displayed in encrypted format, using the user-defined password.

That said, the consuming wallet public key and earning wallet addresses can also be stored in the database. This is integral in the monetization model, because a node will have to prove to others that are involved in data routing and transactions, that it:

  • Has a correct private key that matches the public key for the Consuming Wallet
  • Has an earning wallet address stored (so others can ‘pay’ it for routing)

This was also confirmed on-screen showing the Ian Coleman BIP32 Mnemonic Generator, which confirms that the mnemonic BIP32 generator and functions all work correctly.

Also critical in this area, it was demonstrated that YOU CANNOT CHANGE THE EARNING WALLET once your Node is initialized. The main reason for this is because it will interfere with the accounting module and the bookkeeping.
If you do intend on changing the earning wallet, you need to delete the database file and specify all wallet details again. In this case you will lose all account receivables that are owed to you for routing.

Additionally, the public and private keys are matched during the initialization of Node, so if the user does change the private key when starting up, Node will detect that it is different to the public key that is stored (as the private key is not stored in the database for security reasons outlined above).

Lastly, it was shown that language support is provided for wallet generation and command line for Chinese, Japanese, French, Italian, English and several others.

As explained several weeks ago, the tracking and completion projections have changed as the final few cards are in motion. Each card is critical to be completed for RC1, and 2 cards are blocked by one in progress now.

The reason the Todo card count is at 2.5 is there is a card that was finished which was going through review on Friday, right after the Show & Tell session.

Happy friday! Here is today’s show and tell deck. Quick heads up. The “Blockchain: pay bills” card is in team review right now. It will be made public once review is completed and any minor tweaks are made if necessary.

B.J Allmon

With 3 cards completed during the week, this team is not stopping the momentum – the tracking method has changed for the public to view the progress based on cards remaining.

To keep all the team utilized, there are some RC2 cards that are being worked on while other coding pairs (pairs of developers working together on card items) are busy with the RC1 cards in progress.

Team Capacity Utilization overall is interesting right now because RC1 is imminent – the yellow area shows some parts of the team are working on background RC2 items, to ensure that all team members are productive on the initiative.

The bugs that were worked on took up the 33% capacity were relating to the wallet monetization components and the Windows usability of the software

Things are getting closer and closer as RC1 work is checked off and implemented!
Stay tuned for another update next week!

If you have enjoyed all the Show & Tell summaries thus far, please donate to the cause below, so the Substratum Wiki community can continue to curate, host and push out this great information for everyone!

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.

ETH donations much appreciated, and will go directly to support hosting the website: