Node
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.
Install / Use
/learn @MASQ-Project/NodeREADME
MASQ Node 
<div align="center">
</div>
MASQ Node combines the benefits of VPN and Tor technology, to create superior next-generation privacy software, where users are rewarded for supporting an uncensored, global Web. Users gain privacy and anonymity, while helping promote Internet Freedom.
Purpose
MASQ Node forms the foundation of the MASQ Network.
The MASQ Network is an open-source decentralized mesh-network (dMN) that allows any user to allocate spare computing resources to make the Internet a free and fair place for the entire world. It is a worldwide collection of Nodes that securely delivers content without the need of a VPN or Tor.
Because there's no single authority delivering or monitoring content, censorship and geo-restricted sites won't be an issue on the MASQ Network. It doesn't matter where you live or what content you're accessing, everyone in the world sees the exact same content.
MASQ Node software is what the average user runs to earn $MASQ utility tokens and dedicate some of their computers' resources toward the Network - users can be rewarded with $MASQ for each time they serve content.
MASQ Nodes work together through the mesh network to relay digital content. When a user requests a site, Nodes use a routing algorithm to find the most expedient and secure way to get the information to that user. Multiple Nodes work together to route a single request in order to maintain a necessary level of anonymity.
Important Note: Please remember that at the moment the MASQ Node is in development and is not clandestine. Your traffic can't be decrypted, and it is difficult to trace to you; but it is currently very easy for someone sniffing your Internet connection to tell that you're using some form of Peer networking. Please don't use it for any kind of sensitive traffic at this stage - MASQ Network and it's developers are not responsible for any activity, or loss incurred, while using this beta software.
Source
The MASQ project was forked from Substratum's Node project in order to carry on development after Substratum ceased operations in October of 2019. In 2021, Substratum's Node repositories were removed from GitHub, so the fork link with MASQ was broken, but all credit for the original idea and the original design belongs to Substratum (and properly attributed through GPLv3 license)
Running the MASQ Node
MASQ Node Knowledge Base
A Knowledge Base and testing resources are being refined for users with various levels of technical ability.
There you can find further information, guides and configuration examples for running MASQ Node from:
- MASQ Browser
- CLI
- Docker image
If you are interested in testing stages, speak to the team in the official Discord channel
MASQ Node Component README.md files
To help navigate the codebase, here are the README.md links for all documented components
- Blockchain-Service-URL
- sub_lib
- proxy_server
- test_utils
- ui_gateway
- accountant
- proxy_client
- entry_dns
- hopper
- neighborhood
- multinode_integration_tests
Downloading Official Releases
Releases will appear on our GitHub page - click on the badge above for the latest stable beta build, or go to our Releases page
Downloading the Latest Build
If you want to try out the latest build, go to our GitHub Actions continuous integration page to see a list of builds. Look for the latest (uppermost) successful build: it'll have a white checkmark in a green circle next to it.

Click on that link and scroll to the end of the page. You'll see a set of three artifact packages, one for each platform MASQ supports.

Click the one that matches your platform; your browser will download a .zip file. Inside the .zip file are many
things useful to developers, but you'll be interested in the executable binaries in /generated/bin.

Make a directory somewhere on your system from which you'll run MASQ. You'll want to extract one or more files from
/generated/bin in the .zip file into that directory.
The most important file is MASQNode, or MASQNode.exe if you're using Windows. Definitely extract that one. It
contains the code for both the MASQ Node and the MASQ Daemon.
If you're using a graphical user interface for MASQ, that's all you'll need. If you're not, you'll probably also want
masq, which is a command-line user interface.
If the regular network-proxy setup doesn't work for you, you might want dns_utility as well to make it easy to
subvert your system's DNS configuration.
Finally, automap is a test utility used to check MASQ's automatic firewall penetration functionality against your
particular router. Unless you've volunteered to help the MASQ dev team run tests, you won't need this.
Running from the Command Line
These instructions assume you have the MASQ Node executable but not the MASQ GUI. (If you do, consult the GUI
documentation about starting the Node on our Testing Guides) You'll want to run the MASQ programs from wherever you expanded the
/generated/bin path from the .zip file you downloaded.
There are a number of ways to run the Node, but the way you'll probably want to use is to make sure the MASQ Daemon is started first. If the Daemon is not running in the background already, open a terminal window and start it by typing
$ sudo nohup ./MASQNode --initialization &
if you're working in Linux or macOS, or
$ start /b MASQNode --initialization
if you're using Windows.
The Daemon's responsibility is to configure and start the Node. When it comes up, it sets up an initialization area that contains configuration data for the Node: some of it defaulted, some of it loaded from the environment, some loaded from a configuration file, if present, and the rest of it uninitialized. Before the Node is started, the configuration data in the Daemon's initialization area should be adjusted so that the Node has what it needs when it comes up.
If you have no GUI, the simplest way to do this is with the masq command-line user interface. Once you have the
Daemon running, type
$ masq
at a handy command prompt. To learn how to use masq to set up and start the Node, type help at the masq> prompt,
and pay special attention to the setup and start commands.
If this is the first time you're starting the Node, you may also be interested in set-password, create-wallets, and
generate-wallets.
Supplying Configuration To MASQ Daemon
There are four ways to get configuration information into the initialization area of the MASQ Daemon on startup. In decreasing level of priority, these are:
masq- the Daemon's shell environment
- a configuration file
- defaults
Any piece of configuration information can be provided through any of these channels, with one exception: the path to the configuration file cannot be taken from the configuration file. (It can be provided there, but it will never be taken from there.) Configuration information provided in the configuration file will supersede defaults, information provided in the environment will supersede conflicting information provided in the configuration file, and information provided via the UI will supersede conflicting information from all the other sources.
UI
This is the easiest. In this file, our documentation of the configuration options shows you how to provide them to
masq on the command line, either in interactive mode or in noninteractive mode. Keep in mind, though, that command
lines tend to be preserved by the operating system for display to users who want to see process lists. Therefore, the
command line may not be the best place to specify sensitive or secret configuration information. (Nothing prevents you
from doing this, though, so be careful.)
Shell Environment
If you see that the UI accepts a command such as setup --clandestine-port 1234, then you can supply that same
parameter in the environment by setting the MASQ_CLANDESTINE_PORT environment variable to 1234. Note that you need
to remove the initial -- prefix, convert the name to all uppercase, change hyphens to underscores, and add a MASQ_
prefix to namespace the parameter against other applications that might look for a similar variable.
Configuration File
The configuration file, by defaul
