PandaCash — one-click BCH blockchain for (lazy) developers

What’s PandaSuite Cash?

The vision of Panda Cash is to make Bitcoin Cash easily accessible to every developer.

PandaCash gives developers better tooling which in consequence will attract more application developers to the ecosystem.

PandaCash empowers developers to spend more time building user applications than doing dev-ops.

PandaCash makes your application testing more consistent and your application more secure and less buggy.

Hard life of Bitcoin developer

Current Bitcoin tooling — “it makes you wonder whether to laugh or to cry”.

There is no standardized development environment.

You need to figure out what components you need, download them and get them to work together. Each of these is a work in its own. You need a:

  1. bitcoin node
  2. Restful-API server talking to the bitcoin client
  3. Block explorer to see data in the blocks
  4. Bitcoin addresses and private keys with spendable coins

Needless to say, it can take a few hours. If you are a novice you’ll need much longer than that as you’ll face challenges with configuration, and you might need to synchronize gigabytes of blockchain data which takes more than a day.

Not easy dev ops

You have managed to download all the components and integrate them together. Is it fast enough if you submit test transactions? Can you work while being offline? Can you get a clean state for testing for your application?

Not very likely.

I was told today:

So what…, you can just spin a node and wait only one day to have it synchronized.

We can do better

Other blockchain ecosystems offer much-advanced tooling for developers. Look at Ethereum. The Ethereum developer community is roughly 30x larger than the Bitcoin developer community (source: ConsenSys) and growing much faster.

Truffle Suite is the leading example for developer tooling for Ethereum blockchain

It is to be partly attributed to the tooling Ethereum ecosystem provides. Truffle Suite is a leading example for developer utility tooling for Ethereum blockchain. Why don’t we have it for Bitcoin development?

PandaCash: One-click Bitcoin Cash blockchain

PandaCash — Ganache-like tool for Bitcoin Cash

PandaCash is an utility tool that allows a quickly fire up of a personal Bitcoin Cash blockchain which you can use to run tests, execute commands and control how the chain operates.

You can make calls to the Bitcoin Cash blockchain without the overheads of running an actual Bitcoin Cash node. Addresses can be re-cycled, reset and instantiated with a fixed amount of Bitcoin Cash (no need for faucets or mining). Debug logs are displayed by default. Not all of these features are yet supported, but this is the vision for the future.

PandaCash — Ganache-like tool for Bitcoin Cash

But why is it important?

Better utility tooling will attract more application developers
Application Developers + Bitcoin Cash = Adoption + More use-cases + Faster community growth

Spend more time building user applications than dev-ops
It’s a simple equation: Less time needed for bitcoin cash application development = less costs.

Make your application testing more consistent and your application more secure and less buggy
You develop a new application and you want it tested. With PandaCash you have the opportunity to reset your blockchain and start from scratch with the same test data. The outcome is better security and less bugs.

Usability — instant personal blockchain

The only thing you need to start working on Bitcoin Cash applications with PandaCash is a Docker container and NodeJS installed. The personal blockchain can be started from a command line tool simply with:

# if npm or docker are not installed:
sudo apt-get install npm docker
# in most cases you'll need sudo for global installation
sudo npm install -g pandacash-cli
pandacash-cli

PandaCash is fully documented at https://panda-suite.github.io/.

Secret sauce under the hood

PandaCash consists of Docker container running bitcoin client (Bitcoin ABC). The node is executed in the regtest mode so it does not need to sync up the entire blockchain. It also integrates BitboxSDK which connects to the local client and exposes the access to the bitcoin client over a RESTful API. The package ships with block explorer so you can explore all blocks and transactions to gain insight about what’s happening under the hood.

Challenges and todo’s

  1. Bitcoin.com Cloud API currently does not work with a bitcoin clients running locally. It can only work with the the main- and test net. We forked the Bitcoin.com Official’s API implementation to our PandaSuite in order to make it work with local RPC calls.
  2. Bitbox JS SDK requires conversion to TypeScript so that the interfaces for Accounts, Transactions etc. can easily accessed and to facilitate more robust development.
  3. Separate Docker Image containing all pre-build dependencies for platform abstraction and quicker installation times.
  4. Support for many bitcoin clients. We support currently Bitcoin Unlimited and Bitcoin ABC. Wormhole protocol will be supported in the future.

Contribute

A Proof of Concept for PandaCash has been created during BCH Devcon in Amsterdam on 27–28.10.2018 by Adrian Barwicki, Rosco Kalis, Bryan Lee-A-Leong and Nikolay Manolov. Die Kosten

EDIT: PandaCash actually won the main prize of the BCH DEVCON Amsterdam!