Skip to content

Balzac is a domain-specific language to write Bitcoin transactions.

License

Notifications You must be signed in to change notification settings

blkb-tech/balzac

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Prebuilt 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

About

Balzac is a domain-specific language to write Bitcoin transactions.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 56.7%
  • Xtend 35.3%
  • HTML 6.2%
  • Other 1.8%