Airbloc is user-oriented data exchange protocol which is designed to be scalable, transparent, and able to handle enterprise-grade massive data.
- User-Oriented: Every data on Airbloc is owned and controlled by user, and can be queried as a user profile.
- Privacy: Airbloc protects privacy through data encryption and privacy shield technology, with GDPR compliances.
- Decentralized: Airbloc does not require any central authorities. Instead, it uses Ethereum and its own cryptoeconomic protocol to handle data exchange in a decentralized manner.
For details, please check our technical whitepaper.
This repository contains an implementation of Airbloc client and node using Go.
Airbloc is under VERY ACTIVE DEVELOPMENT and should be treated as pre-alpha software. This means it is not meant to be run in production, its APIs are subject to change without warning.
Go and Node is required to compile clients and smart contracts.
$ make all
If you see some errors related to header files on macOS, please install XCode Command Line Tools.
xcode-select --install
$ airbloc
You may need to set up configurations before running Airbloc.
$ airbloc server
Before launching Airbloc network on local, Make sure that:
We recommend using Docker Compose to launch local environment. The setup can done in a command by:
$ docker-compose run start_dependencies
If you don't use Docker Compose and use your own Ethereum network, you may have to deploy Airbloc contracts manually. You can see guides on Contract Documentations.
After setting up environments, you can launch Airbloc server via:
$ airbloc server
You can customize ports and other parameters by passing parameters.
$ airbloc server --port 8080 --config /path/to/your/config.yml
Test files are located in test/
directory.
$ make test
$ docker-compose run start_dependencies; docker-compose run airbloc
$ make test-e2e
Regenerating Protobuf Binds
If you modify any Protobuf definitions in proto/
, you should regenerate the protobuf binds.
$ make generate-proto
Generating Python Protobuf Binds
$ make generate-python-pb
The generated code will be located in build/gen
.
The airbloc-go project is licensed under the Apache License v2.0,
also included in our repository in the LICENSE
file.