27 Posts

After only two days Holochain on indiegogo the Holochain project has been backed with over 70% of their funding goal.

In contrast to the blockchain ecosystems we’re used to, Holochain is a massive improvement. Here are a few problems that are being tackled:

1.) Blockchain size. Holochain uses several hashchains, each for every app that lives in it’s own p2p network. Together with the possibilites of bridging, this dramatically reduces the overall blockchain size for single users. In other systems this has been partially fixed by providing powerful nodes that keep the blockchain in sync locally, while clients connect to these nodes in a centralised way, especially on these devices that are limited in processing power and storage space, such as mobile phones. Because these client softwares appear to be comfortable to use (no more syncing upon client launch), this de-facto defeats the idea of decentralization and makes the network vulnerable.

2.) Energy consumption. With Holochain there is no energy waste, since “mining” is done through execution of meaningful code. There is no proof-of-work, which basically executing a large amount of non-sense code just to slow down the participants in the network. You earn Holos by serving holo apps, a concept that is called proof-of-service by their inventors.

3.) Centralisation. Holochain is truly distributed, because it is requiring general purpose hardware for maximum “mining” efficiency. This supports a homogenic areal distribution of “miners” (the correct preferred term is “hosting box” here), which is currently a huge problem with bitcoin.

I think this looks very promising and of course I have backed the indiegogo campaign. The Holochain team offers three official versions of mining hardware to intially build a network, which is aimed at people who want to instantly get a Holochain node up and running without tinkering about technical problems.

Links: Whitepaper Holochain Website FAQ The team behind Holochain Holochain on github

When I first heard of Ethereum I instantly had a gut feeling that this was going to be something huge. And I still think it is. Honestly, I think the price of Ethereum will easily surpass that of Bitcoin in the long term. The most interesting question for me will remain: What is the next cryptocoin that has some revolutionairy ideas? Of course, the cryptocurrency market is all speculative, but I only put funds into technologies I understand. Bitcoin exists because it was the first coin making it possible to send funds through a decentralized, idependent – and to a certain extent anonymous – system. Ethereum went big because of its smart contracts, making it possible to store executable code on the blockchain.

But what comes next?

If you take a close look at all the available cryptocurrencies, there are plenty of clones. They might be successful, but their growth rate considering their price is rather limited, because there is nothing unique or different than the established cryptocurrencies. Coins like Litecoin or Dogecoin will probably converge to a fraction of their “original” examples.

There is one coin that drew my intention: Stellar Lumens. I tried the Stargazer wallet (that is available for different platforms, also mobile btw), bought some Lumens and with a friend we sent us some Lumens back and forth. Within seconds the funds have arrived – amazing! Let’s a have a deep look at the core aspects why I think Lumens should be your next coin to have a closer look on:

  • Stellar has implemented a whole new consensus protocol. It’s called FBA (Federated Byzantine Agreement). Have a look at the Google Talk of David Mazières who explains it and compares it to other consensus protocols. (for example PoS that will arrive in Ethereum)
  • Stellar is inflationary and comes with a voting system. As a Lumen holder you can vote for another address, there more Lumen you have, the more your votes count. The funds brought in through inflation will be awarded to those addresses, which effectively means no resource wasting for mining. In order to “mine”, you have to be engaged in making Stellar better and spread the word about it. How cool is that?
  • All Lumens on the market are existent, they will be given in exchange for improvements to the projects. This is a smart move, especially because it gives political unity to the core technology of that decentralized system. This results in less forks and more stable prices.
  • The core network is maintained by experts, whereas end users connect to anchors of that core network. That happens to all decentralized currencies sooner or later, so it has been build in by design rightaway.
  • Stellar comes with a feature called “Trustlines”. By attaching to a trustline, you can transparently trade with other trusted currencies through a mediator service (for example you can accept BTC that will automatically converted to Lumens and vice versa).
  • There is some serious support from the economy. In fact, Stellar is so simple to integrate that there is a huge list of support in the company list already.
  • Stellars genius main developer, Jed McCaleb, did not just fork Ripple as many people claim bitterly. He wasn’t confident with the development direction Ripple took, so he left in order to build Stellar. Read more.
  • Stellar is there to replace bitcoin as a payment currency. It’s not really competing against Ethereum.

Let’s see how this going in the future. I bought a fair share of Lumens, Stellar convinced me entirely.

If anyone of you believes into ethereum and did not hear about the planned DAO soft fork of ethereum, it’s time now to be careful. Although the supporters of the soft fork have repeatedly mentioned their concerns on the soft fork, they all chimed in to advertise it as the right thing to do after all. It seems as if they are trying to sweep all their concerns under the table, keeping telling themselves it won’t be as wrong as it seems to them. But it is. It is nothing less wrong than violating the basic rules of ethereum and enforcing it onto its users.

But why is that? In order to understand, we have to look at what makes ethereum so valuable. This is how ethereum is defining itself and what all the ethereum users have bought into:

Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.

No censorship, fraud or third party interference.

That essentially means, that the ethereum developers will care to fix bugs in ethereum (such as when the software does not follow its specifications), miners will keep mining blocks in order to get rewards and everything is being determined by the code written and the specifications that make up the ethereum platforms. Exactly this is what make ethereum so unique: For the first time in history, there is a truly unregulated (read as unmanipulatable for egoistic interests) way to create contracts.

The problem with regulation: manipulation

If you look at the history of bitcoin you will notice its success is coming from the fact that it is not regulated. All money you own is just virtual, after all it is just a piece of paper, metal or any other physical replacement for a value everyone believes in. If your bank zeros your account, if the state declares that all your money is worthless or if it decides to create more money out of nowhere, you do not have the slightest chance to practically do anything against that. You can go into court theoretically, but you will never win practically.

Bitcoin is different in the sense that there is no regulatory instance that can harm you practically in the first place. This is kind of a game changer, be it with risks on your side. Because if you send bitcoin to a wrong address, or you lose your funds because someone has gained access to your wallet, all your money is gone. Noone can help you, because there is noone supervising and able to rollback transactions. But this isn’t necessarily a bad thing. When the EU banks articificially limited the access of the greece people to their own money (which is a form of misusing regulatory power, ie. manipulation), those foreseeing these actions just turned their funds into bitcoin quickly in order to escape the threat and maintaining their freedom. Mind you: This has been done in order to “save the banks and economy”. So, with freedom comes responsibility.

With freedom comes responsibility!

Those people investing in the DAO had the code. They had the specifications of ethereum, they knew everything. They even knew there is a bug in the split function beforehand. And they signed a contract nonetheless. It was their responsibility to check. Apparently, a lot of them did not and lost a lot of money. By not using some part of their time/money to check and quickly buying DAO tokes, they were simply gambling for higher profits. And they failed. As I did, too. But I knew that and I was prepared to lose everything – such things might happen if you gamble unresponsibly. High risk, high profits.

Creating a case of precendence

The worst thing about the planned DAO soft fork is that is is creating a case of precedence. Today it is the so-called “attacker” of the DAO (which, see above, was just someone exploiting the unresponsibility of those signing the DAO contract), tomorrow it might be a huntdown of people having the “wrong” political opinions. But who determines what is wrong or right, who’s a hero and who’s a terrorist? Often, the heros and the terrorists are the same people, depending on who you ask.

What to do?

The DAO developers should stop spreading propaganda and keep fixing bugs that are non-conformant with the specs. There has really been no bug in ethereum that would justify a correction. By proposing a soft fork, they are violating one the basic rules, acting as a the third party manipulating the ethereum network they never wanted to exist.

Yesterday I started writings contracts, so here is my first attempt. The idea is to make a contract where sellers can register in order to obtain rated transactions. It works as follows:

  1. Sellers register through the register method. They will obtain an id.
  2. From now on, sellers can create invoices in the contract.
  3. A seller sends the invoice id to the buyer, who can pay the required amount of ether. At the same time the buyer qualifies for a seller rating.
  4. When the seller paid the invoice, he may rate the seller.

This way, sellers can build up trusted profiles on the blockchain, with unmanipulatible buyers ratings, so you can check an address before sending ether.

The contract is still BETA, please be careful. More info on trusteth.com.

Here is the contract code, licensed under AGPLv3:

// This file is part of TrustEth.
// Copyright (c) 2016 Jacob Dawid <jacob@omg-it.works>
// TrustEth is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
// TrustEth is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// GNU Affero General Public License for more details.
// You should have received a copy of the GNU Affero General Public
// License along with TrustEth.
// If not, see .

contract TrustEth {
    // A registered transaction initiated by the seller.
    struct Transaction {
      // Supplied by the seller (Step 1).
      uint sellerId; // The seller id of the seller who initiated this transaction and is about to receive the payment.
      uint amount; // The amount to pay to the seller for this transaction.

      // Filled out by the contract when transaction has been paid (Step 2).
      address paidWithAddress; // The address of the buyer issueing the payment.
      bool paid; // Flag that states this transaction has already been paid.
      // Rating supplied by the buyer (Step 3, optional).
      uint ratingValue; // Seller rating supplied by buyer.
      string ratingComment; // Comment on this transaction supplied by the buyer.
      bool rated; // Flag that states this transaction has already been rated.

    // A registered seller on this contract.
    // Registered sellers can put up transactions and can be rated
    // by those who paid the transactions.
    struct Seller {
      // Seller information
      address etherAddress; // The sellers ether address.
      uint[] ratingIds; // The ids of the rating linked with this seller.
      uint[] transactionIds; // The ids of transactions linked with this seller.
      // Statistics about the seller
      uint averageRating; // Average value of ratings.
      uint transactionsPaid; // How many transactions have been paid?
      uint transactionsRated; // How many transactions have been rated?

    Transaction[] public transactions; // All transactions.
    Seller[] public sellers; // All sellers

    // This mapping makes it easier to loopkup the seller that belongs to a certain address.
    mapping (address => uint) sellerLookup;

    // The sole contract owner.
    address public owner;

    // Configured fees.
    uint public registrationFee;
    uint public transactionFee;

    // Only owner administration flag.
    modifier onlyowner { if (msg.sender == owner) _ }

    // Administrative functions.
    function TrustEth() {
      owner = msg.sender;
      // Index 0 is a marker for invalid ids.
      sellers.length = 1;
      transactions.length = 1;

      // Initialize fees.
      registrationFee = 1 ether;
      transactionFee = 50 finney;

    function retrieveFunds() onlyowner {

    function adjustRegistrationFee(uint fee) onlyowner {
      registrationFee = fee;

    function adjustTransactionFee(uint fee) onlyowner {
      transactionFee = fee;

    function setOwner(address _owner) onlyowner {
      owner = _owner;

    // Fallback function, do not accepts payments made directly to this contract address.
    function() {

    // Make a donation and acknowledge our development efforts. Thank you!
    function donate() {
      // That's awesome. Thank you.

    // Register your seller address for a small fee to prevent flooding and
    // and recurring address recreation.
    function register() {
      // Retrieve the amount of ethers that have been sent along.
      uint etherPaid = msg.value;
      if(etherPaid < registrationFee) { throw; }

      // Create a new seller.
      uint sellerId = sellers.length;
      sellers.length += 1;

      // Store seller details and bind to address.
      sellers[sellerId].etherAddress = msg.sender;
      sellers[sellerId].averageRating = 0;

      // Save sellerId in lookup mapping.
      sellerLookup[msg.sender] = sellerId;

    // Workflow

    // As a seller, put up a transaction.
    function askForEther(uint amount) {
      // Lookup the seller.
      uint sellerId = sellerLookup[msg.sender];

      // Check whether the seller is a registered seller.
      if(sellerId == 0) { throw; }
      // Create a new invoice.
      uint transactionId = transactions.length;
      transactions.length += 1;

      // Fill out seller info.
      transactions[transactionId].sellerId = sellerId;
      transactions[transactionId].amount = amount;

      // -> Pass transactionId to customer now.

    // As a buyer, pay a transaction.
    function payEther(uint transactionId) {
      // Bail out in case the transaction id is invalid.      
      if(transactionId < 1 || transactionId >= transactions.length) { throw; }

      // Retrieve the amount of ethers that have been sent along.
      uint etherPaid = msg.value;
      uint etherAskedFor = transactions[transactionId].amount;
      uint etherNeeded = etherAskedFor + transactionFee;

      // If the amount of ethers does not suffice to pay, bail out :(      
      if(etherPaid < etherNeeded) { throw; }

      // Calculate how much has been overpaid.
      uint payback = etherPaid - etherNeeded;
      // ..and kindly return the payback :)

      // Now take the remaining amount and send to the seller.
      // Rise transactions paid counter.
      sellers[transactions[transactionId].sellerId].transactionsPaid += 1;

      // Overpaid ethers send back, seller has been paid, now we're done.
      // Mark the transaction as finished.

      // Flag the invoice as paid.
      transactions[transactionId].paid = true;
      // Save the payers address so he is eligible to rate.
      transactions[transactionId].paidWithAddress = msg.sender;
      // -> Now the transaction can be rated by the address that has paid it.

    // As a buyer, rate a transaction.
    function rate(uint transactionId, uint ratingValue, string ratingComment) {
      // Only the address that has paid the transaction may rate it.
      if(transactions[transactionId].paidWithAddress != msg.sender) { throw; }
      // Bail out in case the transaction id is invalid.        
      if(transactionId < 1 || transactionId >= transactions.length) { throw; }
      // Oops, transaction has already been rated!
      if(transactions[transactionId].rated) { throw; }
      // Oops, transaction has not been paid yet and cannot be rated!
      if(!transactions[transactionId].paid) { throw; }
      // Rating range is from 1 (incl.) to 10 (incl.).
      if(ratingValue < 1 || ratingValue > 10) { throw; }

      transactions[transactionId].ratingValue = ratingValue;
      transactions[transactionId].ratingComment = ratingComment;
      transactions[transactionId].rated = true;
      uint previousTransactionCount = sellers[transactions[transactionId].sellerId].transactionsRated;
      uint previousTransactionRatingSum = sellers[transactions[transactionId].sellerId].averageRating * previousTransactionCount;

      sellers[transactions[transactionId].sellerId].averageRating = (previousTransactionRatingSum + ratingValue) / (previousTransactionCount + 1);
      sellers[transactions[transactionId].sellerId].transactionsRated += 1;

After a lot of testing, we recently started building our ethereum GPU mining farm. These are the first rigs we have been building up.



If you’re interested, get in touch for us for a complete parts list and detailed instructions on how to build and run those at jacob@omg-it.works. There are different configurations possible, depending on your personal situation.

A lot of people are asking about the various graphics cards one can use for mining ethereum. Theoretically, all AMD cards with 3GB or more of video memory can be used, but if you look at the price and efficiency concerning power consumption, there are just a few cards left. Within this article, I’d like to go deeper into the specific cards, so here are our top favourites:

Radeon 7950/Radeon 7970


The Radeon 7950 and 7970 cards can mostly be bought used for a current price of 130-170 EUR. They draw 200-250 Watts, depending on the model and clocks and need two PCI-E connectors. Also depending on the model and they can make up to 25 MH/s, but mostly will reach around 21-22 MH/s, whereas more powerful cards will draw more power, of course.

Radeon 7990


Technically, the 7990 is two 7970 cards packed closely onto one PCB. This is why it will be recognized by the system as two separate 7970 cards. This yields a theoretical hashrate of 50 MH/s. We have tested several 7990 cards, but the results are disappointing. The air cooling is just not sufficient and the card has massive heat problems. Since it will be recognized as two cards, you will also never be able to run more than 4 of those cards in a rig (since the AMD driver will only allow up to eight cards). The only viable solution would be water cooling, but that might be too pricey. You can buy this card used for about 300-350 EUR.

Radeon R7 370


As we were looking for newer cards, we came across the R7 370 4GB. This card can yield 14-17 MH/s, drawing around 150-170 Watts. The practical thing about this card is it comes with a single PCI-E power connector, so a single 1000 Watts power supply may be sufficient to power a rig with 6 cards. However, you should be aware there can be some differences between card manufacturers that may impact performance. Just make sure to buy the 4GB version, not the cheaper 2GB, which will not work at all. For such a card you will pay around 140-160 EUR.

Radeon R9 nano r9_nano

Don’t underestimate the capabilities of this card. By undervolting, it is possible to have this card running well below 120 Watts power consumption while yielding a hasrate of about 25 MH/s, which makes it as twice as efficient as other cards. Unfortunately, this card is pretty new and it is not cheap. You will pay at least 450 EUR, so it really depends on your calculation if you plan using these cards in your rigs.


If electricity is cheap, I’d always go in for the 7xxx series cards. If you need quite a lot of them, you’d probably better off with buying R7 370 4GB cards because of the better availability. However, if electricity is not cheap, you might think about buying R9 nanos. After all, there is no such thing as the perfect card for mining, there are advantages and disadvantages depending on your budget and location. If you need professional help building your own rigs, you might always contact us.

The Ethereum Mining Stick has been a great success. Although I prepared to sell just a handful of them, people gave me some sleepless nights copying sticks and preparing them for shipment. Many people even payed more than I requested, so I decided to go on and build a pro version of the mining stick. It is fully configurable via a web interface. The webserver implementation on the stick is written in plain sleek C++ and runs entirely from memory, so it does not affect mining at all! Also, we could improve a whole bunch of other things, way to long to list it here.

See an early development version working here:

Get your own stick shipped or as an image

The stick comes preconfigured for only 44,95 EUR including all software with international shipping by airmail included or as a download link, which is an unconfigured image. From the 15th of April on, all previous buyers of mining sticks can contact me to obtain a download for an updated image.

Hardware requirements

The software works with all mainboards and AMD cards above the 5XXX series, but for mining we recommend at least need the 7XXX series with 2GB of RAM, better 3GB and more (2GB will not work in quite some time anymore). It will also detect and use the system Intel iGPU for rendering the desktop. 8GB of RAM i s needed at least.

These cards have been reported to work:

  • A whole lot of Radeon 7XXX, 8XXX series with 3GB or more RAM
  • A whole lot of R7/R9 series (which most of the time are rebranded 7XXX anyways) with 3GB or more RAM
  • R9 Fury/Fury X
  • R9 nano

There is no report about a card not working.

We recommend the ASRock H61 BTC Pro or ASRock H81 BTC Pro with powered USB cable risers, though there is no known report that a mainboard did not work.

How to order

For configuration I need the following details (please provide these in your mail):

  1. Worker name, for example “rig1”. It will be available on your network as “rig1.local” then.
  2. Pool name. I recommend ethermine.org with Stratum support.
  3. Mining payout address.

This is included:

  1. High quality superfast USB 3.0 stick by SanDisk. New stock.
  2. Ready to use mining system, plug and mine. Even if your machine runs Windows, you let it mine at night, for example.
  3. Web interface for setup and monitoring or tweaking.
  4. 2-sheet manual on configuration and handling.

You can pay via paypal, bitcoin or with ether. Please drop me a mail at


Good luck!


People keep posting me feedback about the sticks and pictures of the rigs, so why not share here with their permission 🙂

Oliver, Germany

Great product and awesome work and support from Jacob! I thought about how to get a cheap solution for the software on the mainboard, and Jacob’s stick is perfect – setup in 5 minutes althought i am not used to linux and use windows – thank you very much!!!

IMG_1591 IMG_1590 IMG_1589 IMG_1588

Want to save time when setting up your ethereum miners? I did the work and found an in expensive way: A mining system ready to be used instantly on a USB stick. Just plug it into your miner and it will boot from USB, no harddrive needed. After booting it will automatically start mining. You can configure it by just plugging it into your main computer and edit some text files.

I sell them here for 19,95 €. For an additional 9,95€ I will preconfigure them to your needs, so you just have to plug it in and off you go.

Extremely fast high-quality parts from SanDisk (Ultra series, USB 3.0), no garbage, brand new stuff. I am using these myself for mining right now.

You can pay either with eth, bitcoin or via paypal. Please contact me at jacob [at] omg-it.works!


PLEASE DO NOT ORDER THIS STICK ANYMORE. SEE HERE FOR MORE INFO: http://www.omg-it.works/ethstick-pro-update-to-the-ethereum-mining-stick/

Within my article “Building an ethereum mining rig” I have released detailed building plans on how to build your own ethereum mining rig. Now a couple of people started to reproduce my plans and one send me some photos. He did the paintings with his kids, pretty cool, eh? 😉


2016-02-27 (1)

By the way, I have switched over to all GigaByte Windforce Radeon HD 7950 cards, as they stay pretty cool, are relatively silent and have a decent hashrate. Also I noticed that the second and third card got a bit hotter than the other cards, so I installed a fan in between. I now have about 130 MH/s with all cards being around 70°C and 85% constant fan speed. Room temperature is about 30°C, when the window is closed, and falls to approximately 25°C when the window is open all the time. I used the heat to grow plants for the next garden season.



If you have any photos of your rig, feel free to send me photos 🙂


For the first time, I am building a ethereum mining rig myself and now I want to share my experience with you. For the case, I have used a very simple wood construction for less than 10€. Here is the sketch:


And this is how it looks like:


]2 Mining Rig, first draft

The following hardware has been used:

  • ASRock H61 BTC Pro
  • Intel Celeron Dualcore CPU
  • Cheapo 2x4GB RAM
  • 6x cheap powered rises for about 5€ from ebay (I later cut some loose cable endings just to make sure there are no short circuits)
  • 2x Corsair CX750M 750W PSUs

As for the graphics cards:

  • 3x Sapphire Radeon HD 7970 @ 1050/1375
  • 2x Club 3D Radeon HD 7950 @ 880/1250
  • 1x MSI Lightning Radeon HD 7970 @ 1200/1500

I have benchmarked the single cards as well as the temperature in a closed room after the rig has been running all night.

Adapter 0 – Sapphire 7970 @ 1050 / 1375: 24,0 MH/s Sensor 0: Temperature – 83.00 C

Adapter 1 – Club 3D 7950 @ 925 / 1250: 21,9 MH/s Sensor 0: Temperature – 88.00 C

Adapter 2 – Club 3D 7950 @ 925 / 1250: 22,2 MH/s Sensor 0: Temperature – 82.00 C

Adapter 3 – Sapphire 7970 @ 1050 / 1375: 25,4 MH/s Sensor 0: Temperature – 78.00 C

Adapter 4 – Sapphire 7970 @ 1050 / 1375: 24,4 MH/s Sensor 0: Temperature – 82.00 C

Adapter 5 – MSI Lightning 7970 @ 1200 / 1500: 28,9 MH/s Sensor 0: Temperature – 76.00 C

The system a total power consumption of about 1440 Watts at the wall (230VAC), delivering a stable hashrate of ~147MH/s. As I bought almost all parts used, I paid about 900€ for the complete rig.

What would I do different now? First off, I would make the feet of the rig stand out at the bottom, so it is stackable. Probably it is also a better idea to have the PSUs on the outside of the rig. For mounting the cards, I have better used M3 screws, and the cards should no hang as high as they do now, because I had trouble with the first PCI-e riser on the very left being to short. Also, the conventional HDD is producing a lot of heat, SSDs are so cheap that I would definately go with one of these.


With the next rig, I will peek into how the Radeon HD 7990 performs, as those are 2x7970s on a single cards, with promising 50MH/s for about 375 Watts. The 7950’s are better on the paper, but actually they run very hot a low clocks. Changing the thermal paste to a metal liquid paste and clocking the down prevents them to go up in fire, and that’s all I can say about those. As soon as I can get some 7970s to replace them, I will do so.

If you found any of this useful, you might send a tip: 0xa28f8098a723e4ca02e9f4512410c519a252c1a9


My PSUs don’t have six PCI-E connectors. I have used adapter to squeeze out 2 additional ones on each, but I made sure that every cards a least gets a main PCI-E power connector (ie. two cards 1x PCI-E from PSU and 1x through adaptor, one card 2x PCI-E from PSU. If you have different cards, try to make the stronger ones having the two original PCI-E lines). Do not mix PCI-E lines between adaptors, keep them separated, ie. PSU1 will power cards 1-3, PSU2 will power cards 4-6. I advise using those risers with USB cables, I have both the types of risers and bought twice.

If you do not follow this wiring scheme you risk shorts or unbalanced power distribution, leading to overload and/or bad power efficiency.

Wiring plan: wiring