Run MobileCoin Consensus Validator Node

Run MobileCoin Consensus Validator Node
MobileCoin Consensus Validator Node

MobileCoin can be used for making private payments using mobile devices. In this post we are going to setup and run a MobileCoin consensus protocol validator node. MobileCoin network protocol aims to be a privacy focused payment crypto where a user can make transactions using mobile devices.

What is MobileCoin?

MobileCoin network is a protocol that is created by the Signal Foundation who also created the privacy focused messaging app called Signal. By creating an encrypted blockchain, MobileCoin offers payments for those who are concerned about privacy, security and speed. MobileCoin can be used as a form of sending payment using the Signal messenger application on you mobile and desktop devices.

Here are the four key technologies that make MobileCoin network stand out:

MobileCoin Ledger
A new encrypted blockchain built on a technology foundation that includes CryptoNote and Ring Confidential Transactions (RingCT).
MobileCoin Consensus Protocol
A high-performance solution to the Byzantine Agreement Problem that allows new payments to be rapidly confirmed.
Secure Enclaves
Trusted execution environments using Intel's Software Guard eXtensions (SGX) to provide defense-in-depth improvements to encryption and trust.
MobileCoin Fog
A scalable service infrastructure that enables a smartphone to manage an encrypted cryptocurrency with locally-stored cryptographic private keys.

MobileCoin's total current supply of coins is 250 million MOB. The total supply is fixed and has a market cap of $120 million at the time of writing this post.

MobileCoin network Nodes

There are two main types of Nodes that support the MobileCoin network.

Validator nodes - facilitates transactions between MobileCoin users.

Watcher nodes - Watcher nodes verify the signatures that the full validator nodes attach to each block.

How to buy Mobilecoin?

Best place to buy MobileCoin are the following cryptocurrency exchanges:

FTX.us or Coinbase.

Both exchange requires users to Register and go through the ID verification process. Once, verified the process of how to buy MobileCoin is pretty straight forward. You can buy MobileCoin using Bitcoin on FTX or directly using fiat currency on Coinbase.

If you need more details on how to use MobileCoin in order to add funds, send payments & for balance checking, the following link will help.

MobileCoin Docs | Backup & Restore Wallet
Guides and Documentation for the MobileCoin protocol

Current MobileCoin Price

CoinMarketcap data shows Lowest price being $1.03 & highest price $22.26 in the last one year.

Current circulating supply

CoinMarketcap data shows at the time of writing this post that mobileCoin got a market cap of $119,891,766 with current circulating supply being 74,218,324.00 MOB out of the Total supply of 250,000,000.

Validator Node vs Watcher node

MobileCoin uses 'Federated Byzantine Agreement' modelled on the the Stellar Consensus Protocol. Both the watcher and validator node has different roles to play in the network.

MobileCoin Validator Nodes

When you use MobileCoin, all incoming transactions and outgoings of users are facilitated by the Consensus Service therefore, validator nodes play a key role in the platform.

In order to participate in consensus with other validator nodes, the validator node needs to  run Intel SGX. A Consensus Validator node is one type of node that runs in the MobileCoin ecosystem. The Consensus Validator node runs Intel’s Software Guard eXtensions (SGX), which provides defense-in-depth improvements to privacy and trust.

The MobileCoin Network implement secure enclave using Intel’s Software Guard eXtensions (SGX) to process new transactions according to the MobileCoin Consensus Protocol.

MobileCoin Watcher Nodes

Watcher nodes does not require Intel SGX and you can validate block signatures by running the mobilecoind daemon. You can learn more about setting up a watch node here.

MobileCoin Validator Node Runbook

Lets start building nodes! The following run-book will help those who would like to setup a MobileCoin validator node. The assumption is that you have a node and are ready to run the Consensus Service.

MobileCoin Network Validator Node Requirement

  • The consensus service runs with a secure enclave with Intel's Secure Guard eXtensions (SGX).
  • A list of available SGX hardware providers can be found at: https://github.com/ayeks/SGX-hardware
  • Several cloud providers offer SGX hardware however i would recommend Microsoft Azure Confidential Compute as they offer automated machines with datacenter located in various countries.

The following ports need to be exposed in order to run the node:

Ports:

3223 - Client transaction submission

8443 - Peer-to-peer

8000 - Admin (logging)

9090 - Admin (metrics)

Building with Docker

After you have a running SGX enabled machine, the following steps needs to be implemented to setup the environment.

For best practice, it is recommended that the Consensus Server Software is downloaded and run using a pre-built Docker container from the Docker hub.

To download the container from Docker Hub for running the consensus server, use the Docker Pull Command:

$ docker pull mobilecoin/node_hw:<version_tag>

Before running the container, the following requirements should be met:

  • TLS Certificates for your Node
  • Node Signer Keys
  • Network Configuration File/Consensus config file (network.toml)
  • Ledger Storage Location
  • S3 Storage Location
  • Environment variables in this page should be provided

Once all the above has been met or configured, you will need to run the docker run command with entry points unique to your validator node. Arguments required are here.

Building from Source

More details are in the MobileCoin developer code repo.

Useful MobileCoin Resources

Consensus Server Runbook - mobilecoin-consensus-fog
MobileCoin Docs | Validators
Guides and Documentation for the MobileCoin protocol

Read more