Captain’s Log 014 – Let’s Git Real!

download.pngI cannot tell you how many times that I have build rippled from scratch making the howto in my last post; Rippled Developer Setup Guide. Also while testing the XRPine I kept thinking about how nice it would be to have the software install automated without using yum. In true CoinTrek tradition, I set out to learn how to make an installer script, and I am using it as a reason to make my first GitHub repository to share with others. Fair warning, it’s a work in progress, but I’m committed to progress! 😉

I decided that I make the tools that I want to use and share those back to the community, and I will be doing it here:


I want to take some time to emphasize something I feel very strongly about; Learning! We live in a time where everything is at our finger tips. Google, while convenient and vast, has turned our minds into query generators and many have forgone critical thinking. I admit that I am among those that use the Google Machine on a daily basis, but when it comes to solving problems I limit my use of searching for an answer.  True, what you’re trying to do may have been done by others already. Also true that you may not even have to go through the same process. I love automation! There are so many ways to skin a cat, especially with software.  My point is. If you’re a CoinTrekkie, the journey is what matters.  The Learning Journey! That’s part of why I named my blog what it is. I wanted to learn crypto in and out and it’s a trip to be sure!

Here what I’ve learned how to do this week…


I am aligning my interests with XRP, so I used my skills to create a Research how to and deploy Codius server! I do want to express thanks for tips I received. I put 20 XRP from previous tips given to me toward a new wallet I could use for the server.  I felt a separate wallet would give me peace.

In my last post I used a Virtual Private Server on purpose.  I could have used it to stand up a validator, but I decided I’d rather set up a Codius Server.  I wanted to be on the bleeding edge of what XRP is capable.  Also, my validator interests are in making my little XRPine the best it can be.

I followed Stefan Thomas’s How To Guide to the letter. And I failed. My codius server didn’t work at all! The guide was pretty exact but there are a couple pitfalls you might find yourself in, so I want to point them out here.

Domain Verification

The guide makes use of a certbot that communicates with an external verification authority.  Domain verification is a process by which a domain owner proves that the host they are using is in their control.


These instructions work just fine but with one exception, which is Patience! The internet takes time to filter changes throughout itself. So, when you add a TXT record to your DNS settings for your domain. Wait a minute before you hit ENTER! I’m serious. If you do this too many times you’ll get locked out and have to wait an hour. Actually five failed attempts equate to being locked out. More and you could get shutdown for a week.

I thought of this afterward, one might change their subdomain from to and get around the lock out, but I didn’t bother.

Host Info

After verification I followed the remaining steps and was able to view the sucess indicator. Here’s what it should appear to be:


Immediately I took my browser to and searched for my hostname. It wasn’t there. More over I couldn’t figure out why.  Using their Gitter Chat Room, I was able to work out with another community member how to tell what was the issue.

Little did I know that the host info can be seen with the browser.

In the print out I had:

  • “uri”:”″ instead of
  • “uri”:””

This ladies and gentleman is why you should be wary of copy and paste! A simple fix, but I made it and my server appeared on the hosts website.

 Along the way I found many resources that are useful on XRPChat.

  • Spreadsheet to compute earnings/profits for running a coidus server; here.
  • A YouTube video I am going to be using to make a smart contract of my own in the future; here!

Moving Forward I am calling every member of the community to contribute in some way.  Lightning struck me and I realized I should be doing it with hardware and software because that’s what I’m good at. I would like to find out if there is support with in the community to incentive this.  I’d like to create a website to serve as a common location for members to point out their work.  A sort of XRP GitHub but broader because not all of us are software junkies.  I’m not a seasoned webdev, so if anybody wants to help or if there’s interest, please write me!

Captain’s Log 013 – Rippled Developer Setup Guide

In creating the XRPine I was, and still am, forced to tinker with the rippled configuration file. Coupled with the Pine board’s sporty albeit slow performance when compared to a full server, I needed something that was more responsive to play around with. In doing so I could more easily learn how use the configuration file to its fullest extent possible.

My first instinct was to search for a Linux how to guide online. Apart from Ripple’s own guide on their development website, there hasn’t been one made if you want to do it manually. Wieste made a wonderful guide to use with DigitalOcean, an online Virtual Private Server (VPS) hosting server, that walks one through setting up a validator by using Docker. Other members of the community have posted information about what makes a good validator, summarizing developer information. All of this is great, but I don’t like Docker. I have no reason to give you other than it’s not my cup of tea.

For lack of a manual guide and my inclination to do everything myself, a force of habit for someone with a learning hobby, I decided to create this guide for the community. A lot of what’s here went into setting up the XRPine, but I’ll leave the gross nuts and bolts details of that out and keep it specific to using a VPS. This just gave me the development environment.

The purpose of this blog post is to hit all the in between details for other fellow DIYers. I am not pushing my guide over anyone else’s. If you like using Docker and you just want to run a validator out of the box, then by all means. Use the guide that does just that. There are some benefits to my guide. My guide will show you how to do everything from scratch, so if you’re a developer then this is the perfect guide for setting up shop. The information is readily available on the developer site. I’m paraphrasing a good portion here in the context of setting up on a VPS, and I’ll also point out a couple hurdles you might encounter.

Step 1 – DigitalOcean – SetUp your VPS

An online subscription to a VPS with 8GB of RAM and 4vCPUs is what I need so I have acquired one of those. I’m taking advantage of the free $100 slash 60 day credit that DigitalOcean is offering to get my feet wet.

To start, go to DigitalOcean (or a VPS hosting service of your choosing) and create an account. My guide will be with respect to that hosting service .When logged in, there’s a green button that says “create” in the top right. Go there and select “Droplet”

If you’re wondering what options to pick, here’s a PDF link that’ll show you.

Here’s my configuration:

  1. OS: Ubuntu
  2. Size, Standard: 8 GB RAM, 4 vCPUs
  3. Backup: None
  4. Block Storage: None
  5. Region: Pick a region that you want. This is case by case.
  6. Additional Options: I didn’t pick any.
  7. SSH Keys: Leave Alone. Can do this later.
  8. Hostname: my-awesome-vps
  9. Tags: None

Step 2 – DigitalOcean – Get your IP Address

Each droplet is going to come with a public facing IP address that you’ll need to take note of. I personally prefer to log in via secure shell from my own machine. That way I don’t have to go online, log in to a website, and click 10 buttons before I can get to my VPS.

From the dashboard, click on your droplet to expand its information. Here’s an example of mine (redacted). In place of (There’s not place like home!) you’ll have your IP address. Note it.


If you want to use the online shell to access the VPS, those three dots in the top right will give you a button to click; “Access Console”. A window will appear with a command prompt to play with. Probably a pop up blocker hazard!

Step 3 – First Log In

One may choose from any secure shell (SSH) client, such as Putty, however I found one I like called SmartTTY. Just has a few extra buttons and whistles I’ve found useful over time. You can download and install that from their website. Since there are a plethora of SSH clients to choose from, I leave it to the reader to pick on of their choosing and configure it.

To log in, check your email first. You’ll need to get your credentials. The root password is emailed to you. The password is long so happy typing!

Default User: root

Password: See email

Step 4 – Add a new user

This is just good practice. Make a new user and add it as a sudo user. On Ubuntu follow these steps:

  • adduser username
  • usermod -aG sudo username

After setting that new user with a new password, switch to it

  • su username

 Step 5 – Update Linux & Install

Now, moving toward getting ready to install rippled, one must prepared linux for it. This step might be rather lengthy since Linux can take a long time to update.

Update Linux with the following commands:

  • sudo apt-get update
  • sudo apt-get -y upgrade

(After your cup of coffee xD)

Install the prerequisite packages with the following commands:

  • sudo apt-get -y install package

Replace package with the following packages:

git cmake pkg-config protobuf-compiler libprotobuf-dev libssl-dev wget doxygen

You may install each separately or all at once on the same line. Just separate each package with a space on the command line.

Step 6 – Download, Build, and Configure Boost

Image result for boost c++

Boost is a community C++ library that is both an amazing treasure trove of useful software and also a huge pain in the neck because it is so big.

Here’s how:

  • First, navigate to your home directory; cd ~
  • Download it with wget:
    • wget
  • Use tar to unpack it:
    • tar xvzf boost_1_64_0.tar.gz
  • Move into the boost directory: cd boost_1_64_0/
  • Now, prepare the boost build with; ./
  • After the command completes, build boost!
    • ./b2 -j

I used 3 of the 4 cores to build boost on the VPS.

After Boost builds, you have to tell the OS where to find it, so you do that by setting an environment variable. Environment variables are like global labels that the OS or any program can see. You add Boost to an environment variable so the rippled software can see it when it builds later.

Here’s how I do it. On Ubuntu there is the “bashrc” file. That file executes each time the user logs in or opens a new terminal. Open that file with the editor of your choice. I use emacs because VI is not my cup of tea. If you do use emacs, you’ll have to install that too. Just follow the previous step for installing a package.

  • Open the bashrc file
    • emacs ~/.bashrc
  • Add this line to the emacs file:
    • export BOOST_ROOT=/home/USERNAME/boost_1_64_0
  • For the first time, source the file. Every time you log in in the future this doesn’t need to be done.
    • source ~/.bashrc
  • Save and exit the file:
    • Save: ctrl-x and then ctrl-s
    • Exit: ctrl-x and then ctrl-c

Step 6 – Download and Build rippled

This step will clone the rippled repository and build it.

  • Navigate to the home directory; cd ~
  • Clone the rippled repository:
  • Navigate into the rippled directory: cd rippled
  • Check out the master branch:
    • git checkout master
  • Use CMAKE to build the software:
    • Make a build directory: mkdir my_build
    • cd my_build
    • Run cmake to generate makefiles. cmake will tell you if anything is wrong at this point
      • cmake -Dtarget=gcc.debug.unity ..
    • Run the build command
      • cmake –build . — -j
        • Note two dashes 

Here’s where I ran into some issues. Ubuntu straight out of the release that DigitalOcean is using is version 3.5. Unfortunately, the build system will force you to use version 3.9 or higher for a clean configure.

Here’s how to handle that. We’ll need to obtain cmake, build it from source and install it.

  • Navigate to the home directory: cd ~
  • Use wget to obtain the latest release candidate (or stable release)
    • wget
  • Unpack cmake
    • tar xvf cmake-3.12.0-rc2.tar.gz
  • Go into the cmake directory: cd cmake-3.12.0-rc2
  • Run the bootstrap; ./bootstrap
  • make
  • sudo make install

After this point, go back and rerun the cmake commands for rippled. Be sure to make a new build folder!

  • cmake -Dtarget=gcc.debug.unity ..
  • cmake –build . — -j

NOTE: If you’re ultimate goal is to run rippled as a validator. You will want to change your build target to the release version. If you’ve made changes and want to test them out in release. This is how that works. The debug version will be slower!

  • cmake -Dtarget=gcc.release.unity ..

This time, the build should work. Here’s what a valid configuration will output

And a successful build. I love how cmake counts up to 100%!

Step 7 – Modifying Code and Version Control

Now you know the command to build. If you want to rebuild, just issue the same command and watch cmake count up again!

Using git can git a little tough at times, but fortunately you can get started with minimal effort. Go back up one folder from the “my_build” directory.

If you were here: /home/validator/rippled/my_build

Go up one directory with this command; cd ..

First things first. Set up your Github username and email;

  • git config –global “John Doe”
  • git config –global “[email protected]

If you have a preferred editor:

  • git config –global core.editor emacs

Now a nifty git command to get your current information:

  • git status

You’ll just have one red folder which is the build folder. That should always stay untracked. Actually I’m surprised it’s not in the “.gitignore” which is a file with file name patterns that tells git which files to ignore completely.

Best to be on the develop branch, so we’ll checkout that one:

  • git checkout develop

You can probably get away with just working on develop. You won’t be able to push to ripple’s rep but you can make commits locally and pull changes that are made remotely. To get your changes pushed then you’ll have to make a pull request.

  • git add *
  • git commit -m “Fancy commit message”

That wraps it up! I thought about going as far as making the guide detail how to set up with a Integrated Development Environment, such as Eclipse. I really don’t know what the community devs prefer to use. Some might prefer building on Windows in which case Visual Studio would be better. If I got some idea of what IDE developers were choosing, I’d make a guide for that.

This is half the battle. I hope Ripple updates their developer guide to account for the version issues with cmake. Getting around it isn’t hard, but it could potentially make somebody stumble. If you’re a developer, go ahead and checkout ripple’s issue list. Pick one and have at it. Who knows? Maybe some of your code might end up in the next rippled release! I hope so there are far fewer low level C/C++ devs out there than there are web developers.

Moving forward, I’ll post about the configuration steps involved with setting up rippled to run. That include the configuration file, setting up the linux service so it runs automatically and generating validator keys.

As always. Second star to the right; and Warp 6 this time!




Captain’s Log 010 – xRapid Remittance

Warp Field of Focus: Primary

When I was a kid I paid my parents back with napkins with a IOU written on it. Usually for a dollar or some other large amount, at least a lot of money for an eight year old. Once I figured out that the paper in my birthday cards should be saved for spending on toys, I would keep a bit of that to bribe my sister with. Probably to keep quiet about something I did that I knew was wrong, like eating a snack before dinner.

I remember in my high school years writing checks. My parents insisted I do the books the old fashioned way. Once I had to send a money order for an e-bay purchase. My ebay deal turned out to be $5 more expensive because I had to pay somebody to take my money to the seller. What a crock! Why wasn’t my own check good enough? I want to explore my own experience and talk about what’s possible.

After graduating I had my first credit card in college only to find out it was useless for sending money anywhere; back to checks and cash. Actually, just checks because sending cold hard cash in the mail “isn’t safe”. I remember dreading and avoiding the act of sending money anywhere in any official capacity. The worst was purchasing a house. A certified check from a bank was required! From a bank! Can’t even go with a money order; at least my situation. Banks have become our go to now for sending money. Have you heard of “Bill Pay”? That’s how I have to send money to people if I want to avoid have to pay a cut to the Western Unions of the world. Also sending cash is slow like dial up slow. My own experience sending money has always been such a hassle. Until now.

The world is evolving to a point where we can transmit our money like an email. In fact that’s already here! No banks required. Cryptocurrencies are on the rise and all of them can do this, however, only one does it well. The digital asset XRP can act as a value transmission system to send money between two points almost instantaneously. No more checking your online banking system to see if that Pending Charge ever clears day after day. Heck! You don’t even have to wait around for Bitcoin or Ethereum to clear. In the crypto-verse it is a known fact that XRP is cleared on its ledger faster than any other cryptocurrency at 1,500 transactions per second. [1] The first time I bought bitcoin, I remember waiting for over an hour for it to clear. The first time I bought XRP the clear time was 3 seconds. Now that is warspeed for payments!

A lot of people have to send money places everyday. Many people send money back home to their folks, such as myself. I like to do that to help out and give back. The process just takes forever! I’ve wondered how many out there have actually tried to get their Mom to take remittance in XRP? Is it more expensive than Western Union? Cheaper? I want to know!

Let’s explore some real life numbers going through the process:

  1. Take your own money; any government currency
  2. Convert to tranmistable medium
  3. Send
  4. Receive
  5. Convert to another or same government currency.

Let’s go over a few assumptions.

  1. In both cases I want to send money for the cheapest method possible.
  2. You may wish to send to a different country or not so there are two scenarios; same country and different country.
  3. I’ll use sending $1000 as a round number. Speed and cost are the metrics to measure.
  4. For sending XRP, there’s the whole 20 XRP wallet minimum thing. I want to ignore that for the sake of argument since it’s a one time deal.

Scenario 1, Example #1: Western Union – Same country; $1000

I went to their Send Money Online app to check and found that to send $1000 to someone would cost $10. That’s if everyone went to a store; paid in person and picked up in person. A little bit of a hassle

Result: Fee $10 and Available “In minutes” according to their website.

Scenario 1, Example #2: XRP – Same country; $1000

I guess you’d have to purchase some XRP to do this. There are many ways to do this. I will suggest using Coinbase and Shapeshift, however, I do not claim it is the cheapest.

I recommend reading up on Ripples on how to here, or you can see my own on my YouTube channel. I explain how to do the Coinbase/Shapeshift method.

At time of writing $1000 gets me 1.88339079 ETH on Coinbase which equates to 1838.84929114 XRP from Shapeshift. In reality, when I send this somewhere, the money will have to be sold back for local currency, so I should account for that and double it for purchase. Meaning send more money so when bought and and sold again there’s padding.

New Numbers. $1031 gets 1.93730062 ETH on Coinbase which equates to 1892.42512133 XRP from Shapeshift. Buying in that is a $15.14 fee meaning I’m actually getting $1015.86 worth of XRP to send. Selling back out I would have to supply that fee a second time so whomever i am sending to gets $1000.

Send that ethereum to shapeshift, XRP comes out to my wallet. Shoot that over to my payee and they shapeshift it back to ethereum to their Coinbase account.

Something to note here. Using Coinbase is slow. Their site claims it can take 14 business days to process a withdrawal to a bank account. I have performed withdrawals before and had it happen in a few days. I don’t really consider this a problem if you’re not in a rush to have cash in hand. I mean, the money is in your Coinbase account in literal seconds.

Result: About $30 to send; Available as fast as you can click buttons and transaction time of ethereum chain. Still just minutes.

Scenario 2, Example #1: Western Union – Send to a different country; $1000

I picked the philippines randomly for this exercise. I did not have a country preference.

Guess what? The online calculator produces the same result. $10

Scenario 1, Example #2: XRP – Send to a different country; $1000

Also the same. When you withdraw USD to a bank account in Euros, the banks deal with conversion.

Results: Overall, you can get your payment to somebody just as fast. Using the Coinbase to Shapeshift method results in waiting around for Coinbase to handle your transactions. There has to be a better way? Thirty dollars vs ten dollars is almost no contest.

What could that better way be? One obvious way to cut some cost would be to use GDAX. Coinbase is nice but they charge you for that over the top user friendly interface (left). GDAX is a market traders interface (right). Soon GDAX will become Coinbase Pro in case when you’re reading this the name has already changed.

Here’s how much you might save with GDAX over Coinbase. Fees are 0.3% if you’re using it. On Coinbase if you’re buying from a bank account you’ll pay 1.5%. Talk about a markup! That’s both ways too.

Numbers: 0.3% of $1000 is $3. To go with this instead you would need $3 to buy $1000 worth of ethereum. Double that and that would give the person you’re sending to another $3 to have $1000 when they sold. Pad it by a dollar for some margin.

Results: Now we’re talking $7 to send $1000! Slightly cheaper than Western Union.

Can we do better? Let’s try a different exchange.

On Bitstamp a person can buy XRP directly for USD. Hey CoinTrek? Why didn’t you tell us this to begin with? I think Coinbase is a huge first entry point for a lot of crypto users, so I thougth why not give an easy to use solution first.

Let’s say a person is not in a rush and will do a bank transfer to fund an account. Bitstamp is slightly cheaper than GDAX. Trades are 0.25% as opposed to 0.3%. That means 0.25% of $1000 is $2.5 and you’d need double to trade back out to USD, so to send $1000 we’re talking $6 if you pad it.

Now you can get the total down to $6. That’s not bad! And, you can do it from your home office, however. There’s still the question of how to send the XRP from person to person. I have a couple suggestions; a wallet and one novel method.

XRP Wallets

Toast Wallet is a nice IOs capable wallet that works from the comfort of your phone. I like it because the wallet works pretty much everywhere, but for one reason especially. I’m a security nut and I like to keep my crypto in a cold wallet. A Ledger Nano S to be exact. A fellow by the name of @WietseWind on Twitter has created a utility to connect the Toast wallet up to your Ledger Nano S. You can get the app here on his GitHub Page. An XRP wallet has the unique capability to be shared through the use of a unique Family Seed. The app creates one from your Ledger information and you can use it to sync up the toast wallet with your hardware wallet. Now that is cool!

If you thought that was neat, well, there’s more. The novel way to send XRP is with Twitter! @WietseWind has also created the XRP Tip Bot; All you need is a twitter account and you’re good to go. Tweet somebody with the following:

+X @xrptipbot, where X is the amount of XRP you want to send.

And, they’ll receive the XRP in their name. One only has to go to the website, log in and claim the XRP.

The XRP Community would not have that capability if it was not for Wietse. I never would have imagined sending money on twitter 10 years ago in college. Back then I was still writing checks! A slave to the banks! If this movement is going to take off then it is up to us in the community to live it and breath it. My ways to send XRP are certainly not the only out there. I would enjoy hearing about it and sharing it with everyone. I also challenge Western Union to match $6. I mean really?! Why not?

I am following the lead of the others and doing my best to contribute because I believe sending money should be as simple as sending a text (guess what Wieste did that one too.. I wonder what that man does all day?) I am writing about XRP and crypto, but I am also working on something tangible that I can produce for the community on my CoinTrek. Stay tuned and I’ll soon be able to share what that is with you!

Until then. Second star to the right! Warp 8.