/bacalhau

Compute over Data framework for IPFS & Filecoin

Primary LanguageGoApache License 2.0Apache-2.0

The Filecoin Distributed Computation Framework

Bacalhau Logo

Compute Over Data == CoD
Bacalhau == "Salted CoD Fish" (Portuguese)


The purpose of Bacalhau is to provide a platform for public, transparent, and optionally verifiable computation. Bacalhau enables users to run arbitrary docker containers and wasm images as tasks against data stored in IPFS. This architecture is also referred to as Compute Over Data (or CoD). The Portuguese word for salted Cod fish is "Bacalhau" which is the origin of the project's name.

Initially, the Bacalhau project will focus on serving data processing and analytics use cases. Over time Bacalhau will expand to other compute workloads, learn more about it future plans in the roadmap document.

Watch a 90 seconds demo of Bacalhau in action:

Watch the video

Learn more about the project from our Website, Twitter & YouTube Channel.

Latest Updates

Getting Started

Please see the instructions here to get started running a hello example: Getting Started with Bacalhau. For a more data intensive demo, check out the Image Processing tutorial.

Getting Help

For usage questions or issues reach out the Bacalhau team either in the Slack channel or open a new issue here on github.

Developer Guide

Running Bacalhau locally

Developers can spin up bacalhau and run a local demo using the devstack command. Please see docs/running_locally.md for instructions.

Notes for Contributors

Bacalhau's CI pipeline performs a variety of linting and formatting checks on new pull requests. To have these checks run locally when you make a new commit, you can use the precommit hook in ./githooks:

git config core.hooksPath ./githooks

If you want to run the linter manually:

curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sudo sh -s -- -b /usr/local/go/bin
golangci-lint --version
make lint

The config lives in .golangci.yml

Licence

Apache-2.0