Why Fabric?

TL;DR: So I can spend my time making things instead of defending myself from all the evil the internet has to offer.

I have been asked this question many times, especially by the Gala Games Community. What people often mean is "Why not Ethereum?"

Why not Ethereum?

First, blockchain is not Bitcoin, and blockchain is also not Ethereum. Blockchain is a technology that solves a certain type of problem; Bitcoin and Ethereum are implementations that solve that type of problem with varying degrees of success.

To keep this short, I'll just say that Ethereum does not solve the problems I need to solve, and it brings problems of its own. In fact, I think Ethereum doesn't even solve the problems it set out to solve, and that much of its ecosystem can be summed up as:

  • created by idealists
  • used mostly by opportunists (Bored Apes, etc.)
  • funded by speculative investors and true believers
  • attacked by unethical hackers

To be more specific, the problems that Ethereum brings with it are:

  • Need to develop in a painful language (Solidity)
  • Architecture is not fail-safe, but fail-DANGEROUS
    • This means spending more time preventing bad actors than actually implementing the thing we want to build
  • The availability (and usability) of the network is out of my control (gas prices)
  • The network is very slow, unless I go to a layer 2, which adds more complexity
  • "Trustless" is often a lie in Ethereum (and blockchain)
    • I don't want to waste time pretending there isn't a trust relationship between the game developer and the players. There usually is.

Why Fabric?

This question is answered by another question: What do I want from blockchain? 

Blockchain is just a distributed ledger technology that allows us to decentralize data and logic in a way that can be trusted, and ideally with full transparency.

To me, it's not much more than a distributed database with program logic built in.

So what do I want to do with it?

  • I want to store data
  • I want to retrieve data
  • I want to run business logic transparently

That's all. Every moment of time I spend NOT doing those things is wasted time.

With Fabric:

  • I can write in developer-friendly languages like Go, TypeScript, and Java.
  • There are no inherent network fees; I can exclude them or set them how I want
  • I can decentralize-as-I-go
  • I can easily upgrade contracts in a way that is safe for developers and users
    • By using the decentralization mentioned above, contract updates must be approved before they can go live. 

Why not...

There are a lot of other blockchain technologies out there. Many of them are just re-branded Ethereum clones. These clones often take away some of the painful parts (like gas), but they still have some of the other problems.

Ethereum clones aside, there are new tech stacks being made every day. This presents two problems. First, they are not as proven. Second, if you always chase the newest technology then you will never finish building.

The main blockchain I've seen that seems like a decent option is EOS, but even that one would probably need to be ran in a private network to really use its power.

There's a lot more that can be written here, but it's not core to the series I'm working on right now. So, if it seems like I haven't given enough justification, or am just an opinionated ass, please give me the benefit of the doubt! Or let's meet up and discuss over a drink!