Captain’s Log 012 – XRPine Performance

The stats on the XRPine are in!

Captain’s Log 012 – Supplemental

Starting off. Wow! I had no idea my home project would receive so much support and attention. Thank you to everyone for the kind words, sharing thoughts, and questions. I am truly humbled and I will do my best to answer them. This community is awesome!

 I have been asked by the community to share some resources usage statistics of the XRPine whilst running a validator. The machine has been running solid over two days without a reboot. I have been impressed to say the least that this little XRPine has some fight in it!

Here is how the validator has done since I started it up. If you go and look at other validators you’ll see each with 20+ thousand validations. I’d say around 9-10,000validations in one day isn’t half bad for the XRPine! The validations are however, mostly disagreements. These are validations that did not pass consensus. Also, you’ll notice Monday the 25th had notably less total validations than the day before. The reason there’s only 20 validations on the first day is because I got it working right before the new day rolled over.

To review, the Pine/Rock64 has:

  • An RK3328 Quad-core ARM Cortex A53 64-Bit processor; Datasheet.
  • 4GB of LPDDR3 1600MHz memory. (The LP just means low power)

What sort of statistics would be worth gathering for load analysis? The obvious are CPU usage and Memory usage so I’ll share that information.I shall note that I am operating the validator with [node_size] tiny in the configuration file. I left the XRPine running for a day solid in this configuration before pulling stats. There was one day, I thought I’d try and run the XRPine with [node_size] small in the configuration file, but it was too much for it so I went back to tiny. I had a feeling that would happen, but I wanted to try it out anyway.

The following are methods of collecting usage information and screenshots of what i have:

 Method 1

iostat – You can view the manual page for it here. Will give me average cpu utilization and other statistics. I did mine every 5 seconds randomly.

Command: iostat -m -p sdb 5

Output:

Averages:

  • User: 61.064 %
  • System: 10.648%
  • IOWait: 16.908%
  • Idle: 11.312%

Conclusions: The user percentage indicates that the rippled service, which is all I have running at the user leve, takes up the very bulk of the entire machine’s computing power. Also worth noting, the IOWait time is not so good, but I think it’s not so bad for what the machine is.

To explain, the machine is taking a lot of time to both call up information and write information to SD card that serves as the hard disk. I am going to have to play around with it and try to improve this number. I’d love to try and make this work with a solid state drive attached!

Method 2

htop – Nicer version of “top”. Shows me memory usage and overall CPU usage.

Command: htop

Overall memory usage is reported at 87.0%. I am intrigued because some people have reported that their Virtual Machines with 8GB have memory usage all the way at maximum. Overall CPU utilization at this snapshot was ~190% across 4 cores. However, I’ve seen it up to ~340%. The CPU utilization fluctuates back and forth. I’m closely monitoring the memory usage to determine if it increases to the maximum amount over time.

Conclusions. It works! And there is room for improvement. I am personally surprised the machine isn’t overtaxed and barely running, but these are the numbers I’m getting as of this moment. I recognize I have a lot of work left to do with this project. Some have asked that I share it. For now, since it’s in its infancy I want to continue working on it to improve its performance as best I can before turning it lose. I am happy to take suggestions for things to check from people to help improve it.  For the future, as I make adjustments and improve the performance I intend to write about my progress.

I will be submitting a poll to the community to see what the interest is in using the XRPine and determining how best to release it for others to use. Some of us are technical people and want to tinker like myself, while others may just want something to plug into a router and walk away from.

Second star to the right; Warp 8!

Captain’s Log 011 – Introducing the XRPine

Warp field of focus: Primary & Secondary – Achievement

So I did a thing…

As a part of playing to my strengths I decided to act on my curiosity. Validators. With XRP, all the coins are pre-mined and distributed at the time the public ledger goes live. The technology is still the same; blockchain. Instead of miners there are validators. A number of computers run the “rippled” software server. This software is publically available on GitHub. Anybody can download it and run the software. It’s like mining without getting paid, but you do it because it’s for a good cause.

There are very few people running a ripple validator in the world as opposed to those mining for a sliver of Bitcoin these days. Anybody can verify this looking at the validator list on Ripple’s website; here. Naturally, I wanted to be involved. I found @WiesteWind’s article for setting up a validator on a Virtual Private Server (VPS). He did a great job telling one how to set up a validator using a docker image but I didn’t want to pay for a VPS. That left me with my rig at home and, honestly, I mine with it so I didn’t want the thing to be overtaxed with tasks.

I was short on machines to operate one of these things. Combined with my aversion to spending loads of money or subscribing to services I thought about other options. Necessity is the mother of all innovation. I did, however, have a little nugget of hardware lying around known as a Raspberry Pi 3. The lights in my head were going off. Why don’t I make this little guy run a validator.

To the google machine! I went and looked on the interwebs to see if anybody had set this up for a Raspberry Pi already. I found a thread on XRP chat that indicated otherwise. There had been attempts by some community members to give this a whirl but there was no success. You can read this thread here. I looked around. Trying to find if others had found success but I came up empty. I was encouraged, however, because David Schwartz, @JoelKatz, himself wrote in on the chat forum that running a validator on a Raspberry Pi 3 should be possible.

So, I set out to make it happen. Immediately I hit some walls. There are instructions for building the rippled software online and I was following it. The Raspberry Pi 3 only has 1GB of RAM and there are only 32-Bit Operating Systems for it. Finding a 64-bit OS for a Pi is possible but at the moment, very difficult to deploy. I figured I’d try it out anyway wit ha 32-bit OS. After waiting half a day for boost to build on the platform I got excited, copied the rippled software to the machine and proceeded to build that. No sooner than executing the command. Halted! The rippled software only builds on a 64-bit machine. There went my plan.

Many days of research later, I came across a suitable single board computer that had larger amounts of RAM, was physically similar in size to a Raspberry Pi 3, and most importantly had a 64-bit operating system too! And the best part is the machine didn’t cost an arm and a leg, since it was close to the price of a Pi. I found the Pine 64 website that sold the Rock64 computer. The highlights are the machine had 4GB of RAM and has a 64-bit processor to run with a 64-bit OS that was easily available. Nice! So, I bought one and patiently waited.

Here are the specs:

If you want to check out the board, you can find it here.

Repeating my previous progress I built boost, download the rippled software, and this time I was able to build it. Turns out that was half the battle. From there, I had to turn the executable program into a linux service and create myself some keys. I might write another post in the future with all the nitty gritty details, but the point is I was able to complete them and configure the software to operate sucessfully.

All rippled servers acting as validators have a public key to identify it. You configure your validator by generating one with the key generator tool that ripple also makes available. However, that is still not the entire solution. If you set your validator loose at the point then it is considered unverified. The validator is still validating transactions on the public ledger but other verified validators might not use it for consensus. I went through a process to have it validated. Ripple requires that you prove the machine running the validator is in your control by requiring your public domain be signed against your public facing validator key. Mine is as of yet, unverified but is currently under consideration. I generated the appropriate key signatures and submitted an online form to Ripple.

Until then, my validator remains unverified but is still chugging away at transactions. Here’s my validator online:

I remember watching the film Armageddon. Yes, the one where an asteroid is about to impact earth and a team of deep water oil drillers led by Bruce Willis goes into space to blow it up. I love that movie just because it’s fun to watch. When the big asteroid is found, the discoverer gives it a name. So, I want to give my creation a name as well. I call this the XRPine! And, for the record, my wife is not a life sucking bitch named dotty. She is an amazing woman equal to any man that can write a line a code!

In lieu of the XRPine I am also revealing my new domain name. I had to get one to get my validator verified:

cointrek.voyage

The domain simply points to my blog. I thought voyage was a good ending to the dot because it fit so well. CoinTrek is inspired by Star Trek and we’re all on a voyage anyway so I took it!

That’s not all. I asked a good friend of mine help me make up a case for the XRPine with a 3d printer. I thought the new XRP logo was fitting and of course blue made the most sense. I am grateful to him for his help.

IMG-0154.jpeg

Check this case out my YouTube channel

This creation is still in its earliest stage, but my intent is to make these available to the community so those who want to run a validator with a minimal footprint may do so. Parts of this are specific to the person deploying the validator; the keys to the validator are secret and so is a domain name. Therefore I cannot make one fully configured since I would know the keys! That part of configuration must be done alone.

One can still run an unverified validator so a domain name is not totally necessary. I’m glad to be able to give something back to this wonderful group of people. If anybody has comments or suggestions please let me know. If there is interest within the community for others to run one of these little guys I’d be interested in setting them up for folks; time permitting of course.

I look forward to seeing how this thing works out. As I continue to tinker with it I’m sure I’ll be learning more and make further improvements. I encourage others to learn and find ways to advance the community at large. This technology would not live without a fervent following.

As always, second star to the right; Warp 8!

Reference:

  • https://medium.com/@WietseWind/how-to-run-a-ripple-validator-digitalocean-7e5fca1c3d77
  • https://www.pine64.org/

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; xrptipbot.com. 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.

Reference:

  • https://ripple.com/insights/10-things-need-know-xrp/