Home

Awesome

DEPRECATED

This repository is no longer maintained. Please use CDT instead.

Blanc

BLockchAiN Contract toolchain

Welcome to Blanc! Blanc is a toolchain for WebAssembly-based blockchain contracts. Currently, Blanc supports EOSIO and CosmWasm (experimental), but we have a plan to support other WebAssembly-based contracts like Substrate. In EOSIO ecosystem, block.one already provides the official version of contract toolchain eosio.cdt, but Blanc takes a different approach from it. eosio.cdt uses the modified version of Clang/LLVM, so you have to wait for block.one's updates to utilize the latest version of Clang/LLVM. Blanc was adapted from eosio.cdt, but uses the vanilla Clang/LLVM for easier maintenance and faster adoption of state-of-the-art technologies. At this point in time (Oct, 2021), eosio.cdt uses Clang-9, but Blanc uses Clang-13. The only thing you need to care about is that your Clang/LLVM installed in your system supports Clang plugins and WASM binary generation. You should have Clang-12 or higher, and in MacOS, you need to install llvm by brew. Clang/LLVM installed by Xcode were not built for supporting plugins.

By using the latest Clang/LLVM, generated WASM binaries will have smaller size by about 20%. (eg. eosio.token 17KB → 13.5KB, eosio.system 305KB → 241KB) All unit tests provided by eosio.cdt and eosio.contracts are passed and all generated ABIs are identical.

Nota Bene

We changed branch strategy. The branch for daily development is master now, so if you want to build from the source, please use release branch for stable version.

Binary Releases

The prebuilt binares are provided for Ubuntu 20.04 and MacOS Big Sur.

Ubuntu 22.04

sudo add-apt-repository ppa:conr2d/blanc
sudo apt install blanc

MacOS Ventura

brew tap haderech/blanc
brew install blanc

Installed Tools

Contributing

Contributing Guide

Code of Conduct

License

MIT

Important

See LICENSE for copyright and license terms.

All repositories and other materials are provided subject to the terms of this IMPORTANT notice and you must familiarize yourself with its terms. The notice contains important information, limitations and restrictions relating to our software, publications, trademarks, third-party resources, and forward-looking statements. By accessing any of our repositories and other materials, you accept and agree to the terms of the notice.