Skip to content
Elements Block Signing Federation demo using python Kafka
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Federation Block Signing Demo

Simple demonstration of the Federation Block Signing protocol in Elements blockchain.

This demo uses Kafka as a communication protocol between 3 signing nodes running locally, implementing a 2-of-3 Federation.

This can be easily extended for nodes running in remote locations/containers by changing the configuration accordingly.


  • Build Elements Daemon from instructions
  • Install Zookeeper and Kafka and start both services
  • Install python3 and requirements pip3 install requirements.txt


The Federation will run with a 60 second block time amd consist of 3 signing nodes by default. Nodes will connect to the kafka server running on localhost:9092. To change any configuration options look at:,, nodeX/elements.conf.

Run the demo: python3

The Federation could be moved to remote locations by running each node on separate locations. Localhost addresses will have to be replaced with the new remote host addresses in elements.conf and the KAFKA_SERVER parameter would have to be set to the remote address of the Kafka server. The federation script will have to be run in each remote host.

You can’t perform that action at this time.