Announcing bPanel: A Blockchain Management System

Buck Perley
bcoin
10 min readMar 30, 2018

--

Cryptocurrencies and Blockchain systems are incredibly complex. One of the byproducts of this complexity has been a dearth of user friendly tools for accessing and interacting with blockchains. The fact that they are decentralized also introduces the problems of security (how can you trust the interface you’re using) and incentives (the interfaces that are widely available are typically built by companies/groups solving for a particular use case). This means that not only are we, as users, limited to whatever use cases the platforms we rely on prioritize, but also the niche, and often most interesting, applications that don’t appeal to the widest audience end up being neglected.

What’s missing are tools that, on the one hand, enable developers (of all skill levels) to easily create and experiment with new interfaces for different use cases, and, on the other hand, allow users, especially non-technical ones, to integrate these applications into their personal or business workflows. With bPanel, and the introduction of this new category of platform we are calling Blockchain Management Systems, we think we’ve taken a big step in the direction of solving this problem.

(if you’d like to skip ahead to the description of bPanel, click here)

Imagine what could be built with the right tools…

What is a Blockchain Management System (BMS)?

The development of blockchain technology is often compared to the growth and adoption of the Internet in the 1990s and early 2000s. This analogy remains helpful to understand both the problem stated above and what we think might be the solution. In those early days, the web tended to be centralized around larger companies with big engineering teams (and big IPOs). Towards the latter part of the decade, however, seemingly out of nowhere, came a proliferation of small, user-friendly, user-driven websites that turned industries and traditional business models upside down. To understand what helped precipitate this change, I think it’s useful to look at the impact that Content Management Systems (aka CMS’s), especially WordPress, had on the growth and development of the web at this time.

The introduction of WordPress helped encourage an explosion of new web-based business use-cases.

In the early days of the Internet, if you wanted to launch a website, whether it was a personal blog, a platform to start a singing career, or a website for your small business, you really only had two options. The first was to rely entirely on an existing platform. This meant complete dependence on their tools, their designs/themes, and their servers. The equivalent in crypto would be using either a hosted wallet on an exchange like Coinbase or Kraken or the more secure options like Ledger, Copay, or Metamask that still tie you to their UI (and their back-end infrastructure). For companies that rely on, or would like to rely on, cryptocurrencies, the options can be even more limited since business requirements tend to be much more particular and larger in scope. The second option was the DIY way where you had to have the ability to write your own HTML/CSS, setup your own server and database, and continuously maintain it all yourself when there were content updates or service outages (or have the resources to pay someone else to do it for you). Given the risks and depth of technical knowledge necessary to work with blockchains, this roll-your-own approach is even further out of reach for all but the most experienced engineers. For those that do have the knowledge, maintenance of these systems for even mundane tasks can still be a huge resource drain.

What WordPress and other CMS’s like it did was let people with only a basic knowledge of web development and networking architecture easily install, deploy, and customize their very own website with just a few easy steps and at almost no cost. If you could write text in a word processor, you could update the content of your website. Wanted to change how your website looked? Just install a new theme. Needed some extra functionality? There was probably a plugin for that. What started off as a platform for bloggers with WordPress (just take a look at the default themes that still come with a fresh install), as of 2017, runs more than 27% of all websites on the Internet and 14% of the top 100. Today, not only can someone with no prior coding experience publish a website to share their thoughts, but you can also launch an online photography portfolio, host your own business site, create online forums, or run a complete e-commerce website that even handles payments. Even The New York Times uses WordPress for parts of their digital infrastructure!

Some of the most popular WordPress plugins, all free to use and all backed by thriving businesses

Most importantly, CMS’s decentralized the development process of creating online platforms. There are developers today who make their living solely by creating and maintaining WordPress plugins, themes, and websites. Rather than having a massive organization developing a single monolithic platform, professional developers can sell products and services that focus on particular use cases. There are even companies whose only product is a single plugin that solves a specific problem, like providing forms for your website, managing database backups, or translating your website into multiple languages. What this means is that rather than needing to be able to afford the salaries of an entire engineering team to build out the feature set you need for your site or rely on the features supported by a centralized platform, an individual or small business can now simply pick out the feature set they need from existing free and cheap plugins, adding them a-la-carte to their own instance of a WordPress website.

What if we could do the same thing with blockchain interfaces?

Much like how CMS’s created a whole new way to interact with centralized databases, a Blockchain Management System, or BMS, will revolutionize how we interact with, and build on, decentralized databases.

Introducing bPanel: The World’s First BMS

What if you could prototype an idea for a novel wallet interface without having to worry about digging into the weeds of key management and UTXO tracking? What if there was a way to easily build the monitoring tools you needed for your business (e.g. a block explorer, transaction tracking, or wallet account management) without having to devote a huge amount of developer time to it or relying on your senior engineers who are familiar with the command line to look up this information for you?

Changing the look and functionality of your bPanel install is as easy as adding a couple plugins

We built bPanel as a way to solve the problem of talent and resource constraints that currently exists in the blockchain industry and in the process encourage what we hope is an explosion of new tools and applications. We believe that with the right tools, developers will be empowered to solve new and interesting problems on their own that would have otherwise required hundreds or thousands of developer hours to invent and maintain. All of this is backed by the enterprise level security and robustness of bcoin, the open source implementation of Bitcoin written entirely in NodeJs that is trusted to run the infrastructure of companies such as Purse.io, Bitpay, and Edge.

Build your own custom themes

bPanel is built in such a way that every user and maintainer of a bPanel instance can compose the interface that best suits their needs. Just like with WordPress today, we imagine a world where there is an easy-to-install plugin for every blockchain problem. Not only can you download and install existing, public plugins, you can also develop your own and publish them for free (or eventually even in marketplaces for a fee if you want) so that other people can use it too.

Also exciting is the ability to theme bPanel, which is as easy as installing plugins. Create your own themes or download someone else’s. With just a couple lines of JavaScript, you can change the entire look of your version of bPanel. You can even create white label installs to sell to business clients! The underlying plugin system, with the help of a utility library we’ve built called bpanel-ui, makes it so that when you install a new theme, even plugins developed by a 3rd party will update their appearance to match with that theme.

How Does It Work?

Almost everything in bPanel can be decorated by a plugin. A completely fresh install of bPanel with no plugins installed is a blank slate. The sidebar, header, footer, and views can all be decorated by plugins. Want a footer that displays the current status of your node? You can install a plugin for that. Want to show a QR code for receiving payments in the header? Why not! Frustrated that your favorite wallet isn’t upgrading to the latest features or managing network fees efficiently? Publish a plugin that solves the problem first. With bPanel you can even create plugins that can be decorated by other plugins (we call these “widgets”), allowing other developers to hook into your views and extend them even further.

A fresh install of bPanel

bPanel is built almost entirely in JavaScript and relies heavily on both React and Redux to allow plugin developers to hook into both the view layer as well as the underlying actions and app state (the shared store of Redux). The library of reusable React components we’ve started to develop, bpanel-ui, will also make it extremely easy to piece together interfaces even if you’re not very familiar with React itself.

Working With The Blockchain

bPanel also comes fully equipped to interact with the bcoin API. The entire REST API, including RPC interface, as well as bcoin’s WebSockets are available for your plugins to use. Virtually anything you could think of needing from a Bitcoin-like blockchain is available through the bcoin API. So even if you don’t have a deep technical knowledge of how blockchains and cryptocurrencies work, if you can find your way through API documentation, you can probably enable your plugin to interact with one.

There is even the ability to create and require utility plugins that can interact with bcoin and update the redux state for you. An example of this would be the official chain-sockets plugin that subscribes to updates in the chain state with bcoin’s native WebSocket implementation, bsock, and updates the redux store. This allows your plugin to only have to worry about reacting to changes in the local app state without ever having to interact with the API directly.

An example of a bPanel app with several plugins and widgets installed

We plan on publishing more posts that dig much deeper into the technical architecture of the plugin system of bPanel as well as the thought process behind architecting a plugin system based on React and Redux. In the meantime, the official bPanel documentation has much more information on how it’s built and, more importantly, how to build with it.

Build The Next Generation Of Blockchain Interfaces

The center of our mission at Purse is making cryptocurrency more useful, and we see bPanel as a natural extension of this. Like all worthwhile projects, including bcoin, bPanel grew out of a need that we had ourselves. It wasn’t much of a leap to assume we probably weren’t the only ones that needed new, useful interfaces for interacting with the blockchain. But, rather than just build for a subset of users that have the exact same problems as us, why not focus on creating a toolset where an infinite number of problems and combinations of problems could be solved?

https://c4yt.io

We are really looking forward to seeing what will be built on top of this platform and as part of our efforts to help foster this ecosystem we’re excited to be hosting another hackathon, this time with our friends over at Cosmos, from April 6th-8th, 2018. What better opportunity to encourage people to build new and innovative blockchain applications than by throwing 300 engineers and blockchain enthusiasts together in a building for 48 hours of hacking! The $30k worth of prizes up for grabs doesn’t hurt either ;).

If this sounds like something you might be interested in and you want to join us in building the next generation of blockchain interfaces, head on over to https://c4yt.io to register for the event. To learn more about bPanel, check out the docs at https://bpanel.org or try it out for yourself by downloading a copy from our GitHub repository.

A note of special thanks to the team @zeit, Guillermo Rauch and CHaBou, for their incredible open source project hyper.is, a JavaScript terminal emulator. When I first started thinking about how to build a front-end plugin based system, React and Redux, with their composability, Higher Order Components (in the case of React), and system of actions and middleware (in the case of Redux), seemed like natural fits. Unfortunately, I couldn’t find any examples out there of people that had done this before. After much googling, I finally came across some posts mentioning that this was exactly what zeit had done with hyper. There wasn’t much in terms of documenting how they built it, but the code is beautifully written and I had a lot of fun in the weeks spent digging into it. I learned a ton, and could not have built bPanel without the influence of hyper. I plan on writing more about how their system and that of bPanel works in the future, so subscribe and stay tuned if you want learn more!

--

--

Buck Perley
bcoin
Editor for

Software engineer working in #Bitcoin since 2016, 6yr former China expat, author of “The Great Ride of China”, Conservatarian, Guinness Record holder.