{"id":17440925,"url":"https://github.com/anoma/anoma","last_synced_at":"2025-05-12T05:26:02.376Z","repository":{"id":37086594,"uuid":"335243209","full_name":"anoma/anoma","owner":"anoma","description":"Reference implementation of Anoma","archived":false,"fork":false,"pushed_at":"2025-05-09T16:39:14.000Z","size":77459,"stargazers_count":28956,"open_issues_count":184,"forks_count":3833,"subscribers_count":164,"default_branch":"base","last_synced_at":"2025-05-12T02:41:42.760Z","etag":null,"topics":["blockchain","consensus","cryptography","distributed-systems","elixir","erlang","operating-system","p2p","protocol"],"latest_commit_sha":null,"homepage":"https://anoma.net","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anoma.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-02-02T10:00:16.000Z","updated_at":"2025-05-11T23:24:58.000Z","dependencies_parsed_at":"2024-10-25T16:39:11.782Z","dependency_job_id":"6f5c8230-8e6c-405d-9784-850204663210","html_url":"https://github.com/anoma/anoma","commit_stats":{"total_commits":1307,"total_committers":14,"mean_commits":93.35714285714286,"dds":0.5830145371078806,"last_synced_commit":"61413dfc6460b7bf96e9207ce3b9d22b9c678f09"},"previous_names":["anoma/anoma-archive","anoma/anoma"],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anoma%2Fanoma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anoma%2Fanoma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anoma%2Fanoma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anoma%2Fanoma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anoma","download_url":"https://codeload.github.com/anoma/anoma/tar.gz/refs/heads/base","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253672700,"owners_count":21945480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","consensus","cryptography","distributed-systems","elixir","erlang","operating-system","p2p","protocol"],"created_at":"2024-10-17T15:05:15.291Z","updated_at":"2025-05-12T05:26:02.351Z","avatar_url":"https://github.com/anoma.png","language":"Elixir","readme":"# Anoma\n\nThis is an implementation of the Anoma protocol, whose specs can be\nfound [here](https://specs.anoma.net/latest).\n\n## Docs\n\n- [Contributors documentation](https://anoma.github.io/anoma/readme.html)\n- [Specification](https://specs.anoma.net/latest/)\n- Developer Docs (Coming Soon™)\n- User Docs (Coming Soon™)\n\n## Following Development\n\nWork is merged into `base` on a bi-weekly (once every two weeks)\nschedule.\n\nDevelopment can be followed in multiple ways:\n\n1. [Issues are put into the project overview](https://github.com/orgs/anoma/projects/19)\n   - This is a good way to see what work is assigned and the various\n     views into how goals are being met\n2. [What's Cooking on Anoma](https://github.com/orgs/anoma/projects/20 \"A good view on how topics are progressing throughout a cycle\")\n3. [Research Forums](https://research.anoma.net/)\n   - This is good for seeing discussions on the direction of Anoma\n   - [The architecture posts](https://research.anoma.net/tags/c/protocol-design/25/architecture)\n     in particular are a practical vision for how the codebase's\n     architecture will evolve. Around two of these get posted per week\n4. [Issues](https://github.com/anoma/anoma/issues) and [pull requests](https://github.com/anoma/anoma/pulls)\n   - This is good for viewing new issues and work coming in, but the\n     other views are typically a better way to view this\n\n## Running pre-built binaries\n### Release Dependencies\nTo run a working Anoma Node the following dependencies are required:\n\n1. Mac OS X Development Environment:\n    * Install Apple Command Line Developer Tools: `xcode-select --install`\n    * Install [MacPorts](https://www.macports.org/install.php) (or equivalent package manager)\n2. Install [ncurses](https://ports.macports.org/port/ncurses/) (Mac OS X only)\n3. Install OpenSSL:\n    * Mac OS X and Linux: use package manager\n    * Windows: not required\n### Running\nDownload the [Anoma release](https://github.com/anoma/anoma/releases) for your platform, extract it, and run `bin/anoma`.\n## Compilation from sources\n### Build Dependencies\n\nDependencies needed regardless of platform.\n - Elixir: consult the installation instructions [here](https://elixir-lang.org/install.html)\n - Rust: consult the installation instructions [here](https://www.rust-lang.org/tools/install).\n - Protobuf: consult the installation instructions [here](https://grpc.io/docs/protoc-installation/)\n - Elixir plugin for protobufs `protoc-gen-elixir`\n   ```shell\n   mix escript.install hex protobuf 0.11.0\n   ```\n   Note here that the version is important.\n   After installing this plugin, ensure that it is available in your path.\n   If you are using `asdf`, call `asdf reshim`. If not, add `export PATH=~/.mix/escripts:$PATH` to your `.bashrc` or `.zshrc`.\n\n   Verify all is well.\n   ```shell\n   $ protoc-gen-elixir --version\n   0.11.0\n   ```\n\n----\n#### MacOS\nEnsure Apple Command Line Developer Tools are installed.\n\n```shell\nxcode-select --install\n```\n\nUsing `brew`, install the following dependencies.\n\n```shell\nbrew install elixir cmake protobuf git\n```\n\n---\n#### Ubuntu/Debian\n\nDependencies that you might not have installed.\n\n```shell\napt install cmake\n```\n\n---\n#### Windows\n\n - Install [Build Tools for Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) (Workload: Visual C++ build tools)\n - Install [PowerShell](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows?view=powershell-7.4)\n\n\n---\n### Compiling and Running\n\nTo install the dependencies as well as Anoma run:\n\n```bash\nmix deps.get\nmix compile\n```\n\nTo start an Anoma instance run one of these:\n\n```bash\niex -S mix # starts an interactive shell\nmix run --no-halt # starts a non-interactive shell\n```\n\nSee the Contributing section for how to get the best use of the\ninteractive shell.\n\nFurther see the Known issues section if you encounter an issue.\n\n\n## Docker images\nTo work with Docker images, do the following:\n1. Install [Docker](https://docs.docker.com/engine/install/), this is necessary for both building and running Docker images\n2. Build the Anoma image from the repository root: `docker build -t \u003cIMAGE\u003e .`\n    * `\u003cIMAGE\u003e` is your chosen image name\n4. Run the Anoma image: `docker run -it --network host \u003cIMAGE\u003e \u003cSUBCOMMAND\u003e`\n    * `\u003cIMAGE\u003e` is the name of Anoma Docker image to be run\n    * `\u003cSUBCOMMAND\u003e`is interpreted by the Anoma binary\n    * `--network host` will enable connections from the host\n\n## Contributing\n\nPlease read the [contributor's guide](./documentation/contributing.livemd) for in\ndepth details about the codebase.\n\n## Known Issues\n\n### (Mix) Could not compile dependency :enacl\n\nFor some versions of OSX (and Linux), our\n[enacl](https://github.com/jlouis/enacl) package may have compilation issues.\n\nTo get around it please run\n\n```sh\ngit checkout mariari/no-libsodium\nmix clean\nmix deps.get\nmix compile\n```\n\n### could not compile dependency :cairo, \"mix compile\"\n\nThe rust compiler can be quite picky about our\n[cairo](https://github.com/anoma/aarm-cairo) dependencies. This is\nlikely caused by an incompatible rust-toolchain.\n\nTo get around it you may have to run a command like:\n\n```sh\nrustup toolchain add 1.76.0\n# for OSX you may try 1.76.0-aarch64-apple-darwin\n```\n\nOnce this is had, the Cairo issues should go away.\n\n### Git\n\nThis codebase follows a git style similar to\n[git](https://git-scm.com/) or\n[linux](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git).\n\nNew code should be based on `base`, and no attempt to keep it up to\nsync with `main` should be had. When one's topic is ready, just submit\na PR on github and a maintainer will handle any merge conflicts.\n\nThere are bi-weekly releases, so do not be afraid if a maintainer says\nthe PR is merged but it's still open, this just means that it's merged\ninto `next` or `main` and will be included in the next scheduled\nrelease.\n\nFor more information on a smooth git experience check out the [git\nsection in contributor's guide](./documentation/contributing/git.livemd)\n\nHappy hacking, and don't be afraid to submit patches.","funding_links":[],"categories":["By Industry","Elixir","By Language","区块链_智能合约"],"sub_categories":["Blockchain","Other","管理面板"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanoma%2Fanoma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanoma%2Fanoma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanoma%2Fanoma/lists"}