{"id":28173059,"url":"https://github.com/archethic-foundation/archethic-node","last_synced_at":"2025-05-15T20:12:39.661Z","repository":{"id":36958586,"uuid":"194237610","full_name":"archethic-foundation/archethic-node","owner":"archethic-foundation","description":"Official Archethic Blockchain node, written in Elixir","archived":false,"fork":false,"pushed_at":"2025-05-12T14:56:54.000Z","size":112838,"stargazers_count":79,"open_issues_count":154,"forks_count":24,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-05-12T15:33:48.576Z","etag":null,"topics":["arch-consensus","archethic","blockchain","elixir","p2p","smart-contracts","transaction-chain"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/archethic-foundation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2019-06-28T08:32:45.000Z","updated_at":"2025-05-02T15:16:06.000Z","dependencies_parsed_at":"2023-10-03T13:40:52.755Z","dependency_job_id":"c92740b4-9581-4b47-bab2-7d8f55d1ae87","html_url":"https://github.com/archethic-foundation/archethic-node","commit_stats":null,"previous_names":[],"tags_count":118,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archethic-foundation%2Farchethic-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archethic-foundation%2Farchethic-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archethic-foundation%2Farchethic-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archethic-foundation%2Farchethic-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/archethic-foundation","download_url":"https://codeload.github.com/archethic-foundation/archethic-node/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414411,"owners_count":22067272,"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":["arch-consensus","archethic","blockchain","elixir","p2p","smart-contracts","transaction-chain"],"created_at":"2025-05-15T20:11:43.366Z","updated_at":"2025-05-15T20:12:39.652Z","avatar_url":"https://github.com/archethic-foundation.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Archethic\n\nWelcome to the Archethic Node source repository ! This software enables you to build the first transaction chain and next generation of blockchain focused on scalability and human oriented.\n\nArchethic features:\n\n- Fast transaction processing (\u003e 1M tps)\n- Lower energy consumption than other blockchain\n- Designed with a high level of security (ARCH consensus supporting 90% of maliciousness)\n- Adaptive cryptographic algorithms (quantum resistant)\n- Decentralized Identity and Self Sovereign Identity\n- Smart contract platform powered by a built-in interpreter\n- Strong scalability with geo secured sharding\n- Soft-Real-Time P2P view with supervised networking\n\n## Development\n\nOur codebase aims to reach the guidelines of Elixir projects.\nWe are focusing on the best quality.\n\nThe source code can change to respect the best quality of reading and regarding best practices.\n\nCurrent implemented features:\n\n- Adaptive cryptography: different elliptic curves and software implementation\n- Hybrid root of trust: mix of hardware and software cryptographic key to maintain trust and security\n- TransactionChain: Transaction structure and transaction generation\n- Smart Contract: interpreter coded with Elixir DSL through Meta-programming and AST\n- Node election: heuristic validation and storage node selection\n- P2P: Inter-node communication, supervised connection to detect the P2P view of nodes in almost real-time\n- Transaction mining: ARCH consensus\n- Beacon chain: Maintains a global view of the network (transactions, P2P view)\n- Self-Repair: Self-healing mechanism allowing to resynchronize missing transactions\n- Embedded explorer leveraging sharding to retrieve information\n- Custom Binary protocol for data transmission\n- Token minting\n- Internal oracles (UCO Price Feed)\n- Tailored embedded database\n\n## Running a node for development purpose\n\n### Using Elixir - MacOS specific setups\n\nOn Apple Silicon architecture, you might encounter issues running nodes.\n\nHere is how to make it work.\n\n#### Install openssl using brew\n\n```sh\nbrew install openssl@3\n```\n\n#### Install erlang using `asdf`\n\n```sh\ncd \u003cproject_directory\u003e\nKERL_CONFIGURE_OPTIONS=\"--disable-jit --without-javac --without-wx --with-ssl=$(brew --prefix openssl@3)\" asdf install\n```\n\n#### Locally update `exla` dependency\n\nEdit `mix.exs` and replace the following `deps` item :\n\n```elixir\n      {:exla, \"~\u003e 0.5\"},\n```\n\nby\n\n```elixir\n      {:exla, \"~\u003e 0.5.3\"},\n```\n\nThen, install dependencies as usual :\n\n```sh\nmix deps.get\n```\n\n#### 🎉 You can run the node as usual\n\n```sh\niex -S mix\n```\n\n### Using Elixir\n\nRequirements:\n\n- Libsodium: for the ed25519 to Curve25519 conversion\n- OpenSSL 1.11\n- Erlang OTP 25\n- Elixir 1.14\n- GMP (https://gmplib.org/)\n- MiniUPnP used for port forwarding \u0026 IP lookup (https://miniupnp.tuxfamily.org/)\n- Npm for static assets (https://nodejs.org/en/download)\n\nPlatforms supported:\n\n- Linux (Ubuntu 18.04)\n- Mac OS X ([See specific setups](#using-elixir---macos-specific-setups))\n\nAt first, clone the repository:\n\n```bash\ngit clone https://github.com/archethic-foundation/archethic-node.git\ncd archethic-node\n```\n\nGet dependencies:\n\n```bash\nmix deps.get\n```\n\nInstall the static assets\n\n```\ncd assets ; npm install; cd -\n```\n\nTo start a single node:\n\n```bash\niex -S mix\n```\n\nTo clean the data\n\n```bash\nmake clean\n```\n\nTo start mutiple node, you need to update some environment variables:\n\n```bash\n# Start the first node\niex -S mix\n\n# Start second node\nARCHETHIC_CRYPTO_SEED=node2 ARCHETHIC_P2P_PORT=3003 ARCHETHIC_HTTP_PORT=4001 ARCHETHIC_HTTPS_PORT=5001 iex -S mix\n\n# To start other node, increment the environment variables\n```\n\n### Using docker\n\nRequires docker compose plugin\n\nAt first, clone the repository:\n\n```bash\ngit clone https://github.com/archethic-foundation/archethic-node.git\ncd archethic-node\n```\n\nBuild the image:\n\n```bash\ndocker build -t archethic-node .\n```\n\nTo start a single node:\n\n```bash\n# You can run node up to node3\ndocker compose up node1\ndocker compose up node2\ndocker compose up node3\n```\n\nTo start all nodes at the same time:\n\n```bash\ndocker compose up\n```\n\nTo run benchmarks:\n\n```bash\ndocker compose up bench\n```\n\nTo run the playbooks to validate non regression:\n\n```bash\ndocker compose up validate\n```\n\n### Using snap\n\nWork in progress ..\n\n## Running a node for testnet / mainnet\n\nWill be opened regarding roadmap advancement\n\n## Contribution\n\nThank you for considering to help out with the source code.\nWe welcome contributions from anyone and are grateful for even the smallest of improvement.\n\nPlease to follow this workflow:\n\n1. Fork it!\n2. Create your feature branch (git checkout -b my-new-feature)\n3. Commit your changes (git commit -am 'Add some feature')\n4. Push to the branch (git push origin my-new-feature)\n5. Create new Pull Request\n\n## Licence\n\nAGPL\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchethic-foundation%2Farchethic-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farchethic-foundation%2Farchethic-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchethic-foundation%2Farchethic-node/lists"}