This project aims to implement a minimalist blockchain running an alternative puzzle algorithm to Bitcoin Proof of Work (PoW) called Proof of Interaction (PoI).
This new puzzle does not consume nearly as much energy as PoW as it is based on network communication delay instead of raw compute. This is the first implementation of the method.
We use Task as a task runner. You can install it from here.
You can run the following tasks with task <task_name>
:
task -l
task: Available tasks for this project:
* build: Build the go binary.
* check: Run fmt+lint+test tasks in parallel.
* docker: Build and run the docker image.
* fmt: Format the go source files.
* lint: Run .golangci.yaml linting rules.
* run: Run the go program.
* test: Run all the go tests.
The ambula node is written in Go. You will need to install golangci-lint cli for the lint task.
You can look at the Taskfile.yaml
file and the Task documentation for more infos about tasks.
Look at our coding conventions and how to install our git pre-hooks to ensure you conform to it.
Jean-Philippe Abegg, Quentin Bramas, Thomas Noel. Blockchain using Proof-of-Interaction. 2021. ⟨hal-02479891v2⟩