The Blockdaemon BPM - what is it?

Follow

What is Blockdaemon BPM?

The Blockdaemon BPM (Business package Manager) Is a basic bootstrap runner application that will install a blockchain application, all blockdaemon dependencies, and anything else required to run, manage and monitor a node on your own cloud network infrastructure. 

BPM provides tools and packages to run blockchain nodes on your own infrastructure using a unified simple command line interface.

Goals/Expectations

We're working to provide the ability to launch blockchain nodes on any supported cloud or BYOI infrastructure in a standardized way, with several different ways to init.  The underlying OS can be basic Linux, Docker, K8s or any number of other options. 

The runner is built with a plugin architecture so that it can be easily extended and upgraded. The main app for the runner will be very small and rarely upgraded, whereas the plugins can auto-update as often as necessary. 

Business Impact / Use Cases

  • Easy to add new cloud providers.
  • Easy to usw  BYOI servers assuming a standard base Linux install.
  • Standardized way to launch from many environments.
  • Easy local development that is the same as production.
  • Remove any secrets that are currently deployed on the individual nodes.
  • Business logic moved to servers.
  • Secrets moved to servers.

The technical Background

  • We will extend node state to include node data, errors, and logs to send down the data pipeline
  • The business logic is shifted to server-side.
  • Logging and alerting is centralized.
  • Launching additional blockchain nodes reuses much of the existing logic
  • Share the same starting base for BYOI and internal node launching.
  • Post runner Deployed Bundled is the same for all environments.

The runner provides a basic cli interface to the daemon:

For example:

bd-runner init API_KEY
bd-runner pull ethereum_parity
bd-runner start ethereum_parity
bd-runner upgrade ethereum_parity
  • Monitoring is changed to event driven and push only
  • No way to poll into the BYOI nodes,
  • Potentially no way to poll nodes hosted in other accounts.  
  • Want to be consistent with all nodes

Install Phases

Init

  • Validate API token
  • Get list of dependencies for Provisioner
  • Download base packages (nodestate, monitoring, encryption)
  • Report results to Data Ingress
  • Update state in UI

Install

  • Download blockchain
  • Download any other blockchain specific packages
  • Start everything up
  • Report results to Data Ingress
  • Update state in UI

Validate

  • Run automated tests
  • Report results to Data Ingress
  • Update state in UI

Ready

  • Report to cli/local user node is ready
  • Report results to Data Ingress
  • Update state in UI

Plugin Execution

  • All plugins will be executed/upgraded after runner is validated working
  • Plugins contain business logic for specific blockchains/snapshots/networking/etc

Updates

Node state will send a periodic check to the Provisioner to check for updates to any of the installed plugins or configuration
it will also propagate a list of installed plugins to make sure nothing extra has been installed.

Plugins are responsible for upgrading programs they manage and have installed.

Security Concerns

Sensitive information is not deployed per node
Log destination can be changed without redeploying all the nodesk 

 

Resources:

BPM Quickstart guide

 

 

0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.