Page | 1 © 2017 Stratis Group, Ltd. Proprietary and Confidential STRATIS MASTERNODE Windows Installation Guide
Page | 1 © 2017 Stratis Group, Ltd. Proprietary and Confidential
STRATIS MASTERNODE
Windows Installation Guide
Page | 2 © 2017 Stratis Group, Ltd. Proprietary and Confidential
1. Table of Contents 1. Table of Contents ............................................................................................................................ 2
2. Introduction .................................................................................................................................... 4
3. Pre-Requisites ................................................................................................................................. 5
3.1. NET Core 2.0 SDK ................................................................................................................... 5
3.1.1. Download .NET Core SDK and its dependencies ............................................................... 5
3.1.2. Install .NET Core SDK ......................................................................................................... 5
3.2. Tor Expert Bundle .................................................................................................................. 7
3.2.1. Download Tor .................................................................................................................... 7
3.2.2. Install Tor ........................................................................................................................... 7
3.3. Git .......................................................................................................................................... 8
3.3.1. Download Git..................................................................................................................... 8
3.3.2. Install Git ........................................................................................................................... 9
3.4. Bitcoin Core ......................................................................................................................... 15
3.4.1. Download Bitcoin Core Wallet ........................................................................................ 15
3.4.2. Install Bitcoin Core Wallet ............................................................................................... 15
3.4.3. Configure Bitcoin Core Wallet ......................................................................................... 19
3.4.4. Bitcoin Core Configuration Summary .............................................................................. 20
3.4.5. Launch Bitcoin Core Wallet ............................................................................................. 20
3.5. Stratis QT Wallet .................................................................................................................. 22
3.5.1. Download Stratis QT Wallet ............................................................................................ 22
3.5.2. Install Stratis QT Wallet ................................................................................................... 22
3.5.3. Configure Stratis QT Wallet ............................................................................................. 23
3.5.4. Stratis QT Configuration Summary.................................................................................. 25
3.5.5. Launch Stratis QT Wallet ................................................................................................. 25
4. Install and Configure Masternode ................................................................................................ 30
4.1. Clone BreezeProject ............................................................................................................ 30
4.2. Configure Breeze Server ...................................................................................................... 30
4.3. Breeze.conf Summary .......................................................................................................... 31
4.4. Configure NTumbleBit Server .............................................................................................. 32
4.5. Server.config Summary ....................................................................................................... 34
5. Running the Stratis Masternode ................................................................................................... 35
5.1. Preparing for Masternode registration ............................................................................... 36
5.2. Preparing MasterNode start-up script ................................................................................ 35
5.3. Running the Stratis MasterNode for the first time (Registration Phase) .... Error! Bookmark
not defined.
Page | 3 © 2017 Stratis Group, Ltd. Proprietary and Confidential
5.4. Activating the Stratis Masternode ....................................................................................... 37
5.5. Confirm “tumbler.ecdsakeyaddress” Address .................................................................... 38
5.6. Make Collateral Transaction ................................................... Error! Bookmark not defined.
5.7. Confirm Discoverability ....................................................................................................... 38
Page | 4 © 2017 Stratis Group, Ltd. Proprietary and Confidential
2. Introduction
This document details the steps required to configure and run a Stratis Masternode. All installation
steps have been carried out on a vanilla Window Server 2012 Virtual Machine. It is recommended
that you follow this guide on a vanilla platform. If you choose to utilize a cloud service provider,
please ensure that you are not breaching any terms of service by operating a Stratis Masternode or
any of its dependency components (e.g. Tor)
To progress through this document there is a requirement for you to have 250,000 STRAT available
for collateral. The high STRAT requirement is not something that is dictated by Stratis Group Ltd, it is
dictated by the technology.
It should be noted that in the current implementation of the Masternode the collateral shouldn’t be
used for staking. This is because the funds would be moved away from the collateral address as part
of staking and the Breeze clients would consider the Masternode registration invalid due to
insufficient collateral funds.
The Stratis Masternode operates in a totally decentralized and trust-less manner, meaning that no
one (not even Masternode) can steal the funds trusted to the protocol.
The BTC in reserves will need to be in a Bitcoin Core wallet used by the Masternode, as it is required
to create escrow transactions to the client’s destination wallets. It is recommended that the BTC
balance be a multiply of the expected volume of clients multiplied by 5. This calculation assumes
that each client will have funds for at least 5 tumbling cycles.
Rewards to the operators will be distributed in the form of a tumbler fee paid by Breeze Privacy
Protocol client users directly to the operator that processes their Privacy Protocol transaction.
Depending on the operator’s jurisdiction there may be legal and tax related specific requirements
and/or restrictions. It is highly recommended all operators seek legal and financial advice before
operating a Stratis Masternode.
This is a decentralized network that is not managed, controlled or administered by Stratis.
Page | 5 © 2017 Stratis Group, Ltd. Proprietary and Confidential
3. Pre-Requisites There are a few applications that need to be installed prior to embarking on configuring the Stratis
Masternode.
The following section will provide details on where to obtain the installers and how to install the
products.
3.1. NET Core 2.0 SDK .NET Core is the platform that the Stratis Masternode has been developed upon. Therefore, you will
need to install the .NET Core 2.0.0 SDK or newer.
3.1.1. Download .NET Core SDK and its dependencies Links to the installers can be found below. Click the link below to download .NET Core 2.0.0 SDK and
Visual C++ Redistributable for Visual Studio 2015.
.NET Core 2.0.0 SDK
• https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.0-
download.md
Visual C++ Redistributable for Visual Studio 2015
• https://www.microsoft.com/en-in/download/details.aspx?id=48145
3.1.2. Install .NET Core SDK After launching the installer, you will be presented with the following window.
Page | 6 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Click “Install” to progress with the installation.
Page | 7 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Click the “Close” button to continue.
Follow the same procedure to install Visual C++ Redistributable for Visual Studio 2015.
3.2. Tor Expert Bundle Tor is an acronym for “The Onion Router” and is a free software that enables anonymous
communication on the internet.
3.2.1. Download Tor Navigate to the below URL to download the Tor Expert Bundle ZIP archive.
https://www.torproject.org/download/download.html.en
3.2.2. Install Tor Once downloaded, open the ZIP archive and view the contents, as per the below screenshot.
Page | 8 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Extract the contents of the ZIP archive to a location on the local disk of the desktop or server you are
using. For this document the contents have been extracted to a folder on the desktop named “Tor”
This location is referenced later in this document, therefore, it is recommended you follow the same steps and store the Tor Expert Bundle on your desktop within the Tor folder.
3.3. Git Git is required to clone the Stratis BreezeProject repository from GitHub. The repository contains
source code of the Masternode.
3.3.1. Download Git Navigate to the URL below to download the Git Installer. This should be the top most file with .exe
extension.
https://github.com/git-for-windows/git/releases
Page | 9 © 2017 Stratis Group, Ltd. Proprietary and Confidential
3.3.2. Install Git Once downloaded, run the Setup.
There might be a Security Warning pop-up. Press Run to start the installer.
Click the “Next” button to continue.
Page | 10 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Click the “Next” button to continue.
Click the “Next” button to continue.
Page | 11 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Click the “Next” button to continue.
Click the “Next” button to continue.
Page | 12 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Click the “Next” button to continue.
Click the “Next” button to continue.
Page | 13 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Click the “Next” button to continue.
Click the “Next” button to continue.
Page | 14 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Click the “Next” button to continue.
The installation is now in progress, wait for the progress bar to complete.
Page | 15 © 2017 Stratis Group, Ltd. Proprietary and Confidential
The installation process is now complete, click the “Finish” button to complete the installation.
3.4. Bitcoin Core Wallet The Bitcoin Core wallet is required as it will be leveraged by the Stratis Masternode. When executing
the privacy protocol, the transactions will be processed via the Bitcoin Core Wallet.
3.4.1. Download Bitcoin Core Wallet Navigate to the URL below to download the Bitcoin Core Wallet.
https://bitcoin.org/en/download
3.4.2. Install Bitcoin Core Wallet Once downloaded, run the setup.
Page | 16 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Click the “Next” button to continue.
Click the “Next” button to continue.
Page | 17 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Click the “Install” button to continue.
Page | 18 © 2017 Stratis Group, Ltd. Proprietary and Confidential
The above dialog confirms that the installation has been successful.
Ensure that the checkbox “Run Bitcoin Core” is not selected for and click the “Finish” button.
Page | 19 © 2017 Stratis Group, Ltd. Proprietary and Confidential
3.4.3. Configure Bitcoin Core Wallet Changes are required in the Bitcoin Core configuration to enable RPC communication between
Bitcoin Core and Stratis Masternode. Masternode requires access to Bitcoin Core via RPC protocol to
create and verify transactions on the bitcoin blockchain.
Run the below PowerShell script-block to create a new bitcoin.conf configuration file and open it
within Notepad.
The Bitcoin.conf file will now be open within a new instance of Notepad. There are a few lines that
are required to be added, these are detailed below.
Configuration option Explanation
Server
This setting instructs the Bitcoin Core client to accept JSON-RPC commands sent by the Stratis Masternode. For additional security the port on which the RPC service is running (default port on Bitcoin Main network is 8332) should be firewalled to prevent external access. You need to set the value of this parameter to 1. Example: server=1
Prune
The Prune parameter defines how many blocks should be retained, this reduces storage requirements. It is recommended that this value is set to 2000. Example: prune=2000
Rpcuser
This determines the username securing the RPC connection to the Bitcoin Core. Example: rpcuser=bitcoinuser
Please take note of the value entered here, you should use the same username in the server.config configuration explained later in this document.
Rpcpassword
The value should be a unique password for the user account provided in the rpcuser parameter above Please choose a secure password for this configuration option.
# Forcefully Create "bitcoin.conf"
New-Item -Path $env:APPDATA\Bitcoin\bitcoin.conf -ItemType File -Force
# Open "bitcoin.conf" in notepad
Start-Process notepad -ArgumentList "$env:APPDATA\Bitcoin\bitcoin.conf"
PowerShell Script Code
Page | 20 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Example: rpcpassword=password
Please take note of the value entered here, you should use the same password in the server.config configuration explained later in this document.
3.4.4. Bitcoin Core Wallet Configuration Summary After completing the previous steps, you should now have a bitcoin.conf configuration with the following detail. Lines starting with # are comments which could be optionally added to the configuration to remind Masternode operator of each option meaning.
Your configuration should not match the above, your rpcuser and rpcpassword should be unique to
you. Once you have confirmed the content, please save the file and close it.
3.4.5. Launch Bitcoin Core Wallet Upon first running the Bitcoin Core Wallet, you are prompted as to where you would like to store the
blockchain. Ensure “Use the default data directory” is selected and click the “Ok” button to continue.
# server=1 tells Bitcoin-Qt and bitcoind to accept JSON-RPC commands
server=1
# Enable pruning to reduce storage requirements by deleting old blocks.
# This mode is incompatible with -txindex and -rescan.
# 0 = default (no pruning).
# 1 = allows manual pruning via RPC.
# >=550 = target to stay under in MiB.
prune=2000
# rpcuser and rpcpassword to secure the JSON-RPC api
rpcuser=bitcoinuser
rpcpassword=password
bitcoin.conf
Page | 21 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Do not be concerned by the warning of free space, later in the guide you will configure pruning that
will reduce the storage requirement.
The data directory is referenced later in this document. It is recommended that you leave the value as default.
Page | 22 © 2017 Stratis Group, Ltd. Proprietary and Confidential
The Bitcoin Core Wallet is now running and synchronizing with the blockchain.
You can continue through this document without the Bitcoin Core Wallet being fully synchronized,
however, the Stratis Masternode will not be fully functional until synchronization has completed.
This can take some time.
3.5. Stratis QT Wallet The Stratis QT Wallet is a forked instance of the Bitcoin Core Wallet, it serves as an interim staking
wallet until the Stratis Full Node is ready for mainnet.
3.5.1. Download Stratis QT Wallet Navigate to the below URL to download the Stratis QT Wallet.
https://github.com/stratisproject/stratisX/releases
3.5.2. Install Stratis QT Wallet Once downloaded, open the ZIP archive and view the contents as per the below screenshot.
Page | 23 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Extract the “stratis-qt” executable from the ZIP archive to a location on the local disk of the desktop
or server you are using. For this document the contents have been extracted directly to the desktop.
This location is referenced later in this document, therefore, it is recommended you follow the same steps and store the Stratis-QT executbale on the desktop.
3.5.3. Configure Stratis QT Wallet Changes are required in the Stratis QT Wallet configuration to enable RPC communication between
Stratis QT Wallet and Masternode. This is used by the Masternode to perform Masternode
registration during the first run or after any configuration change.
In addition the Masternode is performing a collateral balance check upon each startup.
Page | 24 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Run the below PowerShell script-block to create a new stratis.conf configuration file and open it
within Notepad.
The stratis.conf file will now be open within a new instance of Notepad. There are a few lines that
are required to be added, these are detailed below.
Configuration option Explanation
Server
This setting instructs the Stratis QT client to accept JSON-RPC commands sent by the Masternode. For additional security the port on which the RPC service is running (default port on StratisMain network is 16174) should be firewalled to prevent external access. You need to set the value of this parameter to 1. Example: server=1
Rpcuser
This determines the username securing the RPC connection to the Stratis QT Wallet. Example: rpcuser=stratisuser
Please take note of the value entered here, you should use the same username in the breez.conf configuration explained later in this document.
Rpcpassword
The value should be a unique password for the user account provided in the rpcuser parameter above. Please choose a secure password for this configuration option. Example: rpcpassword=password
Please take note of the value entered here, you should use the same username in the breez.conf configuration explained later in this document.
# Forcefully Create "stratis.conf"
New-Item -Path $env:APPDATA\Stratis\stratis.conf -ItemType File -Force
# Open "stratis.conf" in notepad
Start-Process notepad -ArgumentList "$env:APPDATA\Stratis\stratis.conf"
PowerShell Script Code
Page | 25 © 2017 Stratis Group, Ltd. Proprietary and Confidential
3.5.4. Stratis QT Wallet Configuration Summary After completing the previous steps, you should now have a stratis.conf configuration with the
following detail. Lines starting with # are comments which could be optionally added to the
configuration to remind Masternode operator of each option meaning.
Your configuration should not match the above, your rpcuser and rpcpassword should be unique to
you. Once you have confirmed the content, please save the file and close it.
3.5.5. Launch Stratis QT Wallet Double-Click on the stratis-qt executable.
You may receive a security warning, click the “Run” button to continue.
The wallet is now running; however, it needs to fully synchronize with the Stratis Blockchain, this can
take some time. Progress is visible at the bottom of the application.
# server=1 tells Stratis-Qt to accept JSON-RPC commands
server=1
# rpcuser and rpcpassword to secure the JSON-RPC api
rpcuser=stratisuser
rpcpassword=password
stratis.conf
Page | 26 © 2017 Stratis Group, Ltd. Proprietary and Confidential
You can continue through this document without the Stratis QT Wallet being fully synchronized,
however, you will be unable to successfully launch the Stratis Masternode until synchronization is
complete.
Page | 27 © 2017 Stratis Group, Ltd. Proprietary and Confidential
The synchronization completion will be evident by the red (out of sync) text being no longer visible.
3.5.6. Create Stratis registration fee address Masternode needs to register on the Stratis blockchain before it could be discovered by Breeze
clients. The registration fee address will be used to keep small funds (about 0.1 STRAT) required to
perform registration.
Page | 28 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Navigate to the “Receive” menu in Stratis QT Wallet. Enter label “Registration Fee”, highlight the
address and click the “Copy Address” button.
There is no need to send any funds to registration fee address at this stage.
We will refer later in this document to this address as “Registration Fee”
3.5.7. Create Stratis collateral address The new address will be used to hold 250,000 STRAT as collateral. Please ensure that this address is
used in breeze.conf file as explained in section 4.2.
Page | 29 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Navigate to the “Receive” menu in Stratis QT Wallet. Enter label “Collateral address”, highlight the
address and click the “Copy Address” button.
We will refer later in this document to this address as “Collateral address”
Page | 30 © 2017 Stratis Group, Ltd. Proprietary and Confidential
4. Install and Configure Masternode You will now focus on obtaining the required code to run a Stratis Masternode, in addition, you will
cover all the required configuration changes that are necessary to have a fully functional Stratis
Masternode.
4.1. Clone BreezeProject Executing the below PowerShell script-block will download the code and submodules required to run
the Stratis Masternode.
4.2. Configure Breeze Server You now need to create a configuration file for the BreezeServer which will be used to set up
configuration values in relation to the Stratis blockchain.
Run the below PowerShell script-block to create a configuration file and open it within Notepad.
The breeze.conf file will now be open within a new instance of Notepad. There are a few lines that
are required to be added, these are detailed below.
# Set Destination Directory
$Path = "$env:USERPROFILE\Desktop\MasterNode"
# Query Destination Directory and Create if not present.
if (-Not (Get-Item -Path $Path)) {
New-Item -ItemType Directory -Path $Path
}
# Move to Destination Directory
Set-Location $Path
# Obtain Code
git clone "https://www.github.com/BreezeHub/BreezeProject.git/"
git checkout v1.0.0
# Move to BreezeProject Directory
Set-Location .\BreezeProject
# Restore Dependencies
dotnet restore
PowerShell Script Code
# Forcefully Create "breeze.conf"
New-Item -Path $env:APPDATA\BreezeServer\breeze.conf -ItemType File -Force
# Open "breeze.conf" in notepad
Start-Process notepad -ArgumentList
"$env:APPDATA\BreezeServer\StratisMain\breeze.conf"
PowerShell Script Code
Page | 31 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Configuration option Explanation
network
This parameter defines what network the Masternode will operate on. For the purpose of this guide, you will be running on mainnet. Example: network=main
rpc.url
This is the address of the RPC service hosted by the Stratis QT Wallet. Example: rpc.url=http://127.0.0.1:16174
rpc.user
This is the username used by the Masternode when connecting to Stratis QT over RPC protocol. Example: rpc.user=stratisuser
The username should match the value set in rpcuser value in stratis.conf configuration.
rpc.password
This is the password used by the Masternode when connecting to Stratis QT over RPC protocol. Example: rpc.password=password
The password should match the value set in rpcpassword value in stratis.conf configuration.
tumbler.ecdsakeyaddress
This is the address which has been set by the Masternode operator to hold 250,000 STRAT collateral. Also note that the 250,000 STRAT collateral does not need to be sent to the address yet, this is covered later in the guide. The address should be generated as explained in section 5.3. Each time this value is changed the Masternode should be restarted to re-read the configuration file. Example: tumbler.ecdsakeyaddress=SY2q6zvgKaL947YZX3k2j6tCqTVs6FggfL
The address SY2q6zvgKaL947YZX3k2j6tCqTVs6FggfL has been used only as an example. You should generate your own Stratis address.
4.3. Breeze.conf Summary After completing the previous steps, you will have a unique configuration file that resembles the below. Lines starting with # are comments which could be optionally added to the configuration to remind Masternode operator of each option meaning.
Page | 32 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Your configuration should not match the above, your rpc.user, rpc.password and
tumbler.ecdsakeyaddress should be unique to you. Once you have confirmed the content, please
save the file and close it.
4.4. Configure NTumbleBit Server You now need to create the NTumbleBitServer configuration which will be used to set up
configuration values in relation to the Bitcoin blockchain.
Execute the below PowerShell script-block to create and open the configuration file.
The server.config file will now be open within a new instance of Notepad. There are a few lines that
are required to be added, these are detailed below.
Configuration option Explanation
rpc.url
This is the address of the RPC service hosted by the Bitcoin Core Wallet. Example: rpc.url=http://localhost:8332/
rpc.user
This is the username used by the Masternode when connecting to Bitcoin Core over RPC protocol. Example: rpc.user=bitcoinuser
# Create "server.config" New-Item -Path $env:APPDATA\NTumbleBitServer\Main\server.config -ItemType File -Force
# Open "server.config" Start-Process notepad -ArgumentList "$env:APPDATA\NTumbleBitServer\Main\server.config"
PowerShell Script Code
# Name of the network to use
network=main
# Address, username and password to the RPC interface of the Stratis QT
rpc.url=http://127.0.0.1:16174
rpc.user=stratisuser
rpc.password=password
# Masternode collateral address on the Stratis blockchain
tumbler.ecdsakeyaddress=SY2q6zvgKaL947YZX3k2j6tCqTVs6FggfL
breeze.conf
Page | 33 © 2017 Stratis Group, Ltd. Proprietary and Confidential
The username should match the value set in rpcuser value in bitcoin.conf configuration.
rpc.password
The value should be a unique password for the user account provided in the rpc.user parameter. Example: rpc.password=password
The username should match the value set in rpcpassword value in bitcoin.conf configuration.
tumbler.fee
This is a BTC value that determines the fee that will be imposed on users utilizing your Masternode instance, at present all Masternodes are required to use the same fee. That is 1.55% of the denomination value 0.1 BTC which is 0.00155. Example: tumbler.fee=0.0001
The Masternode instance will not be discovarable byt the Breeze clients in case the fee has been set to any other value.
cycle
To enhance the privacy provided by the protocol, it is necessary for all participants to use standard transaction amounts enforced by the Stratis Masternode. The cycle definitions have distinct names and lengths. Currently only the kotori cycle is usable on mainnet. Example: cycle=kotori
tor.enabled
This parameter enables Tor. Tor provides privacy to the user by routing their request through multiple intermediate nodes. This secure connectivity layer is used by the Stratis Masternode to allow clients to remain anonymous when connect to Masternode. This setting must be set to true. Example: tor.enabled=true
tor.server
Tor provides privacy to the user by routing their request through multiple intermediate nodes. This secure connectivity layer is used by the Stratis Masternode to allow clients to safely connect to it. This setting must be set to true. Example: tor.server=127.0.0.1:9051
tor.cookiefile
Page | 34 © 2017 Stratis Group, Ltd. Proprietary and Confidential
This parameter defines the path to the Tor authentication cookie. The default location on Windows OS is: C:\Users\%USERNAME%\AppData\Roaming\Tor\control_auth_cookie Please replace the %USERNAME% value with your logged-on user, if in doubt, you can enter the below PowerShell script-block into a new PowerShell window to return the value.
Example: tor.cookiefile= C:\Users\TestVM\AppData\Roaming\Tor\control_auth_cookie
4.5. Server.config Summary After completing the previous steps, you will now have a unique configuration file that resembles
the below. Lines starting with # are comments which could be optionally added to the configuration
to remind Masternode operator of each option meaning.
# Address, username and password to the RPC interface of the Bitcoin QT
rpc.url=http://localhost:8332/
rpc.user=bitcoinuser
rpc.password=password
# Masternode tumbler fee; currently the only valid value is 0.00155
tumbler.fee=0.00155
# Name of the tumbling cycle used; currently the only valid option is kotori
cycle=kotori
# Tor configuration
tor.enabled=true
tor.server=127.0.0.1:9051
tor.cookiefile= C:\Users\TestVM\AppData\Roaming\Tor\control_auth_cookie
server.config
Write-Host "$env:APPDATA\Tor\control_auth_cookie"
PowerShell Script Code
Page | 35 © 2017 Stratis Group, Ltd. Proprietary and Confidential
5. Running the Stratis Masternode In this section we will prepare script to launch Masternode, transfer required funds and start
Masternode for the first time.
5.1. Preparing MasterNode start-up script To ensure consistency, it is advised that you launch the node via a script. The PowerShell script-block
provided below is based upon all the steps followed in the document.
Open “PowerShell ISE” and copy the above script-block into it.
# Launch Tor
Write-Host "Checking for existing Tor Process..." -ForegroundColor Yellow
if (-Not (Get-Process -Name tor)) {
Start-Process $env:USERPROFILE\Desktop\Tor\Tor\Tor.exe -ArgumentList "-
controlport 9051 -cookieauthentication 1"
}
# Check for Bitcoin Core Process
Write-Host "Checking for existing Bitcoin Process..." -ForegroundColor
Yellow
if (-Not (Get-Process -Name bitcoin-qt)) {
Start-Process $env:ProgramFiles\Bitcoin\bitcoin-qt.exe
}
# Wait 30 Seconds
Write-Host "Waiting 30 Seconds before launching Stratis Masternode..." -
ForegroundColor Yellow
Start-Sleep 30
# Launch Stratis Masternode
Write-Host "Launching Stratis Masternode" -ForegroundColor Cyan
Set-Location
$env:USERPROFILE\Desktop\Masternode\BreezeProject\Breeze.BreezeServer
# To force Masternode registration please run the below command with -
forceRegistration switch (i.e. dotnet run -forceRegistration)
dotnet run
PowerShell Script Code
Page | 36 © 2017 Stratis Group, Ltd. Proprietary and Confidential
Save the script by selecting “File” > “Save As” and save it to an easily accessible location, in this
example it has been saved it to the Desktop.
You can now run the Stratis Masternode by right-clicking the newly created PowerShell script named
“Run Stratis Masternode.PS1”
You may receive the following prompt upon running the PowerShell script.
Type “Y” and hit “Enter“ to continue.
Whilst the script is running, be sure to accept any Security Warning dialogs by clicking the “Run”
button to continue.
5.2. Preparing for Masternode registration Masternode registration requires small STRAT balance to be available in the Stratis wallet configured
in previous step. This is used to register Masternode on the Stratis network so that it could be
discovered by Breeze Clients. It is recommended that the Stratis walled have a balance of at least 0.1
STRAT reserved in its “Registration Fee” address.
Registration cost at the time of writing this document is 0.00019 STRAT per registration.
Page | 37 © 2017 Stratis Group, Ltd. Proprietary and Confidential
When the Masternode is started it checks if it has been registered on the Stratis blockchain. In case
the registration is not found or one of the Masternode parameters have changed a new registration
will be performed. It is also possible to force Masternode to send registration transactions using the
-forceRegistration switch.
The registration process requires access to Stratis QT wallet over RPC connection which have been
configured in the previous steps. Once the registration is done the Stratis Masternode does not need
further access to the Stratis QT wallet unless the server needs to be re-registered.
Please follow the steps below to send coins to the Stratis wallet which will be used to fund the
registration transaction. Following steps assume that the Stratis wallet doesn’t have any funds.
Please ensure that the Stratis QT Wallet has sufficient balance in “Registration Fee” address and
launch Masternode using the script prepared in previous step.
This completes the registration phase. You should expect an output like the above.
5.3. Transferring funds to the Stratis collateral address You are now running a Stratis Masternode, it has advertised itself to the network and is discoverable
by users of the Breeze Privacy Protocol client, however, it requires activation.
To complete the activation process, you will need to send 250,000 (or more) STRAT to the Collateral
Address. Once that transaction has been confirmed, your Stratis Masternode will be activated and
functional for users of the Breeze Privacy Protocol Client.
Now the registration process is complete, the Breeze Clients with Breeze Privacy Protocol will
monitor that address for a deposit of 250,000 STRAT.
It will only monitor 40 Blocks from the moment it registered meaning the transaction must occur
within approximately 40 minutes. If this is not done, the registration process will need to be
repeated.
Page | 38 © 2017 Stratis Group, Ltd. Proprietary and Confidential
To force Masternode to perform another registration please modify the “Run Stratis
Masternode.PS1” script to include additional command line switch to the dotnet run command.
Please remember to remove that switch from the script as soon as the registration is performed so
that it will not be repeated the next time the script is run.
5.4. Confirm “tumbler.ecdsakeyaddress” Address Confirm the address specified in the breeze.conf. In this guide, the example used was the value
SY2q6zvgKaL947YZX3k2j6tCqTVs6FggfL
5.5. Confirm Discoverability You will now have an activated Stratis Masternode and will receive your processing fees in the
Bitcoin Core Wallet.
# To force Masternode registration please run the below command with -
forceRegistration switch (i.e. dotnet run -forceRegistration)
dotnet run -forceRegistration
PowerShell Script Code