I love Go and have been writing code with it for nearly a decade, but dealing with errors has always been a struggle. My previous company was one of the first companies in the world to use Golang in production and I’ve battled with how best to handle errors since day one. Somehow things just never felt right, so lately I started really experimenting with them to make using them feel OK.
These are the problems I wanted to solve:
This is a repost of the original from Feb. 22, 2018. The original was changed along with moving the GoChain blog to the GoChain website. I’m putting this here to have the original up for public reference.
GoChain uses a Proof of Reputation (PoR) consensus model that depends on the reputation of the participants to keep the network secure. A participant (a block signer) must have a reputation important enough that they would face significant financial and brand consequences if they were to attempt to cheat the system. …
I’ve written articles in the past about how to version things, but things change. This is the latest and greatest on versioning your code in 2020.
I’m going to assume you’re using a CI tool for this article, and the examples will be based on GitHub Actions. However, you should be able to easily apply them to any CI tool. I’ll also assume you’re using a git-like service like GitHub for pull requests or some kind of code review.
Central bank digital currencies (CBDC) are coming whether you like it or not. The efficiencies that will be gained from issuing digital currency can’t be ignored and I do believe that it’s just a matter of when, not if, at this point. You can read my previous post about why we need them, this post is focused on how to get them right.
I’ve read dozens of reports and articles from central banks, the international monetary fund, the world economic forum and other major players in the world economy about CBDCs. I’ve met with government officials that are researching and/or experimenting in this area. I’ve met with a central bank. I’m working with a company that is building CBDC technology for central banks. I founded a blockchain company that builds and operates a high performance public blockchain network with Fortune 250 companies like Lenovo and Dish Network running nodes on it. …
Over 22% of adults in the world have no bank account or payment service account. The few that do are faced with astronomically high fees just to use their own money. The average cost to use an ATM in the United States is $4.92. To put this rate in practice, if you need to spend $100 using an ATM, you will immediately lose 5%. Just to access your own money. …
There are pros and cons to everything and while there are a lot of advantages to decentralization, one major disadvantage is performance.
Much faster, but still not fast enough for day to day use.
The OG blockchains were all very decentralized, meaning anyone could operate a node and contribute to the network (mining). The whole concept was new and blockchain enabled things that weren’t possible before, which is an amazing feat. …
Currently most apps/services use messaging systems behind the scenes while exposing functionality to the world via a REST API. Some of those REST endpoints may just pass along the request directly to the messaging system if it’s something that’s going to take a bit of time, then either notify something when it’s done or let the client check the status of it via another REST endpoint.
While working with Mulesoft on the concept of Evented API’s and working with the AsyncAPI project, I’ve been thinking about what it would take to expose messaging directly to third parties like we do synchronous APIs with REST. …
It’s easy to have your Dockerized apps automatically build and deploy to Google Cloud Run, an awesome service for deploying apps when you don’t want to think about infrastructure.
First, create a new project on the Google Cloud Console and copy your project ID to use throughout this post. Let’s get started!
Set your project ID on the command line:
gcloud config set project $PROJECT_ID
Now, let’s push our app’s Docker image to the Google Container Registry for our project. Go to
Container Registry in the console and enable the API, then:
docker build -t gcr.io/$PROJECT_ID/hello .
docker push gcr.io/$PROJECT_ID/hello
Next, we need to get it running with Cloud Run. …
You can think of a cryptocurrency transaction much like a paper check. Using a paper check, you fill in the details, sign it, then you give it to someone. So far no actual money has changed hands, you’ve just given the recipient a promise for that amount of money… assuming you have enough in your account to cover it.
A cryptocurrency transaction is very similar. You fill in almost the same details, you sign it, then you submit it to a blockchain. …