### Install Archethic Node Dependencies Source: https://github.com/archethic-foundation/archethic-node/blob/master/doc/node_setup.md Navigates into the cloned Archethic Node directory and executes the installation script to set up required dependencies. ```bash cd archethic-node && ./scripts/install.sh ``` -------------------------------- ### Clone Archethic Node Repository Source: https://github.com/archethic-foundation/archethic-node/blob/master/doc/node_setup.md Clones the Archethic Node repository from GitHub to fetch the latest codebase. ```bash git clone https://github.com/archethic-foundation/archethic-node.git ``` -------------------------------- ### Release Archethic Node (Mainnet/Testnet) Source: https://github.com/archethic-foundation/archethic-node/blob/master/doc/node_setup.md Installs the Archethic Node release for a specified network (mainnet or testnet) using the release script. ```bash ./scripts/release.sh -n [mainnet|testnet] ``` -------------------------------- ### Release Archethic Node with Systemd Service Source: https://github.com/archethic-foundation/archethic-node/blob/master/doc/node_setup.md Installs the Archethic Node release for a specified network (mainnet or testnet) and configures it to run as a systemd service. ```bash ./scripts/release.sh -s -n [mainnet|testnet] ``` -------------------------------- ### Getting Started with Code Contributions Source: https://github.com/archethic-foundation/archethic-node/blob/master/CONTRIBUTING.md Helps new contributors find suitable issues to start with. It points to 'beginner' and 'help-wanted' issues on GitHub, explaining that 'beginner' issues require minimal code changes, while 'help-wanted' issues are more involved. ```markdown ### Your First Code Contribution Unsure where to begin contributing to Atom? You can start by looking through these `beginner` and `help-wanted` issues: * [Beginner issues][beginner] - issues which should only require a few lines of code, and a test or two. * [Help wanted issues][help-wanted] - issues which should be a bit more involved than `beginner` issues. Both issue lists are sorted by total number of comments. While not perfect, number of comments is a reasonable proxy for impact a given change will have. ``` -------------------------------- ### Start multiple Archethic nodes Source: https://github.com/archethic-foundation/archethic-node/blob/master/README.md Starts multiple Archethic nodes by setting environment variables for seed, P2P port, and HTTP/HTTPS ports. ```bash # Start the first node iex -S mix # Start second node ARCHETHIC_CRYPTO_SEED=node2 ARCHETHIC_P2P_PORT=3003 ARCHETHIC_HTTP_PORT=4001 ARCHETHIC_HTTPS_PORT=5001 iex -S mix # To start other node, increment the environment variables ``` -------------------------------- ### Start a single Archethic node Source: https://github.com/archethic-foundation/archethic-node/blob/master/README.md Starts a single Archethic node using the Elixir interactive shell. ```bash iex -S mix ``` -------------------------------- ### Install static assets Source: https://github.com/archethic-foundation/archethic-node/blob/master/README.md Installs static assets for the Archethic Node project using npm. ```bash cd assets ; npm install; cd - ``` -------------------------------- ### Start Archethic Node with Docker Compose Source: https://github.com/archethic-foundation/archethic-node/blob/master/README.md Starts Archethic nodes using Docker Compose, allowing individual node startup or all nodes simultaneously. Also includes commands for running benchmarks and validation playbooks. ```bash # You can run node up to node3 docker compose up node1 docker compose up node2 docker compose up node3 # To start all nodes at the same time: docker compose up # To run benchmarks: docker compose up bench # To run the playbooks to validate non regression: docker compose up validate ``` -------------------------------- ### Submitting a Bug Report Source: https://github.com/archethic-foundation/archethic-node/blob/master/CONTRIBUTING.md Provides detailed instructions on how to report bugs effectively. Emphasizes clear titles, step-by-step reproduction, specific examples, observed vs. expected behavior, and including relevant logs or screenshots. It also guides on providing context about when the issue started and its reproducibility. ```markdown ## How Do I Submit A (Good) Bug Report? Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/) and create an issue on that repository and provide the following information by filling in [the template](https://github.com/archethic-foundation/.github/blob/main/.github/ISSUE_TEMPLATE/bug_report.yml). Explain the problem and include additional details to help maintainers reproduce the problem: * **Use a clear and descriptive title** for the issue to identify the problem. * **Describe the exact steps which reproduce the problem** in as many details as possible. When listing steps, **don't just say what you did, but explain how you did it**. * **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). * **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior. * **Explain which behavior you expected to see instead and why.** * **If you're reporting a crash**, include a crash report with a stack trace. nclude the crash report in the issue in a [code block](https://help.github.com/articles/markdown-basics/#multiple-lines), a [file attachment](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests/), or put it in a [gist](https://gist.github.com/) and provide link to that gist. * **If the problem is related to performance or memory**, include a screenshot of the `observer` * **If the problem wasn't triggered by a specific action**, describe what you were doing before the problem happened and share more information using the guidelines below. Provide more context by answering these questions: * **Did the problem start happening recently** (e.g. after updating to a new version) or was this always a problem? * If the problem started happening recently, **can you reproduce the problem in an older version of the node?** What's the most recent version in which the problem doesn't happen? * **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens. ``` -------------------------------- ### Install openssl using brew (macOS) Source: https://github.com/archethic-foundation/archethic-node/blob/master/README.md Installs OpenSSL version 3 using the Homebrew package manager on macOS. ```bash brew install openssl@3 ``` -------------------------------- ### Install Erlang with OpenSSL support (macOS) Source: https://github.com/archethic-foundation/archethic-node/blob/master/README.md Installs Erlang using `asdf` with specific configurations for OpenSSL 3, disabling JIT and Java support, and excluding wx widgets. ```bash cd KERL_CONFIGURE_OPTIONS="--disable-jit --without-javac --without-wx --with-ssl=$(brew --prefix openssl@3)" asdf install ``` -------------------------------- ### Update exla dependency and install Source: https://github.com/archethic-foundation/archethic-node/blob/master/README.md Modifies the `mix.exs` file to update the `exla` dependency to version 0.5.3 and then installs project dependencies. ```elixir {:exla, "~> 0.5.3"} ``` ```bash mix deps.get ``` -------------------------------- ### Submitting an Enhancement Suggestion Source: https://github.com/archethic-foundation/archethic-node/blob/master/CONTRIBUTING.md Guides users on how to propose new features or improvements. It advises checking existing suggestions, using a clear title, detailing the enhancement, comparing current vs. expected behavior, and explaining the value of the suggestion. ```markdown ### Suggesting Enhancements This section guides you through submitting an enhancement suggestion for ARCHEThic node, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion :pencil: and find related suggestions :mag_right:. Before creating enhancement suggestions, please check [this list](#before-submitting-an-enhancement-suggestion) as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion). Fill in [the template](https://github.com/archethic-foundation/.github/blob/master/.github/ISSUE_TEMPLATE/feature_request.yml), including the steps that you imagine you would take if the feature you're requesting existed. #### How Do I Submit A (Good) Enhancement Suggestion? Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/) and create an issue on that repository and provide the following information: * **Use a clear and descriptive title** for the issue to identify the suggestion. * **Provide a detailed description of the suggested enhancement** in as many details as possible. * **Describe the current behavior** and **explain which behavior you expected to see instead** and why. * **Explain why this enhancement would be useful** . ``` -------------------------------- ### Clone Archethic repository Source: https://github.com/archethic-foundation/archethic-node/blob/master/README.md Clones the Archethic Node repository from GitHub and navigates into the project directory. ```bash git clone https://github.com/archethic-foundation/archethic-node.git cd archethic-node ``` -------------------------------- ### Build Archethic Node Docker image Source: https://github.com/archethic-foundation/archethic-node/blob/master/README.md Builds the Docker image for the Archethic Node. ```bash docker build -t archethic-node . ``` -------------------------------- ### Archethic Contribution Workflow Source: https://github.com/archethic-foundation/archethic-node/blob/master/README.md Outlines the standard Git workflow for contributing to the Archethic project, including forking, branching, committing, and creating pull requests. ```bash 1. Fork it! 2. Create your feature branch (git checkout -b my-new-feature) 3. Commit your changes (git commit -am 'Add some feature') 4. Push to the branch (git push origin my-new-feature) 5. Create new Pull Request ``` -------------------------------- ### Basic Robots.txt Configuration Source: https://github.com/archethic-foundation/archethic-node/blob/master/priv/static/robots-067185ba27a5d9139b10a759679045bf.txt This snippet shows a basic configuration for a robots.txt file. It includes comments explaining the purpose of the file and directives for controlling web crawler access. The User-agent directive specifies which crawler the rules apply to, and the Disallow directive specifies paths that should not be accessed. ```robots.txt # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file # # To ban all spiders from the entire site uncomment the next two lines: # User-agent: * # Disallow: / ``` -------------------------------- ### Basic Robots.txt Configuration Source: https://github.com/archethic-foundation/archethic-node/blob/master/priv/static/robots.txt This snippet shows a basic configuration for a robots.txt file. It includes comments explaining the purpose of the file and directives for controlling web crawler access. The User-agent directive specifies which crawler the rules apply to, and the Disallow directive specifies paths that should not be accessed. ```robots.txt # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file # # To ban all spiders from the entire site uncomment the next two lines: # User-agent: * # Disallow: / ``` -------------------------------- ### On-Chain Upgradable Code Source: https://github.com/archethic-foundation/archethic-node/wiki/OnChain-Governance ArchEthic's network code is hosted on each node, allowing for open access and version control similar to Git. Updates can be managed through governance and forced according to specific rules. The use of Erlang/Elixir facilitates node upgrades without restarts, enabling hot-swapping and hot-releases. ```Erlang %% Example of hot-swapping capability in Erlang -module(my_module). -export([update_function/1]). update_function(X) -> X * 2. %% To update, a new version of the module can be loaded without restarting the node. ``` ```Elixir # Example of hot-reloading in Elixir defmodule MyModule do def update_function(x) do x * 2 end end # With tools like :kernel.soft_purge/1 and :code.load_file/1, # functions can be updated without restarting the application. ``` -------------------------------- ### Pull Request Process Source: https://github.com/archethic-foundation/archethic-node/blob/master/CONTRIBUTING.md Outlines the goals of the pull request process, which are to maintain the quality of the Archethic Node project, fix important issues, and establish a sustainable system for maintainers to review contributions. ```markdown ### Pull Requests The process described here has several goals: - Maintain ARCHEthic node's quality - Fix problems that are important - Enable a sustainable system for ARCHEthic's maintainers to review contributions ``` -------------------------------- ### Clean Archethic node data Source: https://github.com/archethic-foundation/archethic-node/blob/master/README.md Cleans the data associated with an Archethic node. ```bash make clean ``` -------------------------------- ### Git Commit Message Conventions Source: https://github.com/archethic-foundation/archethic-node/blob/master/CONTRIBUTING.md Standard conventions for writing Git commit messages, including tense, mood, line length, issue referencing, and emoji usage for different types of changes. ```git Use the present tense ("Add feature" not "Added feature") Use the imperative mood ("Move cursor to..." not "Moves cursor to...") Limit the first line to 72 characters or less Reference issues and pull requests liberally after the first line Consider starting the commit message with an applicable emoji: * :art: when improving the format/structure of the code * :racehorse: when improving performance * :non-potable_water: when plugging memory leaks * :memo: when writing docs * :bug: when fixing a bug * :fire: when removing code or files * :white_check_mark: when adding tests * :lock: when dealing with security * :arrow_up: when upgrading dependencies * :arrow_down: when downgrading dependencies * :shirt: when removing linter warnings ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.