BlockForm - Ethereum Blockchain As A Service

BlockForm helps you deploy Ethereum nodes to the cloud and manage them. It takes care of creating a virtual machine in one of the supported cloud providers (currently Azure, AWS, GCP and DigitalOcean) and will install geth in the best possible way.

Blockform is a free software. It is tailored for teams or individuals whose work depends on a fleet of Ethereum nodes. You have to install your own instance. So the installation process has been made as simple as possible.

Features

Support public networks: Mainnet, Rinkeby, Ropsten

Allows you to create your own private ethereum network with Proof of Authority

Support multiple cloud providers: Azure, AWS, GCP and DigitalOcean

Support multiple synchronization modes: Full, Fast and Light

Setup a firewall for you

SSL certificates through certbot

HTTP and WebSocket RPC endpoints protected by an API key

Basic faucet web service for your private network

Node data is saved to an SSD for faster sync

Basic heathchecks and logs display

Basic authentication for the UI

Tiny chain explorer to browse your blocks, transactions and accounts

Compatible with MetaMask, geth attach, and web3.js

Easy deployments on Heroku

Optional Slack integration for alerts

Usage

For Azure, generate a service principal:

az login az ad sp create-for-rbac --sdk-auth

For AWS, go to IAM Management console, and generate an Access Key for your user in the Security Cretendials tab.

For DigitalOcean, go to API and generate a Personal access token.

For Google Cloud Platform:

Create a project, for example my-blockform . If the name is not long enough, google will append some random string that you will need to export in the next steps.

. If the name is not long enough, google will append some random string that you will need to export in the next steps. In API and Services, enable the Compute Engine API for this project.

In API and Services, go to the Credentials tab and generate an Account Service Key as a JSON file for the Compute Engine default service account.

Set environment variables:

export AZURE_TENANT_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" export AZURE_CLIENT_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" export AZURE_CLIENT_SECRET="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" export AZURE_SUBSCRIPTION_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" export AWS_ACCESS_KEY_ID="xxxxxxxxxx" export AWS_SECRET_ACCESS_KEY="xxxxxxxxxxxxxxxxxxxx" export DO_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" export GCP_JSON="{xxxx}" export GCP_PROJECT="my-blockform" export PORT=3000 export DATABASE_URL="postgres://user:pass@localhost:5432/blockform?sslmode=disable" export BASIC_AUTH_USER=xxxxx export BASIC_AUTH_PASS=xxxxx export SITE_URL="http://localhost:3000" export PUB_KEY="xxxxx" # an SSH public key to login the VMs export PRIV_KEY="xxxxx" # an SSH private key to let blockform login the VMs export PASSPHRASE="xxxxx" # the passphrase of the private key

Get, build and run: