The Blockchain-as-a-Service (BaaS) platform Stratis has been quietly lancing partnerships and new technologies (Azure and TumbleBit), cultivating a robust community of C# developers, and streamlining their project for some time now. Insofar as they have generated a rewarding open-source philosophy, many are now eager to give back. One of the best, and arguably most interesting, ways of supporting a project is by running a full node. In the following guide, we will take a step-by-step approach to setting up the Stratis Full Node on your laptop.
Defining the Stratis Community
Although STRAT can be traded on Bittrex, Bittylicious, and Poloniex the services offered are much more than simply a Proof-of-Stake (PoS) token. Stratis is primarily looking to develop connections with enterprises and experts from various disciplines in order to continue building on top of the project’s technology. While blockchain technology and bitcoin have stormed the market, there is now a great demand to put things into the hands of a different kind of expert:
“We are in a golden age of early innovation, and yet it is still a geek-fest. We are in the days of punch cards and green screen terminals. To fulfill its destiny, bitcoin and its sisters need designers, business people, financiers and the ingenuity of tens of thousands of non-crypto coders to [humanize] the space. Like it or not, we need to find our Steve Jobs, our Bill Gates, and (if we’re really lucky) our Elon Musk and Jimmy Wales.”
In this way, the founders are positioning themselves to be the mainstream provider of blockchain technology. Partnerships with MS Azure, a cloud computing service by Microsoft, already shows promise, but more importantly, the entire developer side is written in C# on the .NET framework. The strength of this characteristic is that it opens the gates to a swath of experienced developers and all the designer and business communities mentioned above. From there, a snowball-effect of innovation is much more likely.
The Stratis Group also offers consultancy for groups looking to integrate the software. In this way, companies are provided with custom solutions to their unique problems. Plus, side-chains come standard, thus navigating a bloated network and providing a one-stop shop for firms hoping to capitalize on next-generation blockchain technology.
A powerful wallet, of which is a favorite for privacy-centric crypto users, mimics the entire projects open-source sentiments. The Breeze Wallet was established via the “labor of love by talented coders” and offers an alternative front-end experience for Tumblebit. Backend developer for Tumblebit nopara73 described the hard-working community as such:
“[Bitcoiners] will be able to download the Breeze wallet and use it to afford a high degree of trustless and secure transactions with privacy built in. Importantly for Stratis, the same wallet will be used to transact with that coin, too. Not only will this help bitcoin, it will expose Stratis to a potential user-base otherwise beyond its reach. In the same way that Tumblebit can swap respective coins to ensure privacy, so too, they can be used to swap with each other, providing a gateway between each coin should users find that useful. Once again, Stratis demonstrates that this is not a zero-sum game.”
Moreover, these developments have all been delivered at a fraction of the cost. The quality of the project is comparable to other prominent technologies, minus the silver-lined pockets. Just a quick glance at Stratis’ GitHub evidences the importance of an active developer community; not only have they attracted some of the most talented C# developers, but they work “their asses off.”
Giving Back: Running a Stratis Full Node on Your Laptop
So, why run a full node, for any network, let alone for Stratis? For starters, your performing an incredibly valuable service for a project’s network by keeping it honest.
In a stimulating investigation into running a full node for the Bitcoin network, Jameson Lopp explains that this decision offers the greatest security, privacy, and hygiene for any network. The developer writes further:
“From a macro perspective, full nodes keep the network honest. The more entities who are actively running nodes to audit their economic interactions, the more robust the network is against attacks. If you’re thinking from a nation-state attack scenario, more nodes = more “doors that have to be kicked down” in order to coerce the node owner into making changes against their will.”
The Stratis Masternode is essentially the same thing, but without the convenient on ramps the decade-old pioneer currency now offers. Fortunately, the gracious folks at Stratis offered a straightforward guide to getting started.
First things first; download .NET Core (2.0.0 SDK or newer will do fine) and gather the GIT Tools needed to replicate the networks repositories. Users also need a Bitcoin Core Wallet as “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.”
Once the Bitcoin Core Wallet has fully synced, the table is set to copy the BreezeProject repository from GitHub. From there, activating the Full Node on the testnet requires users to access the Stratis.StratisD directory.
A Medium user further outlines how to use the API that comes equipped with the FullNode, but a second option is the FullNode.UI also available on GitHub.
Adjustments to the Bitcoin Core Wallet must also be made in order that the the Stratis node can communicate with it. Principally, the Bitcoin Core Wallet needs to be reconfigured in four ways:
- Server = 1 (This allows the Bitcoin client to accept JSON-RPC commands from the Stratis Masternode).
- Prune = 2000 (A configuration which the number of blocks retained. Principally, it reduces storage space. Lopp also points out that Pruned nodes don’t support network health, but that’s another issue entirely).
- Rpcuser = bitcoinuser (An input to define the Stratis node’s RPC Credentials. Select a unique password, not “bitcoinuser”).
- Rpcpassword = password (Another unique password needed for the rpc.user parameter).
A similar Server, rpcuser, and rpcpassword configuration must also be carried out for the Stratis node to complete the communication channel. The completion of this step is then followed by configuring the BreezeServer and the NTumbleBitServer.
Next, execute the following PowerShell script-block in Notepad so as to generate a configuration file:
New-Item -Path $env:APPDATABreezeServerbreeze.conf -ItemType File -Force Start-Process notepad -ArgumentList “$env:APPDATABreezeServerbreeze.conf”
Then, just as adjustments were needed for the Bitcoin and Stratis client, the BreezeServer must be configured accordingly:
- Network = main
- Rpc.user = stratisuser
- Rpc.password = password
- Rpc.url = http://127.0.0.1:16174
- Tumbler.ecdsakeyaddress = STRATWALLETADDRESS (This portion declares “the address that will be used to store the 250,000 STRAT collateral”)
NTumbleBitserver can be configured next after executing the same above mentioned PowerShell script-block, replacing “BreezeServer” with “NTumbleBitserver.” The parameters for this step are more lengthy and require Tor adjustments and reroute requests through various intermediate nodes:
- Rpc.url = http://localhost:8332/
- Rpc.user = bitcoinuser
- Rpc.password = password
- Tumbler.fee = 0.0001
- Cycle = shorty2x
- Tor.enabled = true
- Tor.server = 127.0.0.1:9051
- Tor.cookiefile = C:UsersTestVMAppDataRoamingTorcontrol_auth_cookie
The advantage of such a lengthy configuration process is the fact that both the Bitcoin and Stratis client’s have fully synced. Next step, launch the Stratis Masternode, register the node with the Stratis blockchain, and start giving back to a community that has already given so much.