Category Archives: IT

Howto: Ethereum/Expanse Mining with Ubuntu 16.04.3 LTS

First of all – install Ubuntu [1]. This should be actually straight forward. After running the installation I suggest to do a software update. Just drop the more or less “standard” lines:

sudo apt-get updatesudo apt-get upgrade

To be able to mine, I suggest to check the video card drivers. In my case for the Nvida GTX 780 I use the nvidia-384 proprietary drivers. The following guide might be useful [2] for the installation – either via graphical user interface or via command line.

Now let us install the ethminer. Fast and easy with the following commands as pointed out at [3]:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum ethminer

And for the first test I run it on an Expanse Pool [4]:

ethminer -F -G

Starting it the first time, it takes some time to load the DAG, but once it’s loaded the miner performs better as expected showing a Hash Rate of approximately 17 MH/s – on the miner and on the pool.

For an autostart of the ethminer process, I will drop another blog entry within the next days/weeks.

[1] Ubuntu, Download Page

[2] Ubuntu Help, Nvidia Binary Driver Howto

[3], Ethereum GPU mining on Linux

[4], Expanse Mining Pool

Optimizing geth client for Ethereum

Running the geth client [1] in default mode, requires after some time, quite a big amount of disc space. To optimize it, the fast syncmode can be enabled. What is does is basically syncing only the latest part of the blockckain instead of the whole chain.

So after running the Ethereum Pool on [2] for some time, I noticed that the disc space was going down rapidly. To fix it, I decided to go for the fast-sync mode with some optimization.

It should be highlighted that for running geth in fast syncmode, the whole database has to be deleted and rebuild. Therefore, since the geth client on [2] runs as main and backup on two servers, I first migrated the backup server.

To do so, the first step is to clean out the database by running:

geth removedb

After cleaning out the database, we can restart the geth client, with syncmode fast. Additionally I added the cache option, to increase the cache of geth from the default 16MB to 1GB. This should give the client an extra boost.

geth --syncmode=fast --cache=1024

To check the status of the syncing, you can log-in to geht with

geth attach

and run the command


If the system shows you “false” then your syncing is complete.

After completing the backup node, I shut down the main geth node. So far so good, basically I saw that connected to the backup geth client and continued without interruption.

So now I starting doing the same thing on the main node. And that’s the point where the sh*t hits the fan! After starting the syncing on fast mode on the main node, the mining process switched again from the backup to the main node. This resulted into a desaster, as miners then immediatley found 2 orphan blocks.

To fix it, I reconfigured the pool operating only with one geth node and restarted the processes. Furthermore I deleted the orphan blocks for the database. Neither the less the mining shares of the miners are gone with the old block. That’s definitly something to blame on me.

[1] geth, command line interface for Ethereum

[2], Ethereum Pool


DDOS protection

Did you ever wondered what cloudflare [1] is? It is basically an protection against Distributed Denial of Service attack [2], where your server is attacked via a massive flood of incoming traffic, trying to overload your server.

But there is an easy and cost saving way to protect your server – of course if you are running it on Linux. Simply check DDoS Deflate from github [3]. After installing, the script checks frequently your incoming traffic. Once an IP address generates a critial mass of incoming traffic attempts, the IP address is blocked.

Just consider that you might want to whitelist certain IP addresses or domains – for that check the manual.

Update 2017/12/12:

After installing DDoS Deflate [3] on, the impact can be seen on the statistics of the website. No more peak pointing out a DoS attack since beginning of December.




[2] Wikipedia, Denial of Service Attack

[3] Github, DDoS Deflate


Cryptocurrencies – Gamblers and Game Changers

There is currently a big hype around cryptocurrencies and a kind of battle between Bitcoin and all the Altcoins (alternative Coins). Bitcoin seems to have the first-mover advantage, as techologically, it is lacking behind a majority of other coins.

Bitcoin created a brand and this is rewarded with an explosive up-drift in their exchange rate. Based on Coinmarketcap [1] Bitcoin holds more that 50% of the cryptocurrency market, while more than 1000 alternative coins shares the rest. Still to be mentioned should be Ethereum and Bitcoin Cash. But within this article I will not go into details of their technology and the differences between them.

Having that said, you soon realize that certain cryptocurrencies are

  • the perfect wonderland for gamblers,
  • while others have the power to be a game changer.

For gamblers, for which I see the majority of the cryptocurrencies, the advantages are:

  • the market is never closed, you can buy/sell 24 hours, 7days a week
  • the volatility is rather high – changes of more than 20% a day are not unusual
  • there are plenty of market platforms with low rates
  • More than 1000 cryptocurrencies according to Coinmarketcap [1]
  • as there is no authority, platforms are located offshore, most people don’t pay taxes for their cryptotrading profits

While many of the cryptocurrencies seems to be created either for fun, for world domination – where the most fails, the minority are seeking for real-world applications and having a real vision behind.

Starting with my – just for fun – mining pool project [2] to set up mining pools with 0% fee, I came across Expanse [3]. Operating a pool for Expanse [4] I soon got into the community and the activities behind this project. And to be honest, Expanse is a project I would consider as a possible game-changer.

Beside the fact that Expanse is very community driven there is direct contact to the core team via a Discord Expanse channel [5] which makes the project quite family like. Aside to the chat, there is a bi-monthly newsletter [6] and a Twitter channel [7] keeping the community up to date.

Coming back to the real-world applications and visions, I would like to highlight some of the Expanse core ideas and applications that convinced me:

  • Tokenlab [8]: Its basically an integrated system to create tokens on the Expanse Blockchain. The platform helps to create ICOs with smart contracts, with time-locked distributions to protect investors from funds being dumped.
  • Votelock: a core idea for the integration of voting within a blockchain. This would be a real benificary for elections having a proper infrastructure and security mechanism.
  • [9]: not yet life, but I checked the whitepaper [10] and it looks promising to me. Putting experience and achievements in a blockchain sounds like an interesting idea, kind of a mixture of facebook with LinkedIn in a 2.0 version.
  • Charity: and the people behind are into charity, making them human and caring about others. This gives them an extra point from my side.

Please note that those are just the highlights from my side, I think there are plenty of more features and applications.

Summing it up, I am curious and forward looking for the Expanse project.



[3] Expanse Homepage


[5] Discord, Expanse Channel

[6] Expanse Newsletter

[7] Expanse on Twitter

[8] Homepage


[10] whitepaper


Ethereum, Ethereum Classic & Expanse: Basics about Mining and Mining Pools

In advance, I would like to highlight, that this article will focus on the mining of the following 3 Ethash (previously known as Dagger-Hashimoto) algorithm based  cryptocurrencies:

Basics about Mining

Basically each minable cryptocurrency can be mined solo (stand-alone), with GPU and/or CPU power. CPU mining is not to be considered efficient anymore – therefore most of the mining is done with modern graphic cards (GPU power). Dependent on the difficulty, the algorithm, and the GPU power, it takes certain time to get a reward for finding a new block within the blockchain.

The rewards for finding a new block is different based upon the cryptocurrency:

  • Ethereum (also known as ETH), 5 ETH
  • Ethereum Classic (also known as ETC), 5 ETC
  • Expanse (also known as EXP), 8 EXP

Each of the above noted cryptocurrency uses a certain difficulty required for the mining process. The difficulty is adopted frequently in relation with the network hash rate to the according block time. The block time provides the average time between finding new blocks. For Ethereum and Ethereum Classic the targeted blocktime is currently 15seconds, while for Expanse the block time is targeted with 60sec. Therefore, the more miners provide hashing power, the higher the network difficulty is set. This results that with higher network hash rate and a higher difficulty, the time until the first reward on solo mining is earned later.

Taking for example Ethereum, and a recent graphic card with a hashing power of 30MH/s, would currently take around 3,5 years to earn a reward of 5 Ether – statistically of course. To get an actual view of your mining power check out one of the mining profitability calculators [1].

To overcome this and to be rewarded earlier, you can join a mining pool. Depending on the distribution algorithm, you will be rewarded earlier – while of course, with lower rewards.

Choosing the mining pool

First of all you should get clear on what you would like to mine. Of course you can select the cryptocurrency based upon the best profitability  [1], but I would suggest to also investigate on the roadmap and on the projects of the cryptocurrency & their communities. At this point I would specially like to highlight Expanse as there are some interesting points in their roadmap, interesting projects (e.g. Tokenlab ) as well as a great supportive community.

What are the important points on selecting a mining pool:

  • The reward distribution algorithm
  • The fee
  • The minimum payout

The mining pool reward distribution algorithm defines how rewards are distributed among the miners. The most common ones are:

  • PPLNS – Pay Per Last N Shares: Reward is split based upon the proportion of shares on the last N shares.
  • Proportional: The reward is split proportional based upon all shares required to find the new block.

Of course there are far more algorithm available, which can be found under [2].

The fee is defined by the pool operator. Before splitting the reward across the miners, the fee is deducted from the reward. The fee usually varies between 0% and 2%.

The last variable to consider is basically the minimum payout. Once you start mining, rewards are accounted based upon the distribution algorithm. As transactions costs something, a minimum payout is set. The lower the value, the more often the rewards are payed.

Aside to the hard facts, certain other criteria’s should also be taken into account.

  • Security: Does the environment look safe? Has there been any issues before?
  • User Interface: Is the user interface handy? Do I get all information I would like to see?
  • Additional features: Does the pool provide any additional feature?

My personal favorite

Considering all the above mentioned hard- and soft facts I consider the following pools from the same provider, whereby I have to say that I focused on mining Expanse:

All of them have 0% mining fees and rather low minimum payout values.

The operator is very supportive in case of questions. Furthermore the underlying open source pool software [3] has been extended with new features over the time, whereby I love especially the twitter notification service [4], where messages are posted once a new block is found by the pool. Additional features to be noted there:

  • 24h pool hash rate
  • Support for iPhone Mining Pool Monitor App: Asi MPM [5]
  • Integration of Crypto Currency Market value

The pool process – from mining to payment

What I missed on my research was basically a short description of the process on the mining pool itself.

  • First of all you need to download a wallet and create an account – alternativley you can create an account online
  • Following the instruction of the pool you download a miner like etherminer or claymore, set the ports and your wallet address and then you start mining
  • Once a new block is found and shown under “New blocks” (e.g. on EXP.ethertrench), the overall mining process, with the count of shares starts from the beginning
  • After a certain time, the new block is set as “immature” (e.g. on EXP.ethertrench), for the miners the “immature balance” is calculated and assigned (done by the so called unlocker process).
  • Over the time more blocks are processed and after a certain time, the block is considered to be matured – shown finally under “Block” (e.g. EXP.ethertrench)
  • The payment processed is started once the block is matured. Usually the payment process runs on a predefined frequency – e.g. on an hourly basis.

I hope this article provides some information about the basics, about mining and about choosing the right pool.

Happy Mining!






Windows 10 and SSD ending up in disk error

To speed up my PC, I decided to buy & install a SSD hard disc. As I have a Windows 10 with plenty of applications and data running I thought about a migration via a disc clone.

Therefore, I first cleaned up my “old” hard disc. I de-installed software I haven’t used for years and removed data, which I have stored already on my personal server or saved within a backup somewhere.

For the next step, I opened the computer management and switched to the storage management. There I reduced the volume size of the actual hard drive. It should be basically less than the capacity of the new drive.

The next step was to clone my disc to the new SSD. There are plenty of tools available in the internet, which can do this. The only thing you really need is: time. Cloning takes some time as the blocks are moved 1:1 from one disc to another.

After letting the clone process run over night, I shut down my PC and de-plugged the old drive. Connecting the new SSD on restarted with the new disk I expected a superfast boot.

But unfortunately: DISK ERROR!

So back and forth, same procedure again didn’t fix anything. After spending several hours, I decided for clean installation of Windows 10. In the end of the installation follows a reboot and again: DISK ERROR!

Sometimes the solution might be so easy. The issue was already on the BIOS side. If you install a SSD you must ensure to switch the SATA controller from Native IDE to AHCI. So, check you BIOS and switch from:




Once this was done, I did one more installation of Windows 10 – and finally it booted.


Howto start with Bitcoin

Within the last months I have heard a lot about Bitcoin. So I thought to get a bit into this topic. According to Wikipedia [1] it is a decentralized cryptocurrency. The main advantages are basically that the currency is managed decentral, meaning that there are basically no banks required to do any transaction. In addition the transaction costs are basically very low [2], while for certain services (e.g. faster processing) costs can be higher. A good detailed describtion of the Bitcoin transaction fee logic can be found at [3].

For a start I would refer to the official bitcoin homepage [4], where you can find a quick intro. To start you will definitely require a wallet – either you do it on your own, by installing a bitcoin client or you take a wallet from an online account e.g. from blockchain [5]. Since a local installation provides more independency, it also has the risk of loosing bitcoins whenever your computer gets lost/stolen or hacked. With the online version, you usually also have tools and apps available to access your wallet every time and everywhere (e.g. if you like to pay something with your mobile).

Once you have a wallet – you need to find a way to get bitcoins. Ways to get bitcoins are the following ones, which are described in more detail below:

  • Bitcoin Mining
  • bitcoin faucet
  • Earn bitcoins
  • Buy bitcoins

Bitcoin Mining

Bitcoin mining is a nice idea to earn money – but you are years too late. It was only profitable in the beginning, while nowadays you can forget the cost income ratio due to the need for special hardware and high energy costs which are not compensated by the bitcoins you earn.

Bitcoin Faucet

These are basically pages which are showing you advertisements for bitcoins. Most of the pages (e.g. [6]) you earn some Satoshi every 5 minutes. Other ones e.g. moonbit [7] are collecting Satoshi over the time, which you are able to claim every 5 min. While the first one triggers the payout after 30 bits, the second one does a payment once a week when more than 5000 Satoshi are reached. I’ve tried both, and both are working fine. The only thing which should be highlighted – after collecting Satoshi’s over one week, I have not more than 0,1 EUR. That is not much to spend for watching tons of ads.

Earn bitcoins

There are pages like coinworker [8], where you receive bitcoins, once you have completed some tasks, which are mainly surveys. This work out fine, except, that for most of the task you have to reach a specific level, which goes with the amount of completed tasks and a certain quality. So once you start there, it takes ages to get to this level, since in the beginning most of the time there are no tasks available. The earnings are higher than on the Bitcoin faucet pages, but still you will not get rich.

Buy bitcoins

The best suggestion to get bitcoins is to buy them. This can be done either via local bitcoin platforms, where you can buy from real-life persons [9] or you go over a platform like coinbase [10], where you have to register yourself with an official ID and transfer some EUR/USD to buy some bitcoins. Of course you can pay with a credit card as well, but the transaction costs are higher. While the first method might be more convenient, the second option seems to provide better rates for the exchange. But there are of course plenty of other platforms available.

Once you have some bitcoins you can start spending them. There are a pages available [11] which shows you where you can spend you bitcoins. As the currency is quite new, decentral, and partly not legally accepted, the amount of places to spend is limited. But as we are living in a digital world, I am sure there are enough online place to spend them.

While Bitcoin is the best known crypto currency, there are plenty more digital currencies (also known as altcoin) available. A page which provides a quite good overview is coinmarketcap [12] providing details, information regarding rate and liquidity, but also market places where to buy and sell.

There are some issues and problems I see with digital currencies, which I would like to highlight at the end:

  • Personal wallets (like Bitcoin Core): this wallets are bound to your PC and once your computer is hacked or your PC is gone, your virtual money is gone as well.
  • Tax: I know nobody wants to pay tax, but considering that you are trading on Bitcoin Exchanges, taxes on capital income should apply.
  • Monetary control: while some see it as an advantage that there is no currency control available by any kind of government, it might also come with some disadvantages. Since the mining continuously produces more bitcoins, there is no way to reduce the amount – meaning that over time there must be a devaluation.
  • Volatility: Bitcoin has a high volatility, meaning which you could be a lucky bird and earn a lot, you could also lose a lot.
  • Shops: the amount of “real-life” shops is limited.


[1], Bitcoin

[2] Bitcoin Wiki, Transaction Fees

[3], Bitcoin Transaction Fees Explained










Howto make a bootable USB stick on OS X

Recently I updated my Windows PC (which I only use for gaming purpose of course) and managed to screw it. Once I did the planned restart it showed me “No operating system found”. Since I upgraded from Windows 7 to Windows 10 via the update manager I also did not had a Windows 10 image available to recover the system.

Thanks that I still have my Mac, and I am even more thankful, that it understands most of the Unix/Linux commands. So to get back to my old life, I first downloaded the Windows 10 ISO image from the Microsoft Homepage [1].

Okay so we have an ISO image – how to we get it on an USB stick – a simple copy would not make it. Therefore the following steps are required.

1.) Identify your USB stick – you would not like to replace your data storage or your OS X system.

This I usually do via the mount command:

jvr-mac:~ jvr$ mount
/dev/disk1 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk2s1 on /Volumes/Data (exfat, local, nodev, nosuid, noowners)
/dev/disk3s1 on /Volumes/ESD-USB (msdos, local, nodev, nosuid, noowners)

And here we go /dev/disk3s1 is the drive I was searching for. To be sure – double check it in the Finder App.

2.) Convert the .iso image to an .dmg image by using hdiutil

jvr-mac:~ jvr$ hdiutil convert -format UDRW -o Win10.dmg Downloads/Win10_1511_German_x64.iso
J_CCSA_X64FRE_DE-DE_DV5          (Apple_UDF : 0) lesen …
Dauer:  1m  2.901s
Geschwindigkeit: 61.0M Byte/s
Ersparnis: 0.0 %
created: /Users/jvr/Win10.dmg

The last sentence looks promising!

3.) Unmount the USB stick

jvr-mac:~ jvr$ diskutil umount /dev/disk3s1 
Volume ESD-USB on disk3s1 unmounted

4.) Write the image to your USB stick using dd command

This is the most critical part – so be sure that you write the image on the correct drive/stick. Just for your information: if stands for input file, of for output file and bs is the blocksize. The dd command basically copies block by block to the new drive.

jvr-mac:~ jvr$ sudo dd if=Win10.dmg of=/dev/disk3s1 bs=10m

5.) Unmount USB stick again

jvr-mac:~ jvr$ diskutil unmountDisk /dev/disk3s1

And by now you should have a bootable USB stick to recover your system. Lets cross the fingers that everything will work out fine with the PC 🙂

[1] Microsoft, Windows 10 ISO Image

MacOS Yosemite: Apps still in Launchpad after removal

Recently I have removed some apps from my Macbook Air, as I’ve noticed that is definitely not a gaming PC. In concrete I am talking about Steam, the Gaming Platform and two games. Neither the Mac Book Air is designed for games, nor the small SSD can handle too much data.

So what I did was the following:

  • I removed the Games from Steam
  • I pulled Steam into the Trash
  • Empty the trash

After doing this I noticed that the games and the Steam app still appears on the launchpad.

Following some research on the internet, I have tried to reset my launchpad with the following commands following Nick Man [1]:

defaults write ResetLaunchPad -bool true; killall Dock

But actually when I did this, the “ghost” apps still existed. In addition to that the whole order of my apps – grouping them over years to make it personally usable for me – has been vanished. Apple has now rearanged my apps in their order. Big Dislike!

Also the remove and rebuild of the Dock as described in [2] with the following command did not work out:

rm ~/Library/Application\ Support/Dock/*.db; killall Dock

After some time, when I got used to the “ghost apps”, I ended up in a Finder folder, where suddenly the “ghost apps” showed up.

Screenshot at März 25 17-04-00

And believe it or not – removing them from this folder, I finally got rid of my “ghost apps”. So two things I have learned from this lesson:

  • There are user-specific applications existing in ~/Applications
  • Sometimes the solution for a problem is easier than expected.

[1], Ultimative Guide to Fixing and Resetting OSX Yosemite LaunchPad 

[2], Reset LaunchPad to fix persistent empty folder bug 

Back online after disaster recovery

Recently I tried to upgrade my Ubuntu server from 10.04 to 14.04 – but I ended up in a big chaos. My my case chaos is defined by a non-working server, where actually most of the standard Linux commands has gone, and an upgrade/downgrade was not possible anymore. After long back and forth, I decided to completely re-install my server.

The re-installation was actually quite straight-forward, but the data-recovery was big pain. Especially when you have not made any backup. So first of all, which services has been affected:

  • Apache webserver (I actually hosted 2 sites on my server)
  • Mailserver
  • Limesurvey, an online survey tool
  • Ajaxterm, a remote shell log-in via the webbrowser
  • Seafile, an open source cloud storage solution

First of all, what  I did after I noticed that there was no way out for an re-installation was to set-up a new server in parallel. Since I did not had any kind of working environment left on the old server, I’ve booted a recovery file-system, which mounted my broken system in the /repair directory. From there I’ve copied the entire content of my broken server, to my new machine into a temporary /migration directory. Due to the fact that those two servers has been set next to each other, the copy process was quite fast.

The set-up of the new Apache server, was quite straight forward. I copied the whole directory structure of /var/www and afterwards started the migration of the Database. This part has been actually more tricky since I forgot my root password, and I was missing the MySQL binaries on my old server. But in the end worked out fine as well. So what I did was the following:

  1. Set-up a Ubuntu within an virtual machine
  2. Installed an MySQL Database
  3. Shutdown the MySQL Database
  4. Copied the mysql data-directury (/var/lib/mysql/ )
  5. Started the mysql Database following the guidline to reset the admin password [1]
  6. Dumped & Imported the SQL as described in [2]

The mailserver was working by default. Actually since I am not that keen on my old mails, I did not think about migrating this data. For the Limesurvey, I basically have migrated the data via the MySQL database copy, but since I am not using it anymore, I didn’t install it. The same goes for the Ajaxterm, but if – I would take my own documentation to set it up [3].

The Seafile server keeps bugging me. I managed copy the data directory, but after an start my server runs out of memory, with some fancy fastcgi errors. So for this point I have to do investigate a bit to find a solution. Anyway no data is lost, and I am on the way to fully recover from my upgrade-sickness.

[1], How to reset the root password

[2], How to migrate an MySQL Database between two servers

[3], Ajaxterm – ssh access via web browser