MASQ Network
Published in

MASQ Network

Development Progress— MASQ Project Aug 2020

As we pass halfway through the crazy 2020 year to be remembered, work still goes on in Development in MASQ project. While Tech Lead Dan Wiebe still dedicates many hours of free time to the project codebase, several key areas have been spotlighted for priority development.

Below we will outline current priorities, and give an update from Stew who has been leading the QA process with community testers alongside Dan.

Design Meeting 29 July:

KauriHero and 2 other committee members held a Design meeting with Dan to discuss development priorities with the software. It was confirmed that the software is currently able to operate from a Command-Line interface on all 3 platforms (Windows, Mac and Linux), and many of the errors that caused the old software GUI to crash were made friendlier and easier to work with. The entire operation can be set up with config in both interactive and non-interactive modes, which means users can choose to progressively set or change settings while software is running (you don’t have to return to Command prompt each time you interact with the masq software instance).

After some detailed conversation it was determined there are two main development priorities at the moment:

  1. The card GH-317 UI Interface Documentation” — which will provide structure to the code and simply make it much easier for someone to develop a more advanced UI or Graphical User Interface (GUI) to work with the software — This is HUGE because it means that other developers will be able to help make the software easier to use and much simpler to interact with!
  2. The Port Forwarding component required — this was often a hurdle for users to get set up to make Node actually work on their machine. This is the part of configuration where the user has to ‘poke a hole in their router’ so that the MASQNode can communicate properly with the Internet securely. Once this item is addressed and solutions are developed, it will be many times easier for users to actually run Node successful and connect to other Node neighbors — this is the foundation of the mesh network itself.

One last comment here is we do publicly have a bit of a ‘secret admirer’ who has been watching us, and they have mentioned on Twitter they would consider trying their hand at a GUI for the project once GH-317 is completed.

Happy to see the support out there!

Quality Assurance and Testing Update — Stew

Stew has been a rock in the MASQ community and has tirelessly led the testers and quality assurance group of volunteers through the development cards being completed and committed into the GitHub code base

Below is a summary from Stew:

This is just a brief summary of some of the things Dan and the test team have been working on in no particular order.

Apologies if some of this still doesn't make any sense but some of these things can’t be explained much simpler without you either having some knowledge about MASQ, software development or without writing a full essay to simplify it.

A lot of work has been done on ‘error handling’ and setup commands, making the Command Line Interface a lot friendlier and easy to use.

Bugs have been squashed, failing tests have been fixed and all of this has been done across three platforms — Linux, Windows and Mac.

I am no techie, what I have learnt (which is very little) is thanks to Dan, but it has become abundantly clear to me that what was previously passed off as a ‘working version’ in a past project was nowhere near to being ready….and we still have a lot to do.

The software now operates with a Daemon (which will later be properly ‘daemonized’ during the OS Startup and be running in the background). The Daemon is basically a background process that isn't connected to the internet. It acts as a root-privileged target of the UI and can start up the Node. It tells the UI where the Node is so the UI can communicate with it. Currently the UI is the CLI run from the Command Prompt

Here are most of the cards that have been completed in recent months!:

  1. Make the CLI capable to both non-interactive and interactive operation — this is a really important since interactive mode allows masq to keep running and lets broadcast messages from the Daemon or Node to be displayed. It allows successive masq commands without CLI returning to the command prompt each time
  2. Environmental variables containing Node configuration now begin with ‘MASQ_’ rather than old prefix
  3. Added entries to the --help for --initialization and --dump-config so they are reasonably informative, along with the entries for--generate-wallet and --generate-wallet
  4. Updated dependencies
  5. Modified the Daemon to keep track of whether processing the setup message actually changes the pending setup state, i.e. the Daemon should broadcast setup changes
  6. Make Daemon sensitive to defaults, i.e. differentiating between whether the value is a default-value or is specified by the user, or possibly something else
  7. Modify TNT so that it can work from any number of binaries directories, running different versions of the binaries on different VMs or containers
  8. Give --dns-servers an official value
  9. Daemon removes setup attribute when the value is set to null
  10. Daemon modified to only start in root or administrative mode
  11. Modified the syntax for configuration parameters
  12. Cleaned up the Continuous Integration (CI) — making the build time tolerable
  13. CLI New execution mode — Node listens for connections on a defined port
  14. Setup state modified to retain the settings used to start the Node and made immutable until the Node goes down
  15. If masq is run when the Daemon isn’t running, it now gracefully terminates with an informative message instead of panicking
  16. Daemon will sense that masq is running, informing you to shut it down before trying to start it again

Again special thanks to all our volunteers, and especially the testers alongside Stew — aclearsky, bertolt and several others in the fold! WE APPRECIATE YOU!

Also we are grateful for all the wider community support and the active listeners, observers and even the skeptics who keep us accountable.

We know things can be awkward, quiet and unpredictable at times but we aren’t losing sight of the purpose of all this effort — a community based project for the Internet Community of the future! One that has freedoms promised and secured by the users themselves, no matter where they live or operate from.

Take care of yourselves, BE KIND and stay safe




MASQ combines the benefits of VPN and Tor technology, to create a superior next-generation privacy software, where users are rewarded for supporting an uncensored, global web. Users gain privacy and anonymity online, while helping promote Internet Freedom.

Recommended from Medium

Pieces of Advice to be a Successful Software Engineer

How to make a div center in HTML

Microservices best practices

Make Selenium Easy

Understanding Radix Sort

Deadlines and why they are a net loss of productivity for most software development teams.

Open Source Data Reliability, Joyful Data Devs, TechRadar 26; ThDPTh #65

Compressing Images for the Web

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


Passionate about decentralization and freedom — working in high performance teams to better ourselves and the people we interact with!

More from Medium

Adventure: Guide to Shrouded Islands

Buying and minting my first NFTs wasn’t hard -here’s a simple tutorial

How To Create Hundreds of PFP NFTs With Python and Affinity Designer

GDC 2022 React. Metaverse Games: State of Play and Opportunities