If you don’t want to have the whole bitcoin blockchain on your computer or server you don’t have to. There is an option that deletes previously verified blocks from your local copy. This is called pruning. To enable it you have to add the following line to your bitcoind config. This config file is usually in ‘/etc/bitcoin/bitcoin.conf’.
After that you have to restart bitcoind and 5 minutes later you have a whole lot more free diskspace.
You can check if pruning is enabled with:
bitcoin-cli getblockchaininfo | grep prune
It will output something like this:
Good to know:
The prune= value has to be higher than 550. And the number indicates the diskspace to be used in Megabytes. I went with 5000 because 5GB seemed reasonable to me.
After I enabled the prune=5000 option bitcoind wouldn’t start anymore. There was no usable error:
root@cryptodoos:~# service bitcoind start
Job for bitcoind.service failed because the control process exited with error code.
See "systemctl status bitcoind.service" and "journalctl -xe" for details.
I checked for typo’s in the config file and read the logfile in /var/lib/bitcoin/debug.log but everything seemed fine. So I started the daemon by hand. This is usually a good approach to see what’s going on.
root@cryptodoos:~# /usr/bin/bitcoind -daemon -datadir=/var/lib/bitcoin -conf=/etc/bitcoin/bitcoin.conf -pid=/run/bitcoind/bitcoind.pid
Error: Prune mode is incompatible with -txindex.
And there it is. You have to disable txindex in the bitcoin.conf to use pruning.
A client recently asked me to export records from Ticketmatic. Ticketmatic is a SAAS application for selling event tickets. They have a JSON API, so I figured it would be easy. Just send a GET request to some URL and parse the result as JSON right?
That doesn’t work because they use a hashing algorithm called HMAC-SHA256. This requires you to sign every request you make with a secret key to create a signature. After that, you have to put the signature, the current timestamp and an access key in the Authorization header of the request. Not just once but for every request!
Continue reading “How to use HMAC-SHA256 to connect to a REST API like Ticketmatic”
If you run multiple versions of a Rails application on the same server it’s easy to get them mixed up. I have a client that has 2 versions of the same application on the same server. One version for clients in the Netherlands and one for Belgium. Because they are almost, but not totally, identical I’m doing as much as I can to make them easy to identify. And today I found a simple trick that I’d like to share.
Continue reading “Multiple Passenger apps on your server? Give them names!”
Do you want to learn Ruby on Rails and do not know where to start? Maybe you have watched some videos on YouTube, maybe you have bought a book about Ruby on Rails. But the book was too theoretical and the video assumed you had a basic knowledge about Ruby which you don’t.
So where do you start?
Continue reading “The best screencasts about Ruby on Rails in 2018”
Digital Ocean offers 2 types of droplets (servers):
- Droplets with a clean Linux install.
- Droplets with some application preinstalled: “One-click apps”
Let’s have a look at the One-click Rails installation they offer. I’ll describe what you get and what I like about, what I don’t like about it and I’ll give some tips on how to use it.
“Welcome to One-click apps, what do they do? Do they do things? Let’s find out!”
Continue reading “Is Digital Ocean’s One-click app for Ruby on Rails any good?”
There are a lot of ways to deploy an app to a server, here is a simple one that I often use. This can be a bit confusing if you are not familiar with Git but I promise it’s the easiest way!
It works like this: you create an empty git repository on the server and you push the branch you want to this reposity from your development machine. The repository on the server has a little script (hook) that puts the files in the right directory (‘rails_project’) and runs all the bundle commands. You end up with 2 directories: the bare repository and the ‘checkout’ with the project. Continue reading “Use a git-hook to deploy your app”
Sidekiq is a simple and efficient background processing tool for Ruby on Rails apps. You should use it for tasks that take too long to put in a controller or tasks that need to run on a schedule. Common examples are sending emails, generating pdf’s and connecting to other services through an API.
Like all things in IT, Sidekiq can crash, get slow or need more capacity. And for some applications that really should not happen. Because nobody directly interacts with Sidekiq it can be a long time before someone notices that something is wrong.
A good solution to quickly restart (kick, hehe) a crashed Sidekiq is to have a watchdog on the server. Both systemd and upstart can do that for you, and there are lot of other watchdogs you can install. But I’d still like to know something happend, or when an edge case happens where the watchdog cannot fix it. The solution? Monitoring Sidekiq from the outside.
Continue reading “Monitoring Sidekiq with email and SMS alerts”
How do you know your Rails app is still online? How do you know it’s not displaying some error? That’s what monitoring is for. If you look around you’ll find lots of solutions. Most of these solutions are overkill if you are just starting with Rails servers or if you only have a few applications.
What is important when choosing a monitoring tool?
Continue reading “Simple downtime alerts for your Rails app in 5 minutes”
It sounds convenient right? Install a server once and every time you build an app you add it to the server. If you update something on the server it will be updated for all the apps at the same time. Which may save you time and money.
Is it hard to install multiple apps on the same server? No not at all. Will it save you time setting things up? Yes. Will it make you happy in the long run? No!
Continue reading “Why you shouldn’t run two Rails apps on the same server”
What if your terminal couldn’t scroll back? When I just started using Tmux I didn’t know how to scroll back so I used to run Rails Server in a seperate terminal.
When I finally figured out how to scroll back up I also learned the hard way that you have to scroll down or otherwise your Rails server (and the whole app) will hang.
There are 2 ways of scrolling in Tmux. You can configure them in your .tmux.conf and they can be used together.
Continue reading “How to scroll back in Tmux”