In the last post in this series, we have created a more or less functional bitcoin controller. However, to be reasonably easy to operate, there are still a few things that are missing. We have hardcoded secrets in our images as well as our code, and we log data, but do not publish events. These … Continue reading Building a bitcoin controller for Kubernetes part IX – managing secrets and creating events
Tag: Bitcoin
Building a bitcoin controller for Kubernetes part VIII – creating a helm chart
Our bitcoin controller is more or less complete, and can be deployed into a Kubernetes cluster. However, the deployment process itself is still a bit touchy - we need to deploy secrets, RBAC profiles and the CRD, bring up a pod running the controller and make sure that we grab the right version of the … Continue reading Building a bitcoin controller for Kubernetes part VIII – creating a helm chart
Building a bitcoin controller for Kubernetes part VII – testing
Kubernetes controllers are tightly integrated with the Kubernetes API - they are invoked if the state of the cluster changes, and they act by invoking the API in turn. This tight dependency turns testing into a challenge, and we need a smart testing strategy to be able to run unit and integration tests efficiently. The … Continue reading Building a bitcoin controller for Kubernetes part VII – testing
Building a bitcoin controller for Kubernetes part V – establishing connectivity
Our bitcoin controller now has the basic functionality that we expect - it can synchronize the to-be state and the as-is state and update status information. However, to be really useful, a few things are still missing. Most importantly, we want our nodes to form a real network and need to establish a mechanism to … Continue reading Building a bitcoin controller for Kubernetes part V – establishing connectivity
Building a bitcoin controller for Kubernetes part IV – garbage collection and status updates
In our short series on implementing a bitcoin controller for Kubernetes, we have reached the point where the controller is actually bringing up bitcoin nodes in our network. Today, we will extend its logic to also cover deletions and we will start to add additional logic to monitor the state of our network. Step 9: … Continue reading Building a bitcoin controller for Kubernetes part IV – garbage collection and status updates
Building a bitcoin controller for Kubernetes part III – service accounts and the reconciliation function
In the previous post, we have reached the point where our controller is up and running and is starting to handle events. However, we hit upon a problem at the end of the last post - when running in-cluster, our controller uses a service account which is not authorized to access our bitcoin network resources. … Continue reading Building a bitcoin controller for Kubernetes part III – service accounts and the reconciliation function
Building a bitcoin controller for Kubernetes part II – code generation and event handling
In this post, we will use the Kubernetes code generator to create client code and informers which will allow us to set up the basic event handlers for our customer controller. Before we start to dig into this, note that compared to my previous post, I had to make a few changes to the CRD … Continue reading Building a bitcoin controller for Kubernetes part II – code generation and event handling
Building a bitcoin controller for Kubernetes part I – the basics
As announced in a previous post, we will, in this and the following posts, implement a bitcoin controller for Kubernetes. This controller will be aimed at starting and operating a bitcoin test network and is not designed for production use. Here are some key points of the design: A bitcoin network will be specified by … Continue reading Building a bitcoin controller for Kubernetes part I – the basics
Mining bitcoins with Python
In this post, we will learn to build a very simple miner in Python. Of course this miner will be comparatively slow and limited and only be useful in our test network, but it will hopefully help to explain the principles behind mining. When we want to mine a block, we first need some information … Continue reading Mining bitcoins with Python
The difficulty in the bitcoin protocol
Mining is a challenge - a miner has to solve a mathematical puzzle to create a valid block and is rewarded with a certain bitcoin amount (12.5 at the time of writing) for investing electricity and computing power. But technology evolves, and the whole mining process would be pointless if the challenge could not be … Continue reading The difficulty in the bitcoin protocol