Protobuf: consult the installation instructions here
Elixir plugin for protobufs protoc-gen-elixir
mix escript.install hex protobuf 0.11.0
Note here that the version is important.
After installing this plugin, ensure that it is available in your path.
If you are using asdf, call asdf reshim. If not, add export PATH=~/.mix/escripts:$PATH to your .bashrc or .zshrc.
Verify all is well.
$ protoc-gen-elixir --version
0.11.0
MacOS
Ensure Apple Command Line Developer Tools are installed.
could not compile dependency :cairo, “mix compile”
The rust compiler can be quite picky about our
cairo dependencies. This is
likely caused by an incompatible rust-toolchain.
To get around it you may have to run a command like:
rustup toolchain add 1.76.0
# for OSX you may try 1.76.0-aarch64-apple-darwin
Once this is had, the Cairo issues should go away.
Git
This codebase follows a git style similar to
git or
linux.
New code should be based on base, and no attempt to keep it up to
sync with main should be had. When one’s topic is ready, just submit
a PR on github and a maintainer will handle any merge conflicts.
There are bi-weekly releases, so do not be afraid if a maintainer says
the PR is merged but it’s still open, this just means that it’s merged
into next or main and will be included in the next scheduled
release.
Anoma
This is an implementation of the Anoma protocol, whose specs can be found here.
Docs
Following Development
Work is merged into
baseon a bi-weekly (once every two weeks) schedule.Development can be followed in multiple ways:
Running pre-built binaries
Release Dependencies
To run a working Anoma Node the following dependencies are required:
xcode-select --installRunning
Download the Anoma release for your platform, extract it, and runbin/anoma.Compilation from sources
Build Dependencies
Dependencies needed regardless of platform.
Elixir: consult the installation instructions here
Rust: consult the installation instructions here.
Protobuf: consult the installation instructions here
Elixir plugin for protobufs
protoc-gen-elixirNote here that the version is important. After installing this plugin, ensure that it is available in your path. If you are using
asdf, callasdf reshim. If not, addexport PATH=~/.mix/escripts:$PATHto your.bashrcor.zshrc.Verify all is well.
MacOS
Ensure Apple Command Line Developer Tools are installed.
Using
brew, install the following dependencies.Ubuntu/Debian
Dependencies that you might not have installed.
Windows
Compiling and Running
To install the dependencies as well as Anoma run:
To start an Anoma instance run one of these:
See the Contributing section for how to get the best use of the interactive shell.
Further see the Known issues section if you encounter an issue.
Docker images
To work with Docker images, do the following:
docker build -t <IMAGE> .<IMAGE>is your chosen image namedocker run -it --network host <IMAGE> <SUBCOMMAND><IMAGE>is the name of Anoma Docker image to be run<SUBCOMMAND>is interpreted by the Anoma binary--network hostwill enable connections from the hostContributing
Please read the contributor’s guide for in depth details about the codebase.
Known Issues
(Mix) Could not compile dependency :enacl
For some versions of OSX (and Linux), our enacl package may have compilation issues.
To get around it please run
could not compile dependency :cairo, “mix compile”
The rust compiler can be quite picky about our cairo dependencies. This is likely caused by an incompatible rust-toolchain.
To get around it you may have to run a command like:
Once this is had, the Cairo issues should go away.
Git
This codebase follows a git style similar to git or linux.
New code should be based on
base, and no attempt to keep it up to sync withmainshould be had. When one’s topic is ready, just submit a PR on github and a maintainer will handle any merge conflicts.There are bi-weekly releases, so do not be afraid if a maintainer says the PR is merged but it’s still open, this just means that it’s merged into
nextormainand will be included in the next scheduled release.For more information on a smooth git experience check out the git section in contributor’s guide
Happy hacking, and don’t be afraid to submit patches.