Skip to content
Balzac is a domain-specific language to write Bitcoin transactions.
Java Xtend HTML Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docker Add Docker build for ARM architectures Oct 19, 2019
scripts
xyz.balzaclang.balzac.examples Improve Validator and remove isMined annotations Nov 3, 2019
xyz.balzaclang.balzac.feature Package rename Apr 22, 2019
xyz.balzaclang.balzac.ide Fix copyright header for xtend files Oct 27, 2019
xyz.balzaclang.balzac.lib Minors and reformatting Nov 7, 2019
xyz.balzaclang.balzac.logging Improve Validator and remove isMined annotations Nov 3, 2019
xyz.balzaclang.balzac.parent
xyz.balzaclang.balzac.repository Convert all tabs in spaces Oct 5, 2019
xyz.balzaclang.balzac.target Package rename Apr 22, 2019
xyz.balzaclang.balzac.tests Fix copyright header for xtend files Oct 27, 2019
xyz.balzaclang.balzac.ui.tests Package rename Apr 22, 2019
xyz.balzaclang.balzac.ui Fix copyright header for xtend files Oct 27, 2019
xyz.balzaclang.balzac.web Minors and reformatting Nov 7, 2019
xyz.balzaclang.balzac
.gitignore Package rename Apr 22, 2019
.travis.yml Update Travis lib Nov 7, 2019
LICENSE Create LICENSE and update Copyright header Oct 26, 2019
README.md Fix README.md Oct 5, 2019

README.md

Build Status Coverage Status

Balzac

A domain-specific language to write Bitcoin transactions, based on the paper A formal model of Bitcoin transactions presented at Financial Cryptography and Data Security 2018.

Online editor:

Documentation

Setup

Execute the script install-deps.sh or alternatively follow these steps:

Install a customized version of BitcoindConnector4J

echo "Cloning https://github.com/natzei/BitcoindConnector4J.git"
git -C $HOME clone https://github.com/natzei/BitcoindConnector4J.git
git -C $HOME/BitcoindConnector4J checkout release-0.16
gradle -p $HOME/BitcoindConnector4J install

Compare versions

Install a customized version of BitcoinJ

echo "Cloning https://github.com/natzei/bitcoinj.git"
git -C $HOME clone https://github.com/natzei/bitcoinj.git
git -C $HOME/bitcoinj checkout lib
gradle -p $HOME/bitcoinj install -x test

Compare versions

Install

mvn -f xyz.balzaclang.balzac.parent/ -U clean install

Run Balzac

In order to run Balzac locally you can

  • build on your machine and run using Maven + Jetty
  • build on your machine and load the war (saved into xyz.balzaclang.balzac.web/target/) inside any web container (e.g. Tomcat)
  • build on your machine and run in Docker (see docker/Dockerfile-slim to create the image)
  • build and run in Docker (see docker/Dockerfile-build to create the image)
  • download from DockerHub and run in Docker

Maven + Jetty

mvn -f xyz.balzaclang.balzac.web/ jetty:run

Build with Maven, run with Docker

docker build -f docker/Dockerfile-slim -t balzac:latest .
docker run -p 8080:8080 balzac:latest

Build and run with Docker

docker build -f docker/Dockerfile-build -t balzac:latest .
docker run -p 8080:8080 balzac:latest

Prebuild image

DockerHub: balzaclang/balzac

docker pull balzaclang/balzac:latest
docker run -p 8080:8080 balzaclang/balzac:latest

Development

The project is currently developed using Eclipse IDE for Java and DSL Developers (generally the latest version). Install it using the Eclipse installer.

Dependencies

You can’t perform that action at this time.